OSDN Git Service

Add a new *scanf implementation, includeing the *wscanf functions.
authorManuel Novoa III <mjn3@codepoet.org>
Fri, 1 Aug 2003 20:08:59 +0000 (20:08 -0000)
committerManuel Novoa III <mjn3@codepoet.org>
Fri, 1 Aug 2003 20:08:59 +0000 (20:08 -0000)
commit1217289737588e65b088b3535428b27c7287d699
tree6a292ac767d219702e26a6a2111737f84a96900c
parent32b76c5ec3c257b7287913d0d1a96e0cbb2e9c6a
Add a new *scanf implementation, includeing the *wscanf functions.
  Should be standards compliant and with several optional features,
  including support for hexadecimal float notation, locale awareness,
  glibc-like locale-specific digit grouping with the `'' flag, and
  positional arg support.  I tested it pretty well (finding several
  bugs in glibc's scanf in the process), but it is brand new so be
  aware.

The *wprintf functions now support floating point output.  Also, a
  couple of bugs were squashed.  Finally, %a/%A conversions are
  now implemented.

Implement the glibc xlocale interface for thread-specific locale
  support.  Also add the various *_l(args, locale_t loc_arg) funcs.

  NOTE!!!  setlocale() is NOT threadsafe!  NOTE!!!

The strto{floating point} conversion functions are now locale aware.
  The also now support hexadecimal floating point notation.

Add the wcsto{floating point} conversion functions.

Fix a bug in mktime() related to dst.  Note that unlike glibc's mktime,
  uClibc's version always normalizes the struct tm before attempting
  to determine the correct dst setting if tm_isdst == -1 on entry.

Add a stub version of the libintl functions.  (untested)

Fixed a known memory leak in setlocale() related to the collation data.

Add lots of new config options (which Erik agreed to sort out :-),
  including finally exposing some of the stripped down stdio configs.
  Be careful with those though, as they haven't been tested in a
  long time.

(temporary) GOTCHAs...

The ctype functions are currently incorrect for 8-bit locales.  They
  will be fixed shortly.

The ctype functions are now table-based, resulting in larger staticly
  linked binaries.  I'll be adding an option to use the old approach
  in the stub locale configuration.
61 files changed:
TODO
extra/Configs/Config.in
extra/locale/Makefile
extra/locale/gen_collate.c
extra/locale/gen_ldc.c
extra/locale/gen_locale.c
extra/locale/gen_wc8bit.c
extra/locale/gen_wctype.c
extra/locale/locale_mmap.h
include/ctype.h
include/langinfo.h
include/libintl.h
include/locale.h
include/signal.h
include/stdio.h
include/stdlib.h
include/string.h
include/sys/cdefs.h
include/time.h
include/wchar.h
include/wctype.h
include/xlocale.h [new file with mode: 0644]
libc/inet/rpc/rcmd.c
libc/misc/Makefile
libc/misc/assert/__assert.c
libc/misc/ctype/Makefile
libc/misc/ctype/ctype.c
libc/misc/intl/Makefile [new file with mode: 0644]
libc/misc/intl/intl.c [new file with mode: 0644]
libc/misc/locale/Makefile
libc/misc/locale/locale.c
libc/misc/time/Makefile
libc/misc/time/time.c
libc/misc/wchar/Makefile
libc/misc/wchar/wchar.c
libc/misc/wchar/wstdio.c
libc/misc/wctype/Makefile
libc/misc/wctype/wctype.c
libc/stdio/Makefile
libc/stdio/old_vfprintf.c
libc/stdio/printf.c
libc/stdio/scanf.c
libc/stdio/stdio.c
libc/stdlib/Makefile
libc/stdlib/stdlib.c
libc/stdlib/strtod.c
libc/string/Makefile
libc/string/wstring.c
libc/sysdeps/linux/common/bits/uClibc_ctype.h
libc/sysdeps/linux/common/bits/uClibc_fpmax.h [new file with mode: 0644]
libc/sysdeps/linux/common/bits/uClibc_locale.h
libc/sysdeps/linux/common/bits/uClibc_stdio.h
libc/sysdeps/linux/common/bits/uClibc_touplow.h [new file with mode: 0644]
libc/sysdeps/linux/common/bits/uClibc_uwchar.h [new file with mode: 0644]
libc/sysdeps/linux/common/bits/xopen_lim.h
libc/unistd/getopt.c
libpthread/linuxthreads/Makefile
libpthread/linuxthreads/internals.h
libpthread/linuxthreads/locale.c [new file with mode: 0644]
libpthread/linuxthreads/manager.c
libpthread/linuxthreads/pthread.c