From: Ulrich Eckhardt <doomster@knuut.de>

Subject: [E-devel] Provide sensible errors for edje utilities

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.



SVN revision: 60338
This commit is contained in:
Ulrich Eckhardt 2011-06-15 09:38:08 +00:00 committed by Carsten Haitzler
parent 8729820393
commit daabb017dc
2 changed files with 19 additions and 0 deletions

View File

@ -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 @@ main(int argc, char **argv)
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",

View File

@ -674,6 +674,15 @@ int main(int argc, char **argv)
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)
{