(NLS_STRCMP): Define.

(getmonth): Remove ifdef and use NLS_STRCMP instead.
Use HAVE_ALLOCA, not _HAVE_ALLOCA.
This commit is contained in:
Jim Meyering
1997-10-14 22:25:02 +00:00
parent cb3a4594b9
commit 2bb1be5ca0
+5 -7
View File
@@ -87,8 +87,10 @@ char *xstrdup ();
#ifdef ENABLE_NLS
# define NLS_MEMCMP(S1, S2, Len) strncoll (S1, S2, Len)
# define NLS_STRCMP(S1, S2) strcoll (S1, S2)
#else
# define NLS_MEMCMP(S1, S2, Len) memcmp (S1, S2, Len)
# define NLS_STRCMP(S1, S2) strcmp (S1, S2)
#endif
#ifdef ENABLE_NLS
@@ -1487,7 +1489,7 @@ getmonth (const char *s, int len)
if (len == 0)
return 0;
#ifdef _HAVE_ALLOCA
#ifdef HAVE_ALLOCA
month = (char *) alloca (len + 1);
#else
month = (char *) malloc (len + 1);
@@ -1501,18 +1503,14 @@ getmonth (const char *s, int len)
while (hi - lo > 1)
{
#ifdef ENABLE_NLS
if (strcoll (month, monthtab[(lo + hi) / 2].name) < 0)
#else
if (strcmp (month, monthtab[(lo + hi) / 2].name) < 0)
#endif
if (NLS_STRCMP (month, monthtab[(lo + hi) / 2].name) < 0)
hi = (lo + hi) / 2;
else
lo = (lo + hi) / 2;
}
result = !strcmp (month, monthtab[lo].name) ? monthtab[lo].val : 0;
#ifndef _HAVE_ALLOCA
#ifndef HAVE_ALLOCA
free (month);
#endif