Skip to content

Commit

Permalink
Merge branch 'ye/http-extract-charset'
Browse files Browse the repository at this point in the history
* ye/http-extract-charset:
  http: fix charset detection of extract_content_type()
  • Loading branch information
gitster committed Jul 2, 2014
2 parents 6293aea + f34a655 commit a02ad88
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 2 deletions.
4 changes: 2 additions & 2 deletions http.c
Original file line number Diff line number Diff line change
Expand Up @@ -927,7 +927,7 @@ static int extract_param(const char *raw, const char *name,
return -1;
raw++;

while (*raw && !isspace(*raw))
while (*raw && !isspace(*raw) && *raw != ';')
strbuf_addch(out, *raw++);
return 0;
}
Expand Down Expand Up @@ -971,7 +971,7 @@ static void extract_content_type(struct strbuf *raw, struct strbuf *type,

strbuf_reset(charset);
while (*p) {
while (isspace(*p))
while (isspace(*p) || *p == ';')
p++;
if (!extract_param(p, "charset", charset))
return;
Expand Down
4 changes: 4 additions & 0 deletions t/lib-httpd/error.sh
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,10 @@ case "$PATH_INFO" in
printf "text/plain; charset=utf-16"
charset=utf-16
;;
*odd-spacing*)
printf "text/plain; foo=bar ;charset=utf-16; other=nonsense"
charset=utf-16
;;
esac
printf "\n"

Expand Down
5 changes: 5 additions & 0 deletions t/t5550-http-fetch-dumb.sh
Original file line number Diff line number Diff line change
Expand Up @@ -191,5 +191,10 @@ test_expect_success 'http error messages are reencoded' '
grep "this is the error message" stderr
'

test_expect_success 'reencoding is robust to whitespace oddities' '
test_must_fail git clone "$HTTPD_URL/error/odd-spacing" 2>stderr &&
grep "this is the error message" stderr
'

stop_httpd
test_done

0 comments on commit a02ad88

Please sign in to comment.