reversed back to GLibC 2.2.5, added a Jamfile

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11641 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Jérôme Duval
2005-03-10 18:40:25 +00:00
parent 42164a871c
commit 6364ac2487
3 changed files with 88 additions and 118 deletions
@@ -0,0 +1,11 @@
SubDir OBOS_TOP src kernel libroot posix glibc ctype ;
SubDirHdrs $(OBOS_TOP) src kernel libroot posix glibc include arch $(OBOS_ARCH) ;
SubDirHdrs $(OBOS_TOP) src kernel libroot posix glibc include ;
SubDirHdrs $(OBOS_TOP) src kernel libroot posix glibc locale ;
SubDirHdrs $(OBOS_TOP) src kernel libroot posix glibc ;
KernelMergeObject posix_gnu_ctype.o :
ctype-info.c
: -fPIC -DPIC
;
@@ -1,4 +1,4 @@
/* Copyright (C) 1991,92,95,96,97,99,2000,02 Free Software Foundation, Inc. /* Copyright (C) 1991, 92, 95, 96, 97, 99, 2000 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@@ -16,35 +16,29 @@
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */ 02111-1307 USA. */
#define CTYPE_EXTERN_INLINE /* Define real functions for accessors. */
#include <ctype.h> #include <ctype.h>
#include <locale/localeinfo.h> #include <locale/localeinfo.h>
__libc_tsd_define (, CTYPE_B)
__libc_tsd_define (, CTYPE_TOLOWER)
__libc_tsd_define (, CTYPE_TOUPPER)
#include <shlib-compat.h>
#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3)
/* Defined in locale/C-ctype.c. */ /* Defined in locale/C-ctype.c. */
extern const char _nl_C_LC_CTYPE_class[] attribute_hidden; extern const char _nl_C_LC_CTYPE_class[];
extern const char _nl_C_LC_CTYPE_class32[] attribute_hidden; extern const char _nl_C_LC_CTYPE_class32[];
extern const char _nl_C_LC_CTYPE_toupper[] attribute_hidden; extern const char _nl_C_LC_CTYPE_toupper[];
extern const char _nl_C_LC_CTYPE_tolower[] attribute_hidden; extern const char _nl_C_LC_CTYPE_tolower[];
extern const char _nl_C_LC_CTYPE_class_upper[] attribute_hidden; extern const char _nl_C_LC_CTYPE_class_upper[];
extern const char _nl_C_LC_CTYPE_class_lower[] attribute_hidden; extern const char _nl_C_LC_CTYPE_class_lower[];
extern const char _nl_C_LC_CTYPE_class_alpha[] attribute_hidden; extern const char _nl_C_LC_CTYPE_class_alpha[];
extern const char _nl_C_LC_CTYPE_class_digit[] attribute_hidden; extern const char _nl_C_LC_CTYPE_class_digit[];
extern const char _nl_C_LC_CTYPE_class_xdigit[] attribute_hidden; extern const char _nl_C_LC_CTYPE_class_xdigit[];
extern const char _nl_C_LC_CTYPE_class_space[] attribute_hidden; extern const char _nl_C_LC_CTYPE_class_space[];
extern const char _nl_C_LC_CTYPE_class_print[] attribute_hidden; extern const char _nl_C_LC_CTYPE_class_print[];
extern const char _nl_C_LC_CTYPE_class_graph[] attribute_hidden; extern const char _nl_C_LC_CTYPE_class_graph[];
extern const char _nl_C_LC_CTYPE_class_blank[] attribute_hidden; extern const char _nl_C_LC_CTYPE_class_blank[];
extern const char _nl_C_LC_CTYPE_class_cntrl[] attribute_hidden; extern const char _nl_C_LC_CTYPE_class_cntrl[];
extern const char _nl_C_LC_CTYPE_class_punct[] attribute_hidden; extern const char _nl_C_LC_CTYPE_class_punct[];
extern const char _nl_C_LC_CTYPE_class_alnum[] attribute_hidden; extern const char _nl_C_LC_CTYPE_class_alnum[];
extern const char _nl_C_LC_CTYPE_map_toupper[];
extern const char _nl_C_LC_CTYPE_map_tolower[];
extern const char _nl_C_LC_CTYPE_width[];
#define b(t,x,o) (((const t *) _nl_C_LC_CTYPE_##x) + o) #define b(t,x,o) (((const t *) _nl_C_LC_CTYPE_##x) + o)
@@ -54,12 +48,24 @@ const __int32_t *__ctype_tolower = b (__int32_t, tolower, 128);
const __int32_t *__ctype_toupper = b (__int32_t, toupper, 128); const __int32_t *__ctype_toupper = b (__int32_t, toupper, 128);
const __uint32_t *__ctype32_tolower = b (__uint32_t, tolower, 128); const __uint32_t *__ctype32_tolower = b (__uint32_t, tolower, 128);
const __uint32_t *__ctype32_toupper = b (__uint32_t, toupper, 128); const __uint32_t *__ctype32_toupper = b (__uint32_t, toupper, 128);
const char *__ctype32_wctype[12] =
compat_symbol (libc, __ctype_b, __ctype_b, GLIBC_2_0); {
compat_symbol (libc, __ctype_tolower, __ctype_tolower, GLIBC_2_0); b(char, class_upper, 32),
compat_symbol (libc, __ctype_toupper, __ctype_toupper, GLIBC_2_0); b(char, class_lower, 32),
compat_symbol (libc, __ctype32_b, __ctype32_b, GLIBC_2_0); b(char, class_alpha, 32),
compat_symbol (libc, __ctype32_tolower, __ctype32_tolower, GLIBC_2_2); b(char, class_digit, 32),
compat_symbol (libc, __ctype32_toupper, __ctype32_toupper, GLIBC_2_2); b(char, class_xdigit, 32),
b(char, class_space, 32),
#endif b(char, class_print, 32),
b(char, class_graph, 32),
b(char, class_blank, 32),
b(char, class_cntrl, 32),
b(char, class_punct, 32),
b(char, class_alnum, 32)
};
const char *__ctype32_wctrans[2] =
{
b(char, map_toupper, 0),
b(char, map_tolower, 0)
};
const char *__ctype32_width = b (char, width, 0);
+33 -80
View File
@@ -1,5 +1,4 @@
/* Copyright (C) 1991,92,93,95,96,97,98,99,2001,02 /* Copyright (C) 1991,92,93,95,96,97,98,99,2001 Free Software Foundation, Inc.
Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@@ -65,11 +64,6 @@ enum
/* These are defined in ctype-info.c. /* These are defined in ctype-info.c.
The declarations here must match those in localeinfo.h. The declarations here must match those in localeinfo.h.
In the thread-specific locale model (see `uselocale' in <locale.h>)
we cannot use global variables for these as was done in the past.
Instead, the following accessor functions return the address of
each variable, which is local to the current thread if multithreaded.
These point into arrays of 384, so they can be indexed by any `unsigned These point into arrays of 384, so they can be indexed by any `unsigned
char' value [0,255]; by EOF (-1); or by any `signed char' value char' value [0,255]; by EOF (-1); or by any `signed char' value
[-128,-1). ISO C requires that the ctype functions work for `unsigned [-128,-1). ISO C requires that the ctype functions work for `unsigned
@@ -78,23 +72,18 @@ enum
rather than `unsigned char's because tolower (EOF) must be EOF, which rather than `unsigned char's because tolower (EOF) must be EOF, which
doesn't fit into an `unsigned char'. But today more important is that doesn't fit into an `unsigned char'. But today more important is that
the arrays are also used for multi-byte character sets. */ the arrays are also used for multi-byte character sets. */
extern __const uint16_t **__ctype_b_loc (void) extern __const unsigned short int *__ctype_b; /* Characteristics. */
__attribute__ ((__const)); extern __const __int32_t *__ctype_tolower; /* Case conversions. */
extern __const int32_t **__ctype_tolower_loc (void) extern __const __int32_t *__ctype_toupper; /* Case conversions. */
__attribute__ ((__const));
extern __const int32_t **__ctype_toupper_loc (void)
__attribute__ ((__const));
#define __isctype(c, type) \ #define __isctype(c, type) \
((*__ctype_b_loc ())[(int) (c)] & (unsigned short int) type) (__ctype_b[(int) (c)] & (unsigned short int) type)
#define __isascii(c) (((c) & ~0x7f) == 0) /* If C is a 7 bit value. */ #define __isascii(c) (((c) & ~0x7f) == 0) /* If C is a 7 bit value. */
#define __toascii(c) ((c) & 0x7f) /* Mask off high bits. */ #define __toascii(c) ((c) & 0x7f) /* Mask off high bits. */
#define __exctype(name) extern int name (int) __THROW #define __exctype(name) extern int name (int) __THROW
__BEGIN_NAMESPACE_STD
/* The following names are all functions: /* The following names are all functions:
int isCHARACTERISTIC(int c); int isCHARACTERISTIC(int c);
which return nonzero iff C has CHARACTERISTIC. which return nonzero iff C has CHARACTERISTIC.
@@ -111,6 +100,10 @@ __exctype (isspace);
__exctype (isupper); __exctype (isupper);
__exctype (isxdigit); __exctype (isxdigit);
#ifdef __USE_ISOC99
__exctype (isblank);
#endif
/* Return the lowercase version of C. */ /* Return the lowercase version of C. */
extern int tolower (int __c) __THROW; extern int tolower (int __c) __THROW;
@@ -118,22 +111,6 @@ extern int tolower (int __c) __THROW;
/* Return the uppercase version of C. */ /* Return the uppercase version of C. */
extern int toupper (int __c) __THROW; extern int toupper (int __c) __THROW;
__END_NAMESPACE_STD
/* ISO C99 introduced one new function. */
#ifdef __USE_ISOC99
__BEGIN_NAMESPACE_C99
__exctype (isblank);
__END_NAMESPACE_C99
#endif
#ifdef __USE_GNU
/* Test C for a set of character classes according to MASK. */
extern int isctype (int __c, int __mask) __THROW;
#endif
#if defined __USE_SVID || defined __USE_MISC || defined __USE_XOPEN #if defined __USE_SVID || defined __USE_MISC || defined __USE_XOPEN
@@ -160,16 +137,16 @@ __exctype (_tolower);
if (__builtin_constant_p (c)) \ if (__builtin_constant_p (c)) \
{ \ { \
int __c = (c); \ int __c = (c); \
__res = __c < -128 || __c > 255 ? __c : (a)[__c]; \ __res = __c < -128 || __c > 255 ? __c : a[__c]; \
} \ } \
else \ else \
__res = f args; \ __res = f args; \
} \ } \
else \ else \
__res = (a)[(int) (c)]; \ __res = a[(int) (c)]; \
__res; })) __res; }))
#if !defined __NO_CTYPE && !defined __cplusplus #ifndef __NO_CTYPE
# define isalnum(c) __isctype((c), _ISalnum) # define isalnum(c) __isctype((c), _ISalnum)
# define isalpha(c) __isctype((c), _ISalpha) # define isalpha(c) __isctype((c), _ISalpha)
# define iscntrl(c) __isctype((c), _IScntrl) # define iscntrl(c) __isctype((c), _IScntrl)
@@ -190,27 +167,27 @@ __exctype (_tolower);
extern __inline int extern __inline int
tolower (int __c) __THROW tolower (int __c) __THROW
{ {
return __c >= -128 && __c < 256 ? (*__ctype_tolower_loc ())[__c] : __c; return __c >= -128 && __c < 256 ? __ctype_tolower[__c] : __c;
} }
extern __inline int extern __inline int
toupper (int __c) __THROW toupper (int __c) __THROW
{ {
return __c >= -128 && __c < 256 ? (*__ctype_toupper_loc ())[__c] : __c; return __c >= -128 && __c < 256 ? __ctype_toupper[__c] : __c;
} }
# endif # endif
# if __GNUC__ >= 2 && defined __OPTIMIZE__ && !defined __cplusplus # if __GNUC__ >= 2 && defined __OPTIMIZE__ && !defined __cplusplus
# define tolower(c) __tobody (c, tolower, *__ctype_tolower_loc (), (c)) # define tolower(c) __tobody (c, tolower, __ctype_tolower, (c))
# define toupper(c) __tobody (c, toupper, *__ctype_toupper_loc (), (c)) # define toupper(c) __tobody (c, toupper, __ctype_toupper, (c))
# endif /* Optimizing gcc */ # endif /* Optimizing gcc */
# if defined __USE_SVID || defined __USE_MISC || defined __USE_XOPEN # if defined __USE_SVID || defined __USE_MISC || defined __USE_XOPEN
# define isascii(c) __isascii (c) # define isascii(c) __isascii (c)
# define toascii(c) __toascii (c) # define toascii(c) __toascii (c)
# define _tolower(c) ((int) (*__ctype_tolower_loc ())[(int) (c)]) # define _tolower(c) ((int) __ctype_tolower[(int) (c)])
# define _toupper(c) ((int) (*__ctype_toupper_loc ())[(int) (c)]) # define _toupper(c) ((int) __ctype_toupper[(int) (c)])
# endif # endif
#endif /* Not __NO_CTYPE. */ #endif /* Not __NO_CTYPE. */
@@ -237,43 +214,38 @@ toupper (int __c) __THROW
# define __isctype_l(c, type, locale) \ # define __isctype_l(c, type, locale) \
((locale)->__ctype_b[(int) (c)] & (unsigned short int) type) ((locale)->__ctype_b[(int) (c)] & (unsigned short int) type)
# define __exctype_l(name) \ # define __exctype_l(name) extern int name (int, __locale_t) __THROW
extern int name (int, __locale_t) __THROW
/* The following names are all functions: /* The following names are all functions:
int isCHARACTERISTIC(int c, locale_t *locale); int isCHARACTERISTIC(int c, locale_t *locale);
which return nonzero iff C has CHARACTERISTIC. which return nonzero iff C has CHARACTERISTIC.
For the meaning of the characteristic names, see the `enum' above. */ For the meaning of the characteristic names, see the `enum' above. */
__exctype_l (isalnum_l); __exctype_l (__isalnum_l);
__exctype_l (isalpha_l); __exctype_l (__isalpha_l);
__exctype_l (iscntrl_l); __exctype_l (__iscntrl_l);
__exctype_l (isdigit_l); __exctype_l (__isdigit_l);
__exctype_l (islower_l); __exctype_l (__islower_l);
__exctype_l (isgraph_l); __exctype_l (__isgraph_l);
__exctype_l (isprint_l); __exctype_l (__isprint_l);
__exctype_l (ispunct_l); __exctype_l (__ispunct_l);
__exctype_l (isspace_l); __exctype_l (__isspace_l);
__exctype_l (isupper_l); __exctype_l (__isupper_l);
__exctype_l (isxdigit_l); __exctype_l (__isxdigit_l);
__exctype_l (isblank_l); __exctype_l (__isblank_l);
/* Return the lowercase version of C in locale L. */ /* Return the lowercase version of C in locale L. */
extern int __tolower_l (int __c, __locale_t __l) __THROW; extern int __tolower_l (int __c, __locale_t __l) __THROW;
extern int tolower_l (int __c, __locale_t __l) __THROW;
/* Return the uppercase version of C. */ /* Return the uppercase version of C. */
extern int __toupper_l (int __c, __locale_t __l) __THROW; extern int __toupper_l (int __c, __locale_t __l) __THROW;
extern int toupper_l (int __c, __locale_t __l) __THROW;
# if __GNUC__ >= 2 && defined __OPTIMIZE__ && !defined __cplusplus # if __GNUC__ >= 2 && defined __OPTIMIZE__ && !defined __cplusplus
# define __tolower_l(c, locale) \ # define __tolower_l(c, locale) \
__tobody (c, __tolower_l, (locale)->__ctype_tolower, (c, locale)) __tobody (c, __tolower_l, (locale)->__ctype_tolower, (c, locale))
# define __toupper_l(c, locale) \ # define __toupper_l(c, locale) \
__tobody (c, __toupper_l, (locale)->__ctype_toupper, (c, locale)) __tobody (c, __toupper_l, (locale)->__ctype_toupper, (c, locale))
# define tolower_l(c, locale) __tolower_l ((c), (locale))
# define toupper_l(c, locale) __toupper_l ((c), (locale))
# endif /* Optimizing gcc */ # endif /* Optimizing gcc */
@@ -293,27 +265,8 @@ extern int toupper_l (int __c, __locale_t __l) __THROW;
# define __isblank_l(c,l) __isctype_l((c), _ISblank, (l)) # define __isblank_l(c,l) __isctype_l((c), _ISblank, (l))
# if defined __USE_SVID || defined __USE_MISC || defined __USE_XOPEN # if defined __USE_SVID || defined __USE_MISC || defined __USE_XOPEN
# define __isascii_l(c,l) ((l), __isascii (c)) # define __isascii_l(c,l) __isascii(c)
# define __toascii_l(c,l) ((l), __toascii (c)) # define __toascii_l(c,l) __toascii(c)
# endif
# define isalnum_l(c,l) __isalnum_l ((c), (l))
# define isalpha_l(c,l) __isalpha_l ((c), (l))
# define iscntrl_l(c,l) __iscntrl_l ((c), (l))
# define isdigit_l(c,l) __isdigit_l ((c), (l))
# define islower_l(c,l) __islower_l ((c), (l))
# define isgraph_l(c,l) __isgraph_l ((c), (l))
# define isprint_l(c,l) __isprint_l ((c), (l))
# define ispunct_l(c,l) __ispunct_l ((c), (l))
# define isspace_l(c,l) __isspace_l ((c), (l))
# define isupper_l(c,l) __isupper_l ((c), (l))
# define isxdigit_l(c,l) __isxdigit_l ((c), (l))
# define isblank_l(c,l) __isblank_l ((c), (l))
# if defined __USE_SVID || defined __USE_MISC || defined __USE_XOPEN
# define isascii_l(c,l) __isascii_l ((c), (l))
# define toascii_l(c,l) __toascii_l ((c), (l))
# endif # endif
# endif /* Not __NO_CTYPE. */ # endif /* Not __NO_CTYPE. */