From 797646a90607dc6632372db04cb04d13e49e5c9c Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Sat, 20 Dec 2008 01:54:05 +0100 Subject: [PATCH] New module 'mbrlen'. --- lib/mbrlen.c | 32 ++++++++++++++++++++++++++++++++ m4/mbrlen.m4 | 24 ++++++++++++++++++++++++ modules/mbrlen | 27 +++++++++++++++++++++++++++ 3 files changed, 83 insertions(+) create mode 100644 lib/mbrlen.c create mode 100644 m4/mbrlen.m4 create mode 100644 modules/mbrlen diff --git a/lib/mbrlen.c b/lib/mbrlen.c new file mode 100644 index 000000000..32a0c8195 --- /dev/null +++ b/lib/mbrlen.c @@ -0,0 +1,32 @@ +/* Recognize multibyte character. + Copyright (C) 1999-2000, 2008 Free Software Foundation, Inc. + Written by Bruno Haible , 2008. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +#include + +/* Specification. */ +#include + + +static mbstate_t internal_state; + +size_t +mbrlen (const char *s, size_t n, mbstate_t *ps) +{ + if (ps == NULL) + ps = &internal_state; + return mbrtowc (NULL, s, n, ps); +} diff --git a/m4/mbrlen.m4 b/m4/mbrlen.m4 new file mode 100644 index 000000000..c3a3f3043 --- /dev/null +++ b/m4/mbrlen.m4 @@ -0,0 +1,24 @@ +# mbrlen.m4 serial 1 +dnl Copyright (C) 2008 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN([gl_FUNC_MBRLEN], +[ + AC_REQUIRE([gl_WCHAR_H_DEFAULTS]) + + AC_REQUIRE([AC_TYPE_MBSTATE_T]) + AC_CHECK_FUNCS_ONCE([mbrlen]) + if test $ac_cv_func_mbrlen = no; then + HAVE_MBRLEN=0 + gl_REPLACE_WCHAR_H + AC_LIBOBJ([mbrlen]) + gl_PREREQ_MBRLEN + fi +]) + +# Prerequisites of lib/mbrlen.c. +AC_DEFUN([gl_PREREQ_MBRLEN], [ + : +]) diff --git a/modules/mbrlen b/modules/mbrlen new file mode 100644 index 000000000..cbd48d112 --- /dev/null +++ b/modules/mbrlen @@ -0,0 +1,27 @@ +Description: +mbrlen() function: recognize multibyte character. + +Files: +lib/mbrlen.c +m4/mbrlen.m4 +m4/mbstate_t.m4 + +Depends-on: +wchar +mbrtowc + +configure.ac: +gl_FUNC_MBRLEN +gl_WCHAR_MODULE_INDICATOR([mbrlen]) + +Makefile.am: + +Include: + + +License: +LGPL + +Maintainer: +Bruno Haible + -- 2.11.0