diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2005-02-23 15:09:34 +0000 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2005-02-23 15:09:34 +0000 |
commit | 2db5c7115e5b37734993603c0381aab7e62c4be9 (patch) | |
tree | 1be931195d1bf1c22bf9a5ca53b9cad9263be6bb /m4 | |
parent | 96aac32803af5414ffeec13a16205d7c456df19d (diff) | |
download | mailutils-2db5c7115e5b37734993603c0381aab7e62c4be9.tar.gz mailutils-2db5c7115e5b37734993603c0381aab7e62c4be9.tar.bz2 |
Updated by gnulib-sync
Diffstat (limited to 'm4')
-rw-r--r-- | m4/getopt.m4 | 77 | ||||
-rw-r--r-- | m4/regex.m4 | 60 |
2 files changed, 85 insertions, 52 deletions
diff --git a/m4/getopt.m4 b/m4/getopt.m4 index 4d586998e..85df7a7a4 100644 --- a/m4/getopt.m4 +++ b/m4/getopt.m4 @@ -1,53 +1,42 @@ -## $Id$ +# getopt.m4 serial 7 +dnl Copyright (C) 2002, 2003, 2004 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. -## Check for getopt_long. This can't be done in AC_CHECK_FUNCS since -## the function can be present in different libraries (namely, libmysqlclient) -## but the necessary header files may be absent, thus AC_CHECK_FUNCS will -## mark function as existent, whereas the compilation will bail out. +# The getopt module assume you want GNU getopt, with getopt_long etc, +# rather than vanilla POSIX getopt. This means your your code should +# always include <getopt.h> for the getopt prototypes. -AH_TEMPLATE(HAVE_GNU_GETOPT, [Define if your system has GNU getopt functions]) +AC_DEFUN([gl_GETOPT_SUBSTITUTE], +[ + GETOPT_H=getopt.h + MU_LIBOBJ([getopt]) + MU_LIBOBJ([getopt1]) + AC_DEFINE([__GETOPT_PREFIX], [[rpl_]], + [Define to rpl_ if the getopt replacement functions and variables + should be used.]) + AC_SUBST([GETOPT_H]) +]) -AC_DEFUN([MU_REPLACE_GNU_GETOPT], +AC_DEFUN([gl_GETOPT], [ - AC_CHECK_HEADER([getopt.h], - mu_cv_have_getopt_h=yes - AC_DEFINE(HAVE_GETOPT_H,1,[Define if the system has getopt.h]), - mu_cv_have_getopt_h=no) - AC_CACHE_CHECK([for GNU getopt], mu_cv_have_gnu_getopt, - [ -AC_TRY_RUN([ -#include <unistd.h> -#ifdef HAVE_GETOPT_H -# include <getopt.h> -#endif + gl_PREREQ_GETOPT -struct option longopt[] = { - "help", no_argument, 0, 'h', - (char*)0 -}; + if test -z "$GETOPT_H"; then + GETOPT_H= + AC_CHECK_HEADERS([getopt.h], [], [GETOPT_H=getopt.h]) + AC_CHECK_FUNCS([getopt_long_only], [], [GETOPT_H=getopt.h]) -main(argc, argv) -int argc; char **argv; -{ - getopt_long_only(argc, argv, "h", longopt, (int*)0); - return 0; -} ], - mu_cv_have_gnu_getopt=yes, - mu_cv_have_gnu_getopt=no, - mu_cv_have_gnu_getopt=no)]) + dnl BSD getopt_long uses an incompatible method to reset option processing, + dnl and (as of 2004-10-15) mishandles optional option-arguments. + AC_CHECK_DECL([optreset], [GETOPT_H=getopt.h], [], [#include <getopt.h>]) - if test x"$mu_cv_have_gnu_getopt" != xyes ; then - mu_cv_have_getopt_h=no - MU_LIBOBJ(getopt) - MU_LIBOBJ(getopt1) - else - AC_DEFINE(HAVE_GNU_GETOPT) - fi - if test "$mu_cv_have_getopt_h" = no; then - MU_HEADER(getopt.h) - fi + if test -n "$GETOPT_H"; then + gl_GETOPT_SUBSTITUTE + fi + fi ]) - - - +# Prerequisites of lib/getopt*. +AC_DEFUN([gl_PREREQ_GETOPT], [:]) diff --git a/m4/regex.m4 b/m4/regex.m4 index 4f3f3cfb2..2d11f2a84 100644 --- a/m4/regex.m4 +++ b/m4/regex.m4 @@ -1,11 +1,23 @@ -#serial 12 +#serial 22 + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004 Free +# Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. dnl Initially derived from code in GNU grep. dnl Mostly written by Jim Meyering. -dnl Usage: jm_INCLUDED_REGEX([lib/regex.c]) +AC_DEFUN([gl_REGEX], +[ + gl_INCLUDED_REGEX([lib/regex.c]) +]) + +dnl Usage: gl_INCLUDED_REGEX([lib/regex.c]) dnl -AC_DEFUN([jm_INCLUDED_REGEX], +AC_DEFUN([gl_INCLUDED_REGEX], [ dnl Even packages that don't use regex.c can use this macro. dnl Of course, for them it doesn't do anything. @@ -22,6 +34,7 @@ AC_DEFUN([jm_INCLUDED_REGEX], jm_cv_func_working_re_compile_pattern, AC_TRY_RUN( [#include <stdio.h> +#include <string.h> #include <regex.h> int main () @@ -30,12 +43,14 @@ AC_DEFUN([jm_INCLUDED_REGEX], const char *s; struct re_registers regs; re_set_syntax (RE_SYNTAX_POSIX_EGREP); + memset (®ex, 0, sizeof (regex)); [s = re_compile_pattern ("a[[:@:>@:]]b\n", 9, ®ex);] /* This should fail with _Invalid character class name_ error. */ if (!s) exit (1); /* This should succeed, but doesn't for e.g. glibc-2.1.3. */ + memset (®ex, 0, sizeof (regex)); s = re_compile_pattern ("{1", 2, ®ex); if (s) @@ -43,7 +58,8 @@ AC_DEFUN([jm_INCLUDED_REGEX], /* The following example is derived from a problem report against gawk from Jorge Stolfi <stolfi@ic.unicamp.br>. */ - s = re_compile_pattern ("[[anù]]*n", 7, ®ex); + memset (®ex, 0, sizeof (regex)); + s = re_compile_pattern ("[[an\371]]*n", 7, ®ex); if (s) exit (1); @@ -51,6 +67,16 @@ AC_DEFUN([jm_INCLUDED_REGEX], if (re_match (®ex, "an", 2, 0, ®s) != 2) exit (1); + memset (®ex, 0, sizeof (regex)); + s = re_compile_pattern ("x", 1, ®ex); + if (s) + exit (1); + + /* The version of regex.c in e.g. GNU libc-2.2.93 didn't + work with a negative RANGE argument. */ + if (re_search (®ex, "wxy", 3, 2, -2, ®s) != 1) + exit (1); + exit (0); } ], @@ -67,16 +93,34 @@ AC_DEFUN([jm_INCLUDED_REGEX], ifelse(m4_sysval, 0, [ AC_ARG_WITH(included-regex, - AC_HELP_STRING([--without-included-regex], - [don't compile regex; this is the default on systems with version 2 of the GNU C library (use with caution on other system)]), + [ --without-included-regex don't compile regex; this is the default on + systems with version 2 of the GNU C library + (use with caution on other system)], jm_with_regex=$withval, jm_with_regex=$ac_use_included_regex) if test "$jm_with_regex" = yes; then MU_LIBOBJ(regex) - MU_HEADER(regex.h) - MU_HEADER(posix/regex.h) + gl_PREREQ_REGEX fi ], ) ] ) + +# Prerequisites of lib/regex.c. +AC_DEFUN([gl_PREREQ_REGEX], +[ + dnl FIXME: Maybe provide a btowc replacement someday: Solaris 2.5.1 lacks it. + dnl FIXME: Check for wctype and iswctype, and and add -lw if necessary + dnl to get them. + + dnl Persuade glibc <string.h> to declare mempcpy(). + AC_REQUIRE([AC_GNU_SOURCE]) + + AC_REQUIRE([gl_C_RESTRICT]) + AC_REQUIRE([AC_FUNC_ALLOCA]) + AC_REQUIRE([AC_HEADER_STDC]) + AC_CHECK_HEADERS_ONCE(wchar.h wctype.h) + AC_CHECK_FUNCS_ONCE(isascii mempcpy) + AC_CHECK_FUNCS(btowc) +]) |