Enlightenment CVS committal

Author  : handyande
Project : e17
Module  : libs/ecore

Dir     : e17/libs/ecore/src/bin


Modified Files:
        ecore_config.c 


Log Message:
getopt long patch from Morten Nilsen - thanks
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/bin/ecore_config.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -3 -r1.5 -r1.6
--- ecore_config.c      8 Dec 2005 12:35:11 -0000       1.5
+++ ecore_config.c      11 Dec 2005 03:32:18 -0000      1.6
@@ -7,6 +7,7 @@
 
 #ifdef BUILD_ECORE_CONFIG
 #include <unistd.h>
+#include <getopt.h>
 #include <Eet.h>
 #include "Ecore_Config.h"
 #include "Ecore_Data.h"
@@ -124,20 +125,22 @@
 usage_and_exit(const char *prog, int ret, const char *msg)
 {
        if (msg) fprintf(stderr, msg);
-       fprintf(stderr, "Usage: %s -c <file> <command> [-k key]\n", prog);
+       fprintf(stderr, "Usage: %s <options> <command>\n", prog);
        fprintf(stderr, "Modify ecore_config files\n\n");
-       fprintf(stderr, "Accepted commands:\n");
-       fprintf(stderr, "  -a          get all keys\n");
-       fprintf(stderr, "  -g          get key\n");
-       fprintf(stderr, "  -d          delete key\n");
-       fprintf(stderr, "  -b <value>  set boolean\n");
-       fprintf(stderr, "  -f <value>  set float\n");
-       fprintf(stderr, "  -i <value>  set integer\n");
-       fprintf(stderr, "  -n          set nil\n");
-       fprintf(stderr, "  -r <value>  set RGBA\n");
-       fprintf(stderr, "  -s <value>  set string\n");
-       fprintf(stderr, "  -t <value>  set theme\n\n");
-       fprintf(stderr, "  -k <key> must be specified for all commands except 
-a\n\n");
+       fprintf(stderr, "Options:\n");
+       fprintf(stderr, "  -c, --file=FILE config file\n");
+       fprintf(stderr, "  -k, --key=KEY   must be given for all commands 
except -a\n\n");
+       fprintf(stderr, "Commands:\n");
+       fprintf(stderr, "  -a, --list         get all keys\n");
+       fprintf(stderr, "  -g, --get          get key\n");
+       fprintf(stderr, "  -d, --del          delete key\n");
+       fprintf(stderr, "  -b, --bool=VALUE   set boolean\n");
+       fprintf(stderr, "  -f, --float=VALUE  set float\n");
+       fprintf(stderr, "  -i, --int=VALUE    set integer\n");
+       fprintf(stderr, "  -n, --nil          set nil\n");
+       fprintf(stderr, "  -r, --rgb=VALUE    set RGBA\n");
+       fprintf(stderr, "  -s, --string=VALUE set string\n");
+       fprintf(stderr, "  -t, --theme=VALUE  set theme\n\n");
        exit(ret);
 }
 
@@ -159,7 +162,27 @@
        if(argc < 4)
                usage_and_exit(prog, 2, NULL);
 
-       while((ret = getopt(argc, argv, "angdb:f:i:r:s:t:c:k:")) != -1) {
+       while(1) {
+               static struct option long_options[] = {
+                       {"file",   1, 0, 'c'},
+                       {"list",   0, 0, 'a'},
+                       {"get",    0, 0, 'g'},
+                       {"del",    0, 0, 'd'},
+                       {"bool",   1, 0, 'b'},
+                       {"float",  1, 0, 'f'},
+                       {"int",    1, 0, 'i'},
+                       {"nil",    0, 0, 'n'},
+                       {"rgb",    1, 0, 'r'},
+                       {"string", 1, 0, 's'},
+                       {"theme",  1, 0, 't'},
+                       {"key",    1, 0, 'k'},
+                       {0, 0, 0, 0}
+               };
+
+               ret = getopt_long(argc, argv, "c:agdb:f:i:nr:s:t:k:", 
long_options, NULL);
+               if(ret == -1)
+                       break;
+
                switch(ret) {
                        case 'k':
                                key = strdup(optarg);




-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to