diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2012-06-23 10:25:56 -0700 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2012-06-23 10:25:56 -0700 |
commit | 47d0c0118bd9648f3b3544e8c0692d5b25aa49e7 (patch) | |
tree | a2e1d6310e34f7d244a7eee68dd4e3dfbd80ec39 | |
parent | 711b11e1e3efa0d85e3a54114bf7dbd9a90b5c54 (diff) | |
download | emacs-47d0c0118bd9648f3b3544e8c0692d5b25aa49e7.tar.gz |
Merge from gnulib.
* m4/getopt.m4: Copy new version from gnulib, incorporating:
getopt-gnu: Handle suboptimal getopt_long's abbreviation handling.
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | m4/getopt.m4 | 44 |
2 files changed, 49 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog index 103af723a34..f5ebfd9e650 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2012-06-23 Paul Eggert <eggert@cs.ucla.edu> + + Merge from gnulib. + * m4/getopt.m4: Copy new version from gnulib, incorporating: + getopt-gnu: Handle suboptimal getopt_long's abbreviation handling. + 2012-06-23 Eli Zaretskii <eliz@gnu.org> Fix the MS-Windows build broken by 2012-06-22T21:17:42Z!eggert@cs.ucla.edu. diff --git a/m4/getopt.m4 b/m4/getopt.m4 index be13337726d..c5f15630c95 100644 --- a/m4/getopt.m4 +++ b/m4/getopt.m4 @@ -1,4 +1,4 @@ -# getopt.m4 serial 41 +# getopt.m4 serial 42 dnl Copyright (C) 2002-2006, 2008-2012 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -319,6 +319,48 @@ dnl is ambiguous with environment values that contain newlines. ]) if test "$gl_cv_func_getopt_gnu" = "no"; then gl_replace_getopt=yes + else + AC_CACHE_CHECK([for working GNU getopt_long function], + [gl_cv_func_getopt_long_gnu], + [AC_RUN_IFELSE( + [AC_LANG_PROGRAM( + [[#include <getopt.h> + #include <stddef.h> + #include <string.h> + ]], + [[static const struct option long_options[] = + { + { "xtremely-",no_argument, NULL, 1003 }, + { "xtra", no_argument, NULL, 1001 }, + { "xtreme", no_argument, NULL, 1002 }, + { "xtremely", no_argument, NULL, 1003 }, + { NULL, 0, NULL, 0 } + }; + /* This code fails on OpenBSD 5.0. */ + { + static char program[] = "program"; + static char xtremel[] = "--xtremel"; + char *argv[] = { program, xtremel, NULL }; + int option_index; + optind = 1; opterr = 0; + if (getopt_long (2, argv, "", long_options, &option_index) != 1003) + return 1; + } + return 0; + ]])], + [gl_cv_func_getopt_long_gnu=yes], + [gl_cv_func_getopt_long_gnu=no], + [dnl Cross compiling. Guess no on OpenBSD, yes otherwise. + case "$host_os" in + openbsd*) gl_cv_func_getopt_long_gnu="guessing no";; + *) gl_cv_func_getopt_long_gnu="guessing yes";; + esac + ]) + ]) + case "$gl_cv_func_getopt_long_gnu" in + *yes) ;; + *) gl_replace_getopt=yes ;; + esac fi fi ]) |