Hi!

If you start edje_player or edje_inspector with a path to a file that doesn't 
exist you get a bogus error message saying that the file doesn't contain any 
groups. The attached patch uses access() to check if the program can read the 
file, giving a sensible error message if not.

I have checked the other utilities there, too, and they work, with the 
exception of edje_external_inspector. I'm not sure how this one works at all, 
but it seems not to take a file but a list of modules, maybe someone with 
greater insight can take a look at that.

Going through things installed under bin, I'll take a look if those behave 
properly and create patches for those, too, if this one is okay.

Cheers!

Uli
Index: edje_player.c
===================================================================
--- edje_player.c	(revision 60321)
+++ edje_player.c	(working copy)
@@ -674,6 +674,15 @@
    ecore_app_args_set(argc, (const char **)argv);
    edje_scale_set(opts.scale);
 
+   // check if the given edj file is there
+   if (access(argv[args], R_OK) == -1)
+     {
+       int e = errno;
+       fprintf(stderr, "ERROR: file '%s' not accessible, error %d (%s).\n",
+               argv[args], e, strerror(e));
+       goto end;
+     }
+
    opts.file = argv[args];
    if (opts.list_groups)
      {
Index: edje_inspector.c
===================================================================
--- edje_inspector.c	(revision 60321)
+++ edje_inspector.c	(working copy)
@@ -11,6 +11,7 @@
 #include <Ecore_Getopt.h>
 #include <locale.h>
 #include <fnmatch.h>
+#include <unistd.h>
 
 static int _log_dom;
 #define DBG(...) EINA_LOG_DOM_DBG(_log_dom, __VA_ARGS__)
@@ -1577,6 +1578,15 @@
 
    file = argv[arg_index];
 
+   // check if the file is accessible
+   if (access(file, R_OK) == -1)
+     {
+        int e = errno;
+        ERR("File '%s' not accessible, error %d (%s).\n",
+            file, e, strerror(e));
+        ret = 1;
+        goto error_getopt;
+     }
 
    DBG("mode=%s, detail=%d(%s), group=%s, part=%s, program=%s, api-only=" FMT_UCHAR
        ", api-fix=" FMT_UCHAR ", machine=" FMT_UCHAR ", file=%s",
------------------------------------------------------------------------------
EditLive Enterprise is the world's most technically advanced content
authoring tool. Experience the power of Track Changes, Inline Image
Editing and ensure content is compliant with Accessibility Checking.
http://p.sf.net/sfu/ephox-dev2dev
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to