# HG changeset patch # User Bruno Haible # Date 1229734445 -3600 # Node ID ab4d6b768a6683aad003c8d40a32f07c22496385 # Parent be669cca12c476e03364dfecdf15a18915f96a43 New module 'mbrlen'. diff --git a/lib/mbrlen.c b/lib/mbrlen.c new file mode 100644 --- /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 --- /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 --- /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 +