* build-aux/useless-if-before-free: Update regexp.
+2008-05-25 Jim Meyering <meyering@redhat.com>
+
+ update code-in-comment to accept cast of free arg
+ * build-aux/useless-if-before-free: Update regexp.
+
2008-05-25 Bruno Haible <bruno@clisp.org>
* tests/test-sameacls.c: Renamed from tests/test-copy-file-sameacls.c.
2008-05-25 Bruno Haible <bruno@clisp.org>
* tests/test-sameacls.c: Renamed from tests/test-copy-file-sameacls.c.
# Detect instances of "if (p) free (p);".
# Likewise for "if (p != NULL) free (p);". And with braces.
# Detect instances of "if (p) free (p);".
# Likewise for "if (p != NULL) free (p);". And with braces.
-my $VERSION = '2008-05-01 19:11'; # UTC
+my $VERSION = '2008-05-25 15:40'; # 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
# 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
# This adjusts them, removing the unnecessary "if (p)" part.
# FIXME: do something like this as an option (doesn't do braces):
# This adjusts them, removing the unnecessary "if (p)" part.
# FIXME: do something like this as an option (doesn't do braces):
-git ls-files -z |xargs -0 \
-perl -0x3b -pi -e 's/\bif\s*\(\s*(\S+?)(?:\s*!=\s*NULL)?\s*\)\s+(k?free\s*\(\s*\1\s*\))/$2/s'
-
useless-if-before-free -l $(lid -knone free) | xargs -0 \
perl -0x3b -pi -e \
useless-if-before-free -l $(lid -knone free) | xargs -0 \
perl -0x3b -pi -e \
- 's/\bif\s*\(\s*(\S+?)(?:\s*!=\s*NULL)?\s*\)\s+(free\s*\(\s*\1\s*\))/$2/s'
+ 's/\bif\s*\(\s*(\S+?)(?:\s*!=\s*NULL)?\s*\)\s+(free\s*\((?:\s*\([^)]+\))?\s*\1\s*\))/$2/s'
+
+# Or, with git:
+git ls-files -z |xargs -0 perl -0x3b -pi -e '...'
Be careful that the result of the above transformation is valid.
If the matched string is followed by "else", then obviously, it won't be.
Be careful that the result of the above transformation is valid.
If the matched string is followed by "else", then obviously, it won't be.