Like I vaguely promised earlier, here's a patch for ecore_config util to
use getopt_long, letting "the user" use --string rather than -s etc.
Cheers,
--
Morten
:wq
Index: ecore_config.c
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/bin/ecore_config.c,v
retrieving revision 1.5
diff -u -r1.5 ecore_config.c
--- ecore_config.c 8 Dec 2005 12:35:11 -0000 1.5
+++ ecore_config.c 10 Dec 2005 15:21:22 -0000
@@ -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);