From 548139e38dd12f9c9d10eb583e251ef9a9dabde7 Mon Sep 17 00:00:00 2001 From: psmith Date: Sun, 12 Jun 2011 16:22:04 +0000 Subject: [PATCH] Fix another error related to whitespace handling in archives. Newer version of VMS support strncasecmp() so update the config.h. --- ChangeLog | 9 +++++++++ config.h-vms.template | 5 +++++ read.c | 10 +++++----- tests/ChangeLog | 6 ++++++ tests/scripts/features/archives | 5 +++++ 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 + + * 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 + 2011-05-07 Paul Smith * 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 . */ /* 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 + + * 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 * 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. -- 2.11.4.GIT