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 */ /* FIXME */
/* mime */ /* mime */
if((browser->mime = mime_new()) == NULL) browser->mime = mime_new();
{
free(browser);
return NULL;
}
/* history */ /* history */
browser->history = g_list_append(NULL, strdup(directory == NULL 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); gtk_list_store_append(browser->store, &iter);
if(is_dir) if(is_dir)
icon = browser->pb_folder; 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) != NULL)
{ {
strncpy(&buf[11], type, sizeof(buf)-11); strncpy(&buf[11], type, sizeof(buf)-11);

View File

@ -15,7 +15,13 @@
Mime * mime_new(void) Mime * mime_new(void)
{ {
Mime * mime; 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]; char buf[256];
size_t len; size_t len;
char * glob; char * glob;
@ -23,9 +29,12 @@ Mime * mime_new(void)
if((mime = malloc(sizeof(*mime))) == NULL) if((mime = malloc(sizeof(*mime))) == NULL)
return 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); free(mime);
return NULL; return NULL;
} }