--- HTMIME.c.orig Tue May 28 15:56:46 2002 +++ HTMIME.c Sun Oct 13 18:42:29 2002 @@ -200,6 +200,16 @@ return result; } +PRIVATE BOOL content_is_compressed ARGS1(HTStream *, me) +{ + char *encoding = me->anchor->content_encoding; + + CTRACE((tfp, "FIXME testing %s\n", me->anchor->address)); + return strcmp(encoding, "8bit") != 0 + && strcmp(encoding, "7bit") != 0 + && strcmp(encoding, "binary") != 0; +} + PRIVATE int pumpData ARGS1(HTStream *, me) { if (strchr(HTAtom_name(me->format), ';') != NULL) { @@ -467,9 +477,11 @@ } else { me->state = MIME_IGNORE; /* What else to do? */ } - if (me->refresh_url != NULL) { + if (me->refresh_url != NULL && !content_is_compressed(me)) { char *url = parse_parameter(me->refresh_url, "URL"); char *txt = NULL; + char *arg = NULL; + char *base = ""; /* FIXME: refresh_url may be relative to doc */ int num = 0; if (url != NULL) { @@ -479,7 +491,10 @@ HTSprintf0(&txt, gettext("Refresh: ")); if (num != 0) HTSprintf(&txt, gettext("%.*s seconds "), num, me->refresh_url); - HTSprintf(&txt, "%s
", url, url); + if ((arg = strchr(url, '?')) != NULL) + *arg = '\0'; + HTSprintf(&txt, "%s
", base, url, url); + CTRACE((tfp, "URL %s%s\n", base, url)); (me->isa->put_string)(me, txt); free(url); free(txt); @@ -658,20 +673,18 @@ LYLowerCase(me->value); StrAllocCopy(me->anchor->content_encoding, me->value); FREE(me->compression_encoding); - if (!strcmp(me->value, "8bit") || - !strcmp(me->value, "7bit") || - !strcmp(me->value, "binary")) { - /* - ** Some server indicated "8bit", "7bit" or "binary" - ** inappropriately. We'll ignore it. - FM - */ - CTRACE((tfp, " Ignoring it!\n")); - } else { + if (content_is_compressed(me)) { /* ** Save it to use as a flag for setting ** up a "www/compressed" target. - FM */ StrAllocCopy(me->compression_encoding, me->value); + } else { + /* + ** Some server indicated "8bit", "7bit" or "binary" + ** inappropriately. We'll ignore it. - FM + */ + CTRACE((tfp, " Ignoring it!\n")); } break; case miCONTENT_FEATURES: