Subject: S-TAB is mismapped in the *Help* buffer
From: Paul Griepentrog <[email-masked]>
To: [email-masked]
Date: Sun, 11 Jul 2010 23:20:22 -0700
List-Id: <debbugs-submit.debbugs.gnu.org>

The manual, (info "(emacs) Help Mode"), says "S-TAB"
moves the point to the previous cross reference when in
the *Help* buffer.  But, trying from a default emacs
shows "S-TAB" is translated to "C-y":

     emacs -Q
       ...                 ; Get to a *Help* buffer
     C-h k S-TAB

     C-y (translated from <S-tab>) runs the command yank, which is an
     interactive compiled Lisp function in `simple.el'.

My guess is that the right place to change this is
in the `button-buffer-map'.  This way the change will
propagate to other modes that use button-buffer-map as
a parent keymap, including:

     apropos.el          ; apropos-mode-map
     emacs-lisp/debug.el ; debugger-mode-map
     help-mode.el        ; help-mode-map (this bug)
     man.el              ; Man-mode-map
     progmodes/etags.el  ; select-tags-table-mode-map
     startup.el          ; splash-screen-keymap

diff --git a/lisp/button.el b/lisp/button.el
index 2a9a49c..ad4613d 100644
--- a/lisp/button.el
+++ b/lisp/button.el
@@ -73,6 +73,7 @@
      (define-key map [?\t] 'forward-button)
      (define-key map "\e\t" 'backward-button)
      (define-key map [backtab] 'backward-button)
+    (define-key map [S-tab] 'backward-button)
      map)
    "Keymap useful for buffers containing buttons.
  Mode-specific keymaps may want to use this as their parent keymap.")

In GNU Emacs 24.0.50.3 (i686-apple-darwin10.6.4, NS apple-appkit-1038.32)
of 2010-07-10 on walnut.local
Windowing system distributor `Apple', version 10.3.1038
configured using `configure '--build' 'i686-apple-darwin10.6.4' 
'--without-dbus' '--with-ns' 'build_alias=i686-apple-darwin10.6.4' 
'CC=gcc -I/usr/include -L/usr/lib' 'CFLAGS=-pipe -arch i386 -gdwarf-2 
-g3' 'LDFLAGS=-arch i386''

Important settings:
value of $LC_ALL: nil
value of $LC_COLLATE: nil
value of $LC_CTYPE: nil
value of $LC_MESSAGES: nil
value of $LC_MONETARY: nil
value of $LC_NUMERIC: nil
value of $LC_TIME: nil
value of $LANG: nil
value of $XMODIFIERS: nil
locale-coding-system: nil
default enable-multibyte-characters: t

Major mode: Text

Minor modes in effect:
autopair-mode: t
autopair-global-mode: t
yas/global-mode: t
otherwindow-marker-mode: t
window-number-meta-mode: t
shell-dirtrack-mode: t
recentf-mode: t
ido-everywhere: t
show-paren-mode: t
tooltip-mode: t
mouse-wheel-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
column-number-mode: t
line-number-mode: t
transient-mark-mode: t

Recent input:
C-c C-g s e t SPC c u <return> o r a n g e <return>
C-c 0 C-x C-f <return> p <return> t a b C-s <return>
C-c C-g b u g SPC SPC SPC <M-backspace> <M-backspace>
f i l e SPC b <M-backspace> b u <tab> <backspace> <tab>
C-g C-c C-g b u g <tab> <M-backspace> <M-backspace>
r e p o r SPC b <tab> <return>

Recent messages:
Loading ~/.emacs.d/paul/pg-config...
Ido mode enabled
Loading /Users/pgriepen/.emacs.d/recentf.dat...done
Cleaning up the recentf list...done (0 removed)
Loading ~/.emacs.d/paul/pg-config...done
For information about GNU Emacs and the GNU system, type C-h C-a.
Loading vc-git...done
Making completion list...
Quit

Load-path shadows:
~/Local/share/emacs/site-lisp/autopair hides ~/.emacs.d/packages/autopair
~/.emacs.d/packages/linum hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/linum
~/.emacs.d/packages/remember hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/textmodes/remember
~/.emacs.d/packages/css-mode hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/textmodes/css-mode
~/.emacs.d/packages/ruby-mode hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/progmodes/ruby-mode
~/Local/share/emacs/site-lisp/org hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/org/org
~/Local/share/emacs/site-lisp/org-xoxo hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/org/org-xoxo
~/Local/share/emacs/site-lisp/org-wl hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/org/org-wl
~/Local/share/emacs/site-lisp/org-w3m hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/org/org-w3m
~/Local/share/emacs/site-lisp/org-vm hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/org/org-vm
~/Local/share/emacs/site-lisp/org-timer hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/org/org-timer
~/Local/share/emacs/site-lisp/org-table hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/org/org-table
~/Local/share/emacs/site-lisp/org-src hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/org/org-src
~/Local/share/emacs/site-lisp/org-rmail hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/org/org-rmail
~/Local/share/emacs/site-lisp/org-remember hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/org/org-remember
~/Local/share/emacs/site-lisp/org-publish hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/org/org-publish
~/Local/share/emacs/site-lisp/org-protocol hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/org/org-protocol
~/Local/share/emacs/site-lisp/org-plot hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/org/org-plot
~/Local/share/emacs/site-lisp/org-mouse hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/org/org-mouse
~/Local/share/emacs/site-lisp/org-mobile hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/org/org-mobile
~/Local/share/emacs/site-lisp/org-mhe hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/org/org-mhe
~/Local/share/emacs/site-lisp/org-mew hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/org/org-mew
~/Local/share/emacs/site-lisp/org-macs hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/org/org-macs
~/Local/share/emacs/site-lisp/org-mac-message hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/org/org-mac-message
~/Local/share/emacs/site-lisp/org-list hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/org/org-list
~/Local/share/emacs/site-lisp/org-latex hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/org/org-latex
~/Local/share/emacs/site-lisp/org-jsinfo hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/org/org-jsinfo
~/Local/share/emacs/site-lisp/org-irc hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/org/org-irc
~/Local/share/emacs/site-lisp/org-install hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/org/org-install
~/Local/share/emacs/site-lisp/org-inlinetask hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/org/org-inlinetask
~/Local/share/emacs/site-lisp/org-info hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/org/org-info
~/Local/share/emacs/site-lisp/org-indent hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/org/org-indent
~/Local/share/emacs/site-lisp/org-id hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/org/org-id
~/Local/share/emacs/site-lisp/org-icalendar hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/org/org-icalendar
~/Local/share/emacs/site-lisp/org-html hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/org/org-html
~/Local/share/emacs/site-lisp/org-habit hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/org/org-habit
~/Local/share/emacs/site-lisp/org-gnus hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/org/org-gnus
~/Local/share/emacs/site-lisp/org-freemind hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/org/org-freemind
~/Local/share/emacs/site-lisp/org-footnote hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/org/org-footnote
~/Local/share/emacs/site-lisp/org-feed hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/org/org-feed
~/Local/share/emacs/site-lisp/org-faces hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/org/org-faces
~/Local/share/emacs/site-lisp/org-exp hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/org/org-exp
~/Local/share/emacs/site-lisp/org-exp-blocks hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/org/org-exp-blocks
~/Local/share/emacs/site-lisp/org-entities hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/org/org-entities
~/Local/share/emacs/site-lisp/org-docview hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/org/org-docview
~/Local/share/emacs/site-lisp/org-docbook hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/org/org-docbook
~/Local/share/emacs/site-lisp/org-datetree hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/org/org-datetree
~/Local/share/emacs/site-lisp/org-ctags hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/org/org-ctags
~/Local/share/emacs/site-lisp/org-crypt hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/org/org-crypt
~/Local/share/emacs/site-lisp/org-compat hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/org/org-compat
~/Local/share/emacs/site-lisp/org-colview hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/org/org-colview
~/Local/share/emacs/site-lisp/org-clock hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/org/org-clock
~/Local/share/emacs/site-lisp/org-bibtex hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/org/org-bibtex
~/Local/share/emacs/site-lisp/org-beamer hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/org/org-beamer
~/Local/share/emacs/site-lisp/org-bbdb hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/org/org-bbdb
~/Local/share/emacs/site-lisp/org-attach hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/org/org-attach
~/Local/share/emacs/site-lisp/org-ascii hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/org/org-ascii
~/Local/share/emacs/site-lisp/org-archive hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/org/org-archive
~/Local/share/emacs/site-lisp/org-agenda hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/org/org-agenda
~/Local/share/emacs/site-lisp/trampver hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/net/trampver
~/Local/share/emacs/site-lisp/tramp hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/net/tramp
~/Local/share/emacs/site-lisp/tramp-uu hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/net/tramp-uu
~/Local/share/emacs/site-lisp/tramp-smb hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/net/tramp-smb
~/Local/share/emacs/site-lisp/tramp-gw hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/net/tramp-gw
~/Local/share/emacs/site-lisp/tramp-ftp hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/net/tramp-ftp
~/Local/share/emacs/site-lisp/tramp-fish hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/net/tramp-fish
~/Local/share/emacs/site-lisp/tramp-compat hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/net/tramp-compat
~/Local/share/emacs/site-lisp/tramp-cmds hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/net/tramp-cmds
~/Local/share/emacs/site-lisp/tramp-cache hides 
/Applications/Emacs-24.app/Contents/Resources/lisp/net/tramp-cache

Features:
(shadow sort mail-extr message rfc822 mml mml-sec mm-decode mm-bodies
mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mm-util
mail-prsvr mailabbrev mail-utils gmm-utils mailheader emacsbug help-mode
view vc-git paredit server package remember org-install org byte-opt
warnings bytecomp byte-compile org-footnote org-src org-list org-faces
org-compat org-entities org-macs time-date noutline outline cal-menu
calendar cal-loaddefs xcscope xgtags autopair yasnippet-config yasnippet
dropdown-list derived easy-mmode edmacro kmacro assoc ibuf-ext ibuffer
wn-org nav nav-tags python-21 python imenu nav-bufs dired-details dired+
dired-x ediff-merg ediff-diff ediff-wind ediff-mult ediff-help
ediff-init ediff-util dired-aux dired otherwindow-marker window-number
saveplace tramp-gw tramp-fish tramp-smb tramp-cache tramp-ftp tramp-cmds
tramp auth-source gnus-util shell comint password-cache format-spec
tramp-compat trampver recentf tree-widget wid-edit browse-kill-ring ido
bbdb-autoloads bbdb regexp-opt timezone otp winner ring avoid paren
uniquify advice help-fns advice-preload cl cl-19 tooltip ediff-hook
vc-hooks lisp-float-type mwheel ns-win easymenu tool-bar dnd fontset
image fringe lisp-mode register page menu-bar rfn-eshadow timer select
scroll-bar mldrag mouse jit-lock font-lock syntax facemenu font-core
frame cham georgian utf-8-lang misc-lang vietnamese tibetan thai
tai-viet lao korean japanese hebrew greek romanian slovak czech european
ethiopic indian cyrillic chinese case-table epa-hook jka-cmpr-hook help
simple abbrev loaddefs button minibuffer faces cus-face files
text-properties overlay md5 base64 format env code-pages mule custom
widget hashtable-print-readable backquote make-network-process ns
multi-tty emacs)