lineedit: do not hang on error, but return error indicator.
[oweals/busybox.git] / coreutils / cal.c
index 207fa967b743ac961cf22c164c478a2bdd449326..ef5dbeadb50fe4a4246bcbf5c021165e590edff8 100644 (file)
@@ -4,7 +4,7 @@
  *
  * See original copyright at the end of this file
  *
- * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
+ * Licensed under GPLv2 or later, see file LICENSE in this source tree.
  */
 
 /* BB_AUDIT SUSv3 compliant with -j and -y extensions (from util-linux). */
@@ -87,8 +87,8 @@ int cal_main(int argc UNUSED_PARAM, char **argv)
        /* "Su Mo Tu We Th Fr Sa" */
        /* -j heading: */
        /* " Su  Mo  Tu  We  Th  Fr  Sa" */
-       char day_headings[ENABLE_FEATURE_ASSUME_UNICODE ? 28 * 6 : 28];
-       IF_FEATURE_ASSUME_UNICODE(char *hp = day_headings;)
+       char day_headings[ENABLE_UNICODE_SUPPORT ? 28 * 6 : 28];
+       IF_UNICODE_SUPPORT(char *hp = day_headings;)
        char buf[40];
 
        init_unicode();
@@ -113,7 +113,10 @@ int cal_main(int argc UNUSED_PARAM, char **argv)
                        if (argv[2]) {
                                bb_show_usage();
                        }
-                       month = xatou_range(*argv++, 1, 12);
+                       if (!(flags & 2)) { /* no -y */
+                               month = xatou_range(*argv, 1, 12);
+                       }
+                       argv++;
                }
                year = xatou_range(*argv, 1, 9999);
        }
@@ -131,7 +134,7 @@ int cal_main(int argc UNUSED_PARAM, char **argv)
                        zero_tm.tm_wday = i;
                        /* abbreviated weekday name according to locale */
                        strftime(buf, sizeof(buf), "%a", &zero_tm);
-#if ENABLE_FEATURE_ASSUME_UNICODE
+#if ENABLE_UNICODE_SUPPORT
                        if (julian)
                                *hp++ = ' ';
                        {
@@ -146,7 +149,7 @@ int cal_main(int argc UNUSED_PARAM, char **argv)
 #endif
                }
        } while (++i < 12);
-       IF_FEATURE_ASSUME_UNICODE(hp[-1] = '\0';)
+       IF_UNICODE_SUPPORT(hp[-1] = '\0';)
 
        if (month) {
                unsigned row, len, days[MAXDAYS];