1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135
|
#!/bin/sh
#
# Generate the keymap-actions.txt and keymap-defaults.txt for elinkskeys(5)
# manpage.
#
# Copyright (c) Jonas Fonseca <fonseca@diku.dk>, 2005-2006
#
KBDBIND=$1
CONFIGDIR=$(dirname "$KBDBIND")
OUTPUT=$2
test -d "$CONFIGDIR" || exit
print_title()
{
echo
echo "$1" | tr 'a-z' 'A-Z'
echo "$1" | sed 's/[^~]/~/g'
echo
}
print_keymap_actions()
{
keymap="$1"
print_title "$keymap ACTIONS"
echo 'ifdef::backend-xhtml11[]'
echo '`----------------------------------`----------------------------------------------------------------------------'
echo 'Action Description'
echo '----------------------------------------------------------------------------------------------------------------'
# open-link-in-new-tab-in-background
echo 'endif::backend-xhtml11[]'
grep ACTION_ "$CONFIGDIR/actions-$keymap.inc" \
| while read entry;
do
action=$(echo "$entry" | sed 's/ACTION_([^,]*, "\([^"]*\)".*/\1/')
caption=$(echo "$entry" | sed 's/.*N__("\(.*\)").*/\1/')
[ "$action" = "none" ] && continue
[ "$action" = " *scripting-function*" ] && continue
echo 'ifdef::backend-docbook[]'
echo "$action::"
echo " $caption."
echo
echo 'endif::backend-docbook[]'
echo 'ifdef::backend-xhtml11[]'
printf "%-34s %s\n" "$action" "$caption"
echo 'endif::backend-xhtml11[]'
done
echo 'ifdef::backend-xhtml11[]'
echo '---------------------------------------------------------------------------------------------------------------'
echo 'endif::backend-xhtml11[]'
}
print_keymap_defaults()
{
keymap="$1"
KEYMAP=$(echo $1 | tr '[a-z]' '[A-Z]')
print_title "$keymap KEYS"
echo 'ifdef::backend-xhtml11[]'
echo '`-----------`-------------------------------------------------------------------------------'
echo 'Key Description (Action)'
echo '--------------------------------------------------------------------------------------------'
# Ctrl-Insert
echo 'endif::backend-xhtml11[]'
grep ACT_$KEYMAP $KBDBIND | grep '^[[:space:]]{' | grep -v '{ "' \
| while read entry
do
entry=$(echo "$entry" | sed 's/.*{ { //')
key=$(echo "$entry" | sed "s/\(KBD_[^,]*\|'.*'\),.*/\1/")
action=$(echo "$entry" | sed "s/.*,.*\(ACT_$KEYMAP\)_\([A-Z_]*\).*/\2/")
# If there are backslashed quotes, remove the backslashes.
# (This is not needed in print_keymap_actions because
# there the "read" command consumes the backslashes.)
action=$(grep " $action," "$CONFIGDIR/actions-$keymap.inc" \
| sed "s/.*\"\([^\"]*\)\".*N__(\"\(.*\)\").*/\2 ('\1')/;s/\\\\\"/\"/g")
q=
case "$key" in
KBD_*)
key=$(grep $key $KBDBIND \
| grep '^[[:space:]]{ "' \
| sed 's/.*"\([^"]*\)".*/\1/')
;;
"' '")
key="Space"
;;
*)
key=$(echo "$key" | sed "s/^'\(.*\)'$/\1/" \
| sed "s/'/{squote}/")
q='"'
;;
esac
case "$entry" in
*KBD_MOD_ALT*) modifier="Alt-" ;;
*KBD_MOD_CTRL*) modifier="Ctrl-" ;;
*KBD_MOD_SHIFT*) modifier="Shift-" ;;
*) modifier="" ;;
esac
echo 'ifdef::backend-docbook[]'
echo "'$modifier$q$key$q'::"
echo " $action"
echo
echo 'endif::backend-docbook[]'
echo 'ifdef::backend-xhtml11[]'
printf "%-11s %s\n" "$modifier$key" "$action"
echo 'endif::backend-xhtml11[]'
done
echo 'ifdef::backend-xhtml11[]'
echo '--------------------------------------------------------------------------------------------'
echo 'endif::backend-xhtml11[]'
}
print_keymap_doc=
case "$OUTPUT" in
*default*) print_keymap_doc="print_keymap_defaults" ;;
*action*) print_keymap_doc="print_keymap_actions" ;;
esac
$print_keymap_doc main
$print_keymap_doc edit
$print_keymap_doc menu
|