| 1043 |
return (char *) p; |
return (char *) p; |
| 1044 |
} |
} |
| 1045 |
|
|
| 1046 |
char const * |
/* Return the size of the prefix of FILE_NAME that is removed after |
| 1047 |
cut_path_elements (char const *file_name, size_t num) |
stripping NUM leading path name components. NUM must be |
| 1048 |
|
positive. */ |
| 1049 |
|
|
| 1050 |
|
size_t |
| 1051 |
|
stripped_prefix_len (char const *file_name, size_t num) |
| 1052 |
{ |
{ |
| 1053 |
char const *p = file_name; |
char const *p = file_name + FILESYSTEM_PREFIX_LEN (file_name); |
| 1054 |
if (ISSLASH (*p)) |
while (ISSLASH (*p)) |
| 1055 |
p++; |
p++; |
| 1056 |
for (; *p; p++) |
while (*p) |
| 1057 |
{ |
{ |
| 1058 |
if (ISSLASH (*p)) |
bool slash = ISSLASH (*p); |
| 1059 |
|
p++; |
| 1060 |
|
if (slash) |
| 1061 |
{ |
{ |
| 1062 |
if (--num == 0) |
if (--num == 0) |
| 1063 |
return p + 1; |
return p - file_name; |
| 1064 |
|
while (ISSLASH (*p)) |
| 1065 |
|
p++; |
| 1066 |
} |
} |
| 1067 |
} |
} |
| 1068 |
return NULL; |
return -1; |
| 1069 |
} |
} |
| 1070 |
|
|
| 1071 |
/* Return nonzero if NAME contains ".." as a path name component. */ |
/* Return nonzero if NAME contains ".." as a path name component. */ |