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