diff --git a/ChangeLog b/ChangeLog index b0a4c15858..040e0c01f9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,26 @@ +2000-11-26 Ulrich Drepper + + * inet/getnameinfo.c: Adjust casts to avoid warnings. + * inet/rcmd.c: Likewise. + * inet/ruserpass.c: Likewise. + * inet/netinet/in.h (IN6_IS_ADDR_UNSPECIFIED, IN6_IS_ADDR_LOOPBACK, + IN6_IS_ADDR_MULTICAST, IN6_IS_ADDR_LINKLOCAL, IN6_IS_ADDR_SITELOCAL, + IN6_IS_ADDR_V4MAPPED, IN6_IS_ADDR_V4COMPAT, IN6_ARE_ADDR_EQUAL, + IN6_IS_ADDR_MC_NODELOCAL, IN6_IS_ADDR_MC_LINKLOCAL, + IN6_IS_ADDR_MC_SITELOCAL, IN6_IS_ADDR_MC_ORGLOCAL, + IN6_IS_ADDR_MC_GLOBAL): Preserve const in cast. + * include/aliases.h: Add prototypes for internal __getalias* functions. + * include/netdb.h: Add prototypes for __old_gethostent_r, + __old_gethostbyaddr_r, __old_gethostbyname_r, __old_gethostbyname2_r, + __old_getnetent_r, __old_getnetbyaddr_r, __old_getnetbyname_r, + __old_getservent_r, __old_getservbyname_r, __old_getservbyport_r, + __old_getprotoent_r, __old_getprotobyname_r, __old_getprotobynumber_r. + * include/rpc/netdb.h: Add prototypes for __old_getrpcbyname_r, + __old_getrpcbynumber_r, __old_getrpcent_r. + + * include/rpc/netdb.h: Add __getrpcbyname_r, __getrpcbynumber_r, + __getrpcent_r prototypes. + 2000-11-25 Ulrich Drepper * string/strcoll.c: Add casts to avoid warnings. diff --git a/include/aliases.h b/include/aliases.h index cfe459d02d..3932e52097 100644 --- a/include/aliases.h +++ b/include/aliases.h @@ -1 +1,20 @@ +#ifndef _ALIASES_H #include + +extern int __getaliasent_r (struct aliasent *__restrict __result_buf, + char *__restrict __buffer, size_t __buflen, + struct aliasent **__restrict __result); +extern int __old_getaliasent_r (struct aliasent *__restrict __result_buf, + char *__restrict __buffer, size_t __buflen, + struct aliasent **__restrict __result); + +extern int __getaliasbyname_r (__const char *__restrict __name, + struct aliasent *__restrict __result_buf, + char *__restrict __buffer, size_t __buflen, + struct aliasent **__restrict __result); +extern int __old_getaliasbyname_r (__const char *__restrict __name, + struct aliasent *__restrict __result_buf, + char *__restrict __buffer, size_t __buflen, + struct aliasent **__restrict __result); + +#endif diff --git a/include/netdb.h b/include/netdb.h index f30d46f222..6a60d4ec8c 100644 --- a/include/netdb.h +++ b/include/netdb.h @@ -6,6 +6,10 @@ extern int __gethostent_r (struct hostent *__restrict __result_buf, char *__restrict __buf, size_t __buflen, struct hostent **__restrict __result, int *__restrict __h_errnop); +extern int __old_gethostent_r (struct hostent *__restrict __result_buf, + char *__restrict __buf, size_t __buflen, + struct hostent **__restrict __result, + int *__restrict __h_errnop); extern int __gethostbyaddr_r (__const void *__restrict __addr, socklen_t __len, int __type, @@ -13,65 +17,119 @@ extern int __gethostbyaddr_r (__const void *__restrict __addr, char *__restrict __buf, size_t __buflen, struct hostent **__restrict __result, int *__restrict __h_errnop); +extern int __old_gethostbyaddr_r (__const void *__restrict __addr, + socklen_t __len, int __type, + struct hostent *__restrict __result_buf, + char *__restrict __buf, size_t __buflen, + struct hostent **__restrict __result, + int *__restrict __h_errnop); extern int __gethostbyname_r (__const char *__restrict __name, struct hostent *__restrict __result_buf, char *__restrict __buf, size_t __buflen, struct hostent **__restrict __result, int *__restrict __h_errnop); +extern int __old_gethostbyname_r (__const char *__restrict __name, + struct hostent *__restrict __result_buf, + char *__restrict __buf, size_t __buflen, + struct hostent **__restrict __result, + int *__restrict __h_errnop); extern int __gethostbyname2_r (__const char *__restrict __name, int __af, struct hostent *__restrict __result_buf, char *__restrict __buf, size_t __buflen, struct hostent **__restrict __result, int *__restrict __h_errnop); +extern int __old_gethostbyname2_r (__const char *__restrict __name, int __af, + struct hostent *__restrict __result_buf, + char *__restrict __buf, size_t __buflen, + struct hostent **__restrict __result, + int *__restrict __h_errnop); extern int __getnetent_r (struct netent *__restrict __result_buf, char *__restrict __buf, size_t __buflen, struct netent **__restrict __result, int *__restrict __h_errnop); +extern int __old_getnetent_r (struct netent *__restrict __result_buf, + char *__restrict __buf, size_t __buflen, + struct netent **__restrict __result, + int *__restrict __h_errnop); extern int __getnetbyaddr_r (uint32_t __net, int __type, struct netent *__restrict __result_buf, char *__restrict __buf, size_t __buflen, struct netent **__restrict __result, int *__restrict __h_errnop); +extern int __old_getnetbyaddr_r (uint32_t __net, int __type, + struct netent *__restrict __result_buf, + char *__restrict __buf, size_t __buflen, + struct netent **__restrict __result, + int *__restrict __h_errnop); extern int __getnetbyname_r (__const char *__restrict __name, struct netent *__restrict __result_buf, char *__restrict __buf, size_t __buflen, struct netent **__restrict __result, int *__restrict __h_errnop); +extern int __old_getnetbyname_r (__const char *__restrict __name, + struct netent *__restrict __result_buf, + char *__restrict __buf, size_t __buflen, + struct netent **__restrict __result, + int *__restrict __h_errnop); extern int __getservent_r (struct servent *__restrict __result_buf, char *__restrict __buf, size_t __buflen, struct servent **__restrict __result); +extern int __old_getservent_r (struct servent *__restrict __result_buf, + char *__restrict __buf, size_t __buflen, + struct servent **__restrict __result); extern int __getservbyname_r (__const char *__restrict __name, __const char *__restrict __proto, struct servent *__restrict __result_buf, char *__restrict __buf, size_t __buflen, struct servent **__restrict __result); +extern int __old_getservbyname_r (__const char *__restrict __name, + __const char *__restrict __proto, + struct servent *__restrict __result_buf, + char *__restrict __buf, size_t __buflen, + struct servent **__restrict __result); extern int __getservbyport_r (int __port, __const char *__restrict __proto, struct servent *__restrict __result_buf, char *__restrict __buf, size_t __buflen, struct servent **__restrict __result); +extern int __old_getservbyport_r (int __port, + __const char *__restrict __proto, + struct servent *__restrict __result_buf, + char *__restrict __buf, size_t __buflen, + struct servent **__restrict __result); extern int __getprotoent_r (struct protoent *__restrict __result_buf, char *__restrict __buf, size_t __buflen, struct protoent **__restrict __result); +extern int __old_getprotoent_r (struct protoent *__restrict __result_buf, + char *__restrict __buf, size_t __buflen, + struct protoent **__restrict __result); extern int __getprotobyname_r (__const char *__restrict __name, struct protoent *__restrict __result_buf, char *__restrict __buf, size_t __buflen, struct protoent **__restrict __result); +extern int __old_getprotobyname_r (__const char *__restrict __name, + struct protoent *__restrict __result_buf, + char *__restrict __buf, size_t __buflen, + struct protoent **__restrict __result); extern int __getprotobynumber_r (int __proto, struct protoent *__restrict __res_buf, char *__restrict __buf, size_t __buflen, struct protoent **__restrict __result); +extern int __old_getprotobynumber_r (int __proto, + struct protoent *__restrict __res_buf, + char *__restrict __buf, size_t __buflen, + struct protoent **__restrict __result); extern int __getnetgrent_r (char **__restrict __hostp, char **__restrict __userp, diff --git a/include/rpc/netdb.h b/include/rpc/netdb.h index a9d93e13ad..54a4b70052 100644 --- a/include/rpc/netdb.h +++ b/include/rpc/netdb.h @@ -1 +1,24 @@ +#ifndef _RPC_NETDB_H #include + +extern int __getrpcbyname_r (__const char *__name, struct rpcent *__result_buf, + char *__buffer, size_t __buflen, + struct rpcent **__result); +extern int __old_getrpcbyname_r (__const char *__name, + struct rpcent *__result_buf, + char *__buffer, size_t __buflen, + struct rpcent **__result); + +extern int __getrpcbynumber_r (int __number, struct rpcent *__result_buf, + char *__buffer, size_t __buflen, + struct rpcent **__result); +extern int __old_getrpcbynumber_r (int __number, struct rpcent *__result_buf, + char *__buffer, size_t __buflen, + struct rpcent **__result); + +extern int __getrpcent_r (struct rpcent *__result_buf, char *__buffer, + size_t __buflen, struct rpcent **__result); +extern int __old_getrpcent_r (struct rpcent *__result_buf, char *__buffer, + size_t __buflen, struct rpcent **__result); + +#endif diff --git a/inet/getnameinfo.c b/inet/getnameinfo.c index 25a8af7a6c..435ba76ee5 100644 --- a/inet/getnameinfo.c +++ b/inet/getnameinfo.c @@ -211,7 +211,7 @@ getnameinfo (const struct sockaddr *sa, socklen_t addrlen, char *host, { if (sa->sa_family == AF_INET6) { - while (__gethostbyaddr_r ((void *) &(((struct sockaddr_in6 *) sa)->sin6_addr), + while (__gethostbyaddr_r ((const void *) &(((const struct sockaddr_in6 *) sa)->sin6_addr), sizeof(struct in6_addr), AF_INET6, &th, tmpbuf, tmpbuflen, &h, &herrno)) @@ -238,7 +238,7 @@ getnameinfo (const struct sockaddr *sa, socklen_t addrlen, char *host, } else { - while (__gethostbyaddr_r ((void *) &(((struct sockaddr_in *)sa)->sin_addr), + while (__gethostbyaddr_r ((const void *) &(((const struct sockaddr_in *)sa)->sin_addr), sizeof(struct in_addr), AF_INET, &th, tmpbuf, tmpbuflen, &h, &herrno)) @@ -290,11 +290,13 @@ getnameinfo (const struct sockaddr *sa, socklen_t addrlen, char *host, const char *c; if (sa->sa_family == AF_INET6) { - struct sockaddr_in6 *sin6p = (struct sockaddr_in6 *) sa; + const struct sockaddr_in6 *sin6p; uint32_t scopeid; + sin6p = (const struct sockaddr_in6 *) sa; + c = inet_ntop (AF_INET6, - (void *) &sin6p->sin6_addr, host, hostlen); + (const void *) &sin6p->sin6_addr, host, hostlen); scopeid = sin6p->sin6_scope_id; if (scopeid != 0) { @@ -336,7 +338,7 @@ getnameinfo (const struct sockaddr *sa, socklen_t addrlen, char *host, } else c = inet_ntop (AF_INET, - (void *) &(((struct sockaddr_in *) sa)->sin_addr), + (const void *) &(((const struct sockaddr_in *) sa)->sin_addr), host, hostlen); if (c == NULL) { @@ -381,7 +383,7 @@ getnameinfo (const struct sockaddr *sa, socklen_t addrlen, char *host, if (!(flags & NI_NUMERICSERV)) { struct servent *s, ts; - while (__getservbyport_r (((struct sockaddr_in *) sa)->sin_port, + while (__getservbyport_r (((const struct sockaddr_in *) sa)->sin_port, ((flags & NI_DGRAM) ? "udp" : "tcp"), &ts, tmpbuf, tmpbuflen, &s)) { @@ -410,11 +412,11 @@ getnameinfo (const struct sockaddr *sa, socklen_t addrlen, char *host, } } __snprintf (serv, servlen, "%d", - ntohs (((struct sockaddr_in *) sa)->sin_port)); + ntohs (((const struct sockaddr_in *) sa)->sin_port)); break; case AF_LOCAL: - strncpy (serv, ((struct sockaddr_un *) sa)->sun_path, servlen); + strncpy (serv, ((const struct sockaddr_un *) sa)->sun_path, servlen); break; } diff --git a/inet/netinet/in.h b/inet/netinet/in.h index 1857c199cb..4bceaef869 100644 --- a/inet/netinet/in.h +++ b/inet/netinet/in.h @@ -268,34 +268,43 @@ extern uint16_t htons (uint16_t __hostshort) #endif #define IN6_IS_ADDR_UNSPECIFIED(a) \ - (((uint32_t *) (a))[0] == 0 && ((uint32_t *) (a))[1] == 0 && \ - ((uint32_t *) (a))[2] == 0 && ((uint32_t *) (a))[3] == 0) + (((__const uint32_t *) (a))[0] == 0 \ + && ((__const uint32_t *) (a))[1] == 0 \ + && ((__const uint32_t *) (a))[2] == 0 \ + && ((__const uint32_t *) (a))[3] == 0) #define IN6_IS_ADDR_LOOPBACK(a) \ - (((uint32_t *) (a))[0] == 0 && ((uint32_t *) (a))[1] == 0 && \ - ((uint32_t *) (a))[2] == 0 && ((uint32_t *) (a))[3] == htonl (1)) + (((__const uint32_t *) (a))[0] == 0 \ + && ((__const uint32_t *) (a))[1] == 0 \ + && ((__const uint32_t *) (a))[2] == 0 \ + && ((__const uint32_t *) (a))[3] == htonl (1)) -#define IN6_IS_ADDR_MULTICAST(a) (((uint8_t *) (a))[0] == 0xff) +#define IN6_IS_ADDR_MULTICAST(a) (((__const uint8_t *) (a))[0] == 0xff) #define IN6_IS_ADDR_LINKLOCAL(a) \ - ((((uint32_t *) (a))[0] & htonl (0xffc00000)) == htonl (0xfe800000)) + ((((__const uint32_t *) (a))[0] & htonl (0xffc00000)) \ + == htonl (0xfe800000)) #define IN6_IS_ADDR_SITELOCAL(a) \ - ((((uint32_t *) (a))[0] & htonl (0xffc00000)) == htonl (0xfec00000)) + ((((__const uint32_t *) (a))[0] & htonl (0xffc00000)) \ + == htonl (0xfec00000)) #define IN6_IS_ADDR_V4MAPPED(a) \ - ((((uint32_t *) (a))[0] == 0) && (((uint32_t *) (a))[1] == 0) && \ - (((uint32_t *) (a))[2] == htonl (0xffff))) + ((((__const uint32_t *) (a))[0] == 0) \ + && (((__const uint32_t *) (a))[1] == 0) \ + && (((__const uint32_t *) (a))[2] == htonl (0xffff))) #define IN6_IS_ADDR_V4COMPAT(a) \ - ((((uint32_t *) (a))[0] == 0) && (((uint32_t *) (a))[1] == 0) && \ - (((uint32_t *) (a))[2] == 0) && (ntohl (((uint32_t *) (a))[3]) > 1)) + ((((__const uint32_t *) (a))[0] == 0) \ + && (((__const uint32_t *) (a))[1] == 0) \ + && (((__const uint32_t *) (a))[2] == 0) \ + && (ntohl (((__const uint32_t *) (a))[3]) > 1)) #define IN6_ARE_ADDR_EQUAL(a,b) \ - ((((uint32_t *) (a))[0] == ((uint32_t *) (b))[0]) && \ - (((uint32_t *) (a))[1] == ((uint32_t *) (b))[1]) && \ - (((uint32_t *) (a))[2] == ((uint32_t *) (b))[2]) && \ - (((uint32_t *) (a))[3] == ((uint32_t *) (b))[3])) + ((((__const uint32_t *) (a))[0] == ((__const uint32_t *) (b))[0]) \ + && (((__const uint32_t *) (a))[1] == ((__const uint32_t *) (b))[1]) \ + && (((__const uint32_t *) (a))[2] == ((__const uint32_t *) (b))[2]) \ + && (((__const uint32_t *) (a))[3] == ((__const uint32_t *) (b))[3])) /* Bind socket to a privileged IP port. */ extern int bindresvport (int __sockfd, struct sockaddr_in *__sock_in) __THROW; @@ -306,19 +315,24 @@ extern int bindresvport6 (int __sockfd, struct sockaddr_in6 *__sock_in) #define IN6_IS_ADDR_MC_NODELOCAL(a) \ - (IN6_IS_ADDR_MULTICAST(a) && ((((uint8_t *) (a))[1] & 0xf) == 0x1)) + (IN6_IS_ADDR_MULTICAST(a) \ + && ((((__const uint8_t *) (a))[1] & 0xf) == 0x1)) #define IN6_IS_ADDR_MC_LINKLOCAL(a) \ - (IN6_IS_ADDR_MULTICAST(a) && ((((uint8_t *) (a))[1] & 0xf) == 0x2)) + (IN6_IS_ADDR_MULTICAST(a) \ + && ((((__const uint8_t *) (a))[1] & 0xf) == 0x2)) #define IN6_IS_ADDR_MC_SITELOCAL(a) \ - (IN6_IS_ADDR_MULTICAST(a) && ((((uint8_t *) (a))[1] & 0xf) == 0x5)) + (IN6_IS_ADDR_MULTICAST(a) \ + && ((((__const uint8_t *) (a))[1] & 0xf) == 0x5)) #define IN6_IS_ADDR_MC_ORGLOCAL(a) \ - (IN6_IS_ADDR_MULTICAST(a) && ((((uint8_t *) (a))[1] & 0xf) == 0x8)) + (IN6_IS_ADDR_MULTICAST(a) \ + && ((((__const uint8_t *) (a))[1] & 0xf) == 0x8)) #define IN6_IS_ADDR_MC_GLOBAL(a) \ - (IN6_IS_ADDR_MULTICAST(a) && ((((uint8_t *) (a))[1] & 0xf) == 0xe)) + (IN6_IS_ADDR_MULTICAST(a) \ + && ((((__const uint8_t *) (a))[1] & 0xf) == 0xe)) /* IPv6 packet information. */ struct in6_pktinfo diff --git a/inet/rcmd.c b/inet/rcmd.c index 1ddf4729da..a85cce6be0 100644 --- a/inet/rcmd.c +++ b/inet/rcmd.c @@ -215,7 +215,7 @@ rcmd_af(ahost, rport, locuser, remuser, cmd, fd2p, af) goto bad; listen(s2, 1); (void)__snprintf(num, sizeof(num), "%d", lport); - if (__write(s, num, strlen(num)+1) != strlen(num)+1) { + if (__write(s, num, strlen(num)+1) != (ssize_t)strlen(num)+1) { (void)fprintf(stderr, _("rcmd: write (setting up stderr): %m\n")); (void)__close(s2); diff --git a/inet/ruserpass.c b/inet/ruserpass.c index 3b66c3040e..d610f4240d 100644 --- a/inet/ruserpass.c +++ b/inet/ruserpass.c @@ -317,7 +317,7 @@ token() *cp = 0; if (tokval[0] == 0) return (0); - for (i = 0; i < sizeof (toktab) / sizeof (toktab[0]); ++i) + for (i = 0; i < (int) (sizeof (toktab) / sizeof (toktab[0])); ++i) if (!strcmp(&tokstr[toktab[i].tokstr_off], tokval)) return toktab[i].tval; return (ID); diff --git a/string/strcoll.c b/string/strcoll.c index 49725e1a69..64e00a251a 100644 --- a/string/strcoll.c +++ b/string/strcoll.c @@ -59,7 +59,7 @@ STRCOLL (s1, s2, l) { #ifdef USE_IN_EXTENDED_LOCALE_MODEL struct locale_data *current = l->__locales[LC_COLLATE]; - uint_fast32_t nrules = *((uint32_t *) current->values[_NL_ITEM_INDEX (_NL_COLLATE_NRULES)].string); + uint_fast32_t nrules = *((const uint32_t *) current->values[_NL_ITEM_INDEX (_NL_COLLATE_NRULES)].string); #else uint_fast32_t nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES); #endif diff --git a/string/strnlen.c b/string/strnlen.c index 17b1193f0b..a50226f5fc 100644 --- a/string/strnlen.c +++ b/string/strnlen.c @@ -1,5 +1,5 @@ /* Find the length of STRING, but scan at most MAXLEN characters. - Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 1998, 2000 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 @@ -26,6 +26,6 @@ size_t __strnlen (const char *string, size_t maxlen) { const char *end = memchr (string, '\0', maxlen); - return end ? end - string : maxlen; + return end ? (size_t) (end - string) : maxlen; } weak_alias (__strnlen, strnlen) diff --git a/string/strxfrm.c b/string/strxfrm.c index df44586a04..4a97c3e1cc 100644 --- a/string/strxfrm.c +++ b/string/strxfrm.c @@ -95,7 +95,7 @@ STRXFRM (STRING_TYPE *dest, const STRING_TYPE *src, size_t n, __locale_t l) { #ifdef USE_IN_EXTENDED_LOCALE_MODEL struct locale_data *current = l->__locales[LC_COLLATE]; - uint_fast32_t nrules = *((uint32_t *) current->values[_NL_ITEM_INDEX (_NL_COLLATE_NRULES)].string); + uint_fast32_t nrules = *((const uint32_t *) current->values[_NL_ITEM_INDEX (_NL_COLLATE_NRULES)].string); #else uint32_t nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES); #endif @@ -393,7 +393,7 @@ STRXFRM (STRING_TYPE *dest, const STRING_TYPE *src, size_t n, __locale_t l) rule = rulesets[rulearr[idxcnt + 1] * nrules + pass]; } - if (backw_stop != ~0) + if (backw_stop != ~0ul) { /* Handle the pushed elements now. */ size_t backw; diff --git a/sysdeps/generic/_strerror.c b/sysdeps/generic/_strerror.c index ae520f32fc..123331ac05 100644 --- a/sysdeps/generic/_strerror.c +++ b/sysdeps/generic/_strerror.c @@ -56,7 +56,7 @@ __strerror_r (int errnum, char *buf, size_t buflen) buffer size. */ q = __mempcpy (buf, unk, MIN (unklen, buflen)); if (unklen < buflen) - memcpy (q, p, MIN (&numbuf[21] - p, buflen - unklen)); + memcpy (q, p, MIN ((size_t) (&numbuf[21] - p), buflen - unklen)); /* Terminate the string in any case. */ if (buflen > 0) diff --git a/sysdeps/generic/memrchr.c b/sysdeps/generic/memrchr.c index 6fa918d26e..d1c06e041a 100644 --- a/sysdeps/generic/memrchr.c +++ b/sysdeps/generic/memrchr.c @@ -86,7 +86,7 @@ __memrchr (s, c_in, n) /* All these elucidatory comments refer to 4-byte longwords, but the theory applies equally well to 8-byte longwords. */ - longword_ptr = (unsigned long int *) char_ptr; + longword_ptr = (const unsigned long int *) char_ptr; /* Bits 31, 24, 16, and 8 of this number are zero. Call these bits the "holes." Note that there is a hole just to the left of diff --git a/sysdeps/generic/strcasestr.c b/sysdeps/generic/strcasestr.c index 794b50beff..5fe1b10934 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, 1999 Free Software Foundation, Inc. + Copyright (C) 1994,1996,1997,1998,1999,2000 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 @@ -62,7 +62,7 @@ __strcasestr (phaystack, pneedle) if (c == '\0') goto ret0; } - while (_tolower (c) != b); + while (_tolower (c) != (int) b); c = _tolower (*++needle); if (c == '\0') @@ -80,40 +80,42 @@ __strcasestr (phaystack, pneedle) a = *++haystack; if (a == '\0') goto ret0; - if (_tolower (a) == b) + if (_tolower (a) == (int) b) break; a = *++haystack; if (a == '\0') goto ret0; -shloop: } - while (_tolower (a) != b); +shloop: + ; + } + while (_tolower (a) != (int) b); jin: a = *++haystack; if (a == '\0') goto ret0; - if (_tolower (a) != c) + if (_tolower (a) != (int) c) goto shloop; rhaystack = haystack-- + 1; rneedle = needle; a = _tolower (*rneedle); - if (_tolower (*rhaystack) == a) + if (_tolower (*rhaystack) == (int) a) do { if (a == '\0') goto foundneedle; ++rhaystack; a = _tolower (*++needle); - if (_tolower (*rhaystack) != a) + if (_tolower (*rhaystack) != (int) a) break; if (a == '\0') goto foundneedle; ++rhaystack; a = _tolower (*++needle); } - while (_tolower (*rhaystack) == a); + while (_tolower (*rhaystack) == (int) a); needle = rneedle; /* took the register-poor approach */ diff --git a/sysdeps/generic/strstr.c b/sysdeps/generic/strstr.c index 03d6c8e5fc..6bf92e7473 100644 --- a/sysdeps/generic/strstr.c +++ b/sysdeps/generic/strstr.c @@ -1,5 +1,5 @@ /* Return the offset of one string within another. - Copyright (C) 1994, 1996, 1997 Free Software Foundation, Inc. + Copyright (C) 1994, 1996, 1997, 2000 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 @@ -82,7 +82,9 @@ strstr (phaystack, pneedle) a = *++haystack; if (a == '\0') goto ret0; -shloop: } +shloop: + ; + } while (a != b); jin: a = *++haystack;