about summary refs log tree commit diff
path: root/wctype
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1997-12-22 20:53:38 +0000
committerUlrich Drepper <drepper@redhat.com>1997-12-22 20:53:38 +0000
commit9756dfe161e523a5d543fb2b1f33a7e682a36342 (patch)
tree88c91bf4a7cb829a3aeb1c0c5d2d529dfaa85b85 /wctype
parentbd355af04fc1df69d4ebb6733be170b9baf0dfb5 (diff)
downloadglibc-9756dfe161e523a5d543fb2b1f33a7e682a36342.tar.gz
glibc-9756dfe161e523a5d543fb2b1f33a7e682a36342.tar.xz
glibc-9756dfe161e523a5d543fb2b1f33a7e682a36342.zip
1997-12-22 18:10  Ulrich Drepper  <drepper@cygnus.com>

	* configure.in: Stop with error if --disable-static is used when
	the shared lib uses this library.

	* gen-FAQ.pl: I've perl installed in /usr/bin.

	* include/bits/xopen_lim.h (STREAM_MAX): Define using FOPEN_MAX.

	Fix Unix98 conformance problems in the headers.
	* catgets/nl_types.h: Define nl_item.
	* grp/grp.h: Define gid_t.
	* include/features.h [_POSIX_C_SOURCE]: Don't define _XOPEN_SOURCE.
	* include/nl_types.h: New file.
	* include/ulimit.h: New file.
	* io/fcntl.h: Include sys/stat.h for Unix98.  Don't define locking
	constants in POSIX mode.
	* io/utime.h: Get definition for time_t.
	* io/sys/stat.h: Define dev_t, gid_t, ino_t, mode_t, nlink_t, off_t,
	uid_t, pid_t.  Define D_IFLNK and S_IFSOCK only if !__USE_UNIX98.
	* libio/stdio.h: Define va_list.  Make snprintf also available is
	__USE_UNIX98.  Declare getopt function and variables.
	* locale/langinfo.h: Include nl_types.h.  Don't define nl_item.
	Define CODESET, CRNCYSTR, RADIXCHAR and THOUSEP as aliases.
	* math/math.h: Defined M_* constants as double for Unix98 mode.
	* posix/fnmatch.h: Pretty print.  Define FNM_NOSYS.
	* posix/glob.h: Pretty print.  Define GLOB_NOSYS.
	* posix/regex.h: Define REG_NOSYS.
	* posix/wordexp.h: Define WRDE_NOSYS.
	* posix/unistd.h: Define _POSIX2_VERSION.  Define _XOPEN_VERSION to
	500 for Unix98.
	* posix/sys/types.h: Alloc dev_t, mode_t, nlink_t to be defined
	somewhere else as well.  Define clock_t for Unix98.
	* posix/sys/wait.h: Define pid_t.
	* pwd/pwd.h: Define gid_t, uid_t.
	* resource/Makefile (headers): Add ulimit.h.
	* resource/ulimit.h: New file.
	* sysdeps/generic/ulimit.c: Define according to X/Open using varargs
	instead of second argument.
	* sysdeps/unix/bsd/ulimit.c: Likewise.  Use UL_* constants.
	* sysdeps/unix/sysv/linux/ulimit.c: Likewise.
	* resource/sys/resource.h: Don't declare ulimit here, include ulimit.h.
	* signal/signal.h: Define pid_t.
	* string/string.h: Don't declare BSD string functions in POSIX mode.
	* sysdeps/generic/bits/confname.h: Define _PC_VDISABLE.  Add
	_SC_XOPEN_LEGACY, _SC_XOPEN_REALTIME and _SC_XOPEN_REALTIME_THREADS.
	* sysdeps/unix/sysv/linux/bits/termios.h: Clean namespace for Unix98
	and POSIX.

	* inet/test_ifindex.c: Change test so that it does not fail for
	interface aliases.

	* locale/programs/locale.c (show_info): Use correct cast sequence
	for 64bit machines.

	* malloc/malloc.c: __malloc_initialized now signals three states:
	uninitialized, initializing, initialized.  Used in mcheck.
	* malloc/mcheck.c (mabort): Add '\n' to messages.
	(mcheck): Allow installation when malloc is uninitialized or is
	just initializing.

	* manual/memory.texi: Explain mtrace output a bit more.

	* math/libm-test.c: Add more epsilons.

	* misc/regexp.h (compile): Remove __ prefix from parameter names.

	* nis/nss_nis/nis-ethers.c (internal_nis_getetherent_r): Use strncpy
	instead of strcpy for security.
	* nis/nss_nis/nis-proto.c (internal_nis_getprotoent_r): Likewise.
	* nis/nss_nis/nis-rpc.c (internal_nis_getrpcent_r): Likewise.
	* nis/nss_nis/nis-service.c (internal_nis_getservent_r): Likewise.

	* nss/digits_dots.c: Pretty print.

	* posix/getconf.c (vars): Add symbols for programming environment
	recognition.  Recognize --version.

	* sysdeps/generic/sysconf.c: Handle _SC_XBS5_*, _SC_XOPEN_LEGACY,
	_SC_XOPEN_REALTIME, and _SC_XOPEN_REALTIME_THREADS.
	* sysdeps/posix/sysconf.c: Handle _SC_XBS5_* and new _XOPEN_* symbols.

	* sysdeps/generic/bits/stdio_lim.h: Implement handling of
	__need_FOPEN_MAX.
	* sysdeps/unix/sysv/linux/stdio_lim.h.in: Likewise.
	* sysdeps/posix/mk-stdiolim.c: Change to generate file handling
	__need_FOPEN_MAX.

	* sysdeps/unix/sysv/linux/Dist: Add rt_sigpending.c.
	* sysdeps/unix/sysv/linux/rt_sigpending.c: New file.

	* sysdeps/unix/sysv/linux/alpha/bits/types.h: Define __ipc_pid_t.
	* sysdeps/unix/sysv/linux/bits/types.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/bits/types.h: Likewise.
	* sysdeps/unix/sysv/linux/bits/msq.h: Use __ipc_pid_t.
	* sysdeps/unix/sysv/linux/bits/shm.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/bits/types.h: New file.

	* sysdeps/wordsize-32/inttypes.h: Add SCNd8, SCNi8, SCNo8, SCNx8,
	SCNu*.
	* sysdeps/wordsize-64/inttypes.h: Likewise.

	* time/africa: Update from tzdata1997j.
	* time/antarctica: Likewise.
	* time/asia: Likewise.
	* time/australasia: Likewise.
	* time/backward: Likewise.
	* time/etcetera: Likewise.
	* time/europe: Likewise.
	* time/factory: Likewise.
	* time/northamerica: Likewise.
	* time/pacificnew: Likewise.
	* time/southamerica: Likewise.

	* time/tzfile.h: Update from tzcode1997h.
	* time/zic.c: Likewise.

	* wcsmbs/wchar.h: Get definition of FILE.  Define `struct tm' tag.
	Declare wcwidth and wcswidth for __USE_XOPEN.  Declare the
	isw*() functions for Unix98.
	* wctype/towctrans.c: Define as __towctrans, make towctrans weak alias.
	* wctype/wctype.h: Declare isw*() functions also if __need_iswxxx
	is defined.

1997-12-21  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* locale/duplocale.c: Increase usage_count only if less than
	MAX_USAGE_COUNT.
	* locale/freelocale.c: Test usage_count against UNDELETABLE, not
	MAX_USAGE_COUNT.
	* locale/setlocale.c: Likewise.

1997-12-20  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* Makefile ($(inst_includedir)/gnu/stubs.h): Use a more direct
	dependency to make it easier to install it selectively.

	* Makerules (.SUFFIXES): Don't define any suffixes.

1997-12-20  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/generic/fstatfs64.c: Emulate using fstatfs.
	* sysdeps/generic/statfs64.c: Emulate using statfs.
	* sysdeps/generic/getrlimit64.c: Emulate using getrlimit.
	* sysdeps/generic/setrlimit64.c: Emulate using setrlimit.
	* sysdpes/generic/ftruncate64.c: New file.
	* sysdpes/generic/truncate64.c: New file.

	* sysdeps/generic/bits/stat.h: Add LFS support.
	* sysdeps/generic/bits/statfs.h: Likewise.

	* sysdeps/unix/bsd/sun/sunos4/bits/resource.h (RLIM_INFINITY)
	[__USE_FILE_OFFSET64]: Make long long constant.
	(RLIM64_INFINITY): Likewise.

	* sysdeps/unix/sysv/linux/bits/resource.h (RLIM_INFINITY): Correct
	for LFS support.
	(RLIM64_INFINITY) [__USE_LARGEFILE64]: Define.
	* sysdeps/generic/bits/resource.h: Likewise.

	* misc/Makefile (routines): Add truncate64 and ftruncate64.

	* include/features.h: Don't prevent LFS support from defining BSD
	and SYSV things.

	* dirent/dirent.h [__USE_FILE_OFFSET64]: Don't use xxx64 names.
	* io/ftw.h [__USE_FILE_OFFSET64]: Likewise.
	* io/sys/stat.h [__USE_FILE_OFFSET64]: Likewise.

	* sysdeps/unix/sysv/linux/alpha/syscalls.list: Add xxx64 alias for
	fstatfs, statfs, getrlimit, setrlimit, ftruncate and truncate.
	* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise.

	* sysdeps/unix/sysv/linux/alpha/fstatfs64.c: New file.
	* sysdeps/unix/sysv/linux/alpha/statfs64.c: New file.
	* sysdeps/unix/sysv/linux/alpha/getrlimit64.c: New file.
	* sysdeps/unix/sysv/linux/alpha/setrlimit64.c: New file.
	* sysdeps/unix/sysv/linux/alpha/ftruncate64.c: New file.
	* sysdeps/unix/sysv/linux/alpha/truncate64.c: New file.
	* sysdeps/unix/sysv/linux/alpha/readdir.c: New file.
	* sysdeps/unix/sysv/linux/alpha/readdir64.c: New file.
	* sysdeps/unix/sysv/linux/alpha/readdir64_r.c: New file.
	* sysdeps/unix/sysv/linux/alpha/readdir_r.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/fstatfs64.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/statfs64.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/getrlimit64.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/setrlimit64.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/ftruncate64.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/truncate64.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/readdir.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/readdir64.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/readdir64_r.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/readdir_r.c: New file.

	* sysdeps/unix/sysv/linux/fxstat64.c: New file.
	* sysdeps/unix/sysv/linux/lxstat64.c: New file.
	* sysdeps/unix/sysv/linux/xstat64.c: New file.
	* sysdeps/unix/sysv/linux/readdir64.c: New file.
	* sysdeps/unix/sysv/linux/readdir64_r.c: New file.

	* sysdeps/unix/sysv/linux/getdents64.c: New file.
	* sysdeps/unix/sysv/linux/Makefile (sysdep_routines)
	[$(subdir)=dirent]: Add getdents64.
	* sysdeps/unix/sysv/linux/Dist: Add getdents64.c.

	* sysdeps/unix/sysv/linux/xstatconv.c: LFS support.

1997-12-18 12:07  Philip Blundell  <pb@nexus.co.uk>

	* sysdeps/generic/bits/statfs.h (struct statfs64): Added.

	* sysdeps/generic/getrlimit.c: Include <sys/types.h>.
	* sysdeps/generic/getrlimit64.c: Likewise.
	* sysdeps/generic/setrlimit.c: Likewise.
	* sysdeps/generic/setrlimit64.c: Likewise.

1997-12-17 13:57  Philip Blundell  <pb@nexus.co.uk>

	* sysdeps/unix/sysv/linux/siglist.c: Fix compile problem if not
	using versioning.

	* sysdeps/generic/waitid.c: Include <sys/types.h> for id_t.

	* sysdeps/standalone/arm/bits/errno.h (EBUSY): Added.

1997-12-16  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* locale/programs/ld-ctype.c (ctype_output): Clear out the padding
	after the codeset name.

1997-12-16  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* libc.map: Add get_kernel_syms.

1997-12-16  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/generic/testrtsig.h (kernel_has_rtsig): Make
	static.
	* sysdeps/unix/sysv/linux/testrtsig.h (kernel_has_rtsig):
	Likewise.  Fix condition.

1997-12-16  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* libio/Makefile (routines) [$(versioning)=yes]: Add oldiofdopen.

1997-12-15  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/m68k/fpu/bits/mathinline.h: Don't define exp2 inline.
	Define scalbln{,f,l} under __USE_ISOC9X, not __USE_MISC.

1997-12-15  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/unix/sysv/linux/powerpc/syscall.S: Put back.
	* sysdeps/unix/sysv/linux/powerpc/sigreturn.S: Delete this
	instead.  Oops.

1997-12-16  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* configure.in (libc_cv_gcc_alpha_ng_prefix): Correct quoting.

1997-12-16  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* math/libm-test.c (catanh_test): Change epsilon.
	Reported by H.J. Lu.

1997-12-14 19:39  H.J. Lu  <hjl@gnu.org>

	* libc.map (__getpid): Added for linuxthreads.

1997-12-13 21:09  H.J. Lu  <hjl@gnu.org>

	* configure.in (HAVE_DWARF2_UNWIND_INFO_STATIC): Define
	it if gcc uses static variable in DWARF2 unwind information
	for exception support.

	* config.h.in (HAVE_DWARF2_UNWIND_INFO_STATIC): New.

	* elf/soinit.c (__libc_global_ctors, _fini): Handle
	HAVE_DWARF2_UNWIND_INFO_STATIC.

	* libc.map (__register_frame*, __deregister_frame*): Make them
	global.

1997-12-15  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* math/libm-test.c: Add more tests for "normal" values.

1997-12-13  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* stdio-common/printf_fphex.c: Fix printing of long double number
	with a biased exponent of zero.  Fix rounding.

1997-12-13  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sunrpc/rpc_main.c: Accept new flag -$.
	* sunrpc/Makefile (rpcgen-cmd): Pass it here.

1997-12-13  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* Makefile ($(inst_slibdir)/libc-$(version).so): Install the
	dynamic linker first, in case the interface has changed.

1997-12-13  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* nss/nss_files/files-alias.c (get_next_alias): Fix parameter
	order.

1997-12-12  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* math/tgmath.h: Check for double first, for architectures where
	sizeof (long double) == sizeof (double).

1997-12-07  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* math/libm-test.c: New tests for "normal" values added for most
	functions.
Diffstat (limited to 'wctype')
-rw-r--r--wctype/towctrans.c3
-rw-r--r--wctype/wctype.h174
2 files changed, 102 insertions, 75 deletions
diff --git a/wctype/towctrans.c b/wctype/towctrans.c
index 91e591dbb3..b0180fde55 100644
--- a/wctype/towctrans.c
+++ b/wctype/towctrans.c
@@ -23,7 +23,7 @@
 #include "cname-lookup.h"
 
 wint_t
-towctrans (wint_t wc, wctrans_t desc)
+__towctrans (wint_t wc, wctrans_t desc)
 {
   size_t idx;
 
@@ -34,3 +34,4 @@ towctrans (wint_t wc, wctrans_t desc)
 
   return (wint_t) desc[idx];
 }
+weak_alias (__towctrans, towctrans)
diff --git a/wctype/wctype.h b/wctype/wctype.h
index ffa4b25808..8ab8d7b793 100644
--- a/wctype/wctype.h
+++ b/wctype/wctype.h
@@ -22,51 +22,55 @@
  */
 
 #ifndef _WCTYPE_H
-#define _WCTYPE_H	1
 
-#include <features.h>
-#include <bits/types.h>
+#ifndef __need_iswxxx
+# define _WCTYPE_H	1
 
-__BEGIN_DECLS
+# include <features.h>
+# include <bits/types.h>
 
 /* We try to get wint_t from <stddef.h>, but not all GCC versions define it
    there.  So define it ourselves if it remains undefined.  */
-#define __need_wint_t
-#include <stddef.h>
-#ifndef _WINT_T
+# define __need_wint_t
+# include <stddef.h>
+# ifndef _WINT_T
 /* Integral type unchanged by default argument promotions that can
    hold any value corresponding to members of the extended character
    set, as well as at least one value that does not correspond to any
    member of the extended character set.  */
-# define _WINT_T
+#  define _WINT_T
 typedef unsigned int wint_t;
+# endif
+
+/* Constant expression of type `wint_t' whose value does not correspond
+   to any member of the extended character set.  */
+# ifndef WEOF
+#  define WEOF (0xffffffffu)
+# endif
 #endif
+#undef __need_iswxxx
 
-/* Scalar type that can hold values which represent locale-specific
-   character mappings.  */
-typedef __const unsigned int *wctrans_t;
+
+/* The following part is also used in the <wcsmbs.h> header when compiled
+   in the Unix98 compatibility mode.  */
+#ifndef __iswxxx_defined
+# define __iswxxx_defined	1
 
 /* Scalar type that can hold values which represent locale-specific
    character classifications.  */
 typedef unsigned long int wctype_t;
 
-/* Constant expression of type `wint_t' whose value does not correspond
-   to any member of the extended character set.  */
-#ifndef WEOF
-# define WEOF (0xffffffffu)
-#endif
-
-#ifndef _ISbit
+# ifndef _ISbit
 /* The characteristics are stored always in network byte order (big
    endian).  We define the bit value interpretations here dependent on the
    machine's byte order.  */
 
-# include <endian.h>
-# if __BYTE_ORDER == __BIG_ENDIAN
-#  define _ISbit(bit)	(1 << bit)
-# else /* __BYTE_ORDER == __LITTLE_ENDIAN */
-#  define _ISbit(bit)	(bit < 8 ? ((1 << bit) << 8) : ((1 << bit) >> 8))
-# endif
+#  include <endian.h>
+#  if __BYTE_ORDER == __BIG_ENDIAN
+#   define _ISbit(bit)	(1 << bit)
+#  else /* __BYTE_ORDER == __LITTLE_ENDIAN */
+#   define _ISbit(bit)	(bit < 8 ? ((1 << bit) << 8) : ((1 << bit) >> 8))
+#  endif
 
 enum
 {
@@ -83,9 +87,11 @@ enum
   _ISpunct = _ISbit (10),	/* Punctuation.  */
   _ISalnum = _ISbit (11)	/* Alphanumeric.  */
 };
-#endif /* Not _ISbit  */
+# endif /* Not _ISbit  */
 
 
+__BEGIN_DECLS
+
 /*
  * Wide-character classification functions: 7.15.2.1.
  */
@@ -157,54 +163,72 @@ extern int iswctype __P ((wint_t __wc, wctype_t __desc));
  * Wide-character case-mapping functions: 7.15.3.1.
  */
 
+/* Scalar type that can hold values which represent locale-specific
+   character mappings.  */
+typedef __const __int32_t *wctrans_t;
+
 /* Converts an uppercase letter to the corresponding lowercase letter.  */
 extern wint_t towlower __P ((wint_t __wc));
 
 /* Converts an lowercase letter to the corresponding uppercase letter.  */
 extern wint_t towupper __P ((wint_t __wc));
 
-/*
- * Extensible wide-character mapping functions: 7.15.3.2.
- */
-
-/* Construct value that describes a mapping between wide characters
-   identified by the string argument PROPERTY.  */
-extern wctrans_t wctrans __P ((__const char *__property));
-
 /* Map the wide character WC using the mapping described by DESC.  */
-extern wint_t towctrans __P ((wint_t __wc, wctrans_t __desc));
+extern wint_t __towctrans __P ((wint_t __wc, wctrans_t __desc));
 
 
+# ifndef __NO_WCTYPE
+#  define iswalnum(wc)	__iswctype ((wc), _ISalnum)
+#  define iswalpha(wc)	__iswctype ((wc), _ISalpha)
+#  define iswcntrl(wc)	__iswctype ((wc), _IScntrl)
+#  define iswdigit(wc)	__iswctype ((wc), _ISdigit)
+#  define iswlower(wc)	__iswctype ((wc), _ISlower)
+#  define iswgraph(wc)	__iswctype ((wc), _ISgraph)
+#  define iswprint(wc)	__iswctype ((wc), _ISprint)
+#  define iswpunct(wc)	__iswctype ((wc), _ISpunct)
+#  define iswspace(wc)	__iswctype ((wc), _ISspace)
+#  define iswupper(wc)	__iswctype ((wc), _ISupper)
+#  define iswxdigit(wc)	__iswctype ((wc), _ISxdigit)
+
+#  ifdef __USE_GNU
+#   define iswblank(wc)	__iswctype ((wc), _ISblank)
+#  endif
 
-#ifndef	__NO_WCTYPE
-# define iswalnum(wc)	__iswctype ((wc), _ISalnum)
-# define iswalpha(wc)	__iswctype ((wc), _ISalpha)
-# define iswcntrl(wc)	__iswctype ((wc), _IScntrl)
-# define iswdigit(wc)	__iswctype ((wc), _ISdigit)
-# define iswlower(wc)	__iswctype ((wc), _ISlower)
-# define iswgraph(wc)	__iswctype ((wc), _ISgraph)
-# define iswprint(wc)	__iswctype ((wc), _ISprint)
-# define iswpunct(wc)	__iswctype ((wc), _ISpunct)
-# define iswspace(wc)	__iswctype ((wc), _ISspace)
-# define iswupper(wc)	__iswctype ((wc), _ISupper)
-# define iswxdigit(wc)	__iswctype ((wc), _ISxdigit)
-
-# ifdef	__USE_GNU
-#  define iswblank(wc)	__iswctype ((wc), _ISblank)
-# endif
 
 /* Pointer to conversion tables.  */
 extern __const __int32_t *__ctype_tolower; /* Case conversions.  */
 extern __const __int32_t *__ctype_toupper; /* Case conversions.  */
 
-# define towlower(wc)	towctrans ((wc), __ctype_tolower)
-# define towupper(wc)	towctrans ((wc), __ctype_toupper)
+#  define towlower(wc)	__towctrans ((wc), __ctype_tolower)
+#  define towupper(wc)	__towctrans ((wc), __ctype_toupper)
+
+# endif /* Not __NO_WCTYPE.  */
+
+__END_DECLS
+
+#endif	/* need iswxxx.  */
+
 
-#endif /* Not __NO_WCTYPE.  */
+/* The remaining definitions and declarations must not appear in the
+   <wcsmbs.h> header.  */
+#ifdef _WCTYPE_H
 
-#ifdef __USE_GNU
+/*
+ * Extensible wide-character mapping functions: 7.15.3.2.
+ */
+
+__BEGIN_DECLS
+
+/* Construct value that describes a mapping between wide characters
+   identified by the string argument PROPERTY.  */
+extern wctrans_t wctrans __P ((__const char *__property));
+
+/* Map the wide character WC using the mapping described by DESC.  */
+extern wint_t towctrans __P ((wint_t __wc, wctrans_t __desc));
+
+# ifdef __USE_GNU
 /* Declare the interface to extended locale model.  */
-# include <xlocale.h>
+#  include <xlocale.h>
 
 /* Test for any wide character for which `iswalpha' or `iswdigit' is
    true.  */
@@ -282,30 +306,32 @@ extern wint_t __towctrans_l __P ((wint_t __wc, wctrans_t __desc,
 				  __locale_t __locale));
 
 
-# ifndef __NO_WCTYPE
-#  define __iswalnum_l(wc, loc)	 __iswctype_l ((wc), _ISalnum, (loc))
-#  define __iswalpha_l(wc, loc)	 __iswctype_l ((wc), _ISalpha, (loc))
-#  define __iswcntrl_l(wc, loc)	 __iswctype_l ((wc), _IScntrl, (loc))
-#  define __iswdigit_l(wc, loc)	 __iswctype_l ((wc), _ISdigit, (loc))
-#  define __iswlower_l(wc, loc)	 __iswctype_l ((wc), _ISlower, (loc))
-#  define __iswgraph_l(wc, loc)	 __iswctype_l ((wc), _ISgraph, (loc))
-#  define __iswprint_l(wc, loc)	 __iswctype_l ((wc), _ISprint, (loc))
-#  define __iswpunct_l(wc, loc)	 __iswctype_l ((wc), _ISpunct, (loc))
-#  define __iswspace_l(wc, loc)	 __iswctype_l ((wc), _ISspace, (loc))
-#  define __iswupper_l(wc, loc)	 __iswctype_l ((wc), _ISupper, (loc))
-#  define __iswxdigit_l(wc, loc) __iswctype_l ((wc), _ISxdigit, (loc))
-
-#  define __iswblank_l(wc, loc)	 __iswctype_l ((wc), _ISblank, (loc))
-
-#  define __towlower_l(wc, loc)	 __towctrans_l ((wc), (loc)->__ctype_tolower, \
+#  ifndef __NO_WCTYPE
+#   define __iswalnum_l(wc, loc) __iswctype_l ((wc), _ISalnum, (loc))
+#   define __iswalpha_l(wc, loc) __iswctype_l ((wc), _ISalpha, (loc))
+#   define __iswcntrl_l(wc, loc) __iswctype_l ((wc), _IScntrl, (loc))
+#   define __iswdigit_l(wc, loc) __iswctype_l ((wc), _ISdigit, (loc))
+#   define __iswlower_l(wc, loc) __iswctype_l ((wc), _ISlower, (loc))
+#   define __iswgraph_l(wc, loc) __iswctype_l ((wc), _ISgraph, (loc))
+#   define __iswprint_l(wc, loc) __iswctype_l ((wc), _ISprint, (loc))
+#   define __iswpunct_l(wc, loc) __iswctype_l ((wc), _ISpunct, (loc))
+#   define __iswspace_l(wc, loc) __iswctype_l ((wc), _ISspace, (loc))
+#   define __iswupper_l(wc, loc) __iswctype_l ((wc), _ISupper, (loc))
+#   define __iswxdigit_l(wc, loc) __iswctype_l ((wc), _ISxdigit, (loc))
+
+#   define __iswblank_l(wc, loc) __iswctype_l ((wc), _ISblank, (loc))
+
+#   define __towlower_l(wc, loc) __towctrans_l ((wc), (loc)->__ctype_tolower, \
 						(loc))
-#  define __towupper_l(wc, loc)	 __towctrans_l ((wc), (loc)->__ctype_toupper, \
+#   define __towupper_l(wc, loc) __towctrans_l ((wc), (loc)->__ctype_toupper, \
 						(loc))
 
-# endif /* Not __NO_WCTYPE.  */
+#  endif /* Not __NO_WCTYPE.  */
 
-#endif /* Use GNU.  */
+# endif /* Use GNU.  */
 
 __END_DECLS
 
+#endif	/* __WCTYPE_H defined.  */
+
 #endif /* wctype.h  */