logger: getopt_ulflags'isation
authorDenis Vlasenko <vda.linux@googlemail.com>
Fri, 22 Sep 2006 08:44:58 +0000 (08:44 -0000)
committerDenis Vlasenko <vda.linux@googlemail.com>
Fri, 22 Sep 2006 08:44:58 +0000 (08:44 -0000)
sysklogd/logger.c

index 762e70ff7370c345799e08be6e1a31b7a23d89b2..a78cf77b9441c02110da55f1f406a766e445a4e1 100644 (file)
@@ -89,30 +89,21 @@ static int pencode(char *s)
 
 int logger_main(int argc, char **argv)
 {
+       unsigned long opt;
+       char *opt_p, *opt_t;
        int pri = LOG_USER | LOG_NOTICE;
        int option = 0;
-       int c, i, opt;
+       int c, i;
        char buf[1024], name[128];
 
        /* Fill out the name string early (may be overwritten later) */
        bb_getpwuid(name, geteuid(), sizeof(name));
 
        /* Parse any options */
-       while ((opt = getopt(argc, argv, "p:st:")) > 0) {
-               switch (opt) {
-                       case 's':
-                               option |= LOG_PERROR;
-                               break;
-                       case 'p':
-                               pri = pencode(optarg);
-                               break;
-                       case 't':
-                               safe_strncpy(name, optarg, sizeof(name));
-                               break;
-                       default:
-                               bb_show_usage();
-               }
-       }
+       opt = bb_getopt_ulflags(argc, argv, "p:st:", &opt_p, &opt_t);
+       if (opt & 0x1) pri = pencode(opt_p); // -p
+       if (opt & 0x2) option |= LOG_PERROR; // -s
+       if (opt & 0x4) safe_strncpy(name, opt_t, sizeof(name)); // -t
 
        openlog(name, option, 0);
        if (optind == argc) {