Mercurial > hg > octave-kai > gnulib-hg
view m4/mbswidth.m4 @ 9600:99268e709d31
Avoid quadratic strstr implementations.
* lib/strstr.c: New file.
* m4/strstr.m4: Likewise.
* modules/strstr: Likewise.
* modules/strstr-tests: Likewise.
* tests/test-strstr.c: Likewise.
* lib/string.in.h (rpl_strstr): Declare.
(memmem) [GNULIB_POSIXCHECK]: Document speed issue.
* m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Support strstr.
* modules/string (Makefile.am): Likewise.
* MODULES.html.sh (string handling): Mention new module.
* doc/functions/strstr.texi (strstr): Document the bug.
Signed-off-by: Eric Blake <ebb9@byu.net>
author | Eric Blake <ebb9@byu.net> |
---|---|
date | Thu, 10 Jan 2008 07:38:11 -0700 |
parents | b6376840b47b |
children | 45e1c3577b49 |
line wrap: on
line source
# mbswidth.m4 serial 14 dnl Copyright (C) 2000-2002, 2004, 2006, 2007 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. dnl autoconf tests required for use of mbswidth.c dnl From Bruno Haible. AC_DEFUN([gl_MBSWIDTH], [ AC_CHECK_HEADERS_ONCE([wchar.h]) AC_CHECK_FUNCS_ONCE([isascii mbsinit]) gl_FUNC_MBRTOWC dnl UnixWare 7.1.1 <wchar.h> has a declaration of a function mbswidth() dnl that clashes with ours. AC_CACHE_CHECK([whether mbswidth is declared in <wchar.h>], ac_cv_have_decl_mbswidth, [AC_TRY_COMPILE([ /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <stdio.h> #include <time.h> #include <wchar.h> ], [ char *p = (char *) mbswidth; return !p; ], ac_cv_have_decl_mbswidth=yes, ac_cv_have_decl_mbswidth=no)]) if test $ac_cv_have_decl_mbswidth = yes; then ac_val=1 else ac_val=0 fi AC_DEFINE_UNQUOTED(HAVE_DECL_MBSWIDTH_IN_WCHAR_H, $ac_val, [Define to 1 if you have a declaration of mbswidth() in <wchar.h>, and to 0 otherwise.]) AC_TYPE_MBSTATE_T ])