]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
[gdb/contrib] Add spellcheck.sh --print-dictionary
authorTom de Vries <tdevries@suse.de>
Mon, 18 Nov 2024 08:42:04 +0000 (09:42 +0100)
committerTom de Vries <tdevries@suse.de>
Mon, 18 Nov 2024 08:42:04 +0000 (09:42 +0100)
Add an option --print-dictionary to spellcheck.sh that allows us to inspect
the effective dictionary.

Verified with shellcheck.

gdb/contrib/spellcheck.sh

index 2c34b03d4d3c92402fc7bacfc6528f7fefd7a733..d9ee79710e0d8a8d72d30aaa6be4b11051bad2c5 100755 (executable)
@@ -119,6 +119,7 @@ sed_join ()
 usage ()
 {
     echo "usage: $(basename "$0") [--check] <file|dir>+"
+    echo "       $(basename "$0") --print-dictionary"
 }
 
 make_absolute ()
@@ -143,6 +144,11 @@ parse_args ()
     files=$(mktemp)
     trap 'rm -f "$files"' EXIT
 
+    if [ $# -eq 1 ] && [ "$1" =  "--print-dictionary" ]; then
+       print_dictionary=true
+       return
+    fi
+
     while true; do
        case " $1 " in
            " --check ")
@@ -259,6 +265,22 @@ parse_dictionary ()
     done
 }
 
+print_dictionary ()
+{
+    local i word replacement
+    i=0
+    for word in "${words[@]}"; do
+       replacement=${replacements[$i]}
+       i=$((i + 1))
+
+       if [ "$word" == "" ]; then
+           continue
+       fi
+
+       echo "$word -> $replacement"
+    done
+}
+
 find_files_matching_words ()
 {
     local cache_id
@@ -424,6 +446,7 @@ main ()
 {
     declare -a unique_files
     check=false
+    print_dictionary=false
     parse_args "$@"
 
     get_dictionary
@@ -432,6 +455,11 @@ main ()
     declare -a replacements
     parse_dictionary
 
+    if $print_dictionary; then
+       print_dictionary
+       exit 0
+    fi
+
     # Reduce set of files for sed to operate on.
     local files_matching_words
     declare -a files_matching_words