mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-23 09:43:32 +08:00
Update.
1998-12-08 Andreas Jaeger <aj@arthur.rhein-neckar.de> * posix/regex.c: Get regex.h from system path, not from local directory. * posix/regex.h: Move internal interfaces to ... * include/regex.h: ...here. * posix/unistd.h: Move internal interfaces to ... * include/unistd.h: ...here. * math/math.h: Move internal interfaces to ... * include/math.h: ...here. * posix/glob.h: Move internal interfaces to ... * include/glob.h: ...here. * string/string.h: Move internal interfaces to ... * include/string.h: ...here. * time/sys/time.h: Move internal interfaces to ... * include/sys/time.h: ...here. * resolv/netdb.h: Move internal interfaces to ... * include/netdb.h: ...here. 1998-12-08 Ulrich Drepper <drepper@cygnus.com> * iconvdata/eucjp.c: Handle Yen in overscore conversion from ISO 10646 correctly. * iconvdata/iso-2022-jp.c: Handle Kana in 2022-JP2 correctly Fix various bugs in conversion routine. * iconvdata/jis0201.h: Correct variable name. * iconvdata/jis0208.c: Correct script to generate tables and regenerate them. * iconvdata/jis0208.h: Likewise. * iconvdata/jis0212.c: Likewise. * iconvdata/sjis.c: Likewise. Patch by HANATAKA Shinya <hanataka@abyss.rim.or.jp>.
This commit is contained in:
parent
b38bb8ca8c
commit
5c2a0669c1
40
ChangeLog
40
ChangeLog
@ -1,3 +1,43 @@
|
||||
1998-12-08 Andreas Jaeger <aj@arthur.rhein-neckar.de>
|
||||
|
||||
* posix/regex.c: Get regex.h from system path, not from local
|
||||
directory.
|
||||
|
||||
* posix/regex.h: Move internal interfaces to ...
|
||||
* include/regex.h: ...here.
|
||||
|
||||
* posix/unistd.h: Move internal interfaces to ...
|
||||
* include/unistd.h: ...here.
|
||||
|
||||
* math/math.h: Move internal interfaces to ...
|
||||
* include/math.h: ...here.
|
||||
|
||||
* posix/glob.h: Move internal interfaces to ...
|
||||
* include/glob.h: ...here.
|
||||
|
||||
* string/string.h: Move internal interfaces to ...
|
||||
* include/string.h: ...here.
|
||||
|
||||
* time/sys/time.h: Move internal interfaces to ...
|
||||
* include/sys/time.h: ...here.
|
||||
|
||||
* resolv/netdb.h: Move internal interfaces to ...
|
||||
* include/netdb.h: ...here.
|
||||
|
||||
1998-12-08 Ulrich Drepper <drepper@cygnus.com>
|
||||
|
||||
* iconvdata/eucjp.c: Handle Yen in overscore conversion from ISO 10646
|
||||
correctly.
|
||||
* iconvdata/iso-2022-jp.c: Handle Kana in 2022-JP2 correctly
|
||||
Fix various bugs in conversion routine.
|
||||
* iconvdata/jis0201.h: Correct variable name.
|
||||
* iconvdata/jis0208.c: Correct script to generate tables and regenerate
|
||||
them.
|
||||
* iconvdata/jis0208.h: Likewise.
|
||||
* iconvdata/jis0212.c: Likewise.
|
||||
* iconvdata/sjis.c: Likewise.
|
||||
Patch by HANATAKA Shinya <hanataka@abyss.rim.or.jp>.
|
||||
|
||||
1998-12-07 Ulrich Drepper <drepper@cygnus.com>
|
||||
|
||||
* sysdeps/unix/sysv/linux/speed.c (IBAUD0): New definition. Bit
|
||||
|
4
README
4
README
@ -1,4 +1,4 @@
|
||||
This directory contains the version 2.0.105 test release of the GNU C Library.
|
||||
This directory contains the version 2.0.106 test release of the GNU C Library.
|
||||
Many bugs have been fixed since the last release.
|
||||
Some bugs surely remain.
|
||||
|
||||
@ -53,7 +53,7 @@ provides the Unix `crypt' function, plus some other entry points.
|
||||
Because of the United States export restriction on DES implementations,
|
||||
we are distributing this code separately from the rest of the C
|
||||
library. There is an extra distribution tar file just for crypt; it is
|
||||
called `glibc-crypt-2.0.105.tar.gz'. You can just unpack the crypt
|
||||
called `glibc-crypt-2.0.106.tar.gz'. You can just unpack the crypt
|
||||
distribution along with the rest of the C library and build; you can
|
||||
also build the library without getting crypt. Users outside the USA
|
||||
can get the crypt distribution via anonymous FTP from ftp.ifi.uio.no
|
||||
|
@ -75,6 +75,7 @@ dnl libraries built in the moment.
|
||||
dnl AC_ARG_ENABLE(static, dnl
|
||||
dnl [ --enable-static build static library [default=yes]],
|
||||
dnl static=$enableval, static=yes)
|
||||
static=yes
|
||||
AC_ARG_ENABLE(shared, dnl
|
||||
[ --enable-shared build shared library [default=yes if GNU ld & ELF]],
|
||||
shared=$enableval, shared=default)
|
||||
|
@ -138,6 +138,12 @@
|
||||
if (ch <= 0x7f) \
|
||||
/* It's plain ASCII. */ \
|
||||
*outptr++ = ch; \
|
||||
else if (ch == 0xa5) \
|
||||
/* YEN sign => backslash */ \
|
||||
*outptr++ = 0x5c; \
|
||||
else if (ch == 0x203e) \
|
||||
/* overscore => asciitilde */ \
|
||||
*outptr++ = 0x7e; \
|
||||
else \
|
||||
{ \
|
||||
/* Try the JIS character sets. */ \
|
||||
|
@ -91,7 +91,8 @@ enum
|
||||
ASCII_set = 0,
|
||||
JISX0208_1978_set,
|
||||
JISX0208_1983_set,
|
||||
JISX0201_set,
|
||||
JISX0201_Roman_set,
|
||||
JISX0201_Kana_set,
|
||||
GB2312_set,
|
||||
KSC5601_set,
|
||||
JISX0212_set,
|
||||
@ -224,13 +225,6 @@ gconv_end (struct gconv_step *data)
|
||||
{ \
|
||||
uint32_t ch = *inptr; \
|
||||
\
|
||||
/* This is a 7bit character set, disallow all 8bit characters. */ \
|
||||
if (ch > 0x7f) \
|
||||
{ \
|
||||
result = GCONV_ILLEGAL_INPUT; \
|
||||
break; \
|
||||
} \
|
||||
\
|
||||
/* Recognize escape sequences. */ \
|
||||
if (ch == ESC) \
|
||||
{ \
|
||||
@ -260,7 +254,14 @@ gconv_end (struct gconv_step *data)
|
||||
else if (inptr[2] == 'J') \
|
||||
{ \
|
||||
/* JIS X 0201 selected. */ \
|
||||
set = JISX0201_set; \
|
||||
set = JISX0201_Roman_set; \
|
||||
inptr += 3; \
|
||||
continue; \
|
||||
} \
|
||||
else if (var == iso2022jp2 && inptr[2] == 'I') \
|
||||
{ \
|
||||
/* JIS X 0201 selected. */ \
|
||||
set = JISX0201_Kana_set; \
|
||||
inptr += 3; \
|
||||
continue; \
|
||||
} \
|
||||
@ -333,7 +334,18 @@ gconv_end (struct gconv_step *data)
|
||||
|| (var >= ISO88591_set && ch < 0x20)) \
|
||||
/* Almost done, just advance the input pointer. */ \
|
||||
++inptr; \
|
||||
else if (set == JISX0201_set) \
|
||||
else if (set == JISX0201_Roman_set) \
|
||||
{ \
|
||||
/* Use the JIS X 0201 table. */ \
|
||||
ch = jisx0201_to_ucs4 (ch); \
|
||||
if (ch == UNKNOWN_10646_CHAR) \
|
||||
{ \
|
||||
result = GCONV_ILLEGAL_INPUT; \
|
||||
break; \
|
||||
} \
|
||||
++inptr; \
|
||||
} \
|
||||
else if (set == JISX0201_Kana_set) \
|
||||
{ \
|
||||
/* Use the JIS X 0201 table. */ \
|
||||
ch = jisx0201_to_ucs4 (ch + 0x80); \
|
||||
@ -348,13 +360,13 @@ gconv_end (struct gconv_step *data)
|
||||
{ \
|
||||
/* This is quite easy. All characters are defined and the \
|
||||
ISO 10646 value is computed by adding 0x80. */ \
|
||||
ch += 0x80; \
|
||||
ch |= 0x80; \
|
||||
++inptr; \
|
||||
} \
|
||||
else if (set == ISO88597_set) \
|
||||
{ \
|
||||
/* We use the table from the ISO 8859-7 module. */ \
|
||||
ch = iso88597_to_ucs4[ch - 0x20]; \
|
||||
ch = iso88597_to_ucs4[(ch & 0x7f) - 0x20]; \
|
||||
if (ch == 0) \
|
||||
{ \
|
||||
result = GCONV_ILLEGAL_INPUT; \
|
||||
@ -415,16 +427,14 @@ gconv_end (struct gconv_step *data)
|
||||
#define LOOPFCT TO_LOOP
|
||||
#define BODY \
|
||||
{ \
|
||||
unsigned char ch; \
|
||||
uint32_t ch; \
|
||||
size_t written = 0; \
|
||||
\
|
||||
ch = *((uint32_t *) inptr); \
|
||||
\
|
||||
/* First see whether we can write the character using the currently \
|
||||
selected character set. */ \
|
||||
if (set == ASCII_set \
|
||||
|| (ch >= 0x01 && ((set < ISO88591_set && (ch < 0x21 || ch == 0x7f)) \
|
||||
|| (set >= ISO88591_set && ch < 0x20)))) \
|
||||
if (set == ASCII_set) \
|
||||
{ \
|
||||
/* Please note that the NUL byte is *not* matched if we are not \
|
||||
currently using the ASCII charset. This is because we must \
|
||||
@ -435,13 +445,35 @@ gconv_end (struct gconv_step *data)
|
||||
written = 1; \
|
||||
} \
|
||||
} \
|
||||
else if (set == JISX0201_set) \
|
||||
written = ucs4_to_jisx0201 (ch, outptr); \
|
||||
else if (set == JISX0201_Roman_set) \
|
||||
{ \
|
||||
unsigned char buf[2]; \
|
||||
written = ucs4_to_jisx0201 (ch, buf); \
|
||||
if (written != UNKNOWN_10646_CHAR && buf[0] > 0x20 && buf[0] < 0x80) \
|
||||
{ \
|
||||
*outptr++ = buf[0]; \
|
||||
written = 1; \
|
||||
} \
|
||||
else \
|
||||
written = UNKNOWN_10646_CHAR; \
|
||||
} \
|
||||
else if (set == JISX0201_Kana_set) \
|
||||
{ \
|
||||
unsigned char buf[2]; \
|
||||
written = ucs4_to_jisx0201 (ch, buf); \
|
||||
if (written != UNKNOWN_10646_CHAR && buf[0] > 0xa0 && buf[0] < 0xe0) \
|
||||
{ \
|
||||
*outptr++ = buf[0] - 0x80; \
|
||||
written = 1; \
|
||||
} \
|
||||
else \
|
||||
written = UNKNOWN_10646_CHAR; \
|
||||
} \
|
||||
else if (set == ISO88591_set) \
|
||||
{ \
|
||||
if (ch >= 0xa0 && ch <= 0xff) \
|
||||
if (ch >= 0x80 && ch <= 0xff) \
|
||||
{ \
|
||||
*outptr++ = ch - 0x80; \
|
||||
*outptr++ = ch; \
|
||||
written = 1; \
|
||||
} \
|
||||
} \
|
||||
@ -456,7 +488,7 @@ gconv_end (struct gconv_step *data)
|
||||
unsigned char res = iso88597_from_ucs4[ch + rp->idx]; \
|
||||
if (res != '\0') \
|
||||
{ \
|
||||
*outptr++ = res; \
|
||||
*outptr++ = res | 0x80; \
|
||||
written = 1; \
|
||||
} \
|
||||
} \
|
||||
@ -488,9 +520,11 @@ gconv_end (struct gconv_step *data)
|
||||
result = GCONV_FULL_OUTPUT; \
|
||||
break; \
|
||||
} \
|
||||
else if (written != UNKNOWN_10646_CHAR) \
|
||||
outptr += written; \
|
||||
} \
|
||||
\
|
||||
if (written == UNKNOWN_10646_CHAR) \
|
||||
if (written == UNKNOWN_10646_CHAR || written == 0) \
|
||||
{ \
|
||||
/* Either this is an unknown character or we have to switch \
|
||||
the currently selected character set. The character sets \
|
||||
@ -529,29 +563,6 @@ gconv_end (struct gconv_step *data)
|
||||
\
|
||||
*outptr++ = ch; \
|
||||
} \
|
||||
else if (ch >= 0xa0 && ch <= 0xff) \
|
||||
{ \
|
||||
/* This character set is not available in ISO-2022-JP. */ \
|
||||
if (var == iso2022jp) \
|
||||
{ \
|
||||
result = GCONV_ILLEGAL_INPUT; \
|
||||
break; \
|
||||
} \
|
||||
\
|
||||
/* We must use the ISO 8859-1 upper half. */ \
|
||||
*outptr++ = ESC; \
|
||||
*outptr++ = '.'; \
|
||||
*outptr++ = 'A'; \
|
||||
set = ISO88591_set; \
|
||||
\
|
||||
if (NEED_LENGTH_TEST && outptr == outend) \
|
||||
{ \
|
||||
result = GCONV_FULL_OUTPUT; \
|
||||
break; \
|
||||
} \
|
||||
\
|
||||
*outptr++ = ch - 0x80; \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
/* Now it becomes difficult. We must search the other \
|
||||
@ -562,13 +573,13 @@ gconv_end (struct gconv_step *data)
|
||||
unsigned char buf[2]; \
|
||||
\
|
||||
written = ucs4_to_jisx0201 (ch, buf); \
|
||||
if (written != UNKNOWN_10646_CHAR) \
|
||||
if (written != UNKNOWN_10646_CHAR && buf[0] < 0x80) \
|
||||
{ \
|
||||
/* We use JIS X 0201. */ \
|
||||
*outptr++ = ESC; \
|
||||
*outptr++ = '$'; \
|
||||
*outptr++ = '@'; \
|
||||
set = JISX0201_set; \
|
||||
*outptr++ = '('; \
|
||||
*outptr++ = 'J'; \
|
||||
set = JISX0201_Roman_set; \
|
||||
\
|
||||
if (NEED_LENGTH_TEST && outptr == outend) \
|
||||
{ \
|
||||
@ -606,11 +617,11 @@ gconv_end (struct gconv_step *data)
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
written = ucs4_to_jisx0208 (ch, buf, 2); \
|
||||
written = ucs4_to_jisx0212 (ch, buf, 2); \
|
||||
if (written != UNKNOWN_10646_CHAR) \
|
||||
{ \
|
||||
/* We use JIS X 0212. */ \
|
||||
if (outptr + 4 > outend) \
|
||||
if (NEED_LENGTH_TEST && outptr + 4 > outend) \
|
||||
{ \
|
||||
result = GCONV_FULL_OUTPUT; \
|
||||
break; \
|
||||
@ -632,43 +643,51 @@ gconv_end (struct gconv_step *data)
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
written = ucs4_to_gb2312 (ch, buf, 2); \
|
||||
if (written != UNKNOWN_10646_CHAR) \
|
||||
written = ucs4_to_jisx0201 (ch, buf); \
|
||||
if (written != UNKNOWN_10646_CHAR && buf[0] >= 0x80) \
|
||||
{ \
|
||||
/* We use GB 2312. */ \
|
||||
/* We use JIS X 0201. */ \
|
||||
*outptr++ = ESC; \
|
||||
*outptr++ = '$'; \
|
||||
*outptr++ = 'A'; \
|
||||
set = GB2312_set; \
|
||||
*outptr++ = '('; \
|
||||
*outptr++ = 'I'; \
|
||||
set = JISX0201_Kana_set; \
|
||||
\
|
||||
if (NEED_LENGTH_TEST && outptr + 2 > outend) \
|
||||
if (NEED_LENGTH_TEST && outptr == outend) \
|
||||
{ \
|
||||
result = GCONV_FULL_OUTPUT; \
|
||||
break; \
|
||||
} \
|
||||
\
|
||||
*outptr++ = buf[0] - 0x80; \
|
||||
} \
|
||||
else if (ch != 0xa5 && ch >= 0x80 && ch <= 0xff) \
|
||||
{ \
|
||||
/* ISO 8859-1 upper half. */ \
|
||||
*outptr++ = ESC; \
|
||||
*outptr++ = '.'; \
|
||||
*outptr++ = 'A'; \
|
||||
set = ISO88591_set; \
|
||||
\
|
||||
if (NEED_LENGTH_TEST && outptr == outend) \
|
||||
{ \
|
||||
result = GCONV_FULL_OUTPUT; \
|
||||
break; \
|
||||
} \
|
||||
\
|
||||
*outptr++ = buf[0]; \
|
||||
*outptr++ = buf[1]; \
|
||||
*outptr++ = ch; \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
written = ucs4_to_ksc5601 (ch, buf, 2); \
|
||||
written = ucs4_to_gb2312 (ch, buf, 2); \
|
||||
if (written != UNKNOWN_10646_CHAR) \
|
||||
{ \
|
||||
/* We use KSC 5601. */ \
|
||||
if (outptr + 4 > outend) \
|
||||
{ \
|
||||
result = GCONV_FULL_OUTPUT; \
|
||||
break; \
|
||||
} \
|
||||
/* We use GB 2312. */ \
|
||||
*outptr++ = ESC; \
|
||||
*outptr++ = '$'; \
|
||||
*outptr++ = '('; \
|
||||
*outptr++ = 'C'; \
|
||||
set = KSC5601_set; \
|
||||
*outptr++ = 'A'; \
|
||||
set = GB2312_set; \
|
||||
\
|
||||
if (NEED_LENGTH_TEST \
|
||||
&& outptr + 2 > outend) \
|
||||
if (NEED_LENGTH_TEST && outptr + 2 > outend) \
|
||||
{ \
|
||||
result = GCONV_FULL_OUTPUT; \
|
||||
break; \
|
||||
@ -679,8 +698,37 @@ gconv_end (struct gconv_step *data)
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
result = GCONV_ILLEGAL_INPUT; \
|
||||
break; \
|
||||
written = ucs4_to_ksc5601 (ch, buf, 2); \
|
||||
if (written != UNKNOWN_10646_CHAR) \
|
||||
{ \
|
||||
/* We use KSC 5601. */ \
|
||||
if (NEED_LENGTH_TEST \
|
||||
&& outptr + 4 > outend) \
|
||||
{ \
|
||||
result = GCONV_FULL_OUTPUT; \
|
||||
break; \
|
||||
} \
|
||||
*outptr++ = ESC; \
|
||||
*outptr++ = '$'; \
|
||||
*outptr++ = '('; \
|
||||
*outptr++ = 'C'; \
|
||||
set = KSC5601_set; \
|
||||
\
|
||||
if (NEED_LENGTH_TEST \
|
||||
&& outptr + 2 > outend) \
|
||||
{ \
|
||||
result = GCONV_FULL_OUTPUT; \
|
||||
break; \
|
||||
} \
|
||||
\
|
||||
*outptr++ = buf[0]; \
|
||||
*outptr++ = buf[1]; \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
result = GCONV_ILLEGAL_INPUT; \
|
||||
break; \
|
||||
} \
|
||||
} \
|
||||
} \
|
||||
} \
|
||||
|
@ -22,13 +22,13 @@
|
||||
#define _JIS0201_H 1
|
||||
|
||||
/* Conversion table. */
|
||||
extern const uint32_t __jis0201_to_ucs4[];
|
||||
extern const uint32_t __jisx0201_to_ucs4[];
|
||||
|
||||
|
||||
static inline uint32_t
|
||||
jisx0201_to_ucs4 (char ch)
|
||||
{
|
||||
uint32_t val = __jis0201_to_ucs4[(unsigned char) ch];
|
||||
uint32_t val = __jisx0201_to_ucs4[(unsigned char) ch];
|
||||
|
||||
if (val == 0 && ch != '\0')
|
||||
val = UNKNOWN_10646_CHAR;
|
||||
|
4743
iconvdata/jis0208.c
4743
iconvdata/jis0208.c
File diff suppressed because it is too large
Load Diff
@ -81,7 +81,7 @@ ucs4_to_jisx0208 (uint32_t wch, char *s, size_t avail)
|
||||
if (ch < 0x100)
|
||||
cp = __jisx0208_from_ucs4_lat1[ch];
|
||||
else if (ch >= 0x391 && ch <= 0x451)
|
||||
cp = __jisx0208_from_ucs4_greek[ch];
|
||||
cp = __jisx0208_from_ucs4_greek[ch - 0x391];
|
||||
else
|
||||
{
|
||||
const struct jisx0208_ucs_idx *rp = __jisx0208_from_ucs_idx;
|
||||
|
4482
iconvdata/jis0212.c
4482
iconvdata/jis0212.c
File diff suppressed because it is too large
Load Diff
1951
iconvdata/sjis.c
1951
iconvdata/sjis.c
File diff suppressed because it is too large
Load Diff
@ -1 +1,7 @@
|
||||
#ifndef _GLOB_H
|
||||
#include <posix/glob.h>
|
||||
|
||||
/* Now define the internal interfaces. */
|
||||
extern int __glob_pattern_p __P ((__const char *__pattern, int __quote));
|
||||
|
||||
#endif
|
||||
|
@ -1 +1,8 @@
|
||||
#ifndef _MATH_H
|
||||
|
||||
#include <math/math.h>
|
||||
|
||||
/* Now define the internal interfaces. */
|
||||
extern int __matherr __P ((struct exception *__exc));
|
||||
|
||||
#endif
|
||||
|
@ -1 +1,80 @@
|
||||
#ifndef _NETDB_H
|
||||
#include <resolv/netdb.h>
|
||||
|
||||
/* Document internal interfaces. */
|
||||
extern int __gethostent_r __P ((struct hostent *__restrict __result_buf,
|
||||
char *__restrict __buf, size_t __buflen,
|
||||
struct hostent **__restrict __result,
|
||||
int *__restrict __h_errnop));
|
||||
|
||||
extern int __gethostbyaddr_r __P ((__const char *__restrict __addr,
|
||||
int __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 __P ((__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 __P ((__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 __P ((struct netent *__restrict __result_buf,
|
||||
char *__restrict __buf, size_t __buflen,
|
||||
struct netent **__restrict __result,
|
||||
int *__restrict __h_errnop));
|
||||
|
||||
extern int __getnetbyaddr_r __P ((unsigned long int __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 __P ((__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 __P ((struct servent *__restrict __result_buf,
|
||||
char *__restrict __buf, size_t __buflen,
|
||||
struct servent **__restrict __result));
|
||||
|
||||
extern int __getservbyname_r __P ((__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 __P ((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 __P ((struct protoent *__restrict __result_buf,
|
||||
char *__restrict __buf, size_t __buflen,
|
||||
struct protoent **__restrict __result));
|
||||
|
||||
extern int __getprotobyname_r __P ((__const char *__restrict __name,
|
||||
struct protoent *__restrict __result_buf,
|
||||
char *__restrict __buf, size_t __buflen,
|
||||
struct protoent **__restrict __result));
|
||||
|
||||
extern int __getprotobynumber_r __P ((int __proto,
|
||||
struct protoent *__restrict __res_buf,
|
||||
char *__restrict __buf, size_t __buflen,
|
||||
struct protoent **__restrict __result));
|
||||
|
||||
extern int __getnetgrent_r __P ((char **__restrict __hostp,
|
||||
char **__restrict __userp,
|
||||
char **__restrict __domainp,
|
||||
char *__restrict __buffer, size_t __buflen));
|
||||
#endif /* !_NETDB_H */
|
||||
|
@ -1 +1,46 @@
|
||||
#ifndef _REGEX_H
|
||||
#include <posix/regex.h>
|
||||
|
||||
/* Document internal interfaces. */
|
||||
extern reg_syntax_t __re_set_syntax _RE_ARGS ((reg_syntax_t syntax));
|
||||
|
||||
extern const char *__re_compile_pattern
|
||||
_RE_ARGS ((const char *pattern, size_t length,
|
||||
struct re_pattern_buffer *buffer));
|
||||
|
||||
extern int __re_compile_fastmap _RE_ARGS ((struct re_pattern_buffer *buffer));
|
||||
|
||||
extern int __re_search
|
||||
_RE_ARGS ((struct re_pattern_buffer *buffer, const char *string,
|
||||
int length, int start, int range, struct re_registers *regs));
|
||||
|
||||
extern int __re_search_2
|
||||
_RE_ARGS ((struct re_pattern_buffer *buffer, const char *string1,
|
||||
int length1, const char *string2, int length2,
|
||||
int start, int range, struct re_registers *regs, int stop));
|
||||
|
||||
extern int __re_match
|
||||
_RE_ARGS ((struct re_pattern_buffer *buffer, const char *string,
|
||||
int length, int start, struct re_registers *regs));
|
||||
|
||||
extern int __re_match_2
|
||||
_RE_ARGS ((struct re_pattern_buffer *buffer, const char *string1,
|
||||
int length1, const char *string2, int length2,
|
||||
int start, struct re_registers *regs, int stop));
|
||||
|
||||
extern void __re_set_registers
|
||||
_RE_ARGS ((struct re_pattern_buffer *buffer, struct re_registers *regs,
|
||||
unsigned num_regs, regoff_t *starts, regoff_t *ends));
|
||||
|
||||
extern int __regcomp _RE_ARGS ((regex_t *__preg, const char *__pattern,
|
||||
int __cflags));
|
||||
|
||||
extern int __regexec _RE_ARGS ((const regex_t *__preg,
|
||||
const char *__string, size_t __nmatch,
|
||||
regmatch_t __pmatch[], int __eflags));
|
||||
|
||||
extern size_t __regerror _RE_ARGS ((int __errcode, const regex_t *__preg,
|
||||
char *__errbuf, size_t __errbuf_size));
|
||||
|
||||
extern void __regfree _RE_ARGS ((regex_t *__preg));
|
||||
#endif
|
||||
|
@ -4,7 +4,16 @@
|
||||
/* Now define the internal interfaces. */
|
||||
extern __ptr_t __memccpy __P ((__ptr_t __dest, __const __ptr_t __src,
|
||||
int __c, size_t __n));
|
||||
|
||||
extern size_t __strnlen __P ((__const char *__string, size_t __maxlen));
|
||||
|
||||
extern char *__strsep __P ((char **__stringp, __const char *__delim));
|
||||
|
||||
extern int __strverscmp __P ((__const char *__s1, __const char *__s2));
|
||||
|
||||
extern int __strncasecmp __P ((__const char *__s1, __const char *__s2,
|
||||
size_t __n));
|
||||
|
||||
extern char *__strndup __P ((__const char *__string, size_t __n));
|
||||
|
||||
#endif
|
||||
|
@ -2,6 +2,8 @@
|
||||
#include <time/sys/time.h>
|
||||
|
||||
/* Now document the internal interfaces. */
|
||||
extern int __gettimeofday __P ((struct timeval *__tv,
|
||||
struct timezone *__tz));
|
||||
extern int __settimeofday __P ((__const struct timeval *__tv,
|
||||
__const struct timezone *__tz));
|
||||
extern int __adjtime __P ((__const struct timeval *__delta,
|
||||
|
@ -17,6 +17,7 @@ extern int __fchown __P ((int __fd,
|
||||
__uid_t __owner, __gid_t __group));
|
||||
extern int __lchown __P ((__const char *__file, __uid_t __owner,
|
||||
__gid_t __group));
|
||||
extern int __chdir __P ((__const char *__path));
|
||||
extern int __fchdir __P ((int __fd));
|
||||
extern char *__getcwd __P ((char *__buf, size_t __size));
|
||||
|
||||
|
@ -269,10 +269,8 @@ struct exception
|
||||
};
|
||||
|
||||
# ifdef __cplusplus
|
||||
extern int __matherr __P ((struct __exception *__exc));
|
||||
extern int matherr __P ((struct __exception *__exc));
|
||||
# else
|
||||
extern int __matherr __P ((struct exception *__exc));
|
||||
extern int matherr __P ((struct exception *__exc));
|
||||
# endif
|
||||
|
||||
|
@ -183,7 +183,6 @@ extern void globfree64 __P ((glob64_t *__pglob));
|
||||
|
||||
This function is not part of the interface specified by POSIX.2
|
||||
but several programs want to use it. */
|
||||
extern int __glob_pattern_p __P ((__const char *__pattern, int __quote));
|
||||
extern int glob_pattern_p __P ((__const char *__pattern, int __quote));
|
||||
#endif
|
||||
|
||||
|
@ -207,7 +207,7 @@ init_syntax_once ()
|
||||
#endif /* not emacs */
|
||||
|
||||
/* Get the interface, including the syntax bits. */
|
||||
#include "regex.h"
|
||||
#include <regex.h>
|
||||
|
||||
/* isalpha etc. are used for the character classes. */
|
||||
#include <ctype.h>
|
||||
|
@ -441,15 +441,11 @@ typedef struct
|
||||
|
||||
/* Sets the current default syntax to SYNTAX, and return the old syntax.
|
||||
You can also simply assign to the `re_syntax_options' variable. */
|
||||
extern reg_syntax_t __re_set_syntax _RE_ARGS ((reg_syntax_t syntax));
|
||||
extern reg_syntax_t re_set_syntax _RE_ARGS ((reg_syntax_t syntax));
|
||||
|
||||
/* Compile the regular expression PATTERN, with length LENGTH
|
||||
and syntax given by the global `re_syntax_options', into the buffer
|
||||
BUFFER. Return NULL if successful, and an error string if not. */
|
||||
extern const char *__re_compile_pattern
|
||||
_RE_ARGS ((const char *pattern, size_t length,
|
||||
struct re_pattern_buffer *buffer));
|
||||
extern const char *re_compile_pattern
|
||||
_RE_ARGS ((const char *pattern, size_t length,
|
||||
struct re_pattern_buffer *buffer));
|
||||
@ -458,7 +454,6 @@ extern const char *re_compile_pattern
|
||||
/* Compile a fastmap for the compiled pattern in BUFFER; used to
|
||||
accelerate searches. Return 0 if successful and -2 if was an
|
||||
internal error. */
|
||||
extern int __re_compile_fastmap _RE_ARGS ((struct re_pattern_buffer *buffer));
|
||||
extern int re_compile_fastmap _RE_ARGS ((struct re_pattern_buffer *buffer));
|
||||
|
||||
|
||||
@ -467,9 +462,6 @@ extern int re_compile_fastmap _RE_ARGS ((struct re_pattern_buffer *buffer));
|
||||
characters. Return the starting position of the match, -1 for no
|
||||
match, or -2 for an internal error. Also return register
|
||||
information in REGS (if REGS and BUFFER->no_sub are nonzero). */
|
||||
extern int __re_search
|
||||
_RE_ARGS ((struct re_pattern_buffer *buffer, const char *string,
|
||||
int length, int start, int range, struct re_registers *regs));
|
||||
extern int re_search
|
||||
_RE_ARGS ((struct re_pattern_buffer *buffer, const char *string,
|
||||
int length, int start, int range, struct re_registers *regs));
|
||||
@ -477,10 +469,6 @@ extern int re_search
|
||||
|
||||
/* Like `re_search', but search in the concatenation of STRING1 and
|
||||
STRING2. Also, stop searching at index START + STOP. */
|
||||
extern int __re_search_2
|
||||
_RE_ARGS ((struct re_pattern_buffer *buffer, const char *string1,
|
||||
int length1, const char *string2, int length2,
|
||||
int start, int range, struct re_registers *regs, int stop));
|
||||
extern int re_search_2
|
||||
_RE_ARGS ((struct re_pattern_buffer *buffer, const char *string1,
|
||||
int length1, const char *string2, int length2,
|
||||
@ -489,19 +477,12 @@ extern int re_search_2
|
||||
|
||||
/* Like `re_search', but return how many characters in STRING the regexp
|
||||
in BUFFER matched, starting at position START. */
|
||||
extern int __re_match
|
||||
_RE_ARGS ((struct re_pattern_buffer *buffer, const char *string,
|
||||
int length, int start, struct re_registers *regs));
|
||||
extern int re_match
|
||||
_RE_ARGS ((struct re_pattern_buffer *buffer, const char *string,
|
||||
int length, int start, struct re_registers *regs));
|
||||
|
||||
|
||||
/* Relates to `re_match' as `re_search_2' relates to `re_search'. */
|
||||
extern int __re_match_2
|
||||
_RE_ARGS ((struct re_pattern_buffer *buffer, const char *string1,
|
||||
int length1, const char *string2, int length2,
|
||||
int start, struct re_registers *regs, int stop));
|
||||
extern int re_match_2
|
||||
_RE_ARGS ((struct re_pattern_buffer *buffer, const char *string1,
|
||||
int length1, const char *string2, int length2,
|
||||
@ -520,9 +501,6 @@ extern int re_match_2
|
||||
Unless this function is called, the first search or match using
|
||||
PATTERN_BUFFER will allocate its own register data, without
|
||||
freeing the old data. */
|
||||
extern void __re_set_registers
|
||||
_RE_ARGS ((struct re_pattern_buffer *buffer, struct re_registers *regs,
|
||||
unsigned num_regs, regoff_t *starts, regoff_t *ends));
|
||||
extern void re_set_registers
|
||||
_RE_ARGS ((struct re_pattern_buffer *buffer, struct re_registers *regs,
|
||||
unsigned num_regs, regoff_t *starts, regoff_t *ends));
|
||||
@ -536,24 +514,16 @@ extern int re_exec _RE_ARGS ((const char *));
|
||||
#endif
|
||||
|
||||
/* POSIX compatibility. */
|
||||
extern int __regcomp _RE_ARGS ((regex_t *__preg, const char *__pattern,
|
||||
int __cflags));
|
||||
extern int regcomp _RE_ARGS ((regex_t *__preg, const char *__pattern,
|
||||
int __cflags));
|
||||
|
||||
extern int __regexec _RE_ARGS ((const regex_t *__preg,
|
||||
const char *__string, size_t __nmatch,
|
||||
regmatch_t __pmatch[], int __eflags));
|
||||
extern int regexec _RE_ARGS ((const regex_t *__preg,
|
||||
const char *__string, size_t __nmatch,
|
||||
regmatch_t __pmatch[], int __eflags));
|
||||
|
||||
extern size_t __regerror _RE_ARGS ((int __errcode, const regex_t *__preg,
|
||||
char *__errbuf, size_t __errbuf_size));
|
||||
extern size_t regerror _RE_ARGS ((int __errcode, const regex_t *__preg,
|
||||
char *__errbuf, size_t __errbuf_size));
|
||||
|
||||
extern void __regfree _RE_ARGS ((regex_t *__preg));
|
||||
extern void regfree _RE_ARGS ((regex_t *__preg));
|
||||
|
||||
|
||||
|
@ -402,7 +402,6 @@ extern int lchown __P ((__const char *__file, __uid_t __owner,
|
||||
#endif /* Use BSD || X/Open Unix. */
|
||||
|
||||
/* Change the process's working directory to PATH. */
|
||||
extern int __chdir __P ((__const char *__path));
|
||||
extern int chdir __P ((__const char *__path));
|
||||
|
||||
#if defined __USE_BSD || defined __USE_XOPEN_EXTENDED
|
||||
|
@ -130,21 +130,11 @@ extern struct hostent *gethostbyname2 __P ((__const char *__name, int __af));
|
||||
argument is a pointer to a variable which gets the value which
|
||||
would be stored in the global variable `herrno' by the
|
||||
non-reentrant functions. */
|
||||
extern int __gethostent_r __P ((struct hostent *__restrict __result_buf,
|
||||
char *__restrict __buf, size_t __buflen,
|
||||
struct hostent **__restrict __result,
|
||||
int *__restrict __h_errnop));
|
||||
extern int gethostent_r __P ((struct hostent *__restrict __result_buf,
|
||||
char *__restrict __buf, size_t __buflen,
|
||||
struct hostent **__restrict __result,
|
||||
int *__restrict __h_errnop));
|
||||
|
||||
extern int __gethostbyaddr_r __P ((__const char *__restrict __addr,
|
||||
int __len, int __type,
|
||||
struct hostent *__restrict __result_buf,
|
||||
char *__restrict __buf, size_t __buflen,
|
||||
struct hostent **__restrict __result,
|
||||
int *__restrict __h_errnop));
|
||||
extern int gethostbyaddr_r __P ((__const char *__restrict __addr, int __len,
|
||||
int __type,
|
||||
struct hostent *__restrict __result_buf,
|
||||
@ -152,22 +142,12 @@ extern int gethostbyaddr_r __P ((__const char *__restrict __addr, int __len,
|
||||
struct hostent **__restrict __result,
|
||||
int *__restrict __h_errnop));
|
||||
|
||||
extern int __gethostbyname_r __P ((__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 gethostbyname_r __P ((__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 __P ((__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 gethostbyname2_r __P ((__const char *__restrict __name, int __af,
|
||||
struct hostent *__restrict __result_buf,
|
||||
char *__restrict __buf, size_t __buflen,
|
||||
@ -225,31 +205,17 @@ extern struct netent *getnetbyname __P ((__const char *__name));
|
||||
argument is a pointer to a variable which gets the value which
|
||||
would be stored in the global variable `herrno' by the
|
||||
non-reentrant functions. */
|
||||
extern int __getnetent_r __P ((struct netent *__restrict __result_buf,
|
||||
char *__restrict __buf, size_t __buflen,
|
||||
struct netent **__restrict __result,
|
||||
int *__restrict __h_errnop));
|
||||
extern int getnetent_r __P ((struct netent *__restrict __result_buf,
|
||||
char *__restrict __buf, size_t __buflen,
|
||||
struct netent **__restrict __result,
|
||||
int *__restrict __h_errnop));
|
||||
|
||||
extern int __getnetbyaddr_r __P ((unsigned long int __net, int __type,
|
||||
struct netent *__restrict __result_buf,
|
||||
char *__restrict __buf, size_t __buflen,
|
||||
struct netent **__restrict __result,
|
||||
int *__restrict __h_errnop));
|
||||
extern int getnetbyaddr_r __P ((unsigned long int __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 __P ((__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 getnetbyname_r __P ((__const char *__restrict __name,
|
||||
struct netent *__restrict __result_buf,
|
||||
char *__restrict __buf, size_t __buflen,
|
||||
@ -291,29 +257,16 @@ extern struct servent *getservbyport __P ((int __port, __const char *__proto));
|
||||
#ifdef __USE_MISC
|
||||
/* Reentrant versions of the functions above. The additional
|
||||
arguments specify a buffer of BUFLEN starting at BUF. */
|
||||
extern int __getservent_r __P ((struct servent *__restrict __result_buf,
|
||||
char *__restrict __buf, size_t __buflen,
|
||||
struct servent **__restrict __result));
|
||||
extern int getservent_r __P ((struct servent *__restrict __result_buf,
|
||||
char *__restrict __buf, size_t __buflen,
|
||||
struct servent **__restrict __result));
|
||||
|
||||
extern int __getservbyname_r __P ((__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 getservbyname_r __P ((__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 __P ((int __port,
|
||||
__const char *__restrict __proto,
|
||||
struct servent *__restrict __result_buf,
|
||||
char *__restrict __buf, size_t __buflen,
|
||||
struct servent **__restrict __result));
|
||||
extern int getservbyport_r __P ((int __port, __const char *__restrict __proto,
|
||||
struct servent *__restrict __result_buf,
|
||||
char *__restrict __buf, size_t __buflen,
|
||||
@ -350,26 +303,15 @@ extern struct protoent *getprotobynumber __P ((int __proto));
|
||||
#ifdef __USE_MISC
|
||||
/* Reentrant versions of the functions above. The additional
|
||||
arguments specify a buffer of BUFLEN starting at BUF. */
|
||||
extern int __getprotoent_r __P ((struct protoent *__restrict __result_buf,
|
||||
char *__restrict __buf, size_t __buflen,
|
||||
struct protoent **__restrict __result));
|
||||
extern int getprotoent_r __P ((struct protoent *__restrict __result_buf,
|
||||
char *__restrict __buf, size_t __buflen,
|
||||
struct protoent **__restrict __result));
|
||||
|
||||
extern int __getprotobyname_r __P ((__const char *__restrict __name,
|
||||
struct protoent *__restrict __result_buf,
|
||||
char *__restrict __buf, size_t __buflen,
|
||||
struct protoent **__restrict __result));
|
||||
extern int getprotobyname_r __P ((__const char *__restrict __name,
|
||||
struct protoent *__restrict __result_buf,
|
||||
char *__restrict __buf, size_t __buflen,
|
||||
struct protoent **__restrict __result));
|
||||
|
||||
extern int __getprotobynumber_r __P ((int __proto,
|
||||
struct protoent *__restrict __res_buf,
|
||||
char *__restrict __buf, size_t __buflen,
|
||||
struct protoent **__restrict __result));
|
||||
extern int getprotobynumber_r __P ((int __proto,
|
||||
struct protoent *__restrict __result_buf,
|
||||
char *__restrict __buf, size_t __buflen,
|
||||
@ -395,10 +337,6 @@ extern int innetgr __P ((__const char *__netgroup, __const char *__host,
|
||||
|
||||
#ifdef __USE_MISC
|
||||
/* Reentrant version of `getnetgrent' where result is placed in BUFFER. */
|
||||
extern int __getnetgrent_r __P ((char **__restrict __hostp,
|
||||
char **__restrict __userp,
|
||||
char **__restrict __domainp,
|
||||
char *__restrict __buffer, size_t __buflen));
|
||||
extern int getnetgrent_r __P ((char **__restrict __hostp,
|
||||
char **__restrict __userp,
|
||||
char **__restrict __domainp,
|
||||
|
@ -109,7 +109,6 @@ extern char *strdup __P ((__const char *__s));
|
||||
/* Return a malloc'd copy of at most N bytes of STRING. The
|
||||
resultant string is terminated even if no null terminator
|
||||
appears before STRING[N]. */
|
||||
extern char *__strndup __P ((__const char *__string, size_t __n));
|
||||
#if defined __USE_GNU
|
||||
extern char *strndup __P ((__const char *__string, size_t __n));
|
||||
#endif
|
||||
@ -251,8 +250,6 @@ extern int __strcasecmp __P ((__const char *__s1, __const char *__s2));
|
||||
extern int strcasecmp __P ((__const char *__s1, __const char *__s2));
|
||||
|
||||
/* Compare no more than N chars of S1 and S2, ignoring case. */
|
||||
extern int __strncasecmp __P ((__const char *__s1, __const char *__s2,
|
||||
size_t __n));
|
||||
extern int strncasecmp __P ((__const char *__s1, __const char *__s2,
|
||||
size_t __n));
|
||||
#endif /* Use BSD or X/Open Unix. */
|
||||
|
@ -54,8 +54,6 @@ struct timezone
|
||||
Returns 0 on success, -1 on errors.
|
||||
NOTE: This form of timezone information is obsolete.
|
||||
Use the functions and variables declared in <time.h> instead. */
|
||||
extern int __gettimeofday __P ((struct timeval *__tv,
|
||||
struct timezone *__tz));
|
||||
extern int gettimeofday __P ((struct timeval *__tv,
|
||||
struct timezone *__tz));
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user