summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog9
-rw-r--r--config.h-vms.template5
-rw-r--r--read.c10
-rw-r--r--tests/ChangeLog6
-rw-r--r--tests/scripts/features/archives5
5 files changed, 30 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index b72f24c..84ba7a2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2011-06-12 Paul Smith <psmith@gnu.org>
+
+ * read.c (parse_file_seq): Move the check for empty members out of
+ the loop so we can go to the next member properly.
+ Another fix for Savannah bug #30612.
+
+ * config.h-vms.template: Newer versions of VMS have strncasecmp()
+ Patch provided by: Hartmut Becker <becker.ismaning@freenet.de>
+
2011-05-07 Paul Smith <psmith@gnu.org>
* expand.c (variable_append): Add a LOCAL argument to track
diff --git a/config.h-vms.template b/config.h-vms.template
index 337e234..cf9d5e4 100644
--- a/config.h-vms.template
+++ b/config.h-vms.template
@@ -110,6 +110,11 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
/* Define to 1 if you have the strcoll function and it is properly defined. */
/* #undef HAVE_STRCOLL */
+/* Define to 1 if you have the strncasecmp' function. */
+#if __CRTL_VER >= 70000000
+#define HAVE_STRNCASECMP 1
+#endif
+
/* Define to 1 if your struct stat has st_rdev. */
/* #undef HAVE_ST_RDEV */
diff --git a/read.c b/read.c
index c87d4a7..b012094 100644
--- a/read.c
+++ b/read.c
@@ -3044,16 +3044,16 @@ parse_file_seq (char **stringp, unsigned int size, int stopchar,
nlen -= (n + 1) - tp;
tp = n + 1;
- /* If we have just "lib(", part of something like
- "lib( a b)", go to the next item. */
- if (! nlen)
- continue;
-
/* We can stop looking now. */
break;
}
}
while (*e != '\0');
+
+ /* If we have just "lib(", part of something like "lib( a b)",
+ go to the next item. */
+ if (! nlen)
+ continue;
}
}
diff --git a/tests/ChangeLog b/tests/ChangeLog
index 629242c..d800b49 100644
--- a/tests/ChangeLog
+++ b/tests/ChangeLog
@@ -1,3 +1,9 @@
+2011-06-12 Paul Smith <psmith@gnu.org>
+
+ * scripts/features/archives: Check archives with whitespace at the
+ beginning, end, and extra in the middle.
+ Another test for Savannah bug #30612.
+
2011-05-07 Paul Smith <psmith@gnu.org>
* scripts/variables/private: Ensure we skip private variables when
diff --git a/tests/scripts/features/archives b/tests/scripts/features/archives
index 00aa1af..3fe46a0 100644
--- a/tests/scripts/features/archives
+++ b/tests/scripts/features/archives
@@ -36,6 +36,11 @@ utouch(-50, 'a2.o');
run_make_test('all: libxx.a(a3.o *.o)', '',
"ar rv libxx.a a3.o\na - a3.o\nar rv libxx.a a2.o\nr - a2.o\n");
+# Check whitespace handling
+utouch(-40, 'a2.o');
+run_make_test('all: libxx.a( a3.o *.o )', '',
+ "ar rv libxx.a a2.o\nr - a2.o\n");
+
rmfiles(qw(a1.o a2.o a3.o libxx.a));
# This tells the test driver that the perl test script executed properly.