I forgot to change two && to ||
Index: e_fileman_file.c
===================================================================
RCS file: /root/e17/apps/e/src/bin/e_fileman_file.c,v
retrieving revision 1.1.1.5
diff -r1.1.1.5 e_fileman_file.c
77,83c77,87
< ext = strrchr(file->name, '.');
< if (ext)
< {
< file->mime = ext;
< }
< else
< file->mime = "unknown";
---
> ext = strrchr(file->name, '.');
> if (ext)
> {
> char *ext2;
> ext = strdup(ext);
> ext2 = ext;
> for (; *ext2; ext2++) *ext2 = tolower(*ext2);
> file->mime = ext;
> }
> else
> file->mime = "unknown";
108,113c112,117
< free(file->path);
< file->path = strdup(path);
< free(file->name);
< file->name = strdup(name);
< D(("e_fm_file_rename: ok (%p) (%s)\n", file, name));
< return 1;
---
> free(file->path);
> file->path = strdup(path);
> free(file->name);
> file->name = strdup(name);
> D(("e_fm_file_rename: ok (%p) (%s)\n", file, name));
> return 1;
117,118c121,122
< D(("e_fm_file_rename: fail (%p) (%s)\n", file, name));
< return 0;
---
> D(("e_fm_file_rename: fail (%p) (%s)\n", file, name));
> return 0;
127,132c131,136
< free(file->path);
< file->path = NULL;
< free(file->name);
< file->name = NULL;
< D(("e_fm_file_delete: ok (%p) (%s)\n", file, file->name));
< return 1;
---
> free(file->path);
> file->path = NULL;
> free(file->name);
> file->name = NULL;
> D(("e_fm_file_delete: ok (%p) (%s)\n", file, file->name));
> return 1;
136,137c140,141
< D(("e_fm_file_delete: fail (%p) (%s)\n", file, file->name));
< return 0;
---
> D(("e_fm_file_delete: fail (%p) (%s)\n", file, file->name));
> return 0;
148,153c152,157
< free(file->path);
< file->path = strdup(name);
< free(file->name);
< file->name = strdup(ecore_file_get_file(name));
< D(("e_fm_file_copy: ok (%p) (%s)\n", file, name));
< return 1;
---
> free(file->path);
> file->path = strdup(name);
> free(file->name);
> file->name = strdup(ecore_file_get_file(name));
> D(("e_fm_file_copy: ok (%p) (%s)\n", file, name));
> return 1;
157,158c161,162
< D(("e_fm_file_copy: fail (%p) (%s)\n", file, name));
< return 0;
---
> D(("e_fm_file_copy: fail (%p) (%s)\n", file, name));
> return 0;
161a166,181
> int
> e_fm_file_is_regular(E_Fm_File *file) /* TODO: find better name */
> {
> return ((file->type == E_FM_FILE_TYPE_FILE)
> || (file->type == E_FM_FILE_TYPE_SYMLINK));
> }
>
> EAPI int
> e_fm_file_has_mime(E_Fm_File *file, char* mime)
> {
> if (!file->mime) return 0;
>
> D(("e_fm_file_has_mime: (%p) : %s\n", file,file->mime));
> return (!strcasecmp(file->mime, mime));
> }
>
170c190
< E_Fm_File_Preview_Function func;
---
> E_Fm_File_Preview_Function func;
172,174c192,194
< func = file->preview_funcs[i];
< if (func(file))
< return 1;
---
> func = file->preview_funcs[i];
> if (func(file))
> return 1;
186,195c206,212
< char *ext;
<
< if ((file->type != E_FM_FILE_TYPE_FILE) && (file->type != E_FM_FILE_TYPE_SYMLINK)) return 0;
<
< ext = strrchr(file->name, '.');
< if (!ext) return 0;
<
< D(("e_fm_file_is_image: (%p)\n", file));
< return (!strcasecmp(ext, ".jpg")) || (!strcasecmp(ext, ".png")) ||
< (!strcasecmp(ext, ".jpeg"));
---
>
> //D(("e_fm_file_is_image: (%p)\n", file));
>
> return e_fm_file_is_regular(file)
> &&(e_fm_file_has_mime(file,".jpg")
> || e_fm_file_has_mime(file,".jpeg")
> || e_fm_file_has_mime(file,".png"));
202d218
< char *ext;
205,210c221
< if ((file->type != E_FM_FILE_TYPE_FILE) && (file->type != E_FM_FILE_TYPE_SYMLINK)) return 0;
<
< ext = strrchr(file->name, '.');
< if (!ext) return 0;
<
< if (strcasecmp(ext, ".edj"))
---
> if (!e_fm_file_is_regular(file) || !e_fm_file_has_mime(file,".edj"))
219,225c230,236
< {
< if (!strcmp(l->data, "widgets/border/default/border"))
< {
< val = 1;
< break;
< }
< }
---
> {
> if (!strcmp(l->data, "widgets/border/default/border"))
> {
> val = 1;
> break;
> }
> }
234d244
< char *ext;
237,242c247
< if ((file->type != E_FM_FILE_TYPE_FILE) && (file->type != E_FM_FILE_TYPE_SYMLINK)) return 0;
<
< ext = strrchr(file->name, '.');
< if (!ext) return 0;
<
< if (strcasecmp(ext, ".edj"))
---
> if (!e_fm_file_is_regular(file) || !e_fm_file_has_mime(file,".edj"))
244c249
<
---
>
251,257c256,262
< {
< if (!strcmp(l->data, "desktop/background"))
< {
< val = 1;
< break;
< }
< }
---
> {
> if (!strcmp(l->data, "desktop/background"))
> {
> val = 1;
> break;
> }
> }
265,268d269
< char *ext;
< E_App *app;
<
< if ((file->type != E_FM_FILE_TYPE_FILE) && (file->type != E_FM_FILE_TYPE_SYMLINK)) return 0;
270,271c271
< ext = strrchr(file->name, '.');
< if (!ext) return 0;
---
> E_App *app;
273c273
< if (strcasecmp(ext, ".eap"))
---
> if (!e_fm_file_is_regular(file) || !e_fm_file_has_mime(file,".eap"))
275c275
<
---
>
278,281c278,281
< {
< e_object_unref(E_OBJECT(app));
< return 0;
< }
---
> {
> e_object_unref(E_OBJECT(app));
> return 0;
> }
289,299c289,293
< char *ext;
<
< ext = strrchr(file->name, '.');
< if (ext)
< {
< if (!strcasecmp(ext, ".eap"))
< {
< D(("e_fm_file_can_exec: true (%p) (%s)\n", file, file->name));
< return 1;
< }
< }
---
> if (e_fm_file_has_mime(file,".eap"))
> {
> D(("e_fm_file_can_exec: true (%p) (%s)\n", file, file->name));
> return 1;
> }
302,305c296,299
< {
< D(("e_fm_file_can_exec: true (%p) (%s)\n", file, file->name));
< return 1;
< }
---
> {
> D(("e_fm_file_can_exec: true (%p) (%s)\n", file, file->name));
> return 1;
> }
315d308
< char *ext;
317,335c310,324
< ext = strrchr(file->name, '.');
< if (ext)
< {
< if (!strcasecmp(ext, ".eap"))
< {
< E_App *e_app;
< Ecore_Exe *exe;
<
< e_app = e_app_new(file->path, 0);
<
< if (!e_app) return 0;
<
< exe = ecore_exe_run(e_app->exe, NULL);
< if (exe) ecore_exe_free(exe);
< e_object_unref(E_OBJECT(e_app));
< D(("e_fm_file_exec: eap (%p) (%s)\n", file, file->name));
< return 1;
< }
< }
---
> if(e_fm_file_has_mime(file,".eap"))
> {
> E_App *e_app;
> Ecore_Exe *exe;
>
> e_app = e_app_new(file->path, 0);
>
> if (!e_app) return 0;
>
> exe = ecore_exe_run(e_app->exe, NULL);
> if (exe) ecore_exe_free(exe);
> e_object_unref(E_OBJECT(e_app));
> D(("e_fm_file_exec: eap (%p) (%s)\n", file, file->name));
> return 1;
> }
339,348c328,337
< {
< e_error_dialog_show(_("Run Error"),
< _("Enlightenment was unable to fork a child process:\n"
< "\n"
< "%s\n"
< "\n"),
< file->path);
< D(("e_fm_file_exec: fail (%p) (%s)\n", file, file->name));
< return 0;
< }
---
> {
> e_error_dialog_show(_("Run Error"),
> _("Enlightenment was unable to fork a child process:\n"
> "\n"
> "%s\n"
> "\n"),
> file->path);
> D(("e_fm_file_exec: fail (%p) (%s)\n", file, file->name));
> return 0;
> }
374,382c363,368
< {
< char *ext;
<
< assoc = l->data;
< ext = strrchr(file->path, '.');
< if ((ext) && (!strcasecmp(ext, assoc->mime)))
< break;
< assoc = NULL;
< }
---
> {
> assoc = l->data;
> if (e_fm_file_has_mime(file,assoc->mime))
> break;
> assoc = NULL;
> }
390,399c376,385
< {
< e_error_dialog_show(_("Run Error"),
< _("Enlightenment was unable to fork a child process:\n"
< "\n"
< "%s\n"
< "\n"),
< app);
< D(("e_fm_assoc_exec: fail (%s)\n", app));
< return 0;
< }
---
> {
> e_error_dialog_show(_("Run Error"),
> _("Enlightenment was unable to fork a child process:\n"
> "\n"
> "%s\n"
> "\n"),
> app);
> D(("e_fm_assoc_exec: fail (%s)\n", app));
> return 0;
> }
418,426c404,412
< {
< e_error_dialog_show(_("Run Error"),
< _("3 Enlightenment was unable to fork a child process:\n"
< "\n"
< "%s\n"
< "\n"),
< app);
< return 0;
< }
---
> {
> e_error_dialog_show(_("Run Error"),
> _("3 Enlightenment was unable to fork a child process:\n"
> "\n"
> "%s\n"
> "\n"),
> app);
> return 0;
> }
438c424
< ///??? if (file->mime) free(file->mime);
---
> ///??? if (file->mime) free(file->mime);
Index: e_fileman_file.h
===================================================================
RCS file: /root/e17/apps/e/src/bin/e_fileman_file.h,v
retrieving revision 1.1.1.2
diff -r1.1.1.2 e_fileman_file.h
40c40
< char *mime; /* mimetype (just the extension) */
---
> char *mime; /* mimetype (just the extension, beginning with dot) */
70,71c70,72
< EAPI int e_fm_file_exec_with (E_Fm_File *file, char* exec_with);
<
---
> EAPI int e_fm_file_exec_with (E_Fm_File *file, char* exec_with);
> EAPI int e_fm_file_has_mime (E_Fm_File *file, char* mime);
> EAPI int e_fm_file_is_regular (E_Fm_File *file);
Index: e_fileman_icon.c
===================================================================
RCS file: /root/e17/apps/e/src/bin/e_fileman_icon.c,v
retrieving revision 1.1.1.17
diff -r1.1.1.17 e_fileman_icon.c
499,518c499,512
< sd->image_object = edje_object_add(sd->evas);
< if (sd->file->type == E_FM_FILE_TYPE_DIRECTORY)
< e_theme_edje_object_set(sd->image_object, "base/theme/fileman",
< "icons/fileman/folder");
< else
< {
< char *ext;
<
< ext = strrchr(sd->file->name, '.');
< if (ext)
< {
< char part[PATH_MAX];
< char *ext2;
<
< ext = strdup(ext);
< ext2 = ext;
< for (; *ext2; ext2++) *ext2 = tolower(*ext2);
<
< snprintf(part, PATH_MAX, "icons/fileman/%s", (ext + 1));
< if (!e_theme_edje_object_set(sd->image_object, "base/theme/fileman", part))
---
> char part[PATH_MAX];
>
> sd->image_object = edje_object_add(sd->evas);
>
> // since a mime is set with every creation of an E_Fm_File its existence isn�t checked here
> if(sd->file->type == E_FM_FILE_TYPE_DIRECTORY)
> e_theme_edje_object_set(sd->image_object, "base/theme/fileman", "icons/fileman/folder");
>
> else if(e_fm_file_has_mime(sd->file,"unknown"))
> e_theme_edje_object_set(sd->image_object, "base/theme/fileman", "icons/fileman/file");
> else
> {
> snprintf(part, PATH_MAX, "icons/fileman/%s", (sd->file->mime + 1));
> if (!e_theme_edje_object_set(sd->image_object, "base/theme/fileman", part))
520,524c514
< free(ext);
< }
< else
< e_theme_edje_object_set(sd->image_object, "base/theme/fileman", "icons/fileman/file");
< }
---
> }
531a522,523
>
>
536d527
< char *ext;
540,544c531
< ext = strrchr(sd->file->name, '.');
< if ((ext) && (strcasecmp(ext, ".eap")))
< ext = NULL;
<
< if ((ext) || (ecore_file_exists(sd->thumb_path)))
---
> if (e_fm_file_has_mime(sd->file,".eap") || (ecore_file_exists(sd->thumb_path)))
Index: e_fileman_smart.c
===================================================================
RCS file: /root/e17/apps/e/src/bin/e_fileman_smart.c,v
retrieving revision 1.1.1.44
diff -r1.1.1.44 e_fileman_smart.c
1214c1214
< snprintf(text, 512, "%s", "An Image");
---
> snprintf(text, 512, "%s", icon->file->mime);
2123c2123
< if (!strcmp(icon->file->name, ".")) return;
---
> if (!strcmp(icon->file->name, ".")) return; /* this case cant happen!? */
2218c2218
< if (strcmp(icon->file->mime, assoc->mime) == 0)
---
> if (e_fm_file_has_mime(icon->file, assoc->mime))