]> git.saurik.com Git - apple/libc.git/blob - net/FreeBSD/inet_network.c.patch
Libc-391.2.6.tar.gz
[apple/libc.git] / net / FreeBSD / inet_network.c.patch
1 --- inet_network.c.orig 2003-05-20 15:22:14.000000000 -0700
2 +++ inet_network.c 2005-02-24 16:50:11.000000000 -0800
3 @@ -37,6 +37,8 @@
4 #include <sys/cdefs.h>
5 __FBSDID("$FreeBSD: src/lib/libc/net/inet_network.c,v 1.9 2002/03/22 21:52:29 obrien Exp $");
6
7 +#include "xlocale_private.h"
8 +
9 #include <sys/types.h>
10 #include <netinet/in.h>
11 #include <arpa/inet.h>
12 @@ -55,6 +57,7 @@
13 char c;
14 in_addr_t parts[4], *pp = parts;
15 int i;
16 + locale_t loc = __current_locale();
17
18 again:
19 val = 0; base = 10;
20 @@ -63,13 +66,13 @@
21 if (*cp == 'x' || *cp == 'X')
22 base = 16, cp++;
23 while ((c = *cp) != 0) {
24 - if (isdigit((unsigned char)c)) {
25 + if (isdigit_l((unsigned char)c, loc)) {
26 val = (val * base) + (c - '0');
27 cp++;
28 continue;
29 }
30 - if (base == 16 && isxdigit((unsigned char)c)) {
31 - val = (val << 4) + (c + 10 - (islower((unsigned char)c) ? 'a' : 'A'));
32 + if (base == 16 && isxdigit_l((unsigned char)c, loc)) {
33 + val = (val << 4) + (c + 10 - (islower_l((unsigned char)c, loc) ? 'a' : 'A'));
34 cp++;
35 continue;
36 }
37 @@ -81,7 +84,7 @@
38 *pp++ = val, cp++;
39 goto again;
40 }
41 - if (*cp && !isspace((unsigned char)*cp))
42 + if (*cp && !isspace_l((unsigned char)*cp, loc))
43 return (INADDR_NONE);
44 *pp++ = val;
45 n = pp - parts;