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 */
|
/* 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);
|
||||||
|
|
15
src/mime.c
15
src/mime.c
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user