aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog31
-rw-r--r--argp/argp-help.c6
-rw-r--r--inet/ether_aton_r.c6
-rw-r--r--inet/ether_line.c6
-rw-r--r--inet/rcmd.c2
-rw-r--r--intl/l10nflist.c4
-rw-r--r--locale/programs/ld-collate.c12
-rw-r--r--locale/programs/linereader.c6
-rw-r--r--locale/programs/localedef.c2
-rw-r--r--math/bits/mathcalls.h2
-rw-r--r--nis/nss_nis/nis-alias.c4
-rw-r--r--nis/nss_nis/nis-network.c4
-rw-r--r--nss/nss_files/files-XXX.c6
-rw-r--r--nss/nss_files/files-alias.c14
-rw-r--r--posix/regex.c10
-rw-r--r--resolv/inet_net_pton.c3
-rw-r--r--stdio-common/printf_fp.c4
-rw-r--r--stdio-common/vfscanf.c34
-rw-r--r--sysdeps/generic/strcasestr.c26
19 files changed, 114 insertions, 68 deletions
diff --git a/ChangeLog b/ChangeLog
index 976b1bb..064eb5c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,34 @@
+1999-01-23 Ulrich Drepper <drepper@cygnus.com>
+
+ * nss/nss_files/files-XXX.c (internal_getent): Make sure the buffer has
+ at least two bytes (not one). Correct buflen parameter type.
+ * nss/nss_files/files-alias.c (get_next_alias): Make sure buffer
+ has at least two bytes. Use fgets_unlocked instead of fgets.
+
+ * ctype/ctype.h: Don't user __tolower directly for tolower
+ implementation. Use inline function which tests for the range
+ first. Make _tolower equivalent to old tolower macros.
+ Likewise for toupper.
+ * ctype/ctype.c: Change tolower/toupper definition accordingly.
+
+ * argp/argp-help.c: Use _tolower instead of tolower if possible.
+ * inet/ether_aton_r.c: Likewise.
+ * inet/ether_line.c: Likewise.
+ * inet/rcmd.c: Likewise.
+ * intl/l10nflist.c: Likewise.
+ * locale/programs/ld-collate.c: Likewise.
+ * locale/programs/linereader.c: Likewise.
+ * locale/programs/localedef.c: Likewise.
+ * nis/nss_nis/nis-alias.c: Likewise.
+ * nis/nss_nis/nis-network.c: Likewise.
+ * posix/regex.c: Likewise.
+ * resolv/inet_net_pton.c: Likewise.
+ * stdio-common/printf_fp.c: Likewise.
+ * stdio-common/vfscanf.c: Likewise.
+ * sysdeps/generic/strcasestr.c: Likewise.
+
+ * math/bits/mathcalls.h: Fix typo.
+
1999-01-23 Roland McGrath <roland@baalperazim.frob.com>
* sysdeps/gnu/errlist.awk: Add comment.
diff --git a/argp/argp-help.c b/argp/argp-help.c
index a3a1a12..d78060d 100644
--- a/argp/argp-help.c
+++ b/argp/argp-help.c
@@ -1,5 +1,5 @@
/* Hierarchial argument parsing help output
- Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+ Copyright (C) 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Miles Bader <miles@gnu.ai.mit.edu>.
@@ -759,7 +759,11 @@ hol_entry_cmp (const struct hol_entry *entry1,
{
char first1 = short1 ? short1 : long1 ? *long1 : 0;
char first2 = short2 ? short2 : long2 ? *long2 : 0;
+#ifdef _tolower
+ int lower_cmp = _tolower (first1) - _tolower (first2);
+#else
int lower_cmp = tolower (first1) - tolower (first2);
+#endif
/* Compare ignoring case, except when the options are both the
same letter, in which case lower-case always comes first. */
return lower_cmp ? lower_cmp : first2 - first1;
diff --git a/inet/ether_aton_r.c b/inet/ether_aton_r.c
index 14ccd25..5ca21e8 100644
--- a/inet/ether_aton_r.c
+++ b/inet/ether_aton_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
@@ -33,12 +33,12 @@ ether_aton_r (const char *asc, struct ether_addr *addr)
unsigned int number;
char ch;
- ch = tolower (*asc++);
+ ch = _tolower (*asc++);
if ((ch < '0' || ch > '9') && (ch < 'a' || ch > 'f'))
return NULL;
number = isdigit (ch) ? (ch - '0') : (ch - 'a' + 10);
- ch = tolower (*asc);
+ ch = _tolower (*asc);
if ((cnt < 5 && ch != ':') || (cnt == 5 && ch != '\0' && !isspace (ch)))
{
++asc;
diff --git a/inet/ether_line.c b/inet/ether_line.c
index 9e9f736..889be0a4 100644
--- a/inet/ether_line.c
+++ b/inet/ether_line.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1999 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -34,12 +34,12 @@ ether_line (const char *line, struct ether_addr *addr, char *hostname)
unsigned int number;
char ch;
- ch = tolower (*line++);
+ ch = _tolower (*line++);
if ((ch < '0' || ch > '9') && (ch < 'a' || ch > 'f'))
return -1;
number = isdigit (ch) ? (ch - '0') : (ch - 'a' + 10);
- ch = tolower (*line);
+ ch = _tolower (*line);
if ((cnt < 5 && ch != ':') || (cnt == 5 && ch != '\0' && !isspace (ch)))
{
++line;
diff --git a/inet/rcmd.c b/inet/rcmd.c
index fe73342..d8524f9 100644
--- a/inet/rcmd.c
+++ b/inet/rcmd.c
@@ -574,7 +574,7 @@ __ivaliduser2(hostf, raddr, luser, ruser, rhost)
}
for (;*p && !isspace(*p); ++p) {
- *p = tolower (*p);
+ *p = _tolower (*p);
}
/* Next we want to find the permitted name for the remote user. */
diff --git a/intl/l10nflist.c b/intl/l10nflist.c
index b205b96..5edba3a 100644
--- a/intl/l10nflist.c
+++ b/intl/l10nflist.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+/* Copyright (C) 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
This file is part of the GNU C Library. Its master source is NOT part of
@@ -384,7 +384,7 @@ _nl_normalize_codeset (codeset, name_len)
for (cnt = 0; cnt < name_len; ++cnt)
if (isalpha (codeset[cnt]))
- *wp++ = tolower (codeset[cnt]);
+ *wp++ = _tolower (codeset[cnt]);
else if (isdigit (codeset[cnt]))
*wp++ = codeset[cnt];
diff --git a/locale/programs/ld-collate.c b/locale/programs/ld-collate.c
index 5d2cb57..772ab1a 100644
--- a/locale/programs/ld-collate.c
+++ b/locale/programs/ld-collate.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+/* Copyright (C) 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
@@ -1764,12 +1764,12 @@ collate_simple_weight (struct linereader *lr, struct localedef_t *locale,
int base;
++runp;
- if (tolower (*runp) == 'x')
+ if (_tolower (*runp) == 'x')
{
++runp;
base = 16;
}
- else if (tolower (*runp) == 'd')
+ else if (_tolower (*runp) == 'd')
{
++runp;
base = 10;
@@ -1777,7 +1777,7 @@ collate_simple_weight (struct linereader *lr, struct localedef_t *locale,
else
base = 8;
- dp = strchr (digits, tolower (*runp));
+ dp = strchr (digits, _tolower (*runp));
if (dp == NULL || (dp - digits) >= base)
{
illegal_char:
@@ -1789,7 +1789,7 @@ illegal character constant in string"));
wch = dp - digits;
++runp;
- dp = strchr (digits, tolower (*runp));
+ dp = strchr (digits, _tolower (*runp));
if (dp == NULL || (dp - digits) >= base)
goto illegal_char;
wch *= base;
@@ -1798,7 +1798,7 @@ illegal character constant in string"));
if (base != 16)
{
- dp = strchr (digits, tolower (*runp));
+ dp = strchr (digits, _tolower (*runp));
if (dp != NULL && (dp - digits < base))
{
wch *= base;
diff --git a/locale/programs/linereader.c b/locale/programs/linereader.c
index 4406e1a..31278d6 100644
--- a/locale/programs/linereader.c
+++ b/locale/programs/linereader.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1996.
@@ -300,7 +300,7 @@ get_toplvl_escape (struct linereader *lr)
if (isdigit (ch))
byte = ch - '0';
else
- byte = tolower (ch) - 'a' + 10;
+ byte = _tolower (ch) - 'a' + 10;
ch = lr_getc (lr);
if ((base == 16 && !isxdigit (ch))
@@ -311,7 +311,7 @@ get_toplvl_escape (struct linereader *lr)
if (isdigit (ch))
byte += ch - '0';
else
- byte += tolower (ch) - 'a' + 10;
+ byte += _tolower (ch) - 'a' + 10;
ch = lr_getc (lr);
if (base != 16 && isdigit (ch))
diff --git a/locale/programs/localedef.c b/locale/programs/localedef.c
index 98443b8..5a7035d 100644
--- a/locale/programs/localedef.c
+++ b/locale/programs/localedef.c
@@ -558,7 +558,7 @@ normalize_codeset (codeset, name_len)
for (cnt = 0; cnt < name_len; ++cnt)
if (isalpha (codeset[cnt]))
- *wp++ = tolower (codeset[cnt]);
+ *wp++ = _tolower (codeset[cnt]);
else if (isdigit (codeset[cnt]))
*wp++ = codeset[cnt];
diff --git a/math/bits/mathcalls.h b/math/bits/mathcalls.h
index 3f1d5b1..025c4c7 100644
--- a/math/bits/mathcalls.h
+++ b/math/bits/mathcalls.h
@@ -275,7 +275,7 @@ __MATHDECL (int,ilogb,, (_Mdouble_ __x));
/* Return X times (2 to the Nth power). */
__MATHCALL (scalbln,, (_Mdouble_ __x, long int __n));
-/* Round X to integral valuein floating-point format using current
+/* Round X to integral value in floating-point format using current
rounding direction, but do not raise inexact exception. */
__MATHCALL (nearbyint,, (_Mdouble_ __x));
diff --git a/nis/nss_nis/nis-alias.c b/nis/nss_nis/nis-alias.c
index d1dc992..64d0bf8 100644
--- a/nis/nss_nis/nis-alias.c
+++ b/nis/nss_nis/nis-alias.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1996.
@@ -245,7 +245,7 @@ _nss_nis_getaliasbyname_r (const char *name, struct aliasent *alias,
/* Convert name to lowercase. */
for (i = 0; i < namlen; ++i)
- name2[i] = tolower (name[i]);
+ name2[i] = _tolower (name[i]);
name2[i] = '\0';
retval = yperr2nss (yp_match (domain, "mail.aliases", name2, namlen,
diff --git a/nis/nss_nis/nis-network.c b/nis/nss_nis/nis-network.c
index 7a1b65e..4e8c94f 100644
--- a/nis/nss_nis/nis-network.c
+++ b/nis/nss_nis/nis-network.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1996.
@@ -195,7 +195,7 @@ _nss_nis_getnetbyname_r (const char *name, struct netent *net, char *buffer,
int i;
for (i = 0; i < namlen; ++i)
- name2[i] = tolower (name[i]);
+ name2[i] = _tolower (name[i]);
name2[i] = '\0';
retval = yperr2nss (yp_match (domain, "networks.byname", name2,
diff --git a/nss/nss_files/files-XXX.c b/nss/nss_files/files-XXX.c
index c1f3c4e..f4f2f2c 100644
--- a/nss/nss_files/files-XXX.c
+++ b/nss/nss_files/files-XXX.c
@@ -1,5 +1,5 @@
/* Common code for file-based databases in nss_files module.
- Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
+ Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -162,14 +162,14 @@ CONCAT(_nss_files_end,ENTNAME) (void)
static enum nss_status
internal_getent (struct STRUCTURE *result,
- char *buffer, int buflen, int *errnop H_ERRNO_PROTO)
+ char *buffer, size_t buflen, int *errnop H_ERRNO_PROTO)
{
char *p;
struct parser_data *data = (void *) buffer;
int linebuflen = buffer + buflen - data->linebuffer;
int parse_result;
- if (buflen < (int) sizeof *data + 1)
+ if (buflen < sizeof *data + 2)
{
*errnop = ERANGE;
H_ERRNO_SET (NETDB_INTERNAL);
diff --git a/nss/nss_files/files-alias.c b/nss/nss_files/files-alias.c
index b18361f..b9bba9c 100644
--- a/nss/nss_files/files-alias.c
+++ b/nss/nss_files/files-alias.c
@@ -1,5 +1,5 @@
/* Mail alias file parser in nss_files module.
- Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
+ Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
@@ -148,10 +148,15 @@ get_next_alias (const char *match, struct aliasent *result,
size_t room_left = buflen - (buflen % __alignof__ (char *));
char *line;
+ /* Check whether the buffer is large enough for even trying to
+ read something. */
+ if (room_left < 2)
+ goto no_more_room;
+
/* Read the first line. It must contain the alias name and
possibly some alias names. */
first_unused[room_left - 1] = '\xff';
- line = fgets (first_unused, room_left, stream);
+ line = fgets_unlocked (first_unused, room_left, stream);
if (line == NULL)
/* Nothing to read. */
break;
@@ -245,7 +250,8 @@ get_next_alias (const char *match, struct aliasent *result,
while (! feof (listfile))
{
first_unused[room_left - 1] = '\xff';
- line = fgets (first_unused, room_left, listfile);
+ line = fgets_unlocked (first_unused, room_left,
+ listfile);
if (line == NULL)
break;
if (first_unused[room_left - 1] != '\xff')
@@ -345,7 +351,7 @@ get_next_alias (const char *match, struct aliasent *result,
/* The just read character is a white space and so
can be ignored. */
first_unused[room_left - 1] = '\xff';
- line = fgets (first_unused, room_left, stream);
+ line = fgets_unlocked (first_unused, room_left, stream);
if (first_unused[room_left - 1] != '\xff')
goto no_more_room;
cp = strpbrk (line, "#\n");
diff --git a/posix/regex.c b/posix/regex.c
index f05abc8..74fcf9c 100644
--- a/posix/regex.c
+++ b/posix/regex.c
@@ -2,7 +2,7 @@
version 0.12.
(Implements POSIX draft P1003.2/D11.2, except for some of the
internationalization features.)
- Copyright (C) 1993, 94, 95, 96, 97, 98 Free Software Foundation, Inc.
+ Copyright (C) 1993, 94, 95, 96, 97, 98, 99 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
@@ -254,6 +254,12 @@ init_syntax_once ()
#define ISUPPER(c) (ISASCII (c) && isupper (c))
#define ISXDIGIT(c) (ISASCII (c) && isxdigit (c))
+#ifdef _tolower
+# define TOLOWER(c) _tolower(c)
+#else
+# define TOLOWER(c) tolower(c)
+#endif
+
#ifndef NULL
# define NULL (void *)0
#endif
@@ -5628,7 +5634,7 @@ regcomp (preg, pattern, cflags)
/* Map uppercase characters to corresponding lowercase ones. */
for (i = 0; i < CHAR_SET_SIZE; i++)
- preg->translate[i] = ISUPPER (i) ? tolower (i) : i;
+ preg->translate[i] = ISUPPER (i) ? TOLOWER (i) : i;
}
else
preg->translate = NULL;
diff --git a/resolv/inet_net_pton.c b/resolv/inet_net_pton.c
index bf6fe02..d3f1350 100644
--- a/resolv/inet_net_pton.c
+++ b/resolv/inet_net_pton.c
@@ -107,8 +107,7 @@ inet_net_pton_ipv4(src, dst, size)
src++; /* skip x or X. */
while ((ch = *src++) != '\0' &&
isascii(ch) && isxdigit(ch)) {
- if (isupper(ch))
- ch = tolower(ch);
+ ch = _tolower(ch);
n = strchr(xdigits, ch) - xdigits;
assert(n >= 0 && n <= 15);
*dst |= n;
diff --git a/stdio-common/printf_fp.c b/stdio-common/printf_fp.c
index 2ec0080..bcd8a2d 100644
--- a/stdio-common/printf_fp.c
+++ b/stdio-common/printf_fp.c
@@ -1,5 +1,5 @@
/* Floating point output for `printf'.
- Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+ Copyright (C) 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
@@ -709,7 +709,7 @@ __printf_fp (FILE *fp,
int dig_max;
int significant;
- if (tolower (info->spec) == 'e')
+ if (_tolower (info->spec) == 'e')
{
type = info->spec;
intdig_max = 1;
diff --git a/stdio-common/vfscanf.c b/stdio-common/vfscanf.c
index 174ecf5..f05fc70 100644
--- a/stdio-common/vfscanf.c
+++ b/stdio-common/vfscanf.c
@@ -844,7 +844,7 @@ __vfscanf (FILE *s, const char *format, va_list argptr)
ADDW (c);
c = inchar ();
- if (width != 0 && tolower (c) == 'x')
+ if (width != 0 && _tolower (c) == 'x')
{
if (base == 0)
base = 16;
@@ -883,9 +883,9 @@ __vfscanf (FILE *s, const char *format, va_list argptr)
we must recognize "(nil)" as well. */
if (wpsize == 0 && read_pointer && (width < 0 || width >= 0)
&& c == '('
- && tolower (inchar ()) == 'n'
- && tolower (inchar ()) == 'i'
- && tolower (inchar ()) == 'l'
+ && _tolower (inchar ()) == 'n'
+ && _tolower (inchar ()) == 'i'
+ && _tolower (inchar ()) == 'l'
&& inchar () == ')')
/* We must produce the value of a NULL pointer. A single
'0' digit is enough. */
@@ -980,46 +980,46 @@ __vfscanf (FILE *s, const char *format, va_list argptr)
negative = 0;
/* Take care for the special arguments "nan" and "inf". */
- if (tolower (c) == 'n')
+ if (_tolower (c) == 'n')
{
/* Maybe "nan". */
ADDW (c);
- if (inchar () == EOF || tolower (c) != 'a')
+ if (inchar () == EOF || _tolower (c) != 'a')
input_error ();
ADDW (c);
- if (inchar () == EOF || tolower (c) != 'n')
+ if (inchar () == EOF || _tolower (c) != 'n')
input_error ();
ADDW (c);
/* It is "nan". */
goto scan_float;
}
- else if (tolower (c) == 'i')
+ else if (_tolower (c) == 'i')
{
/* Maybe "inf" or "infinity". */
ADDW (c);
- if (inchar () == EOF || tolower (c) != 'n')
+ if (inchar () == EOF || _tolower (c) != 'n')
input_error ();
ADDW (c);
- if (inchar () == EOF || tolower (c) != 'f')
+ if (inchar () == EOF || _tolower (c) != 'f')
input_error ();
ADDW (c);
/* It is as least "inf". */
if (inchar () != EOF)
{
- if (tolower (c) == 'i')
+ if (_tolower (c) == 'i')
{
/* No we have to read the rest as well. */
ADDW (c);
- if (inchar () == EOF || tolower (c) != 'n')
+ if (inchar () == EOF || _tolower (c) != 'n')
input_error ();
ADDW (c);
- if (inchar () == EOF || tolower (c) != 'i')
+ if (inchar () == EOF || _tolower (c) != 'i')
input_error ();
ADDW (c);
- if (inchar () == EOF || tolower (c) != 't')
+ if (inchar () == EOF || _tolower (c) != 't')
input_error ();
ADDW (c);
- if (inchar () == EOF || tolower (c) != 'y')
+ if (inchar () == EOF || _tolower (c) != 'y')
input_error ();
ADDW (c);
}
@@ -1036,7 +1036,7 @@ __vfscanf (FILE *s, const char *format, va_list argptr)
{
ADDW (c);
c = inchar ();
- if (tolower (c) == 'x')
+ if (_tolower (c) == 'x')
{
/* It is a number in hexadecimal format. */
ADDW (c);
@@ -1060,7 +1060,7 @@ __vfscanf (FILE *s, const char *format, va_list argptr)
else if (got_e && wp[wpsize - 1] == exp_char
&& (c == '-' || c == '+'))
ADDW (c);
- else if (wpsize > 0 && !got_e && tolower (c) == exp_char)
+ else if (wpsize > 0 && !got_e && _tolower (c) == exp_char)
{
ADDW (exp_char);
got_e = got_dot = 1;
diff --git a/sysdeps/generic/strcasestr.c b/sysdeps/generic/strcasestr.c
index a5786fa..794b50b 100644
--- a/sysdeps/generic/strcasestr.c
+++ b/sysdeps/generic/strcasestr.c
@@ -1,5 +1,5 @@
/* Return the offset of one string within another.
- Copyright (C) 1994, 1996, 1997, 1998 Free Software Foundation, Inc.
+ Copyright (C) 1994, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -52,7 +52,7 @@ __strcasestr (phaystack, pneedle)
haystack = (const unsigned char *) phaystack;
needle = (const unsigned char *) pneedle;
- b = tolower (*needle);
+ b = _tolower (*needle);
if (b != '\0')
{
haystack--; /* possible ANSI violation */
@@ -62,9 +62,9 @@ __strcasestr (phaystack, pneedle)
if (c == '\0')
goto ret0;
}
- while (tolower (c) != b);
+ while (_tolower (c) != b);
- c = tolower (*++needle);
+ c = _tolower (*++needle);
if (c == '\0')
goto foundneedle;
++needle;
@@ -80,40 +80,40 @@ __strcasestr (phaystack, pneedle)
a = *++haystack;
if (a == '\0')
goto ret0;
- if (tolower (a) == b)
+ if (_tolower (a) == b)
break;
a = *++haystack;
if (a == '\0')
goto ret0;
shloop: }
- while (tolower (a) != b);
+ while (_tolower (a) != b);
jin: a = *++haystack;
if (a == '\0')
goto ret0;
- if (tolower (a) != c)
+ if (_tolower (a) != c)
goto shloop;
rhaystack = haystack-- + 1;
rneedle = needle;
- a = tolower (*rneedle);
+ a = _tolower (*rneedle);
- if (tolower (*rhaystack) == a)
+ if (_tolower (*rhaystack) == a)
do
{
if (a == '\0')
goto foundneedle;
++rhaystack;
- a = tolower (*++needle);
- if (tolower (*rhaystack) != a)
+ a = _tolower (*++needle);
+ if (_tolower (*rhaystack) != a)
break;
if (a == '\0')
goto foundneedle;
++rhaystack;
- a = tolower (*++needle);
+ a = _tolower (*++needle);
}
- while (tolower (*rhaystack) == a);
+ while (_tolower (*rhaystack) == a);
needle = rneedle; /* took the register-poor approach */