summaryrefslogtreecommitdiffstats
path: root/lib/libc
diff options
context:
space:
mode:
authortjr <tjr@FreeBSD.org>2004-04-04 11:31:29 +0000
committertjr <tjr@FreeBSD.org>2004-04-04 11:31:29 +0000
commit5642b0bbf470da897aa9e423e73e4511d9802b67 (patch)
treee55b69186236f3d02d9104179bb76be616d5a4d6 /lib/libc
parentd98eda520cd6501a40b6421303d87c2f5bfb3dda (diff)
downloadFreeBSD-src-5642b0bbf470da897aa9e423e73e4511d9802b67.zip
FreeBSD-src-5642b0bbf470da897aa9e423e73e4511d9802b67.tar.gz
Remove support for emulating mbrtowc() and wcrtomb() in terms of the
old rune interface now that it is no longer needed.
Diffstat (limited to 'lib/libc')
-rw-r--r--lib/libc/locale/mbrtowc.c51
-rw-r--r--lib/libc/locale/setrunelocale.c8
-rw-r--r--lib/libc/locale/table.c5
-rw-r--r--lib/libc/locale/wcrtomb.c29
4 files changed, 4 insertions, 89 deletions
diff --git a/lib/libc/locale/mbrtowc.c b/lib/libc/locale/mbrtowc.c
index e993082..f3b12b4 100644
--- a/lib/libc/locale/mbrtowc.c
+++ b/lib/libc/locale/mbrtowc.c
@@ -1,5 +1,5 @@
/*-
- * Copyright (c) 2002, 2003 Tim J. Robbins.
+ * Copyright (c) 2002-2004 Tim J. Robbins.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -27,9 +27,6 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
-#include <errno.h>
-#include <rune.h>
-#include <stdlib.h>
#include <wchar.h>
extern size_t (*__mbrtowc)(wchar_t * __restrict, const char * __restrict,
@@ -42,49 +39,3 @@ mbrtowc(wchar_t * __restrict pwc, const char * __restrict s,
return (__mbrtowc(pwc, s, n, ps));
}
-
-/*
- * Emulate the ISO C mbrtowc() function in terms of the deprecated
- * 4.4BSD sgetrune() function.
- */
-size_t
-__emulated_mbrtowc(wchar_t * __restrict pwc, const char * __restrict s,
- size_t n, mbstate_t * __restrict ps __unused)
-{
- const char *e;
- rune_t r;
-
- if (s == NULL) {
- pwc = NULL;
- s = "";
- n = 1;
- }
-
- if ((r = sgetrune(s, n, &e)) == _INVALID_RUNE) {
- /*
- * The design of sgetrune() doesn't give us any way to tell
- * between incomplete and invalid multibyte sequences.
- */
-
- if (n >= (size_t)MB_CUR_MAX) {
- /*
- * If we have been supplied with at least MB_CUR_MAX
- * bytes and still cannot find a valid character, the
- * data must be invalid.
- */
- errno = EILSEQ;
- return ((size_t)-1);
- }
-
- /*
- * .. otherwise, it's an incomplete character or an invalid
- * character we cannot detect yet.
- */
- return ((size_t)-2);
- }
-
- if (pwc != NULL)
- *pwc = (wchar_t)r;
-
- return (r != 0 ? (size_t)(e - s) : 0);
-}
diff --git a/lib/libc/locale/setrunelocale.c b/lib/libc/locale/setrunelocale.c
index 165f877..11378a0 100644
--- a/lib/libc/locale/setrunelocale.c
+++ b/lib/libc/locale/setrunelocale.c
@@ -65,10 +65,6 @@ extern _RuneLocale *_Read_RuneMagi(FILE *);
extern size_t (*__mbrtowc)(wchar_t * __restrict, const char * __restrict,
size_t, mbstate_t * __restrict);
extern size_t (*__wcrtomb)(char * __restrict, wchar_t, mbstate_t * __restrict);
-extern size_t __emulated_mbrtowc(wchar_t * __restrict, const char * __restrict,
- size_t, mbstate_t * __restrict ps);
-extern size_t __emulated_wcrtomb(char * __restrict, wchar_t,
- mbstate_t * __restrict ps);
extern rune_t __emulated_sgetrune(const char *, size_t, const char **);
extern int __emulated_sputrune(rune_t, char *, size_t, char **);
extern size_t _none_mbrtowc(wchar_t * __restrict, const char * __restrict,
@@ -156,8 +152,8 @@ __setrunelocale(const char *encoding)
}
(void)fclose(fp);
- __mbrtowc = __emulated_mbrtowc;
- __wcrtomb = __emulated_wcrtomb;
+ __mbrtowc = NULL;
+ __wcrtomb = NULL;
rl->sputrune = __emulated_sputrune;
rl->sgetrune = __emulated_sgetrune;
if (strcmp(rl->encoding, "NONE") == 0)
diff --git a/lib/libc/locale/table.c b/lib/libc/locale/table.c
index 6497a24..f93fc1a 100644
--- a/lib/libc/locale/table.c
+++ b/lib/libc/locale/table.c
@@ -47,11 +47,6 @@ __FBSDID("$FreeBSD$");
extern size_t _none_mbrtowc(wchar_t * __restrict, const char * __restrict, size_t,
mbstate_t * __restrict);
extern size_t _none_wcrtomb(char * __restrict, wchar_t, mbstate_t * __restrict);
-extern size_t __emulated_mbrtowc(wchar_t * __restrict,
- const char * __restrict, size_t,
- mbstate_t * __restrict ps);
-extern size_t __emulated_wcrtomb(char * __restrict, wchar_t,
- mbstate_t * __restrict ps);
extern rune_t __emulated_sgetrune(const char *, size_t, const char **);
extern int __emulated_sputrune(rune_t, char *, size_t, char **);
diff --git a/lib/libc/locale/wcrtomb.c b/lib/libc/locale/wcrtomb.c
index cd1c45b..722e5c1 100644
--- a/lib/libc/locale/wcrtomb.c
+++ b/lib/libc/locale/wcrtomb.c
@@ -1,5 +1,5 @@
/*-
- * Copyright (c) 2002, 2003 Tim J. Robbins.
+ * Copyright (c) 2002-2004 Tim J. Robbins.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -27,10 +27,6 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
-#include <errno.h>
-#include <limits.h>
-#include <rune.h>
-#include <stdlib.h>
#include <wchar.h>
extern size_t (*__wcrtomb)(char * __restrict, wchar_t, mbstate_t * __restrict);
@@ -41,26 +37,3 @@ wcrtomb(char * __restrict s, wchar_t wc, mbstate_t * __restrict ps)
return (__wcrtomb(s, wc, ps));
}
-
-/*
- * Emulate the ISO C wcrtomb() function in terms of the deprecated
- * 4.4BSD sputrune() function.
- */
-size_t
-__emulated_wcrtomb(char * __restrict s, wchar_t wc,
- mbstate_t * __restrict ps __unused)
-{
- char *e;
- char buf[MB_LEN_MAX];
-
- if (s == NULL) {
- s = buf;
- wc = L'\0';
- }
- sputrune(wc, s, MB_CUR_MAX, &e);
- if (e == NULL) {
- errno = EILSEQ;
- return ((size_t)-1);
- }
- return ((size_t)(e - s));
-}
OpenPOWER on IntegriCloud