static bool parse_content_disposition (const char *hdr, char **filename) { param_token name, value; bool is_url_encoded = false; char *encodedFilename = NULL; char *unencodedFilename = NULL; for ( ; extract_param (&hdr, &name, &value, ';', &is_url_encoded); is_url_encoded = false) { int isFilename = BOUNDED_EQUAL_NO_CASE (name.b, name.e, "filename"); if ( isFilename && value.b != NULL) { ... if (*outFilename) append_value_to_filename (outFilename, &value, is_url_encoded); else { *outFilename = strdupdelim (value.b, value.e); if (is_url_encoded) url_unescape (*outFilename); } } }
fca71bbc-be30-4d93-ac49-7253ce967d5b
static bool parse_content_disposition (const char *hdr, char **filename) { param_token name, value; bool is_url_encoded = false;
char *encodedFilename = NULL; char *unencodedFilename = NULL; for ( ; extract_param (&hdr, &name, &value, ';', &is_url_encoded); is_url_encoded = false) { int isFilename = BOUNDED_EQUAL_NO_CASE (name.b, name.e, "filename"); if ( isFilename && value.b != NULL) { ... if (*outFilename) append_value_to_filename (outFilename, &value, is_url_encoded); else { *outFilename = strdupdelim (value.b, value.e); if (is_url_encoded) url_unescape (*outFilename); } } }