From 3cf2f2377e460608b94a8ba5c3f23c7e4b2dc232 Mon Sep 17 00:00:00 2001 From: Tom de Vries Date: Mon, 25 Nov 2019 23:00:03 +0100 Subject: [PATCH] [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-25 Tom de Vries * contrib/words.sh: Add -c option. Change-Id: Ifa34d435b3c41b3ff845dc07ae4b0d9f02d92a2d --- gdb/ChangeLog | 4 ++++ gdb/contrib/words.sh | 29 +++++++++++++++++++++-------- 2 files changed, 25 insertions(+), 8 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 440edfff2f8..fdba64eb2f6 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,7 @@ +2019-11-25 Tom de Vries + + * contrib/words.sh: Add -c option. + 2019-11-25 Christian Biesinger * solib.c (solib_find_1): Change int to bool. diff --git a/gdb/contrib/words.sh b/gdb/contrib/words.sh index ec8bcd06cbf..d4c436d608c 100755 --- a/gdb/contrib/words.sh +++ b/gdb/contrib/words.sh @@ -14,17 +14,20 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -# This script intends to facilitate spell checking of comments in C sources. +# This script intends to facilitate spell checking of source/doc files. # It: -# - extracts comments from C files -# - transforms the comments into a list of lowercase words +# - transforms the files into a list of lowercase words # - prefixes each word with the frequency # - filters out words within a frequency range # - sorts the words, longest first # +# If '-c' is passed as option, it operates on the C comments only, rather than +# on the entire file. +# # 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 +39,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 +49,13 @@ minfreq= maxfreq= +c=false while [ $# -gt 0 ]; do case "$1" in + -c) + c=true + shift + ;; --freq|-f) minfreq=$2 maxfreq=$2 @@ -111,9 +120,13 @@ EOF # 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' \ -- 2.30.2