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. */ |