diff options
Diffstat (limited to 'stubs')
-rw-r--r-- | stubs/Makefile | 9 | ||||
-rw-r--r-- | stubs/unicode-lite.c | 45 |
2 files changed, 52 insertions, 2 deletions
diff --git a/stubs/Makefile b/stubs/Makefile index 640f4653e..3aac5f14e 100644 --- a/stubs/Makefile +++ b/stubs/Makefile @@ -1,16 +1,21 @@ include ../Makefile.inc LIBBZ = libbz2.so.1 +LIBUTF8 = libunicode-lite.so.1 -all: $(LIBBZ) +all: $(LIBBZ) $(LIBUTF8) $(LIBBZ): bzip.c - gcc -fPIC -shared -o $(LIBBZ) bzip.c + gcc -fPIC -shared -o $@ $< + +$(LIBUTF8): unicode-lite.c + gcc -fPIC -shared -o $@ $< -lwlite clean: rm -f *.so.* *.o install: install $(LIBBZ) $(DESTDIR)/$(RUNTIMEDIR) + install $(LIBUTF8) $(DESTDIR)/$(RUNTIMEDIR) depend: diff --git a/stubs/unicode-lite.c b/stubs/unicode-lite.c new file mode 100644 index 000000000..605395b8f --- /dev/null +++ b/stubs/unicode-lite.c @@ -0,0 +1,45 @@ +/* + * unicode-lite.c - simple library to LD_PRELOAD for emulation of + * wide character functionality when glibc gconv data isn't available + * + * Matt Wilson <msw@redhat.com> + * Jeremy Katz <katzj@redhat.com> + * + * Copyright 2002 Red Hat, Inc. + * + * This software may be freely redistributed under the terms of the GNU + * General Public License. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + + +#define WLITE_REDEF_STDC 0 +#include <wlite_wchar.h> +#include <wlite_wctype.h> + + +int wcwidth (wchar_t c) { + return wlite_wcwidth(c); +} + +size_t mbrtowc (wchar_t *pwc, const char *s, size_t n, void *ps) { + return wlite_mbrtowc (pwc, s, n, ps); +} + +int iswspace (wchar_t c) { + return wlite_iswctype((c), wlite_space_); +} + +size_t wcrtomb(char *s, wchar_t wc, void *ps) { + return wlite_wcrtomb (s, wc, ps); +} + +/* lie to slang to trick it into using unicode chars for linedrawing */ +char *setlocale (int category, const char *locale) { + if (locale == NULL || *locale == '\0') + return "en_US.UTF-8"; + return 0; +} |