summaryrefslogtreecommitdiff
path: root/m4
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2005-02-23 15:09:34 +0000
committerSergey Poznyakoff <gray@gnu.org.ua>2005-02-23 15:09:34 +0000
commit2db5c7115e5b37734993603c0381aab7e62c4be9 (patch)
tree1be931195d1bf1c22bf9a5ca53b9cad9263be6bb /m4
parent96aac32803af5414ffeec13a16205d7c456df19d (diff)
downloadmailutils-2db5c7115e5b37734993603c0381aab7e62c4be9.tar.gz
mailutils-2db5c7115e5b37734993603c0381aab7e62c4be9.tar.bz2
Updated by gnulib-sync
Diffstat (limited to 'm4')
-rw-r--r--m4/getopt.m477
-rw-r--r--m4/regex.m460
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 (&regex, 0, sizeof (regex));
[s = re_compile_pattern ("a[[:@:>@:]]b\n", 9, &regex);]
/* 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 (&regex, 0, sizeof (regex));
s = re_compile_pattern ("{1", 2, &regex);
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, &regex);
+ memset (&regex, 0, sizeof (regex));
+ s = re_compile_pattern ("[[an\371]]*n", 7, &regex);
if (s)
exit (1);
@@ -51,6 +67,16 @@ AC_DEFUN([jm_INCLUDED_REGEX],
if (re_match (&regex, "an", 2, 0, &regs) != 2)
exit (1);
+ memset (&regex, 0, sizeof (regex));
+ s = re_compile_pattern ("x", 1, &regex);
+ 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 (&regex, "wxy", 3, 2, -2, &regs) != 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)
+])

Return to:

Send suggestions and report system problems to the System administrator.