# HG changeset patch
# User Christoph Berg <cb@xxxxxxxx>
# Date 1173917228 -3600
# Node ID 99f7aa2bb5285cdfe00bb1f2884b202bf9507c9d
# Parent e9203a364537a76a93351fb82cc0950b93f92d24
Generate menu binding documentation from functions.h and OPS*.
diff -r e9203a364537 -r 99f7aa2bb528 doc/Makefile.am
--- a/doc/Makefile.am Wed Mar 14 13:26:47 2007 -0700
+++ b/doc/Makefile.am Thu Mar 15 01:07:08 2007 +0100
@@ -132,11 +132,13 @@ mutt.1: $(srcdir)/mutt.man
mutt.1: $(srcdir)/mutt.man
$(EDIT) $(srcdir)/mutt.man > $@
-stamp-doc-xml: $(top_srcdir)/makedoc.c $(top_srcdir)/init.h manual.xml.head
manual.xml.tail \
+stamp-doc-xml: $(top_srcdir)/makedoc.c $(top_srcdir)/init.h manual.xml.head \
+ $(top_srcdir)/functions.h $(wildcard $(top_srcdir)/OPS*)
manual.xml.tail \
$(top_srcdir)/VERSION ../reldate.h
$(MAKE) ../makedoc$(EXEEXT)
( date=`cut -d\" -f2 ../reldate.h`; \
sed -e "s/@VERSION\@/`cat $(top_srcdir)/VERSION` ($$date)/"
$(srcdir)/manual.xml.head ;\
- $(MAKEDOC_CPP) $(top_srcdir)/init.h | ../makedoc -s ) | \
- cat - $(srcdir)/manual.xml.tail > manual.xml
+ $(MAKEDOC_CPP) $(top_srcdir)/init.h | ../makedoc -s ;\
+ ./gen-map-doc $(top_srcdir)/functions.h $(wildcard
$(top_srcdir)/OPS*) < $(srcdir)/manual.xml.tail \
+ ) > manual.xml
touch stamp-doc-xml
diff -r e9203a364537 -r 99f7aa2bb528 doc/gen-map-doc
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/gen-map-doc Thu Mar 15 01:07:08 2007 +0100
@@ -0,0 +1,55 @@
+#!/usr/bin/perl -w
+
+use strict;
+
+my (%OPS, %MAP, $map);
+
+my $functions_h = shift @ARGV;
+
+open F, "cat @ARGV |" or die "OPS*: $!";
+while (<F>) {
+ /(\w+) "(.+)"/ or die "$.: parse error";
+ $OPS{$1} = $2;
+}
+close F;
+
+open F, $functions_h or die "$functions_h: $!";
+while (<F>) {
+ if (/^struct binding_t Op.*{ \/\* map: (.*) \*\//) {
+ $map = $1;
+ }
+ if ($map and /{\s*"(.+)"\s*,\s*(\w+)\s*,\s*(?:"([^"]+)"|(\w+))\s*}/) {
+ my ($function, $op, $binding) = ($1, $2, $3 || $4);
+ $binding =~ s/ /Space/;
+ $binding =~ s/^\\033/ESC /;
+ $binding =~ s/^\\010/Backspace/;
+ $binding =~ s/^\\(0\d+)$/'^'.chr(64+oct($1))/e;
+ $binding =~ s/^\\(0\d+)(.)/'^'.chr(64+oct($1)) ." $2"/e;
+ $binding =~ s/<(.+)>/$1/;
+ $binding =~ s/&/&/;
+ $binding =~ s/</</;
+ $binding =~ s/>/>/;
+ $binding =~ s/\\t/TAB/;
+ $binding =~ s/M_ENTER_S/RET/;
+ $binding =~ s/NULL/not bound/;
+ die "unknown key $binding" if $binding =~ /\\[^\\]|<|>/;
+ die "unknown OP $op" unless $OPS{$op};
+ $MAP{$map} .=
"<row><entry>$function</entry><entry>$binding</entry><entry>$OPS{$op}</entry></row>\n";
+ }
+ if ($map and /^}/) {
+ undef $map;
+ }
+}
+close F;
+
+while (<STDIN>) {
+ if (/__print_map\((.*)\)/) {
+ die "map $1 undefined" unless $MAP{$1};
+ print $MAP{$1};
+ delete $MAP{$1};
+ } else {
+ print;
+ }
+}
+
+die "unprinted maps: ". join(" ", keys %MAP) if %MAP;
diff -r e9203a364537 -r 99f7aa2bb528 doc/manual.xml.tail
--- a/doc/manual.xml.tail Wed Mar 14 13:26:47 2007 -0700
+++ b/doc/manual.xml.tail Thu Mar 15 01:07:08 2007 +0100
@@ -11,7 +11,7 @@ command.
command.
</para>
-<sect2>
+<sect2 id="generic_map">
<title>generic</title>
<para>
@@ -23,489 +23,266 @@ bindings for all menus (except as noted)
<para>
-<table>
+<table id="generic_table">
<title>Default generic function bindings</title>
<tgroup cols="3">
<thead>
<row><entry>Function</entry><entry>Default
key</entry><entry>Description</entry></row>
</thead>
<tbody>
-<row><entry>bottom-page</entry><entry>L</entry><entry>move to the bottom of
the page</entry></row>
-<row><entry>current-bottom</entry><entry>not bound</entry><entry>move current
entry to bottom of page</entry></row>
-<row><entry>current-middle</entry><entry>not bound</entry><entry>move current
entry to middle of page</entry></row>
-<row><entry>current-top</entry><entry>not bound</entry><entry>move current
entry to top of page</entry></row>
-<row><entry>enter-command</entry><entry>:</entry><entry>enter a muttrc
command</entry></row>
-<row><entry>exit</entry><entry>q</entry><entry>exit this menu</entry></row>
-<row><entry>first-entry</entry><entry>=</entry><entry>move to the first
entry</entry></row>
-<row><entry>half-down</entry><entry>]</entry><entry>scroll down 1/2
page</entry></row>
-<row><entry>half-up</entry><entry>[</entry><entry>scroll up 1/2
page</entry></row>
-<row><entry>help</entry><entry>?</entry><entry>this screen</entry></row>
-<row><entry>jump</entry><entry>number</entry><entry>jump to an index
number</entry></row>
-<row><entry>last-entry</entry><entry>*</entry><entry>move to the last
entry</entry></row>
-<row><entry>middle-page</entry><entry>M</entry><entry>move to the middle of
the page</entry></row>
-<row><entry>next-entry</entry><entry>j</entry><entry>move to the next
entry</entry></row>
-<row><entry>next-line</entry><entry>></entry><entry>scroll down one
line</entry></row>
-<row><entry>next-page</entry><entry>z</entry><entry>move to the next
page</entry></row>
-<row><entry>previous-entry</entry><entry>k</entry><entry>move to the previous
entry</entry></row>
-<row><entry>previous-line</entry><entry><</entry><entry>scroll up one
line</entry></row>
-<row><entry>previous-page</entry><entry>Z</entry><entry>move to the previous
page</entry></row>
-<row><entry>refresh</entry><entry>ˆL</entry><entry>clear and redraw the
screen</entry></row>
-<row><entry>search</entry><entry>/</entry><entry>search for a regular
expression</entry></row>
-<row><entry>search-next</entry><entry>n</entry><entry>search for next
match</entry></row>
-<row><entry>search-opposite</entry><entry>not bound</entry><entry>search for
next match in opposite direction</entry></row>
-<row><entry>search-reverse</entry><entry>ESC /</entry><entry>search backwards
for a regular expression</entry></row>
-<row><entry>select-entry</entry><entry>RET</entry><entry>select the current
entry</entry></row>
-<row><entry>shell-escape</entry><entry>!</entry><entry>run a program in a
subshell</entry></row>
-<row><entry>tag-entry</entry><entry>t</entry><entry>toggle the tag on the
current entry</entry></row>
-<row><entry>tag-prefix</entry><entry>;</entry><entry>apply next command to
tagged entries</entry></row>
-<row><entry>tag-prefix-cond</entry><entry>not bound</entry><entry>apply next
function ONLY to tagged messages</entry></row>
-<row><entry>top-page</entry><entry>H</entry><entry>move to the top of the
page</entry></row>
-<row><entry>what-key</entry><entry>not bound</entry><entry>display the keycode
for a key press</entry></row>
-</tbody>
-</tgroup>
-</table>
-
-</para>
-
-</sect2>
-
-<sect2>
+__print_map(generic)
+</tbody>
+</tgroup>
+</table>
+
+</para>
+
+</sect2>
+
+<sect2 id="index_map">
<title>index</title>
<para>
-<table>
+<table id="index_table">
<title>Default index menu function bindings</title>
<tgroup cols="3">
<thead>
<row><entry>Function</entry><entry>Default
key</entry><entry>Description</entry></row>
</thead>
<tbody>
-<row><entry>bounce-message</entry><entry>b</entry><entry>remail a message to
another user</entry></row>
-<row><entry>change-folder</entry><entry>c</entry><entry>open a different
folder</entry></row>
-<row><entry>change-folder-readonly</entry><entry>ESC c</entry><entry>open a
different folder in read only mode</entry></row>
-<row><entry>check-traditional-pgp</entry><entry>ESC P</entry><entry>check for
classic PGP</entry></row>
-<row><entry>clear-flag</entry><entry>W</entry><entry>clear a status flag from
a message</entry></row>
-<row><entry>copy-message</entry><entry>C</entry><entry>copy a message to a
file/mailbox</entry></row>
-<row><entry>create-alias</entry><entry>a</entry><entry>create an alias from a
message sender</entry></row>
-<row><entry>decode-copy</entry><entry>ESC C</entry><entry>decode a message and
copy it to a file/mailbox</entry></row>
-<row><entry>decode-save</entry><entry>ESC s</entry><entry>decode a message and
save it to a file/mailbox</entry></row>
-<row><entry>delete-message</entry><entry>d</entry><entry>delete the current
entry</entry></row>
-<row><entry>delete-pattern</entry><entry>D</entry><entry>delete messages
matching a pattern</entry></row>
-<row><entry>delete-subthread</entry><entry>ESC d</entry><entry>delete all
messages in subthread</entry></row>
-<row><entry>delete-thread</entry><entry>ˆD</entry><entry>delete all
messages in thread</entry></row>
-<row><entry>display-address</entry><entry>@</entry><entry>display full address
of sender</entry></row>
-<row><entry>display-toggle-weed</entry><entry>h</entry><entry>display message
and toggle header weeding</entry></row>
-<row><entry>display-message</entry><entry>RET</entry><entry>display a
message</entry></row>
-<row><entry>edit</entry><entry>e</entry><entry>edit the current
message</entry></row>
-<row><entry>edit-type</entry><entry>ˆE</entry><entry>edit the current
message's Content-Type</entry></row>
-<row><entry>exit</entry><entry>x</entry><entry>exit without saving
changes</entry></row>
-<row><entry>extract-keys</entry><entry>ˆK</entry><entry>extract PGP
public keys</entry></row>
-<row><entry>fetch-mail</entry><entry>G</entry><entry>retrieve mail from POP
server</entry></row>
-<row><entry>flag-message</entry><entry>F</entry><entry>toggle a message's
'important' flag</entry></row>
-<row><entry>forget-passphrase</entry><entry>ˆF</entry><entry>wipe PGP
passphrase from memory</entry></row>
-<row><entry>forward-message</entry><entry>f</entry><entry>forward a message
with comments</entry></row>
-<row><entry>group-reply</entry><entry>g</entry><entry>reply to all
recipients</entry></row>
-<row><entry>limit</entry><entry>l</entry><entry>show only messages matching a
pattern</entry></row>
-<row><entry>list-reply</entry><entry>L</entry><entry>reply to specified
mailing list</entry></row>
-<row><entry>mail</entry><entry>m</entry><entry>compose a new mail
message</entry></row>
-<row><entry>mail-key</entry><entry>ESC k</entry><entry>mail a PGP public
key</entry></row>
-<row><entry>next-new</entry><entry>not bound</entry><entry>jump to the next
new message</entry></row>
-<row><entry>next-new-then-unread</entry><entry>TAB</entry><entry>jump to the
next new or unread message</entry></row>
-<row><entry>next-subthread</entry><entry>ESC n</entry><entry>jump to the next
subthread</entry></row>
-<row><entry>next-thread</entry><entry>ˆN</entry><entry>jump to the next
thread</entry></row>
-<row><entry>next-undeleted</entry><entry>j</entry><entry>move to the next
undeleted message</entry></row>
-<row><entry>next-unread</entry><entry>not bound</entry><entry>jump to the next
unread message</entry></row>
-<row><entry>parent-message</entry><entry>P</entry><entry>jump to parent
message in thread</entry></row>
-<row><entry>pipe-message</entry><entry>|</entry><entry>pipe
message/attachment to a shell command</entry></row>
-<row><entry>previous-new</entry><entry>not bound</entry><entry>jump to the
previous new message</entry></row>
-<row><entry>previous-new-then-unread</entry><entry>ESC TAB</entry><entry>jump
to the previous new or unread message</entry></row>
-<row><entry>previous-page</entry><entry>Z</entry><entry>move to the previous
page</entry></row>
-<row><entry>previous-subthread</entry><entry>ESC p</entry><entry>jump to
previous subthread</entry></row>
-<row><entry>previous-thread</entry><entry>ˆP</entry><entry>jump to
previous thread</entry></row>
-<row><entry>previous-undeleted</entry><entry>k</entry><entry>move to the last
undelete message</entry></row>
-<row><entry>previous-unread</entry><entry>not bound</entry><entry>jump to the
previous unread message</entry></row>
-<row><entry>print-message</entry><entry>p</entry><entry>print the current
entry</entry></row>
-<row><entry>query</entry><entry>Q</entry><entry>query external program for
addresses</entry></row>
-<row><entry>quit</entry><entry>q</entry><entry>save changes to mailbox and
quit</entry></row>
-<row><entry>read-subthread</entry><entry>ESC r</entry><entry>mark the current
subthread as read</entry></row>
-<row><entry>read-thread</entry><entry>ˆR</entry><entry>mark the current
thread as read</entry></row>
-<row><entry>recall-message</entry><entry>R</entry><entry>recall a postponed
message</entry></row>
-<row><entry>reply</entry><entry>r</entry><entry>reply to a
message</entry></row>
-<row><entry>resend-message</entry><entry>ESC e</entry><entry>resend message
and preserve MIME structure</entry></row>
-<row><entry>save-message</entry><entry>s</entry><entry>save message/attachment
to a file</entry></row>
-<row><entry>set-flag</entry><entry>w</entry><entry>set a status flag on a
message</entry></row>
-<row><entry>show-version</entry><entry>V</entry><entry>show the Mutt version
number and date</entry></row>
-<row><entry>show-limit</entry><entry>ESC l</entry><entry>show currently active
limit pattern, if any</entry></row>
-<row><entry>sort-mailbox</entry><entry>o</entry><entry>sort
messages</entry></row>
-<row><entry>sort-reverse</entry><entry>O</entry><entry>sort messages in
reverse order</entry></row>
-<row><entry>sync-mailbox</entry><entry>$</entry><entry>save changes to
mailbox</entry></row>
-<row><entry>tag-pattern</entry><entry>T</entry><entry>tag messages matching a
pattern</entry></row>
-<row><entry>tag-thread</entry><entry>ESC t</entry><entry>tag/untag all
messages in the current thread</entry></row>
-<row><entry>toggle-new</entry><entry>N</entry><entry>toggle a message's 'new'
flag</entry></row>
-<row><entry>toggle-write</entry><entry>%</entry><entry>toggle whether
the mailbox will be rewritten</entry></row>
-<row><entry>undelete-message</entry><entry>u</entry><entry>undelete the
current entry</entry></row>
-<row><entry>undelete-pattern</entry><entry>U</entry><entry>undelete messages
matching a pattern</entry></row>
-<row><entry>undelete-subthread</entry><entry>ESC u</entry><entry>undelete all
messages in subthread</entry></row>
-<row><entry>undelete-thread</entry><entry>ˆU</entry><entry>undelete all
messages in thread</entry></row>
-<row><entry>untag-pattern</entry><entry>ˆT</entry><entry>untag messages
matching a pattern</entry></row>
-<row><entry>view-attachments</entry><entry>v</entry><entry>show MIME
attachments</entry></row>
-</tbody>
-</tgroup>
-</table>
-
-</para>
-
-</sect2>
-
-<sect2>
+__print_map(index)
+</tbody>
+</tgroup>
+</table>
+
+</para>
+
+</sect2>
+
+<sect2 id="pager_map">
<title>pager</title>
<para>
-<table>
+<table id="pager_table">
<title>Default pager menu function bindings</title>
<tgroup cols="3">
<thead>
<row><entry>Function</entry><entry>Default
key</entry><entry>Description</entry></row>
</thead>
<tbody>
-<row><entry>bottom</entry><entry>not bound</entry><entry>jump to the bottom of
the message</entry></row>
-<row><entry>bounce-message</entry><entry>b</entry><entry>remail a message to
another user</entry></row>
-<row><entry>change-folder</entry><entry>c</entry><entry>open a different
folder</entry></row>
-<row><entry>change-folder-readonly</entry><entry>ESC c</entry><entry>open a
different folder in read only mode</entry></row>
-<row><entry>check-traditional-pgp</entry><entry>ESC P</entry><entry>check for
classic PGP</entry></row>
-<row><entry>copy-message</entry><entry>C</entry><entry>copy a message to a
file/mailbox</entry></row>
-<row><entry>create-alias</entry><entry>a</entry><entry>create an alias from a
message sender</entry></row>
-<row><entry>decode-copy</entry><entry>ESC C</entry><entry>decode a message and
copy it to a file/mailbox</entry></row>
-<row><entry>decode-save</entry><entry>ESC s</entry><entry>decode a message and
save it to a file/mailbox</entry></row>
-<row><entry>delete-message</entry><entry>d</entry><entry>delete the current
entry</entry></row>
-<row><entry>delete-subthread</entry><entry>ESC d</entry><entry>delete all
messages in subthread</entry></row>
-<row><entry>delete-thread</entry><entry>ˆD</entry><entry>delete all
messages in thread</entry></row>
-<row><entry>display-address</entry><entry>@</entry><entry>display full address
of sender</entry></row>
-<row><entry>display-toggle-weed</entry><entry>h</entry><entry>display message
and toggle header weeding</entry></row>
-<row><entry>edit</entry><entry>e</entry><entry>edit the current
message</entry></row>
-<row><entry>edit-type</entry><entry>ˆE</entry><entry>edit the current
message's Content-Type</entry></row>
-<row><entry>enter-command</entry><entry>:</entry><entry>enter a muttrc
command</entry></row>
-<row><entry>exit</entry><entry>i</entry><entry>return to the
main-menu</entry></row>
-<row><entry>extract-keys</entry><entry>ˆK</entry><entry>extract PGP
public keys</entry></row>
-<row><entry>flag-message</entry><entry>F</entry><entry>toggle a message's
'important' flag</entry></row>
-<row><entry>forget-passphrase</entry><entry>ˆF</entry><entry>wipe PGP
passphrase from memory</entry></row>
-<row><entry>forward-message</entry><entry>f</entry><entry>forward a message
with comments</entry></row>
-<row><entry>group-reply</entry><entry>g</entry><entry>reply to all
recipients</entry></row>
-<row><entry>half-up</entry><entry>not bound</entry><entry>move up one-half
page</entry></row>
-<row><entry>half-down</entry><entry>not bound</entry><entry>move down one-half
page</entry></row>
-<row><entry>help</entry><entry>?</entry><entry>this screen</entry></row>
-<row><entry>list-reply</entry><entry>L</entry><entry>reply to specified
mailing list</entry></row>
-<row><entry>mail</entry><entry>m</entry><entry>compose a new mail
message</entry></row>
-<row><entry>mail-key</entry><entry>ESC k</entry><entry>mail a PGP public
key</entry></row>
-<row><entry>mark-as-new</entry><entry>N</entry><entry>toggle a message's 'new'
flag</entry></row>
-<row><entry>next-line</entry><entry>RET</entry><entry>scroll down one
line</entry></row>
-<row><entry>next-entry</entry><entry>J</entry><entry>move to the next
entry</entry></row>
-<row><entry>next-new</entry><entry>not bound</entry><entry>jump to the next
new message</entry></row>
-<row><entry>next-new-then-unread</entry><entry>TAB</entry><entry>jump to the
next new or unread message</entry></row>
-<row><entry>next-page</entry><entry>not bound</entry><entry>move to the next
page</entry></row>
-<row><entry>next-subthread</entry><entry>ESC n</entry><entry>jump to the next
subthread</entry></row>
-<row><entry>next-thread</entry><entry>ˆN</entry><entry>jump to the next
thread</entry></row>
-<row><entry>next-undeleted</entry><entry>j</entry><entry>move to the next
undeleted message</entry></row>
-<row><entry>next-unread</entry><entry>not bound</entry><entry>jump to the next
unread message</entry></row>
-<row><entry>parent-message</entry><entry>P</entry><entry>jump to parent
message in thread</entry></row>
-<row><entry>pipe-message</entry><entry>|</entry><entry>pipe
message/attachment to a shell command</entry></row>
-<row><entry>previous-line</entry><entry>BackSpace</entry><entry>scroll up one
line</entry></row>
-<row><entry>previous-entry</entry><entry>K</entry><entry>move to the previous
entry</entry></row>
-<row><entry>previous-new</entry><entry>not bound</entry><entry>jump to the
previous new message</entry></row>
-<row><entry>previous-new-then-unread</entry><entry>not
bound</entry><entry>jump to the previous new message</entry></row>
-<row><entry>previous-page</entry><entry>-</entry><entry>move to the previous
page</entry></row>
-<row><entry>previous-subthread</entry><entry>ESC p</entry><entry>jump to
previous subthread</entry></row>
-<row><entry>previous-thread</entry><entry>ˆP</entry><entry>jump to
previous thread</entry></row>
-<row><entry>previous-undeleted</entry><entry>k</entry><entry>move to the last
undelete message</entry></row>
-<row><entry>previous-unread</entry><entry>not bound</entry><entry>jump to the
previous unread message</entry></row>
-<row><entry>print-message</entry><entry>p</entry><entry>print the current
entry</entry></row>
-<row><entry>quit</entry><entry>Q</entry><entry>save changes to mailbox and
quit</entry></row>
-<row><entry>read-subthread</entry><entry>ESC r</entry><entry>mark the current
subthread as read</entry></row>
-<row><entry>read-thread</entry><entry>ˆR</entry><entry>mark the current
thread as read</entry></row>
-<row><entry>recall-message</entry><entry>R</entry><entry>recall a postponed
message</entry></row>
-<row><entry>redraw-screen</entry><entry>ˆL</entry><entry>clear and redraw
the screen</entry></row>
-<row><entry>reply</entry><entry>r</entry><entry>reply to a
message</entry></row>
-<row><entry>save-message</entry><entry>s</entry><entry>save message/attachment
to a file</entry></row>
-<row><entry>search</entry><entry>/</entry><entry>search for a regular
expression</entry></row>
-<row><entry>search-next</entry><entry>n</entry><entry>search for next
match</entry></row>
-<row><entry>search-opposite</entry><entry>not bound</entry><entry>search for
next match in opposite direction</entry></row>
-<row><entry>search-reverse</entry><entry>ESC /</entry><entry>search backwards
for a regular expression</entry></row>
-<row><entry>search-toggle</entry><entry>\</entry><entry>toggle search
pattern coloring</entry></row>
-<row><entry>shell-escape</entry><entry>!</entry><entry>invoke a command in a
subshell</entry></row>
-<row><entry>show-version</entry><entry>V</entry><entry>show the Mutt version
number and date</entry></row>
-<row><entry>skip-quoted</entry><entry>S</entry><entry>skip beyond quoted
text</entry></row>
-<row><entry>sync-mailbox</entry><entry>$</entry><entry>save changes to
mailbox</entry></row>
-<row><entry>tag-message</entry><entry>t</entry><entry>tag a
message</entry></row>
-<row><entry>toggle-quoted</entry><entry>T</entry><entry>toggle display of
quoted text</entry></row>
-<row><entry>top</entry><entry>ˆ</entry><entry>jump to the top of the
message</entry></row>
-<row><entry>undelete-message</entry><entry>u</entry><entry>undelete the
current entry</entry></row>
-<row><entry>undelete-subthread</entry><entry>ESC u</entry><entry>undelete all
messages in subthread</entry></row>
-<row><entry>undelete-thread</entry><entry>ˆU</entry><entry>undelete all
messages in thread</entry></row>
-<row><entry>view-attachments</entry><entry>v</entry><entry>show MIME
attachments</entry></row>
-</tbody>
-</tgroup>
-</table>
-
-</para>
-
-</sect2>
-
-<sect2>
+__print_map(pager)
+</tbody>
+</tgroup>
+</table>
+
+</para>
+
+</sect2>
+
+<sect2 id="alias_map">
<title>alias</title>
<para>
-<table>
+<table id="alias_table">
<title>Default alias menu function bindings</title>
<tgroup cols="3">
<thead>
<row><entry>Function</entry><entry>Default
key</entry><entry>Description</entry></row>
</thead>
<tbody>
-<row><entry>search</entry><entry>/</entry><entry>search for a regular
expression</entry></row>
-<row><entry>search-next</entry><entry>n</entry><entry>search for next
match</entry></row>
-<row><entry>search-reverse</entry><entry>ESC /</entry><entry>search backwards
for a regular expression</entry></row>
-</tbody>
-</tgroup>
-</table>
-
-</para>
-
-</sect2>
-
-<sect2>
+__print_map(alias)
+</tbody>
+</tgroup>
+</table>
+
+</para>
+
+</sect2>
+
+<sect2 id="query_map">
<title>query</title>
<para>
-<table>
+<table id="query_table">
<title>Default query menu function bindings</title>
<tgroup cols="3">
<thead>
<row><entry>Function</entry><entry>Default
key</entry><entry>Description</entry></row>
</thead>
<tbody>
-<row><entry>create-alias</entry><entry>a</entry><entry>create an alias from a
message sender</entry></row>
-<row><entry>mail</entry><entry>m</entry><entry>compose a new mail
message</entry></row>
-<row><entry>query</entry><entry>Q</entry><entry>query external program for
addresses</entry></row>
-<row><entry>query-append</entry><entry>A</entry><entry>append new query
results to current results</entry></row>
-<row><entry>search</entry><entry>/</entry><entry>search for a regular
expression</entry></row>
-<row><entry>search-next</entry><entry>n</entry><entry>search for next
match</entry></row>
-<row><entry>search-opposite</entry><entry>not bound</entry><entry>search for
next match in opposite direction</entry></row>
-<row><entry>search-reverse</entry><entry>ESC /</entry><entry>search backwards
for a regular expression</entry></row>
-</tbody>
-</tgroup>
-</table>
-
-</para>
-
-</sect2>
-
-<sect2>
+__print_map(query)
+</tbody>
+</tgroup>
+</table>
+
+</para>
+
+</sect2>
+
+<sect2 id="attach_map">
<title>attach</title>
<para>
-<table>
+<table id="attach_table">
<title>Default attach menu function bindings</title>
<tgroup cols="3">
<thead>
<row><entry>Function</entry><entry>Default
key</entry><entry>Description</entry></row>
</thead>
<tbody>
-<row><entry>bounce-message</entry><entry>b</entry><entry>remail a message to
another user</entry></row>
-<row><entry>collapse-parts</entry><entry>v</entry><entry>toggle display of
subparts</entry></row>
-<row><entry>delete-entry</entry><entry>d</entry><entry>delete the current
entry</entry></row>
-<row><entry>display-toggle-weed</entry><entry>h</entry><entry>display message
and toggle header weeding</entry></row>
-<row><entry>edit-type</entry><entry>ˆE</entry><entry>edit the current
entry's Content-Type</entry></row>
-<row><entry>extract-keys</entry><entry>ˆK</entry><entry>extract PGP
public keys</entry></row>
-<row><entry>forward-message</entry><entry>f</entry><entry>forward a message
with comments</entry></row>
-<row><entry>group-reply</entry><entry>g</entry><entry>reply to all
recipients</entry></row>
-<row><entry>list-reply</entry><entry>L</entry><entry>reply to specified
mailing list</entry></row>
-<row><entry>pipe-entry</entry><entry>|</entry><entry>pipe
message/attachment to a shell command</entry></row>
-<row><entry>print-entry</entry><entry>p</entry><entry>print the current
entry</entry></row>
-<row><entry>reply</entry><entry>r</entry><entry>reply to a
message</entry></row>
-<row><entry>resend-message</entry><entry>ESC e</entry><entry>resend message
and preserve MIME structure</entry></row>
-<row><entry>save-entry</entry><entry>s</entry><entry>save message/attachment
to a file</entry></row>
-<row><entry>undelete-entry</entry><entry>u</entry><entry>undelete the current
entry</entry></row>
-<row><entry>view-attach</entry><entry>RET</entry><entry>view attachment using
mailcap entry if necessary</entry></row>
-<row><entry>view-mailcap</entry><entry>m</entry><entry>force viewing of
attachment using mailcap</entry></row>
-<row><entry>view-text</entry><entry>T</entry><entry>view attachment as
text</entry></row>
-</tbody>
-</tgroup>
-</table>
-
-</para>
-
-</sect2>
-
-<sect2>
+__print_map(attach)
+</tbody>
+</tgroup>
+</table>
+
+</para>
+
+</sect2>
+
+<sect2 id="compose_map">
<title>compose</title>
<para>
-<table>
+<table id="compose_table">
<title>Default compose menu function bindings</title>
<tgroup cols="3">
<thead>
<row><entry>Function</entry><entry>Default
key</entry><entry>Description</entry></row>
</thead>
<tbody>
-<row><entry>attach-file</entry><entry>a</entry><entry>attach a file(s) to this
message</entry></row>
-<row><entry>attach-message</entry><entry>A</entry><entry>attach message(s) to
this message</entry></row>
-<row><entry>attach-key</entry><entry>ESC k</entry><entry>attach a PGP public
key</entry></row>
-<row><entry>copy-file</entry><entry>C</entry><entry>save message/attachment to
a file</entry></row>
-<row><entry>detach-file</entry><entry>D</entry><entry>delete the current
entry</entry></row>
-<row><entry>display-toggle-weed</entry><entry>h</entry><entry>display message
and toggle header weeding</entry></row>
-<row><entry>edit-bcc</entry><entry>b</entry><entry>edit the BCC
list</entry></row>
-<row><entry>edit-cc</entry><entry>c</entry><entry>edit the CC
list</entry></row>
-<row><entry>edit-description</entry><entry>d</entry><entry>edit attachment
description</entry></row>
-<row><entry>edit-encoding</entry><entry>ˆE</entry><entry>edit attachment
transfer-encoding</entry></row>
-<row><entry>edit-fcc</entry><entry>f</entry><entry>enter a file to save a copy
of this message in</entry></row>
-<row><entry>edit-from</entry><entry>ESC f</entry><entry>edit the from:
field</entry></row>
-<row><entry>edit-file</entry><entry>ˆX e</entry><entry>edit the file to
be attached</entry></row>
-<row><entry>edit-headers</entry><entry>E</entry><entry>edit the message with
headers</entry></row>
-<row><entry>edit</entry><entry>e</entry><entry>edit the message</entry></row>
-<row><entry>edit-mime</entry><entry>m</entry><entry>edit attachment using
mailcap entry</entry></row>
-<row><entry>edit-reply-to</entry><entry>r</entry><entry>edit the Reply-To
field</entry></row>
-<row><entry>edit-subject</entry><entry>s</entry><entry>edit the subject of
this message</entry></row>
-<row><entry>edit-to</entry><entry>t</entry><entry>edit the TO
list</entry></row>
-<row><entry>edit-type</entry><entry>ˆT</entry><entry>edit attachment
type</entry></row>
-<row><entry>filter-entry</entry><entry>F</entry><entry>filter attachment
through a shell command</entry></row>
-<row><entry>forget-passphrase</entry><entry>ˆF</entry><entry>wipe PGP
passphrase from memory</entry></row>
-<row><entry>ispell</entry><entry>i</entry><entry>run ispell on the
message</entry></row>
-<row><entry>new-mime</entry><entry>n</entry><entry>compose new attachment
using mailcap entry</entry></row>
-<row><entry>pgp-menu</entry><entry>p</entry><entry>show PGP
options</entry></row>
-<row><entry>pipe-entry</entry><entry>|</entry><entry>pipe
message/attachment to a shell command</entry></row>
-<row><entry>postpone-message</entry><entry>P</entry><entry>save this message
to send later</entry></row>
-<row><entry>print-entry</entry><entry>l</entry><entry>print the current
entry</entry></row>
-<row><entry>rename-file</entry><entry>R</entry><entry>rename/move an attached
file</entry></row>
-<row><entry>send-message</entry><entry>y</entry><entry>send the
message</entry></row>
-<row><entry>toggle-unlink</entry><entry>u</entry><entry>toggle whether to
delete file after sending it</entry></row>
-<row><entry>view-attach</entry><entry>RET</entry><entry>view attachment using
mailcap entry if necessary</entry></row>
-<row><entry>write-fcc</entry><entry>w</entry><entry>write the message to a
folder</entry></row>
-</tbody>
-</tgroup>
-</table>
-
-</para>
-
-</sect2>
-
-<sect2>
+__print_map(compose)
+</tbody>
+</tgroup>
+</table>
+
+</para>
+
+</sect2>
+
+<sect2 id="postpone_map">
<title>postpone</title>
<para>
-<table>
+<table id="postpone_table">
<title>Default postpone menu function bindings</title>
<tgroup cols="3">
<thead>
<row><entry>Function</entry><entry>Default
key</entry><entry>Description</entry></row>
</thead>
<tbody>
-<row><entry>delete-entry</entry><entry>d</entry><entry>delete the current
entry</entry></row>
-<row><entry>undelete-entry</entry><entry>u</entry><entry>undelete the current
entry</entry></row>
-</tbody>
-</tgroup>
-</table>
-
-</para>
-
-</sect2>
-
-<sect2>
+__print_map(postpone)
+</tbody>
+</tgroup>
+</table>
+
+</para>
+
+</sect2>
+
+<sect2 id="browser_map">
<title>browser</title>
<para>
-<table>
+<table id="browser_table">
<title>Default browser menu function bindings</title>
<tgroup cols="3">
<thead>
<row><entry>Function</entry><entry>Default
key</entry><entry>Description</entry></row>
</thead>
<tbody>
-<row><entry>change-dir</entry><entry>c</entry><entry>change
directories</entry></row>
-<row><entry>check-new</entry><entry>TAB</entry><entry>check mailboxes for new
mail</entry></row>
-<row><entry>enter-mask</entry><entry>m</entry><entry>enter a file
mask</entry></row>
-<row><entry>search</entry><entry>/</entry><entry>search for a regular
expression</entry></row>
-<row><entry>search-next</entry><entry>n</entry><entry>search for next
match</entry></row>
-<row><entry>search-reverse</entry><entry>ESC /</entry><entry>search backwards
for a regular expression</entry></row>
-<row><entry>select-new</entry><entry>N</entry><entry>select a new file in this
directory</entry></row>
-<row><entry>sort</entry><entry>o</entry><entry>sort messages</entry></row>
-<row><entry>sort-reverse</entry><entry>O</entry><entry>sort messages in
reverse order</entry></row>
-<row><entry>toggle-mailboxes</entry><entry>TAB</entry><entry>toggle whether to
browse mailboxes or all files</entry></row>
-<row><entry>view-file</entry><entry>SPACE</entry><entry>view file</entry></row>
-<row><entry>subscribe</entry><entry>s</entry><entry>subscribe to current
mailbox (IMAP Only)</entry></row>
-<row><entry>unsubscribe</entry><entry>u</entry><entry>unsubscribe from current
mailbox (IMAP Only)</entry></row>
-<row><entry>toggle-subscribed</entry><entry>T</entry><entry>toggle view
all/subscribed mailboxes (IMAP Only)</entry></row>
-</tbody>
-</tgroup>
-</table>
-
-</para>
-
-</sect2>
-
-<sect2>
-<title>PGP</title>
-
-<para>
-
-<table>
-<title>Default PGP menu function bindings</title>
-<tgroup cols="3">
-<thead>
-<row><entry>Function</entry><entry>Default
key</entry><entry>Description</entry></row>
-</thead>
-<tbody>
-<row><entry>view-name</entry><entry>%</entry><entry>view the key's user
id</entry></row>
-<row><entry>verify-key</entry><entry>c</entry><entry>verify a PGP public
key</entry></row>
-</tbody>
-</tgroup>
-</table>
-
-</para>
-
-</sect2>
-
-<sect2>
+__print_map(browser)
+</tbody>
+</tgroup>
+</table>
+
+</para>
+
+</sect2>
+
+<sect2 id="pgp_map">
+<title>pgp</title>
+
+<para>
+
+<table id="pgp_table">
+<title>Default pgp menu function bindings</title>
+<tgroup cols="3">
+<thead>
+<row><entry>Function</entry><entry>Default
key</entry><entry>Description</entry></row>
+</thead>
+<tbody>
+__print_map(pgp)
+</tbody>
+</tgroup>
+</table>
+
+</para>
+
+</sect2>
+
+<sect2 id="smime_map">
+<title>smime</title>
+
+<para>
+
+<table id="smime_table">
+<title>Default smime menu function bindings</title>
+<tgroup cols="3">
+<thead>
+<row><entry>Function</entry><entry>Default
key</entry><entry>Description</entry></row>
+</thead>
+<tbody>
+__print_map(smime)
+</tbody>
+</tgroup>
+</table>
+
+</para>
+
+</sect2>
+
+<sect2 id="mix_map">
+<title>mix</title>
+
+<para>
+
+<table id="mix_table">
+<title>Default mix menu function bindings</title>
+<tgroup cols="3">
+<thead>
+<row><entry>Function</entry><entry>Default
key</entry><entry>Description</entry></row>
+</thead>
+<tbody>
+__print_map(mix)
+</tbody>
+</tgroup>
+</table>
+
+</para>
+
+</sect2>
+
+<sect2 id="editor_map">
<title>editor</title>
<para>
-<table>
+<table id="editor_table">
<title>Default editor function bindings</title>
<tgroup cols="3">
<thead>
<row><entry>Function</entry><entry>Default
key</entry><entry>Description</entry></row>
</thead>
<tbody>
-<row><entry>backspace</entry><entry>BackSpace</entry><entry>delete the char in
front of the cursor</entry></row>
-<row><entry>backward-char</entry><entry>ˆB</entry><entry>move the cursor
one character to the left</entry></row>
-<row><entry>backward-word</entry><entry>ESC b</entry><entry>move the cursor to
the previous word</entry></row>
-<row><entry>bol</entry><entry>ˆA</entry><entry>jump to the beginning of
the line</entry></row>
-<row><entry>buffy-cycle</entry><entry>Space</entry><entry>cycle among incoming
mailboxes</entry></row>
-<row><entry>capitalize-word</entry><entry>ESC c</entry><entry>uppercase the
first character in the word</entry></row>
-<row><entry>complete</entry><entry>TAB</entry><entry>complete filename or
alias</entry></row>
-<row><entry>complete-query</entry><entry>ˆT</entry><entry>complete
address with query</entry></row>
-<row><entry>delete-char</entry><entry>ˆD</entry><entry>delete the char
under the cursor</entry></row>
-<row><entry>downcase-word</entry><entry>ESC l</entry><entry>lowercase all
characters in current word</entry></row>
-<row><entry>eol</entry><entry>ˆE</entry><entry>jump to the end of the
line</entry></row>
-<row><entry>forward-char</entry><entry>ˆF</entry><entry>move the cursor
one character to the right</entry></row>
-<row><entry>forward-word</entry><entry>ESC f</entry><entry>move the cursor to
the next word</entry></row>
-<row><entry>history-down</entry><entry>not bound</entry><entry>scroll down
through the history list</entry></row>
-<row><entry>history-up</entry><entry>not bound</entry><entry>scroll up through
the history list</entry></row>
-<row><entry>kill-eol</entry><entry>ˆK</entry><entry>delete chars from
cursor to end of line</entry></row>
-<row><entry>kill-eow</entry><entry>ESC d</entry><entry>delete chars from
cursor to end of word</entry></row>
-<row><entry>kill-line</entry><entry>ˆU</entry><entry>delete all chars on
the line</entry></row>
-<row><entry>kill-word</entry><entry>ˆW</entry><entry>delete the word in
front of the cursor</entry></row>
-<row><entry>quote-char</entry><entry>ˆV</entry><entry>quote the next
typed key</entry></row>
-<row><entry>transpose-chars</entry><entry>not bound</entry><entry>transpose
character under cursor with previous</entry></row>
-<row><entry>upcase-word</entry><entry>ESC u</entry><entry>uppercase all
characters in current word</entry></row>
+__print_map(editor)
</tbody>
</tgroup>
</table>
diff -r e9203a364537 -r 99f7aa2bb528 functions.h
--- a/functions.h Wed Mar 14 13:26:47 2007 -0700
+++ b/functions.h Thu Mar 15 01:07:08 2007 +0100
@@ -30,7 +30,7 @@
*
*/
-struct binding_t OpGeneric[] = {
+struct binding_t OpGeneric[] = { /* map: generic */
{ "top-page", OP_TOP_PAGE, "H" },
{ "next-entry", OP_NEXT_ENTRY, "j" },
{ "previous-entry", OP_PREV_ENTRY, "k" },
@@ -66,7 +66,7 @@ struct binding_t OpGeneric[] = {
{ NULL, 0, NULL }
};
-struct binding_t OpMain[] = {
+struct binding_t OpMain[] = { /* map: index */
{ "create-alias", OP_CREATE_ALIAS, "a" },
{ "bounce-message", OP_BOUNCE_MESSAGE, "b" },
{ "break-thread", OP_MAIN_BREAK_THREAD, "#" },
@@ -154,7 +154,7 @@ struct binding_t OpMain[] = {
{ NULL, 0, NULL }
};
-struct binding_t OpPager[] = {
+struct binding_t OpPager[] = { /* map: pager */
{ "break-thread", OP_MAIN_BREAK_THREAD, "#" },
{ "create-alias", OP_CREATE_ALIAS, "a" },
{ "bounce-message", OP_BOUNCE_MESSAGE, "b" },
@@ -250,7 +250,7 @@ struct binding_t OpPager[] = {
{ NULL, 0, NULL }
};
-struct binding_t OpAttach[] = {
+struct binding_t OpAttach[] = { /* map: attach */
{ "bounce-message", OP_BOUNCE_MESSAGE, "b" },
{ "display-toggle-weed", OP_DISPLAY_HEADERS, "h" },
{ "edit-type", OP_EDIT_TYPE, "\005" },
@@ -276,7 +276,7 @@ struct binding_t OpAttach[] = {
{ NULL, 0, NULL }
};
-struct binding_t OpCompose[] = {
+struct binding_t OpCompose[] = { /* map: compose */
{ "attach-file", OP_COMPOSE_ATTACH_FILE, "a" },
{ "attach-message", OP_COMPOSE_ATTACH_MESSAGE, "A" },
{ "edit-bcc", OP_COMPOSE_EDIT_BCC, "b" },
@@ -326,13 +326,13 @@ struct binding_t OpCompose[] = {
{ NULL, 0, NULL }
};
-struct binding_t OpPost[] = {
+struct binding_t OpPost[] = { /* map: postpone */
{ "delete-entry", OP_DELETE, "d" },
{ "undelete-entry", OP_UNDELETE, "u" },
{ NULL, 0, NULL }
};
-struct binding_t OpAlias[] = {
+struct binding_t OpAlias[] = { /* map: alias */
{ "delete-entry", OP_DELETE, "d" },
{ "undelete-entry", OP_UNDELETE, "u" },
{ NULL, 0, NULL }
@@ -340,7 +340,7 @@ struct binding_t OpAlias[] = {
/* The file browser */
-struct binding_t OpBrowser[] = {
+struct binding_t OpBrowser[] = { /* map: browser */
{ "change-dir", OP_CHANGE_DIRECTORY, "c" },
{ "display-filename", OP_BROWSER_TELL, "@" },
{ "enter-mask", OP_ENTER_MASK, "m" },
@@ -363,7 +363,7 @@ struct binding_t OpBrowser[] = {
};
/* External Query Menu */
-struct binding_t OpQuery[] = {
+struct binding_t OpQuery[] = { /* map: query */
{ "create-alias", OP_CREATE_ALIAS, "a" },
{ "mail", OP_MAIL, "m" },
{ "query", OP_QUERY, "Q" },
@@ -371,7 +371,7 @@ struct binding_t OpQuery[] = {
{ NULL, 0, NULL }
};
-struct binding_t OpEditor[] = {
+struct binding_t OpEditor[] = { /* map: editor */
{ "bol", OP_EDITOR_BOL, "\001" },
{ "backward-char", OP_EDITOR_BACKWARD_CHAR, "\002" },
{ "backward-word", OP_EDITOR_BACKWARD_WORD, "\033b"},
@@ -399,7 +399,7 @@ struct binding_t OpEditor[] = {
-struct binding_t OpPgp[] = {
+struct binding_t OpPgp[] = { /* map: pgp */
{ "verify-key", OP_VERIFY_KEY, "c" },
{ "view-name", OP_VIEW_ID, "%" },
{ NULL, 0, NULL }
@@ -409,7 +409,7 @@ struct binding_t OpPgp[] = {
/* When using the GPGME based backend we have some useful functions
for the SMIME menu. */
-struct binding_t OpSmime[] = {
+struct binding_t OpSmime[] = { /* map: smime */
#ifdef CRYPT_BACKEND_GPGME
{ "verify-key", OP_VERIFY_KEY, "c" },
{ "view-name", OP_VIEW_ID, "%" },
@@ -420,7 +420,7 @@ struct binding_t OpSmime[] = {
#ifdef MIXMASTER
-struct binding_t OpMix[] = {
+struct binding_t OpMix[] = { /* map: mix */
{ "accept", OP_MIX_USE, M_ENTER_S },
{ "append", OP_MIX_APPEND, "a" },
{ "insert", OP_MIX_INSERT, "i" },
Christoph
--
cb@xxxxxxxx | http://www.df7cb.de/
Attachment:
signature.asc
Description: Digital signature