From 57e43f6ea5b14798b7fc2723edf997bd4d8dc90e Mon Sep 17 00:00:00 2001
From: Tom de Vries <tdevries@suse.de>
Date: Mon, 18 Nov 2024 09:42:04 +0100
Subject: [gdb/contrib] Add spellcheck.sh --print-dictionary

Add an option --print-dictionary to spellcheck.sh that allows us to inspect
the effective dictionary.

Verified with shellcheck.
---
 gdb/contrib/spellcheck.sh | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

(limited to 'gdb/contrib')

diff --git a/gdb/contrib/spellcheck.sh b/gdb/contrib/spellcheck.sh
index 2c34b03..d9ee797 100755
--- a/gdb/contrib/spellcheck.sh
+++ b/gdb/contrib/spellcheck.sh
@@ -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
-- 
cgit v1.1