* lib/getopt.c, lib/stat.c, m4/gl-comp.m4: Merge from gnulib.
authorPaul Eggert <eggert@cs.ucla.edu>
Thu, 23 Jun 2011 08:10:57 +0000 (01:10 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Thu, 23 Jun 2011 08:10:57 +0000 (01:10 -0700)
ChangeLog
lib/getopt.c
lib/stat.c
m4/gl-comp.m4

index 9b8e5f7..8a908f6 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2011-06-23  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * lib/getopt.c, lib/stat.c, m4/gl-comp.m4: Merge from gnulib.
+
 2011-06-22  Paul Eggert  <eggert@cs.ucla.edu>
 
        Use gnulib's alloca-opt module.
index 23510d8..2af8352 100644 (file)
@@ -829,7 +829,7 @@ _getopt_internal_r (int argc, char **argv, const char *optstring,
         return '?';
       }
     /* Convenience. Treat POSIX -W foo same as long option --foo */
-    if (temp[0] == 'W' && temp[1] == ';')
+    if (temp[0] == 'W' && temp[1] == ';' && longopts)
       {
         char *nameend;
         const struct option *p;
index cbc9100..f07370d 100644 (file)
@@ -38,6 +38,7 @@ orig_stat (const char *filename, struct stat *buf)
 #include <stdbool.h>
 #include <string.h>
 #include "dosname.h"
+#include "verify.h"
 
 /* Store information about NAME into ST.  Work around bugs with
    trailing slashes.  Mingw has other bugs (such as st_ino always
@@ -63,6 +64,12 @@ rpl_stat (char const *name, struct stat *st)
     }
 #endif /* REPLACE_FUNC_STAT_FILE */
 #if REPLACE_FUNC_STAT_DIR
+  /* The only known systems where REPLACE_FUNC_STAT_DIR is needed also
+     have a constant PATH_MAX.  */
+# ifndef PATH_MAX
+#  error "Please port this replacement to your platform"
+# endif
+
   if (result == -1 && errno == ENOENT)
     {
       /* Due to mingw's oddities, there are some directories (like
@@ -77,6 +84,7 @@ rpl_stat (char const *name, struct stat *st)
       char fixed_name[PATH_MAX + 1] = {0};
       size_t len = strlen (name);
       bool check_dir = false;
+      verify (PATH_MAX <= 4096);
       if (PATH_MAX <= len)
         errno = ENAMETOOLONG;
       else if (len)
index 24141a2..84b3a09 100644 (file)
@@ -206,6 +206,9 @@ gl_SYS_STAT_MODULE_INDICATOR([stat])
       if $condition; then
         func_gl_gnulib_m4code_dosname
       fi
+      if $condition; then
+        func_gl_gnulib_m4code_verify
+      fi
     fi
   }
   func_gl_gnulib_m4code_strtoull ()