OSDN Git Service

date: handle long options
authorBernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Fri, 23 Oct 2009 13:44:51 +0000 (15:44 +0200)
committerBernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Fri, 23 Oct 2009 14:07:37 +0000 (16:07 +0200)
RFC2822 obsoletes RFC822; Silently accept --rfc-822 and return rfc2822
output for compatibility.

Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
coreutils/date.c
include/usage.h

index 09ced0e..a230fe2 100644 (file)
@@ -69,6 +69,18 @@ static void maybe_set_utc(int opt)
                putenv((char*)"TZ=UTC0");
 }
 
+#if ENABLE_LONG_OPTS
+static const char date_longopts[] ALIGN1 =
+               "rfc-822\0" No_argument "R"
+               "rfc-2822\0" No_argument "R"
+               "set\0" Required_argument "s"
+               "utc\0" No_argument "u"
+               /*"universal\0" No_argument "u"*/
+               "date\0" Required_argument "d"
+               "reference\0" Required_argument "r"
+               ;
+#endif
+
 int date_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
 int date_main(int argc UNUSED_PARAM, char **argv)
 {
@@ -84,6 +96,7 @@ int date_main(int argc UNUSED_PARAM, char **argv)
 
        opt_complementary = "d--s:s--d"
                IF_FEATURE_DATE_ISOFMT(":R--I:I--R");
+       IF_LONG_OPTS(applet_long_options = date_longopts;)
        opt = getopt32(argv, "Rs:ud:r:"
                        IF_FEATURE_DATE_ISOFMT("I::D:"),
                        &date_str, &date_str, &filename
index 8316c43..ca88106 100644 (file)
 #define date_full_usage "\n\n" \
        "Display time (using +FMT), or set time\n" \
      "\nOptions:" \
+       IF_NOT_LONG_OPTS( \
      "\n       [-s] TIME       Set time to TIME" \
      "\n       -u              Work in UTC (don't convert to local time)" \
-     "\n       -R              Output RFC-822 compliant date string" \
+     "\n       -R              Output RFC-2822 compliant date string" \
+       ) IF_LONG_OPTS( \
+     "\n       [-s,--set] TIME Set time to TIME" \
+     "\n       -u,--utc                Work in UTC (don't convert to local time)" \
+     "\n       -R,--rfc-2822           Output RFC-2822 compliant date string" \
+       ) \
        IF_FEATURE_DATE_ISOFMT( \
      "\n       -I[SPEC]        Output ISO-8601 compliant date string" \
      "\n                       SPEC='date' (default) for date only," \
      "\n                       'hours', 'minutes', or 'seconds' for date and" \
      "\n                       time to the indicated precision" \
-       ) \
+       ) IF_NOT_LONG_OPTS( \
      "\n       -r FILE         Display last modification time of FILE" \
      "\n       -d TIME         Display TIME, not 'now'" \
+       ) IF_LONG_OPTS( \
+     "\n       -r,--reference FILE             Display last modification time of FILE" \
+     "\n       -d,--date TIME          Display TIME, not 'now'" \
+       ) \
        IF_FEATURE_DATE_ISOFMT( \
      "\n       -D FMT          Use FMT for -d TIME conversion" \
        ) \