Browsing possible even without a MIME globs database

This commit is contained in:
Pierre Pronchery 2006-06-05 23:49:35 +00:00
parent 1d99e12381
commit f6b083f73d
2 changed files with 15 additions and 9 deletions

View File

@ -108,11 +108,7 @@ Browser * browser_new(char const * directory)
/* FIXME */
/* mime */
if((browser->mime = mime_new()) == NULL)
{
free(browser);
return NULL;
}
browser->mime = mime_new();
/* history */
browser->history = g_list_append(NULL, strdup(directory == NULL
@ -296,7 +292,8 @@ static void _fill_store(Browser * browser)
gtk_list_store_append(browser->store, &iter);
if(is_dir)
icon = browser->pb_folder;
else if(!is_dir && (type = mime_type(browser->mime, name))
else if(!is_dir && browser->mime != NULL
&& (type = mime_type(browser->mime, name))
!= NULL)
{
strncpy(&buf[11], type, sizeof(buf)-11);

View File

@ -15,7 +15,13 @@
Mime * mime_new(void)
{
Mime * mime;
FILE * fp;
char * globs[] = { /* ideally taken from Gtk+ but seems impossible */
"/usr/pkg/share/mime/globs",
"/usr/local/share/mime/globs",
"/usr/share/mime/globs",
NULL };
char ** g = globs;
FILE * fp = NULL;
char buf[256];
size_t len;
char * glob;
@ -23,9 +29,12 @@ Mime * mime_new(void)
if((mime = malloc(sizeof(*mime))) == NULL)
return NULL;
if((fp = fopen("/usr/share/mime/globs", "r")) == NULL)
for(g = globs; *g != NULL; g++)
if((fp = fopen(*g, "r")) != NULL)
break;
if(fp == NULL)
{
perror("/usr/share/mime/globs"); /* FIXME */
perror("Error while loading MIME globs");
free(mime);
return NULL;
}