55 size_t inlen = strlen(input);
58 char *out =
malloc(inlen + 1);
85 queryp = strchr(clone,
'?');
94 if(!strncmp(
"./", clone, 2)) {
98 else if(!strncmp(
"../", clone, 3)) {
106 else if(!strncmp(
"/./", clone, 3)) {
110 else if(!strcmp(
"/.", clone)) {
121 else if(!strncmp(
"/../", clone, 4)) {
125 while(outptr > out) {
132 else if(!strcmp(
"/..", clone)) {
137 while(outptr > out) {
148 else if(!strcmp(
".", clone) || !strcmp(
"..", clone)) {
160 *outptr++ = *clone++;
162 }
while(*clone && (*clone !=
'/'));
173 size_t oindex = queryp - orgclone;
174 qlen = strlen(&input[oindex]);
175 memcpy(outptr, &input[oindex], qlen + 1);
memcpy(filename, filename1, strlen(filename1))
char * Curl_dedotdotify(const char *input)