(memrchr): Declare if necessary.
[gnulib.git] / lib / strftime.c
index 95e55cb..c3b2148 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991,92,93,94,95,96,97,98,99 Free Software Foundation, Inc.
+/* Copyright (C) 1991-1999, 2000 Free Software Foundation, Inc.
 
    NOTE: The canonical source of this file is maintained with the GNU C Library.
    Bugs can be reported to bug-glibc@prep.ai.mit.edu.
@@ -98,8 +98,8 @@ extern char *tzname[];
 # define L_(Str) L##Str
 # define NLW(Sym) _NL_W##Sym
 
-# define MEMCPY(d, s, n) wmemcpy (d, s, n)
-# define STRLEN(s) wcslen (s)
+# define MEMCPY(d, s, n) __wmemcpy (d, s, n)
+# define STRLEN(s) __wcslen (s)
 
 #else
 # define CHAR_T char
@@ -752,6 +752,11 @@ my_strftime (s, maxsize, format, tp ut_argument)
 
        case L_('b'):
        case L_('h'):           /* POSIX.2 extension.  */
+         if (change_case)
+           {
+             to_uppcase = 1;
+             to_lowcase = 0;
+           }
          if (modifier != 0)
            goto bad_format;
 #if defined _NL_CURRENT || !HAVE_STRFTIME
@@ -817,6 +822,14 @@ my_strftime (s, maxsize, format, tp ut_argument)
            char *u = ufmt;
            char ubuf[1024]; /* enough for any single format in practice */
            size_t len;
+           /* Make sure we're calling the actual underlying strftime.
+              In some cases, config.h contains something like
+              "#define strftime rpl_strftime".  */
+# ifdef strftime
+#  undef strftime
+           size_t strftime ();
+# endif
+
            *u++ = '%';
            if (modifier != 0)
              *u++ = modifier;
@@ -840,7 +853,7 @@ my_strftime (s, maxsize, format, tp ut_argument)
              if (era)
                {
 # ifdef COMPILE_WIDE
-                 size_t len = wcslen (era->era_wname);
+                 size_t len = __wcslen (era->era_wname);
                  cpy (len, era->era_wname);
 # else
                  size_t len = strlen (era->era_name);