commit d6c2c4a59ea00204881e9fd0040ca3104eeb40a2
parent 6b2db1a4d371622a94ee4d0d9063d6cfcb25f15b
Author: ukai <ukai>
Date:   Wed, 29 Jan 2003 17:33:28 +0000
[w3m-dev-en 00852] Re: Enhancement: content type detection of files
* url.c (DefaultGuess): remove upppercases
	(guessContentTypeFromTable): rewrite, strcasecmp
From: Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
Diffstat:
2 files changed, 14 insertions(+), 14 deletions(-)
diff --git a/ChangeLog b/ChangeLog
@@ -1,5 +1,11 @@
 2003-01-30  Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
 
+	* [w3m-dev-en 00852] Re: Enhancement: content type detection of files
+	* url.c (DefaultGuess): remove upppercases
+		(guessContentTypeFromTable): rewrite, strcasecmp
+
+2003-01-30  Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
+
 	* [w3m-dev 03708] Re: Don't stop loading image when moving to next page.
 	* config.h.dist (lstat): define ifndef HAVE_LSTAT
 	* configure (config.h) ditto
diff --git a/url.c b/url.c
@@ -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;
 }