summaryrefslogtreecommitdiff
path: root/libc/stdlib
diff options
context:
space:
mode:
authorManuel Novoa III <mjn3@codepoet.org>2004-02-11 23:48:50 +0000
committerManuel Novoa III <mjn3@codepoet.org>2004-02-11 23:48:50 +0000
commit082e680bd54e999f2bb4eb77141958938b1e9ee9 (patch)
tree203c45b85ca608e1550d8ffc459456fc9cf0b30b /libc/stdlib
parent17c21765b4a97c6f0b74ba8466073e5a3f97cdee (diff)
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.
Diffstat (limited to 'libc/stdlib')
-rw-r--r--libc/stdlib/abort.c8
-rw-r--r--libc/stdlib/ptsname.c3
-rw-r--r--libc/stdlib/stdlib.c10
3 files changed, 7 insertions, 14 deletions
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 <stdio.h>
#include <errno.h>
#include <paths.h>
@@ -28,6 +28,7 @@
#include <sys/sysmacros.h>
#include <termios.h>
#include <unistd.h>
+#include <bits/uClibc_uintmaxtostr.h>
#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);
}