summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2003-11-15 21:58:21 +0000
committerUlrich Drepper <drepper@redhat.com>2003-11-15 21:58:21 +0000
commit2def87644d44b41bb908d4ed150a110d4d9399ea (patch)
treef909778eb7bafe08caee15da12ddce2a1694645f
parentecdcadbd16e1a350e9429dff668456e1f943c02b (diff)
Update.
2003-11-15 Ulrich Drepper <drepper@redhat.com> * wcsmbs/mbsinit.c: Undef mbsinit and __mbsinit. * include/wchar.h: Provide inline versions of mbsinit and __mbsinit.
-rw-r--r--ChangeLog5
-rw-r--r--include/wchar.h7
-rw-r--r--wcsmbs/mbsinit.c5
3 files changed, 16 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 8aaed91fa9..8df65fb210 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2003-11-15 Ulrich Drepper <drepper@redhat.com>
+
+ * wcsmbs/mbsinit.c: Undef mbsinit and __mbsinit.
+ * include/wchar.h: Provide inline versions of mbsinit and __mbsinit.
+
2003-11-14 Jakub Jelinek <jakub@redhat.com>
* posix/tst-rxspencer.c (check_match): @ without any following
diff --git a/include/wchar.h b/include/wchar.h
index a9cd440eec..f69463f57a 100644
--- a/include/wchar.h
+++ b/include/wchar.h
@@ -113,5 +113,12 @@ extern int __vfwprintf (__FILE *__restrict __s,
/* Internal functions. */
extern size_t __mbsrtowcs_l (wchar_t *dst, const char **src, size_t len,
mbstate_t *ps, __locale_t l) attribute_hidden;
+
+/* Special version. We know that all uses of mbsinit inside the libc
+ have a non-NULL parameter. And certainly we can access the
+ internals of the data structure directly. */
+# define mbsinit(state) ((state)->__count == 0)
+# define __mbsinit(state) ((state)->__count == 0)
+
# endif
#endif
diff --git a/wcsmbs/mbsinit.c b/wcsmbs/mbsinit.c
index 5d740c85fc..569cdd89ec 100644
--- a/wcsmbs/mbsinit.c
+++ b/wcsmbs/mbsinit.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 1997, 1998, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 1998, 2000, 2003 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1996.
@@ -20,6 +20,9 @@
#include <string.h>
#include <wchar.h>
+#undef mbsinit
+#undef __mbsinit
+
/* In GNU libc the conversion functions only can convert between the
fixed wide character representation and the multibyte
representation of the same character set. Since we use ISO 10646