summary refs log tree commit diff
path: root/time
diff options
context:
space:
mode:
Diffstat (limited to 'time')
-rw-r--r--time/strftime.c1
-rw-r--r--time/strptime.c9
2 files changed, 9 insertions, 1 deletions
diff --git a/time/strftime.c b/time/strftime.c
index be7891d14a..bb19babc34 100644
--- a/time/strftime.c
+++ b/time/strftime.c
@@ -1041,7 +1041,6 @@ my_strftime (s, maxsize, format, tp ut_argument)
 	  add (1, *p = '\t');
 	  break;
 
-	case 'f':
 	case 'u':		/* POSIX.2 extension.  */
 	  DO_NUMBER (1, (tp->tm_wday - 1 + 7) % 7 + 1);
 
diff --git a/time/strptime.c b/time/strptime.c
index 315af83980..f4b954dfe9 100644
--- a/time/strptime.c
+++ b/time/strptime.c
@@ -86,6 +86,8 @@ localtime_r (t, tp)
 #define get_number(from, to) \
   do {									      \
     val = 0;								      \
+    while (*rp == ' ')							      \
+      ++rp;								      \
     if (*rp < '0' || *rp > '9')						      \
       return NULL;							      \
     do {								      \
@@ -405,6 +407,12 @@ strptime_internal (buf, format, tm, decided)
 	  /* Match day of month.  */
 	  get_number (1, 31);
 	  tm->tm_mday = val;
+	  want_xday = 1;
+	  break;
+	case 'F':
+	  if (!recursive ("%Y-%m-%d"))
+	    return NULL;
+	  want_xday = 1;
 	  break;
 	case 'x':
 #ifdef _NL_CURRENT
@@ -433,6 +441,7 @@ strptime_internal (buf, format, tm, decided)
 	    return NULL;
 	  want_xday = 1;
 	  break;
+	case 'k':
 	case 'H':
 	  /* Match hour in 24-hour clock.  */
 	  get_number (0, 23);