the beginnings of a proper man page for busybox.
[oweals/busybox.git] / logger.c
index dfbc557ecfee7c8e2338fc5e25e5b7a29990fba1..7aada5dbc293d2f2f58865d937ba3a0413fc5f81 100644 (file)
--- a/logger.c
+++ b/logger.c
@@ -120,6 +120,7 @@ extern int logger_main(int argc, char **argv)
     int fd, pri = LOG_USER|LOG_NOTICE;
     int fromStdinFlag=FALSE;
     int toStdErrFlag=FALSE;
+    int stopLookingAtMeLikeThat=FALSE;
     char *message, buf[1024], buf1[1024];
     time_t  now;
     size_t addrLength;
@@ -129,7 +130,8 @@ extern int logger_main(int argc, char **argv)
        if (*((*argv)+1) == '\0') {
            fromStdinFlag=TRUE;
        }
-       while (*(++(*argv))) {
+       stopLookingAtMeLikeThat=FALSE;
+       while (*(++(*argv)) && stopLookingAtMeLikeThat==FALSE) {
            switch (**argv) {
            case 's':
                toStdErrFlag = TRUE;
@@ -139,10 +141,7 @@ extern int logger_main(int argc, char **argv)
                    usage(logger_usage);
                }
                pri = pencode(*(++argv));
-               if (--argc == 0) {
-                   usage(logger_usage);
-               }
-               ++argv;
+               stopLookingAtMeLikeThat=TRUE;
                break;
            default:
                usage(logger_usage);
@@ -152,8 +151,7 @@ extern int logger_main(int argc, char **argv)
 
     if (fromStdinFlag==TRUE) {
        /* read from stdin */
-       int i=0;
-       char c;
+       int c, i=0;
        while ((c = getc(stdin)) != EOF && i<sizeof(buf1)) {
            buf1[i++]=c;
        }
@@ -188,7 +186,7 @@ extern int logger_main(int argc, char **argv)
     if (toStdErrFlag==TRUE)
        fprintf(stderr, "%s\n", buf);
 
-    write( fd, buf, sizeof(buf));
+    write( fd, buf, strlen(buf)+1);
 
     close(fd);
     exit( TRUE);