Loading...
--- Libc/Libc-498/net/FreeBSD/inet_net_pton.c.patch
+++ /dev/null
@@ -1,80 +0,0 @@
---- inet_net_pton.c.orig 2004-11-25 11:38:29.000000000 -0800
-+++ inet_net_pton.c 2005-02-24 16:53:40.000000000 -0800
-@@ -21,6 +21,8 @@
- #include <sys/cdefs.h>
- __FBSDID("$FreeBSD: src/lib/libc/net/inet_net_pton.c,v 1.9 2003/09/15 23:38:06 fenner Exp $");
-
-+#include "xlocale_private.h"
-+
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
-@@ -97,19 +99,20 @@
- digits[] = "0123456789";
- int n, ch, tmp, dirty, bits;
- const u_char *odst = dst;
-+ locale_t loc = __current_locale();
-
- ch = *src++;
- if (ch == '0' && (src[0] == 'x' || src[0] == 'X')
-- && isascii(src[1]) && isxdigit(src[1])) {
-+ && isascii(src[1]) && isxdigit_l(src[1], loc)) {
- /* Hexadecimal: Eat nybble string. */
- if (size <= 0)
- goto emsgsize;
- *dst = 0, dirty = 0;
- src++; /* skip x or X. */
- while ((ch = *src++) != '\0' &&
-- isascii(ch) && isxdigit(ch)) {
-- if (isupper(ch))
-- ch = tolower(ch);
-+ isascii(ch) && isxdigit_l(ch, loc)) {
-+ if (isupper_l(ch, loc))
-+ ch = tolower_l(ch, loc);
- n = strchr(xdigits, ch) - xdigits;
- assert(n >= 0 && n <= 15);
- *dst |= n;
-@@ -122,7 +125,7 @@
- }
- if (dirty)
- size--;
-- } else if (isascii(ch) && isdigit(ch)) {
-+ } else if (isascii(ch) && isdigit_l(ch, loc)) {
- /* Decimal: eat dotted digit string. */
- for (;;) {
- tmp = 0;
-@@ -134,7 +137,7 @@
- if (tmp > 255)
- goto enoent;
- } while ((ch = *src++) != '\0' &&
-- isascii(ch) && isdigit(ch));
-+ isascii(ch) && isdigit_l(ch, loc));
- if (size-- <= 0)
- goto emsgsize;
- *dst++ = (u_char) tmp;
-@@ -143,14 +146,14 @@
- if (ch != '.')
- goto enoent;
- ch = *src++;
-- if (!isascii(ch) || !isdigit(ch))
-+ if (!isascii(ch) || !isdigit_l(ch, loc))
- goto enoent;
- }
- } else
- goto enoent;
-
- bits = -1;
-- if (ch == '/' && isascii(src[0]) && isdigit(src[0]) && dst > odst) {
-+ if (ch == '/' && isascii(src[0]) && isdigit_l(src[0], loc) && dst > odst) {
- /* CIDR width specifier. Nothing can follow it. */
- ch = *src++; /* Skip over the /. */
- bits = 0;
-@@ -159,7 +162,7 @@
- assert(n >= 0 && n <= 9);
- bits *= 10;
- bits += n;
-- } while ((ch = *src++) != '\0' && isascii(ch) && isdigit(ch));
-+ } while ((ch = *src++) != '\0' && isascii(ch) && isdigit_l(ch, loc));
- if (ch != '\0')
- goto enoent;
- if (bits > 32)