More rigourous MIME type checking for CSS allows us to remove the icons from included

CSS files.

svn path=/trunk/netsurf/; revision=12049
This commit is contained in:
Chris Young 2011-03-14 18:53:13 +00:00
parent 7acc13d863
commit 1cfc5b8970
8 changed files with 40 additions and 18 deletions

View File

@ -1,5 +1,5 @@
/*
* Copyright 2008 Chris Young <chris@unsatisfactorysoftware.co.uk>
* Copyright 2008, 2011 Chris Young <chris@unsatisfactorysoftware.co.uk>
*
* This file is part of NetSurf, http://www.netsurf-browser.org/
*
@ -51,16 +51,6 @@ const char *fetch_filetype(const char *unix_path)
found = TRUE;
}
/* Have a quick check for the RISC OS CSS filetype. Some of the redirects
* caused by links in the SVN tree prevent NetSurf from reading the MIME
* type from the icon (step two, below).
*/
if(strncmp(unix_path + strlen(unix_path) - 4, ",f79", 4) == 0)
{
strcpy(mimetype,"text/css");
found = TRUE;
}
/* Secondly try getting a tooltype "MIMETYPE" and use that as the MIME type.
Will fail over to default icons if the file doesn't have a real icon. */
@ -99,7 +89,31 @@ const char *fetch_filetype(const char *unix_path)
}
}
if(!found) strcpy(mimetype,"text/html"); /* If all else fails */
/* Have a quick check for file extensions (inc RISC OS filetype).
* Makes detection a little more robust, and some of the redirects
* caused by links in the SVN tree prevent NetSurf from reading the
* MIME type from the icon (step two, above).
*/
if((!found) || (strcmp("text/plain", mimetype) == 0))
{
if((strncmp(unix_path + strlen(unix_path) - 4, ".css", 4) == 0) ||
(strncmp(unix_path + strlen(unix_path) - 4, ",f79", 4) == 0))
{
strcpy(mimetype,"text/css");
found = TRUE;
}
if((strncmp(unix_path + strlen(unix_path) - 4, ".htm", 4) == 0) ||
(strncmp(unix_path + strlen(unix_path) - 5, ".html", 5) == 0) ||
(strncmp(unix_path + strlen(unix_path) - 4, ",faf", 4) == 0))
{
strcpy(mimetype,"text/html");
found = TRUE;
}
}
if(!found) strcpy(mimetype,"text/plain"); /* If all else fails */
return mimetype;
}

View File

@ -451,6 +451,9 @@ char* gui_find_resource(const char *filename)
char filename2[1024];
if(ami_locate_resource(path, filename) == false)
{
if((strncmp(filename + strlen(filename) - 4, ".htm", 4) == 0) ||
(strncmp(filename + strlen(filename) - 5, ".html", 5) == 0))
{
/* Try with RISC OS HTML filetype, might work */
strcpy(filename2, filename);
@ -461,6 +464,8 @@ char* gui_find_resource(const char *filename)
return NULL;
}
}
else return NULL;
}
return path_to_url(path);
}

Binary file not shown.

View File

@ -16,6 +16,9 @@
# theme_throbber is a film strip of theme_throbber_frames frames
# The first frame must be the inactive image.
#
# Various default CSS styles can be overridden by adding a file
# "amiga.css" in this directory.
#
theme_nav_west:back.png
theme_nav_west_s:back_h.png
theme_nav_west_g:back_g.png

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.