From 082e680bd54e999f2bb4eb77141958938b1e9ee9 Mon Sep 17 00:00:00 2001 From: Manuel Novoa III Date: Wed, 11 Feb 2004 23:48:50 +0000 Subject: New stdio core. Should be more maintainable. Fixes a couple of bugs. Codepaths streamlined. Improved performance for nonthreaded apps when linked with a thread-enabled libc. Minor iconv bug and some locale/thread related startup issues fixed. These showed up in getting a gcj-compiled java helloworld app running. Removed some old extension functions... _stdio_fdout and _stdio_fsfopen. --- libc/stdlib/abort.c | 8 -------- libc/stdlib/ptsname.c | 3 ++- libc/stdlib/stdlib.c | 10 +++++----- 3 files changed, 7 insertions(+), 14 deletions(-) (limited to 'libc/stdlib') diff --git a/libc/stdlib/abort.c b/libc/stdlib/abort.c index 1ea1c4757..710e24d93 100644 --- a/libc/stdlib/abort.c +++ b/libc/stdlib/abort.c @@ -56,7 +56,6 @@ Cambridge, MA 02139, USA. */ #define ABORT_INSTRUCTION #endif -extern void weak_function _stdio_term(void); extern void _exit __P((int __status)) __attribute__ ((__noreturn__)); static int been_there_done_that = 0; @@ -85,13 +84,6 @@ void abort(void) sigprocmask(SIG_UNBLOCK, &sigset, (sigset_t *) NULL); } - /* If we are using stdio, try to shut it down. At the very least, - * this will attempt to commit all buffered writes. It may also - * unbuffer all writable files, or close them outright. - * Check the stdio routines for details. */ - if (_stdio_term) - _stdio_term(); - while (1) { /* Try to suicide with a SIGABRT. */ if (been_there_done_that == 0) { diff --git a/libc/stdlib/ptsname.c b/libc/stdlib/ptsname.c index 2472edb3f..677505953 100644 --- a/libc/stdlib/ptsname.c +++ b/libc/stdlib/ptsname.c @@ -17,7 +17,7 @@ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#define _STDIO_UTILITY /* For _int10tostr. */ +#define _ISOC99_SOURCE #include #include #include @@ -28,6 +28,7 @@ #include #include #include +#include #if !defined __UNIX98PTY_ONLY__ diff --git a/libc/stdlib/stdlib.c b/libc/stdlib/stdlib.c index c31f5f251..9e78fb24e 100644 --- a/libc/stdlib/stdlib.c +++ b/libc/stdlib/stdlib.c @@ -863,7 +863,7 @@ int mblen(register const char *s, size_t n) size_t r; if (!s) { - state.mask = 0; + state.__mask = 0; #ifdef __CTYPE_HAS_UTF_8_LOCALES return ENCODING == __ctype_encoding_utf8; #else @@ -873,7 +873,7 @@ int mblen(register const char *s, size_t n) if ((r = mbrlen(s, n, &state)) == (size_t) -2) { /* TODO: Should we set an error state? */ - state.wc = 0xffffU; /* Make sure we're in an error state. */ + state.__wc = 0xffffU; /* Make sure we're in an error state. */ return (size_t) -1; /* TODO: Change error code above? */ } return r; @@ -889,7 +889,7 @@ int mbtowc(wchar_t *__restrict pwc, register const char *__restrict s, size_t n) size_t r; if (!s) { - state.mask = 0; + state.__mask = 0; #ifdef __CTYPE_HAS_UTF_8_LOCALES return ENCODING == __ctype_encoding_utf8; #else @@ -899,7 +899,7 @@ int mbtowc(wchar_t *__restrict pwc, register const char *__restrict s, size_t n) if ((r = mbrtowc(pwc, s, n, &state)) == (size_t) -2) { /* TODO: Should we set an error state? */ - state.wc = 0xffffU; /* Make sure we're in an error state. */ + state.__wc = 0xffffU; /* Make sure we're in an error state. */ return (size_t) -1; /* TODO: Change error code above? */ } return r; @@ -932,7 +932,7 @@ size_t mbstowcs(wchar_t * __restrict pwcs, const char * __restrict s, size_t n) mbstate_t state; const char *e = s; /* Needed because of restrict. */ - state.mask = 0; /* Always start in initial shift state. */ + state.__mask = 0; /* Always start in initial shift state. */ return mbsrtowcs(pwcs, &e, n, &state); } -- cgit v1.2.3