[gdb/contrib] Add -c option to words.sh script
authorTom de Vries <tdevries@suse.de>
Mon, 25 Nov 2019 22:00:03 +0000 (23:00 +0100)
committerTom de Vries <tdevries@suse.de>
Mon, 25 Nov 2019 22:00:03 +0000 (23:00 +0100)
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  <tdevries@suse.de>

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

Change-Id: Ifa34d435b3c41b3ff845dc07ae4b0d9f02d92a2d

gdb/ChangeLog
gdb/contrib/words.sh

index 440edfff2f828bb51a4fdce18bd55638ed15dc90..fdba64eb2f6eac96bcb7a311cb23bd8ff34693b5 100644 (file)
@@ -1,3 +1,7 @@
+2019-11-25  Tom de Vries  <tdevries@suse.de>
+
+       * contrib/words.sh: Add -c option.
+
 2019-11-25  Christian Biesinger  <cbiesinger@google.com>
 
        * solib.c (solib_find_1): Change int to bool.
index ec8bcd06cbfe3f3a3c6630b85923ba0422ed6e42..d4c436d608c1824061a76f70a7f30f972ee27e6b 100755 (executable)
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-# 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.
 #
 
 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' \