diff options
-rwxr-xr-x | linux/bin/beschreibe | 86 |
1 files changed, 64 insertions, 22 deletions
diff --git a/linux/bin/beschreibe b/linux/bin/beschreibe index 0ec1401..0075720 100755 --- a/linux/bin/beschreibe +++ b/linux/bin/beschreibe @@ -2,42 +2,85 @@ # Verzeichnis muss eventuell an den Ort der Compose angepasst werden: COMPOSE=/usr/share/X11/locale/en_US.UTF-8/Compose +KEYSYM=/usr/include/X11/keysymdef.h n=10 +typeset -i j=0 while [ ! "$beschreibung" ] do case ${1-" "} in - " ") - echo Aufruf: $0 [OPTION] BESCHREIBUNG - echo »$0 --help« gibt Ihnen mehr Informationen. - exit;; - --help) - echo Aufruf: $0 [OPTION] BESCHREIBUNG - echo »$0« versucht ein Zeichen anhand einer Beschreibung zu idetifizieren - echo Option: - echo -e " -n gibt n statt 10 Vorschläge aus" - exit;; - \ ) - echo $0: Kein Suchkriterium eingegeben! - echo Versuchen Sie »$0 --help« für weitere Informationen. - exit;; - -*) - n=`echo $1 | cut -c2-` - shift;; - *) - beschreibung=${*?$0: Fehler! Versuchen Sie »$0 --help« für weitere Informationen.} + " ") + echo Aufruf: $0 [OPTION] BESCHREIBUNG + echo »$0 --help« gibt Ihnen mehr Informationen. + exit;; + --help) + echo Aufruf: $0 [OPTION] BESCHREIBUNG + echo »$0« versucht ein Zeichen anhand einer Beschreibung zu idetifizieren + echo Option: + echo -e " -n gibt n statt 10 Vorschläge aus" + exit;; + \ ) + echo $0: Kein Suchkriterium eingegeben! + echo Versuchen Sie »$0 --help« für weitere Informationen. + exit;; + -*) + n=`echo $1 | cut -c2-` + shift;; + *) + beschreibung=${*?$0: Fehler! Versuchen Sie »$0 --help« für weitere Informationen.} esac done anzahl=`grep -iw $beschreibung $COMPOSE | head -$n | wc -l` if [ $anzahl -gt 0 ] then + ausgabe=1 for i in $(seq 1 $anzahl) do - a[$i]=`grep -iw $beschreibung $COMPOSE | grep ^\< | head -$i | tail -1 | cut -f2 -d \"` - echo $i\) ${a[$i]} + j=j+1 + a[$j]=`grep -iw $beschreibung $COMPOSE | grep ^\< | head -$i | tail -1 | cut -f2 -d \"` + echo $j\) ${a[$j]} + done +fi + +anzahl2=`grep -i [\ _]$beschreibung[\ _] $KEYSYM | head -$n | wc -l` +if [ $anzahl2 -gt 0 ] +then + ausgabe=1 + for i in $(seq 1 $anzahl2) + do + c=`grep -i [\ _]$beschreibung[\ _] $KEYSYM | grep ^#define | head -$i | tail -1 | cut -f2- -d\* | cut -f2- -d+ | cut -f1 -d\ ` + c1=`echo $c | cut -c1-2` + c2=`echo $c | cut -c3` + c3=`echo $c | cut -c4` + + case $c1 in + 00) + j=j+1 + a[$j]=`echo -e \\\x${c2}` + echo $j\) ${a[$j]} + ;; + 03) + if [ "$c2" = "C" ] + then + j=j+1 + a[$j]=`echo -e \\\xcf\\\x8${c3}` + echo $j\) ${a[$j]} + + else + j=j+1 + a[$j]=`echo -e \\\xce\\\x${c2}${c3}` + echo $j\) ${a[$j]} + fi + ;; + *) + ;; + esac done +fi +if [ $ausgabe ] +then read -p 'welches Zeichen suchen Sie: ' zahl echo else @@ -47,6 +90,5 @@ fi if [ ${a[$zahl]} ] then - echo ./wiemitneo ${a[$zahl]} fi |