FreeBSD Bugzilla – Attachment 98402 Details for
Bug 137307
[libc] [patch] Enhance strptime(3) to support %U and %W
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
t_strptime.diff.txt
t_strptime.diff.txt (text/plain), 2.92 KB, created by
Paul Green
on 2009-08-25 17:33:21 UTC
(
hide
)
Description:
t_strptime.diff.txt
Filename:
MIME Type:
Creator:
Paul Green
Created:
2009-08-25 17:33:21 UTC
Size:
2.92 KB
patch
obsolete
>--- t_strptime.bad.c 2009-07-30 16:28:20.000000000 -0400 >+++ t_strptime.c 2009-08-25 12:19:21.000000000 -0400 >@@ -11,6 +11,10 @@ > #include <sys/types.h> > #include "time.h" > >+#define ALLOW_UW_TESTS 0 >+ >+char *strptime (const char *, const char *, struct tm *); >+ > static int failures = 0; > > static void explain (char *title, char *fmt, char *src) >@@ -164,6 +168,8 @@ > printf ("\n"); > } > >+#if ALLOW_UW_TESTS >+ > /* Special test for the %U format string. Try to convert > "2009 21", which is 5/31/2009 */ > >@@ -179,14 +185,14 @@ > r.tm_mday == 31 && > r.tm_year == 109 && > r.tm_wday == 0 && >- r.tm_yday == 151) >- printf ("Result: Sunday May 31 2009, yday 151 [week 21] (ok)\n"); >+ r.tm_yday == 150) >+ printf ("Result: Sunday May 31 2009, yday 150 [week 21] (ok)\n"); > else > { > failures++; > printf ("Result: failed. %02d/%02d/%04d wday=%d yday=%d\n", > r.tm_mon+1, r.tm_mday, r.tm_year+1900, r.tm_wday, r.tm_yday); >- printf ("Expected 05/31/2009 wday=0 yday=151\n"); >+ printf ("Expected 05/31/2009 wday=0 yday=150\n"); > } > printf ("\n"); > } >@@ -206,14 +212,14 @@ > r.tm_mday == 1 && > r.tm_year == 109 && > r.tm_wday == 1 && >- r.tm_yday == 152) >- printf ("Result: Monday June 1 2009, yday 152 [week 21] (ok)\n"); >+ r.tm_yday == 151) >+ printf ("Result: Monday June 1 2009, yday 151 [week 21] (ok)\n"); > else > { > failures++; > printf ("Result: failed. %02d/%02d/%04d wday=%d yday=%d\n", > r.tm_mon+1, r.tm_mday, r.tm_year+1900, r.tm_wday, r.tm_yday); >- printf ("Expected: 06/01/2009 wday=1 yday=152\n"); >+ printf ("Expected: 06/01/2009 wday=1 yday=151\n"); > } > printf ("\n"); > } >@@ -253,7 +259,7 @@ > for (year=1998; year<2005; year++) > { > mday = first_sunday[year-1998]; >- yday = mday; >+ yday = mday - 1; > printf ("The first Sunday of %4d is Jan %d.\n", year, mday); > > for (w=1; w<54; w++) >@@ -266,7 +272,7 @@ > if (w == 53 && mon == 0) > { > yr = year + 1; >- yday = mday; >+ yday = mday - 1; > } > else yr = year; > >@@ -291,7 +297,7 @@ > printf ("\n"); > } > >-/* Special test for the %W format string. */ >+#endif /* ALLOW_UW_TESTS */ > > int main (int argc, char **argv) > { >@@ -332,13 +338,19 @@ > try5 ("Time of day H:M", "%R", "23:59"); > try1 ("Second number", "%S", "59", offsetof (struct tm, tm_sec), 59); > try6 ("Time of day H:M:S", "%T", "23:59:59"); >+#if ALLOW_UW_TESTS > try7 ("Week number Sun=0", "%Y %U", "2009 22"); >+#endif > try1 ("Week day number", "%w", "4", offsetof (struct tm, tm_wday), 4); >+#if ALLOW_UW_TESTS > try8 ("Week number Mon=0", "%Y %W", "2009 22"); >+#endif > try1 ("Year in century", "%y", "9", offsetof (struct tm, tm_year), 109); > try1 ("Year in century", "%Y", "2009", offsetof (struct tm, tm_year), 109); > >+#if ALLOW_UW_TESTS > tryU ("U conversion", "%Y %U", "range"); >+#endif > > if (failures) > printf ("%d tests failed.\n", failures);
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 137307
:
98401
|
98402
|
144894
|
145108
|
145481
|
145482
|
147573
|
147680
|
147740