Fix: besser kommentierte Version von Pascal (via Mailingliste).
git-svn-id: https://svn.neo-layout.org@2389 b9310e46-f624-0410-8ea1-cfbb3a30dc96
This commit is contained in:
parent
40c476df10
commit
efcdb80eb7
1 changed files with 29 additions and 18 deletions
|
@ -1,8 +1,7 @@
|
|||
#!/bin/bash
|
||||
#!/bin/sh
|
||||
#
|
||||
# Dieses Skript unterstützt die Benutzung der Neo-Tastatur
|
||||
# Als Argument kann ein einzelnes Zeichen oder eine Beschreibung eines
|
||||
# Zeichens übergeben werden
|
||||
# Als Argument kann ein einzelnes Zeichen oder eine Beschreibung eines Zeichens übergeben werden
|
||||
#
|
||||
# Dieses Skript stammt von:
|
||||
# Pascal Hauck <pascal dot hauck at web dot de>
|
||||
|
@ -10,7 +9,7 @@
|
|||
# Kontakt zu den Entwicklern der Neo-Tastatur:
|
||||
# <diskussion at neo-layout dot org>
|
||||
|
||||
COMPOSE=/usr/share/X11/locale/en_US.UTF-8/Compose
|
||||
COMPOSE=$HOME/.XCompose
|
||||
REFERENZ=$HOME/neo/neo20.txt
|
||||
|
||||
VON[1]=7; BIS[1]=82; RAND[1]="┌─────┬──"; ORT[1]="" # HAUPTTASTATUR=1
|
||||
|
@ -22,19 +21,23 @@ zeichen=$1 # suche nach diesem Zeichen
|
|||
typeset -i z s e j # z=zeile, s=spalte, e=Ebene
|
||||
|
||||
|
||||
# als TASTATURTEL wird immer 1 für die Haupttastatur und 2 für das Keypad verwendet
|
||||
|
||||
bild () { # bild TASTATURTEIL , erzeugt das Bild des Tastaturteils wie die Skripte neo und num
|
||||
bild () { # Aufruf: bild TASTATURTEIL
|
||||
# erzeugt das Bild des Tastaturteils wie die Skripte neo und num
|
||||
grep -m 1 -A 15 ${RAND[$1]} $REFERENZ | cut -c ${VON[$1]}-${BIS[$1]}
|
||||
}
|
||||
|
||||
teste () { # teste TASTATURTEIL ZEILE SPALTE
|
||||
position () { # Aufruf: position TASTATURTEIL ZEILE SPALTE
|
||||
# gibt das Zeichen aus, das an der durch $TASTATURTEIL, $ZEILE und $SPALTE spezifizierten stelle liegt
|
||||
bild $1 | head -$2 | tail -1 | cut -c $3
|
||||
}
|
||||
|
||||
schau_auf_tastatur () {
|
||||
zeichen=$1
|
||||
j=0
|
||||
for tastatur in 1 2
|
||||
such_auf_tastatur () { # Aufruf: such_auf_tastatur ZEICHEN
|
||||
# sucht, ob das Zeichen $ZEICHEN irgendwo auf der Tastatur (Haupttastatur oder Keypad) zu finden ist
|
||||
zeichen=$1 # zu suchendes Zeichen
|
||||
j=0 # j=3, sobald das Zeichen gefunden wurde
|
||||
for tastatur in 1 2 # durchsuche beide Tastaturteile
|
||||
do
|
||||
|
||||
anzahl=`bild $tastatur | grep -n [│\ ]$zeichen[│\ ] | wc -l` # wie häufig ist $zeichen auf der Tastatur?
|
||||
|
@ -48,27 +51,35 @@ schau_auf_tastatur () {
|
|||
do
|
||||
j=j+1
|
||||
z=`bild $tastatur | grep -n [│\ ]$zeichen[│\ ] | head -$i | tail -1 | cut -f1 -d:`
|
||||
# Zeile, an der das gesuchte Zeichen gefunden worden ist
|
||||
s=`bild $tastatur | grep [│\ ]$zeichen[│\ ] | head -$i | tail -1 | cut -f1 -d $zeichen | wc -m`
|
||||
# Spalte, an der das gesuchte Zeichen gefunden worden ist
|
||||
|
||||
e=0
|
||||
test=`teste $tastatur $z $s`
|
||||
e=0 # e gibt am Ende die Ebene an, in der das gesuchte Zeichen liegt
|
||||
test=`position $tastatur $z $s`
|
||||
while [ ! "$test" = "─" ] && [ ! "$test" = "┬" ]
|
||||
# suche in dem Kästchen bis der untere Rand gefunden ist
|
||||
# Beispiel: ┬────┴┬
|
||||
# │N 4 ℕ│
|
||||
# │n ( ν│
|
||||
# ┴──┬──┴
|
||||
do
|
||||
# finde Zeile z von $ursprung (=Tastenname), berechne die Ebene $e von $zeichen
|
||||
# finde Zeile z von $ursprung (=Tastenname, im Beispiel also ›n‹), berechne die Ebene $e von $zeichen
|
||||
z=z+1
|
||||
e=e+1
|
||||
ursprung=$test
|
||||
test=`teste $tastatur $z $s`
|
||||
test=`position $tastatur $z $s`
|
||||
done
|
||||
z=z-1
|
||||
|
||||
ehilfe="1"
|
||||
ehilfe="1" # ehilfe="1" - es gibt kein Leerzeichen neben dem Rand
|
||||
test=$ursprung
|
||||
while [ ! "$test" = "│" ]
|
||||
# suche in dem Kästchen bis der linke Rand gefunden ist
|
||||
do
|
||||
if [ "$test" = " " ]
|
||||
then
|
||||
ehilfe="0"
|
||||
ehilfe="0" # ehilfe="0" - es gibt kein Leerzeichen - neben dem Rand?
|
||||
elif [ "$ehilfe" = "0" ]
|
||||
then
|
||||
e=e+2; ehilfe=1
|
||||
|
@ -76,7 +87,7 @@ schau_auf_tastatur () {
|
|||
fi
|
||||
|
||||
s=s-1
|
||||
test=`teste $tastatur $z $s`
|
||||
test=`position $tastatur $z $s`
|
||||
done
|
||||
ursprung=`echo $ursprung ${ORT[$tastatur]}`
|
||||
|
||||
|
@ -113,7 +124,7 @@ schau_auf_tastatur () {
|
|||
|
||||
|
||||
|
||||
schau_auf_tastatur $zeichen
|
||||
such_auf_tastatur $zeichen
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue