]>
Commit | Line | Data |
---|---|---|
3d9156a7 A |
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; |