From 281058289a8c7ccf038eccec9a414eb5ef79c2f9 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sat, 31 Aug 2002 20:15:31 +0000 Subject: (main): Also test strftime with uselocale. --- time/tst-ftime_l.c | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) (limited to 'time') diff --git a/time/tst-ftime_l.c b/time/tst-ftime_l.c index 6ebc973..fc3d78d 100644 --- a/time/tst-ftime_l.c +++ b/time/tst-ftime_l.c @@ -10,10 +10,12 @@ int main (void) { locale_t l; + locale_t old; struct tm tm; char buf[1000]; wchar_t wbuf[1000]; int result = 0; + size_t n; l = newlocale (LC_ALL_MASK, "de_DE.ISO-8859-1", NULL); if (l == NULL) @@ -81,5 +83,44 @@ main (void) setlocale (LC_ALL, "C"); } + old = uselocale (l); + + n = strftime (buf, sizeof (buf), "%e %^B %Y", &tm); + + /* Switch back. */ + (void) uselocale (old); + + if (n == 0) + { + puts ("strftime after first uselocale failed"); + result = 1; + } + else if (strcmp (buf, " 1 M\xc4RZ 2002") != 0) + { + printf ("strftime in non-C locale: expected \"%s\", got \"%s\"\n", + " 1 M\xc4RZ 2002", buf); + result = 1; + } + else + { + setlocale (LC_ALL, "de_DE.ISO-8859-1"); + printf ("got \"%s\"\n", buf); + setlocale (LC_ALL, "C"); + } + + if (strftime (buf, sizeof (buf), "%e %^B %Y", &tm) == 0) + { + puts ("strftime after second uselocale failed"); + result = 1; + } + else if (strcmp (buf, " 1 MARCH 2002") != 0) + { + printf ("initial strftime: expected \"%s\", got \"%s\"\n", + " 1 MARCH 2002", buf); + result = 1; + } + else + printf ("got \"%s\"\n", buf); + return result; } -- cgit v1.1