1
0
mirror of https://github.com/rkd77/elinks.git synced 2024-11-04 08:17:17 -05:00

Bug 983: Give precedence to HTTP Content-Type header over HTML meta tag

The Content-Type from the HTTP response header has
precedence over the Content-Type from a meta http-equiv tag.
http://www.w3.org/International/tutorials/tutorial-char-enc/en/all.html

This fixes bug 983.
(cherry picked from commit 6cf099a087)

Conflicts:

	NEWS
This commit is contained in:
Miciah Dashiel Butler Masters 2008-06-30 17:32:07 +00:00 committed by Kalle Olavi Niemitalo
parent 9079106894
commit 67ffde03ba
3 changed files with 10 additions and 8 deletions

View File

@ -269,6 +269,9 @@ Jon Shapcott <eden@xibalba.demon.co.uk>
John <martian202002@yahoo.com>
Tab browsing initial patch
Johannes Stezenbach <js@sig21.net>
Precedence of HTTP vs. HTTP meta tag when setting Content-Type
Johannes Zellner <johannes@zellner.org>
Minor misc hacking

2
NEWS
View File

@ -12,6 +12,8 @@ To be released as 0.12pre6 or 0.12rc1.
* major bug 764: Correctly initialize options on big-endian 64-bit
systems.
* bug 983: Give preference to the Content-Type specified in the HTTP
header over that specified via the HTML meta tag.
Bugs that should be removed from NEWS before the 0.12.0 release:

View File

@ -591,17 +591,14 @@ get_convert_table(unsigned char *head, int to_cp,
while (cp_index == -1) {
unsigned char *ct_charset;
unsigned char *meta;
/* scan_http_equiv() appends the meta http-equiv directives to
* the protocol header before this function is called, but the
* HTTP Content-Type header has precedence, so the HTTP header
* will be used if it exists and the meta header is only used
* as a fallback. See bug 983. */
unsigned char *a = parse_header(part, "Content-Type", &part);
if (!a) break;
/* Content type info from document meta header.
* scan_http_equiv() appends the meta stuff to the protocol header before
* this function is called. Last Content-Type header field is used. */
while ((meta = parse_header(part, "Content-Type", &part))) {
mem_free_set(&a, meta);
}
parse_header_param(a, "charset", &ct_charset);
if (ct_charset) {