Browsing possible even without a MIME globs database
This commit is contained in:
parent
1d99e12381
commit
f6b083f73d
|
@ -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);
|
||||
|
|
15
src/mime.c
15
src/mime.c
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user