Patchwork [review,gdb/contrib] Add -c option to words.sh script

login
register
mail settings
Submitter Simon Marchi (Code Review)
Date Nov. 15, 2019, 9:53 a.m.
Message ID <gerrit.1573811593000.Ifa34d435b3c41b3ff845dc07ae4b0d9f02d92a2d@gnutoolchain-gerrit.osci.io>
Download mbox | patch
Permalink /patch/35935/
State New
Headers show

Comments

Simon Marchi (Code Review) - Nov. 15, 2019, 9:53 a.m.
Change URL: https://gnutoolchain-gerrit.osci.io/r/c/binutils-gdb/+/654
......................................................................

[gdb/contrib] Add -c option to words.sh script

The words.sh script in its current form extracts c comments from files, which
it then transforms into a list of words.

To use the script on the documentation (as I did for commit 6b92c0d3533
"[gdb/doc] Fix typos"), I needed to disable the "extract c comments" part.

Add an option -c that enables extracting c comments, and is off by default.

gdb/ChangeLog:

2019-11-15  Tom de Vries  <tdevries@suse.de>

	* contrib/words.sh: Add -c option.

Change-Id: Ifa34d435b3c41b3ff845dc07ae4b0d9f02d92a2d
---
M gdb/contrib/words.sh
1 file changed, 16 insertions(+), 5 deletions(-)
Simon Marchi (Code Review) - Nov. 22, 2019, 3:45 a.m.
Kevin Buettner has posted comments on this change.

Change URL: https://gnutoolchain-gerrit.osci.io/r/c/binutils-gdb/+/654
......................................................................


Patch Set 1: Code-Review-1

Two concerns...

1) The current behavior, IIUC, is that comments are extracted.  Your patch changes the default behavior to extract all words. This may come as a surprise to anyone with existing scripts which use words.sh.  It might make more sense to add some other switch (perhaps -a for "all") which keeps the present default behavior intact.  It's not really that important to me that this be changed, but I thought I'd mention it.

2) I'd like to see a line or two documenting the new switch in the blurb at the beginning of the file.
Simon Marchi (Code Review) - Nov. 22, 2019, 3:39 p.m.
Tom de Vries has posted comments on this change.

Change URL: https://gnutoolchain-gerrit.osci.io/r/c/binutils-gdb/+/654
......................................................................


Patch Set 2:

> Patch Set 1: Code-Review-1
> 
> Two concerns...
> 
> 1) The current behavior, IIUC, is that comments are extracted.  Your patch changes the default behavior to extract all words. This may come as a surprise to anyone with existing scripts which use words.sh.  It might make more sense to add some other switch (perhaps -a for "all") which keeps the present default behavior intact.  It's not really that important to me that this be changed, but I thought I'd mention it.
> 

Agreed, we shouldn't change default behaviour without thinking through the consequences for others, but given that this is a very recently added script as well as that there's most likely exactly one user (me!), I think we can allow ourselves this change.

> 2) I'd like to see a line or two documenting the new switch in the blurb at the beginning of the file.

I've improved docs of '-c' in the blurb.
Simon Marchi (Code Review) - Nov. 25, 2019, 6:45 p.m.
Kevin Buettner has posted comments on this change.

Change URL: https://gnutoolchain-gerrit.osci.io/r/c/binutils-gdb/+/654
......................................................................


Patch Set 2: Code-Review+2

Patch

diff --git a/gdb/contrib/words.sh b/gdb/contrib/words.sh
index 8c4fdd0..e48b82e 100755
--- a/gdb/contrib/words.sh
+++ b/gdb/contrib/words.sh
@@ -24,7 +24,8 @@ 
 #
 # For:
 # ...
-# $ ./gdb/contrib/words.sh $(find gdb -type f -name "*.c" -o -name "*.h")
+# $ files=$(find gdb -type f -name "*.c" -o -name "*.h")
+# $ ./gdb/contrib/words.sh -c $files
 # ...
 # it generates a list of ~15000 words prefixed with frequency.
 #
@@ -36,7 +37,8 @@ 
 #
 # And for:
 # ...
-# $ ./gdb/contrib/words.sh -f 1 $(find gdb -type f -name "*.c" -o -name "*.h")
+# $ files=$(find gdb -type f -name "*.c" -o -name "*.h")
+# $ ./gdb/contrib/words.sh -c -f 1 $files
 # ...
 # it generates a list of ~5000 words with frequency 1.
 #
@@ -45,8 +47,13 @@ 
 
 minfreq=
 maxfreq=
+c=false
 while [ $# -gt 0 ]; do
     case "$1" in
+	-c)
+	    c=true
+	    shift
+	    ;;
 	--freq|-f)
 	    minfreq=$2
 	    maxfreq=$2
@@ -111,9 +118,13 @@ 
 # Stabilize sort.
 export LC_ALL=C
 
-awk \
-    -f "$awkfile" \
-    -- "$@" \
+if $c; then
+    awk \
+	-f "$awkfile" \
+	-- "$@"
+else
+    cat "$@"
+fi \
     | sed \
 	  -e 's/[%^$~#{}`&=@,. \t\/_()|<>\+\*-]/\n/g' \
 	  -e 's/\[/\n/g' \