From 901902c777cb034865c0775f1a46f668b2619b33 Mon Sep 17 00:00:00 2001 From: Fumitoshi UKAI Date: Wed, 29 Jan 2003 17:33:28 +0000 Subject: [w3m-dev-en 00852] Re: Enhancement: content type detection of files * url.c (DefaultGuess): remove upppercases (guessContentTypeFromTable): rewrite, strcasecmp From: Hironori SAKAMOTO --- url.c | 24 +++++++++--------------- 1 file changed, 9 insertions(+), 15 deletions(-) (limited to 'url.c') diff --git a/url.c b/url.c index 52030c8..60db426 100644 --- a/url.c +++ b/url.c @@ -1,4 +1,4 @@ -/* $Id: url.c,v 1.70 2003/01/29 17:10:53 ukai Exp $ */ +/* $Id: url.c,v 1.71 2003/01/29 17:33:28 ukai Exp $ */ #include "fm.h" #include #include @@ -86,23 +86,14 @@ struct cmdtable schemetable[] = { static struct table2 DefaultGuess[] = { {"html", "text/html"}, - {"HTML", "text/html"}, {"htm", "text/html"}, - {"HTM", "text/html"}, {"shtml", "text/html"}, - {"SHTML", "text/html"}, {"gif", "image/gif"}, - {"GIF", "image/gif"}, {"jpeg", "image/jpeg"}, {"jpg", "image/jpeg"}, - {"JPEG", "image/jpeg"}, - {"JPG", "image/jpeg"}, {"png", "image/png"}, - {"PNG", "image/png"}, {"xbm", "image/xbm"}, - {"XBM", "image/xbm"}, {"au", "audio/basic"}, - {"AU", "audio/basic"}, {"gz", "application/x-gzip"}, {"Z", "application/x-compress"}, {"bz2", "application/x-bzip"}, @@ -110,7 +101,6 @@ static struct table2 DefaultGuess[] = { {"zip", "application/x-zip"}, {"lha", "application/x-lha"}, {"lzh", "application/x-lha"}, - {"LZH", "application/x-lha"}, {"ps", "application/postscript"}, {"pdf", "application/pdf"}, {NULL, NULL} @@ -1860,6 +1850,7 @@ add_index_file(ParsedURL *pu, URLFile *uf) static char * guessContentTypeFromTable(struct table2 *table, char *filename) { + struct table2 *t; char *p; if (table == NULL) return NULL; @@ -1869,10 +1860,13 @@ guessContentTypeFromTable(struct table2 *table, char *filename) if (p == filename) return NULL; p++; - while (table->item1) { - if (!strcmp(p, table->item1)) - return table->item2; - table++; + for (t = table; t->item1; t++) { + if (!strcmp(p, t->item1)) + return t->item2; + } + for (t = table; t->item1; t++) { + if (!strcasecmp(p, t->item1)) + return t->item2; } return NULL; } -- cgit v1.2.3