- No options should set the current system time.
authorBernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Sat, 3 Jun 2006 10:24:20 +0000 (10:24 -0000)
committerBernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Sat, 3 Jun 2006 10:24:20 +0000 (10:24 -0000)
Shaun Jackman writes:
A bug introduced in svn 11946 broke rdate. It no longer sets the
current system time when no options are specified. The options have
the opposite sense from what one might think, and, oddly enough, -ps
is intentionally a no-op.

Quoth rdate(8) from the BSD System Manager's Manual:

    -p      Do not set, just print the remote time
    -s      Do not print the time.

util-linux/rdate.c

index 27bd1b48168f5148a6b700ca0a32ffb8bb5156b7..c740a691e5b6f4818395491177bd11b7a027d860 100644 (file)
@@ -68,7 +68,7 @@ int rdate_main(int argc, char **argv)
 
        remote_time = askremotedate(argv[optind]);
 
-       if (flags & 1) {
+       if ((flags & 2) == 0) {
                time_t current_time;
 
                time(&current_time);
@@ -77,10 +77,10 @@ int rdate_main(int argc, char **argv)
                else
                        if (stime(&remote_time) < 0)
                                bb_perror_msg_and_die("Could not set time of day");
+       }
 
-       /* No need to check for the -p flag as it's the only option left */
-
-       } else printf("%s", ctime(&remote_time));
+       if ((flags & 1) == 0)
+               printf("%s", ctime(&remote_time));
 
        return EXIT_SUCCESS;
 }