mirror of
https://github.com/curl/curl.git
synced 2024-11-27 05:50:21 +08:00
cli tool: improve ";type=" handling in -F option arguments
This commit is contained in:
parent
f82f952d2f
commit
e240a546a7
@ -233,12 +233,10 @@ static int get_param_part(struct OperationConfig *config, char endchar,
|
||||
}
|
||||
|
||||
/* now point beyond the content-type specifier */
|
||||
endpos = type + strlen(type_major) + strlen(type_minor) + 1;
|
||||
for(p = endpos; ISSPACE(*p); p++)
|
||||
;
|
||||
while(*p && *p != ';' && *p != ',')
|
||||
p++;
|
||||
endct = p;
|
||||
p = type + strlen(type_major) + strlen(type_minor) + 1;
|
||||
for(endct = p; *p && *p != ';' && *p != endchar; p++)
|
||||
if(!ISSPACE(*p))
|
||||
endct = p + 1;
|
||||
sep = *p;
|
||||
}
|
||||
else if(checkprefix("filename=", p)) {
|
||||
@ -330,29 +328,27 @@ static int get_param_part(struct OperationConfig *config, char endchar,
|
||||
sep = *p;
|
||||
*endpos = '\0';
|
||||
}
|
||||
else if(endct) {
|
||||
/* This is part of content type. */
|
||||
for(endct = p; *p && *p != ';' && *p != endchar; p++)
|
||||
if(!ISSPACE(*p))
|
||||
endct = p + 1;
|
||||
sep = *p;
|
||||
}
|
||||
else {
|
||||
/* unknown prefix, skip to next block */
|
||||
char *unknown = get_param_word(&p, &endpos, endchar);
|
||||
|
||||
sep = *p;
|
||||
if(endct)
|
||||
endct = p;
|
||||
else {
|
||||
*endpos = '\0';
|
||||
if(*unknown)
|
||||
warnf(config->global, "skip unknown form field: %s\n", unknown);
|
||||
}
|
||||
*endpos = '\0';
|
||||
if(*unknown)
|
||||
warnf(config->global, "skip unknown form field: %s\n", unknown);
|
||||
}
|
||||
}
|
||||
|
||||
/* Terminate and strip content type. */
|
||||
if(type) {
|
||||
if(!endct)
|
||||
endct = type + strlen(type);
|
||||
while(endct > type && ISSPACE(endct[-1]))
|
||||
endct--;
|
||||
/* Terminate content type. */
|
||||
if(endct)
|
||||
*endct = '\0';
|
||||
}
|
||||
|
||||
if(ptype)
|
||||
*ptype = type;
|
||||
|
Loading…
Reference in New Issue
Block a user