Re: Re: getopt and Solaris 10

Derek Price <[email protected]> Tue, 10 May 2005 10:00:11 -0400
Newsgroups gmane.comp.lib.gnulib.bugs,gmane.comp.version-control.cvs.bugs,gmane.comp.gnu.core-utils.bugs
Organization Get CVS Support from Ximbiot <http://ximbiot.com>!
Message-ID <[email protected]>
This is a multi-part message in MIME format.
--------------030106040702040309010206
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit

Paul Eggert wrote:

>Derek Price <[email protected]> writes:
>
>
>  
>
>>+         myargv[[0]] = "conftest";
>>+         myargv[[1]] = "-+";
>>    
>>
>
>This doesn't null-terminate myargv.
>  
>

Okay, looking at that in C89 now, but just out of curiosity, if argv
needs to be NULL terminated, what's the point of argc?

Revised patch attached.  I restored a comment I probably shouldn't have
cut as well.

2005-05-10  Derek Price  <[email protected]>

    * m4/getopt.m4: Check for Solaris 10 bug, not decl, when possible.


Regards,

Derek

--------------030106040702040309010206
Content-Type: text/plain;
 name="getopt-solaris3.diff"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="getopt-solaris3.diff"

Index: m4/getopt.m4
===================================================================
RCS file: /cvsroot/gnulib/gnulib/m4/getopt.m4,v
retrieving revision 1.9
diff -u -p -r1.9 getopt.m4
--- m4/getopt.m4	6 May 2005 01:04:20 -0000	1.9
+++ m4/getopt.m4	10 May 2005 13:56:05 -0000
@@ -39,8 +39,26 @@ AC_DEFUN([gl_GETOPT],
     dnl Solaris 10 getopt doesn't handle `+' as a leading character in an
     dnl option string (as of 2005-05-05).
     if test -z "$GETOPT_H"; then
-      AC_CHECK_DECL([getopt_clip], [GETOPT_H=getopt.h], [],
-	[#include <getopt.h>])
+      AC_CACHE_CHECK([for working GNU getopt function], gl_cv_func_gnu_getopt,
+      [AC_RUN_IFELSE(
+        [AC_LANG_PROGRAM([#include <getopt.h>],[
+         char *myargv[[3]];
+         myargv[[0]] = "conftest";
+         myargv[[1]] = "-+";
+         myargv[[2]] = NULL;
+         return '?' != getopt (2, myargv, "+a");
+        ])],
+        gl_cv_func_gnu_getopt=yes,
+        gl_cv_func_gnu_getopt=no,
+        [dnl cross compiling - pessimistically guess based on decls
+         dnl Solaris 10 getopt doesn't handle `+' as a leading character in an
+         dnl option string (as of 2005-05-05).
+         AC_CHECK_DECL([getopt_clip],
+         [gl_cv_func_gnu_getopt=no], [gl_cv_func_gnu_getopt=yes],
+	 [#include <getopt.h>])])])
+      if test "$gl_cv_func_gnu_getopt" = "no"; then
+	GETOPT_H=getopt.h
+      fi
     fi
 
     if test -n "$GETOPT_H"; then

--------------030106040702040309010206
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
bug-gnulib mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/bug-gnulib

--------------030106040702040309010206--