From 3108b956964845104f2d1455af313849afca50ca Mon Sep 17 00:00:00 2001 From: Eric Blake Date: Tue, 13 Apr 2010 11:00:29 -0600 Subject: [PATCH] getopt-posix: avoid spurious failure on Solaris * m4/getopt.m4 (gl_GETOPT_CHECK_HEADERS): Check for getopt_clip as an indicator that setting optind=1 is sufficient for reset. Signed-off-by: Eric Blake --- ChangeLog | 4 ++++ m4/getopt.m4 | 11 ++++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index d7960153d..7de81f46e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2010-04-13 Eric Blake + getopt-posix: avoid spurious failure on Solaris + * m4/getopt.m4 (gl_GETOPT_CHECK_HEADERS): Check for getopt_clip as + an indicator that setting optind=1 is sufficient for reset. + getopt-posix: avoid spurious failure on FreeBSD * m4/getopt.m4 (gl_GETOPT_CHECK_HEADERS): Check for optreset even in POSIX mode, since the m4 test uses it. diff --git a/m4/getopt.m4 b/m4/getopt.m4 index 0ee58210d..8d3d8b641 100644 --- a/m4/getopt.m4 +++ b/m4/getopt.m4 @@ -1,4 +1,4 @@ -# getopt.m4 serial 25 +# getopt.m4 serial 26 dnl Copyright (C) 2002-2006, 2008-2010 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -79,8 +79,13 @@ AC_DEFUN([gl_GETOPT_CHECK_HEADERS], dnl Existence of the variable, in and of itself, is not a reason to replace dnl getopt, but knowledge of the variable is needed to determine how to dnl reset and whether a reset reparses the environment. + dnl Solaris supports neither optreset nor optind=0, but keeps no state that + dnl needs a reset beyond setting optind=1; detect Solaris by getopt_clip. if test -z "$gl_replace_getopt"; then - AC_CHECK_DECLS([optreset], [], [], + AC_CHECK_DECLS([optreset], [], + [AC_CHECK_DECLS([getopt_clip], [], [], + [[#include ]]) + ], [[#include ]]) fi @@ -99,7 +104,7 @@ AC_DEFUN([gl_GETOPT_CHECK_HEADERS], #include #include -#if !HAVE_DECL_OPTRESET +#if !HAVE_DECL_OPTRESET && !HAVE_DECL_GETOPT_CLIP # define OPTIND_MIN 0 #else # define OPTIND_MIN 1 -- 2.11.0