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:
Ulrich Drepper 1998-12-08 13:12:47 +00:00
parent b38bb8ca8c
commit 5c2a0669c1
26 changed files with 6273 additions and 5733 deletions

View File

@ -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
View File

@ -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

325
configure vendored

File diff suppressed because it is too large Load Diff

View File

@ -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)

View File

@ -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. */ \

View File

@ -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; \
@ -630,6 +641,41 @@ gconv_end (struct gconv_step *data)
*outptr++ = buf[0]; \
*outptr++ = buf[1]; \
} \
else \
{ \
written = ucs4_to_jisx0201 (ch, buf); \
if (written != UNKNOWN_10646_CHAR && buf[0] >= 0x80) \
{ \
/* We use JIS X 0201. */ \
*outptr++ = ESC; \
*outptr++ = '('; \
*outptr++ = 'I'; \
set = JISX0201_Kana_set; \
\
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++ = ch; \
} \
else \
{ \
written = ucs4_to_gb2312 (ch, buf, 2); \
@ -656,7 +702,8 @@ gconv_end (struct gconv_step *data)
if (written != UNKNOWN_10646_CHAR) \
{ \
/* We use KSC 5601. */ \
if (outptr + 4 > outend) \
if (NEED_LENGTH_TEST \
&& outptr + 4 > outend) \
{ \
result = GCONV_FULL_OUTPUT; \
break; \
@ -687,6 +734,7 @@ gconv_end (struct gconv_step *data)
} \
} \
} \
} \
} \
\
/* Now that we wrote the output increment the input pointer. */ \

View File

@ -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;

File diff suppressed because it is too large Load Diff

View File

@ -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;

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -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

View File

@ -1 +1,8 @@
#ifndef _MATH_H
#include <math/math.h>
/* Now define the internal interfaces. */
extern int __matherr __P ((struct exception *__exc));
#endif

View File

@ -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 */

View File

@ -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

View File

@ -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

View File

@ -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,

View File

@ -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));

View File

@ -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

View File

@ -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

View File

@ -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>

View File

@ -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));

View File

@ -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

View File

@ -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,

View File

@ -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. */

View File

@ -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));