Merge from Mark's code. Modified memcat to use enum for options.
author <brian@gir.local> <>
Wed, 19 Sep 2007 09:55:18 +0000 (11:55 +0200)
committer <brian@gir.local> <>
Wed, 19 Sep 2007 09:55:18 +0000 (11:55 +0200)
1  2 
src/client_options.h
src/memcat.c

index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..354b2736619c9b932541275dcc533dc8ca9dbb89
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,8 @@@
++typedef enum {
++  OPT_SERVERS= 1,
++  OPT_VERSION,
++  OPT_HELP,
++  OPT_VERBOSE,
++  OPT_DEBUG,
++  OPT_FLAG,
++} memcached_options;
diff --cc src/memcat.c
index 0fc38d6ceb20d03ed9fd667a3dd226e029e83c65,134017fa4fa54d8c76973d78b229ed76f3314592..77c0f8586829348619b1c4081391254665ab3d32
@@@ -1,5 -1,11 +1,12 @@@
  #include <stdio.h>\r
+ #include <unistd.h>\r
+ #include <getopt.h>\r
  #include <memcached.h>\r
++#include "client_options.h"\r
\r
+ static int opt_verbose;\r
+ static int opt_displayflag;\r
+ static char *opt_servers;\r
  \r
  int main(int argc, char *argv[])\r
  {\r
    size_t string_length;\r
    uint16_t  flags;\r
    memcached_return rc;\r
 -      {"version", no_argument, NULL, 257},\r
 -      {"help", no_argument, NULL, 258},\r
 -      {"verbose", no_argument, &opt_verbose, 1},\r
 -      {"debug", no_argument, &opt_verbose, 2},\r
 -      {"servers", required_argument, NULL, 259},\r
 -      {"flag", no_argument, &opt_displayflag, 1},\r
++  unsigned int x;\r
\r
+   static struct option long_options[] =\r
+     {\r
++      {"version", no_argument, NULL, OPT_VERSION},\r
++      {"help", no_argument, NULL, OPT_HELP},\r
++      {"verbose", no_argument, &opt_verbose, OPT_VERBOSE},\r
++      {"debug", no_argument, &opt_verbose, OPT_DEBUG},\r
++      {"servers", required_argument, NULL, OPT_SERVERS},\r
++      {"flag", no_argument, &opt_displayflag, OPT_FLAG},\r
+       {0, 0, 0, 0},\r
+     };\r
+   int option_index = 0;\r
+   int option_rv;\r
  \r
-   if (argc == 1)\r
-     return 0;\r
 -  while (1) {\r
++  while (1) \r
++  {\r
+     option_rv = getopt_long(argc, argv, "", long_options, &option_index);\r
+     if (option_rv == -1) break;\r
+     switch (option_rv) {\r
+     case 0:\r
+       break;\r
 -    case 257: /* --version */\r
++    case OPT_VERSION: /* --version */\r
+       printf("memcache tools, memcat, v1.0\n");\r
+       exit(0);\r
+       break;\r
 -    case 258: /* --help */\r
++    case OPT_HELP: /* --help */\r
+       printf("useful help messages go here\n");\r
+       exit(0);\r
+       break;\r
 -    case 259: /* --servers */\r
++    case OPT_SERVERS: /* --servers */\r
+       opt_servers = strdup(optarg);\r
+       break;\r
+     case '?':\r
+       /* getopt_long already printed an error message. */\r
+       exit(1);\r
+     default:\r
+       abort();\r
+     }\r
+   }\r
  \r
+   /* todo, turn opt_servers into something to pass to memcached_init */\r
    memc= memcached_init(NULL);\r
  \r
 -  while (optind < argc) {\r
 -    string= memcached_get(memc, argv[optind], strlen(argv[optind]),\r
 +  for (x= 1; x < argc; x++)\r
 +  {\r
 +    string= memcached_get(memc, argv[x], strlen(argv[x]),\r
                            &string_length, &flags, &rc);\r
-     if (string)\r
 -    if (string) {\r
++    if (string) \r
 +    {\r
        printf("%.*s\n", string_length, string);\r
        free(string);\r
      }\r