summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rwxr-xr-xbuild-aux/useless-if-before-free6
2 files changed, 7 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index fb3db2227a..eb4e64bcbb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
2008-04-29 Jim Meyering <meyering@redhat.com>
+ When the is more than one match in a block, match all of them.
+ * build-aux/useless-if-before-free: Iterate through each block
+ until there are no more matches.
+
Fix broken useless-if-before-free script.
* build-aux/useless-if-before-free: Fix typo: missing "?" after
the expression to match cast of argument to free-like function.
diff --git a/build-aux/useless-if-before-free b/build-aux/useless-if-before-free
index 89e7859626..4603c6c601 100755
--- a/build-aux/useless-if-before-free
+++ b/build-aux/useless-if-before-free
@@ -2,7 +2,7 @@
# Detect instances of "if (p) free (p);".
# Likewise for "if (p != NULL) free (p);". And with braces.
-my $VERSION = '2008-04-29 17:55'; # UTC
+my $VERSION = '2008-04-29 19:56'; # UTC
# The definition above must lie within the first 8 lines in order
# for the Emacs time-stamp write hook (at end) to update it.
# If you change this file with Emacs, please let the write hook
@@ -121,10 +121,10 @@ EOF
$err = EXIT_ERROR, next;
while (defined (my $line = <FH>))
{
- if ($line =~
+ while ($line =~
/\b(if\s*\(\s*(\S+?)(?:\s*!=\s*NULL)?\s*\)
(?: \s*$regexp\s*\((?:\s*\([^)]+\))?\s*\2\s*\)|
- \s*\{\s*$regexp\s*\((?:\s*\([^)]+\))?\s*\2\s*\)\s*;\s*\}))/sx)
+ \s*\{\s*$regexp\s*\((?:\s*\([^)]+\))?\s*\2\s*\)\s*;\s*\}))/sxg)
{
$found_match = 1;
$list