mirror of
https://github.com/rkd77/elinks.git
synced 2024-12-04 14:46:47 -05:00
42f2483350
\| is an incompatible GNU extension to BREs. This corrupts formatting of the elinkskeys(5) man page on any system where sed is not GNU sed (e.g. the BSDs). Use ERE syntax instead.
136 lines
3.6 KiB
Bash
Executable File
136 lines
3.6 KiB
Bash
Executable File
#!/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 -E "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
|