Subject: bug#9897: 24.0.90; w32 control character configuration is severely lacking compared to ns-win.el

From: Tim Visher <[email-masked]>
Date: Fri, 28 Oct 2011 11:14:06 -0400

This bug report will be sent to the Bug-GNU-Emacs mailing list
and the GNU bug tracker at debbugs.gnu.org.  Please check that
the From: line contains a valid email address.  After a delay of up
to one day, you should receive an acknowledgement at that address.

Please write in English if possible, as the Emacs maintainers
usually do not have translators for other languages.

Please describe exactly what actions triggered the bug, and
the precise symptoms of the bug.  If you can, give a recipe
starting from `emacs -Q':

I'm trying to configure what pressing Alt, Windows, Apps, and Control on
a windows keyboard translates to in emacs. I use emacs on both Macs and
Windows boxen and I'm used to configuring the keys on macs using
ns-win.el bindings like:

    (if (boundp 'mac-command-modifier) (setq mac-command-modifier 'control))
    (if (boundp 'mac-option-modifier) (setq mac-option-modifier 'meta))
    (if (boundp 'mac-control-modifier) (setq mac-control-modifier 'super))

Compared to that library, the ability to configure what the meta keys
map to on windows is severely lacking, not allowing configuration at all
of what the control-modifier is mapped to, and providing only toggles
for the windows keys and apps keys.

I'm mainly just reporting this glaring inequality.

If Emacs crashed, and you have the Emacs process in the gdb debugger,
please include the output from the following gdb commands:
    `bt full' and `xbacktrace'.
For information about debugging Emacs, please read the file
/usr/local/Cellar/emacs/HEAD/share/emacs/24.0.90/etc/DEBUG.

In GNU Emacs 24.0.90.1 (i386-apple-darwin10.8.0, NS apple-appkit-1038.36)
of 2011-10-27 on 184-243-147-41.pools.spcsdns.net
Windowing system distributor `Apple', version 10.3.1038
configured using `configure  '--prefix=/usr/local/Cellar/emacs/HEAD' '--without-dbus' '--enable-locallisppath=/usr/local/share/emacs/site-lisp' '--infodir=/usr/local/Cellar/emacs/HEAD/share/info/emacs' '--with-ns' '--disable-ns-self-contained' 'CC=/usr/bin/llvm-gcc' 'CFLAGS=-O3 -march=core2 -w -pipe''

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: Emacs-Lisp

Minor modes in effect:
  hi-lock-mode: t
  recentf-mode: t
  erc-list-mode: t
  erc-menu-mode: t
  erc-autojoin-mode: t
  erc-ring-mode: t
  erc-networks-mode: t
  erc-pcomplete-mode: t
  erc-track-mode: t
  erc-track-minor-mode: t
  erc-match-mode: t
  erc-button-mode: t
  erc-fill-mode: t
  erc-stamp-mode: t
  erc-netsplit-mode: t
  eldoc-mode: t
  elisp-slime-nav-mode: t
  paredit-mode: t
  idle-highlight-mode: t
  textmate-mode: t
  glasses-mode: t
  whitespace-mode: t
  shell-dirtrack-mode: t
  erc-irccontrols-mode: t
  erc-noncommands-mode: t
  erc-move-to-prompt-mode: t
  erc-readonly-mode: t
  ido-ubiquitous: t
  show-paren-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
  hs-minor-mode: t

Recent input:
o t SPC s e e i n g SPC a SPC s y s t e m SPC m a i 
l SPC i n SPC t h e SPC v a l i d SPC v a l u e s SPC 
o f SPC t h a t SPC v a r <return> a h <return> m e 
s s a g e - s e n d M-/ M-/ M-/ M-/ M-/ C-a C-k l o 
l <return> b o <return> b o o * <return> a s s M-/ 
: SPC t h a n k s ! SPC I <backspace> i ' d SPC a p 
p r e c i a t e SPC t h a t <return> C-x o <tab> <tab> 
<tab> <tab> <tab> <tab> <tab> <tab> <tab> <return> 
<tab> <tab> <return> q C-x o C-x o C-p C-p C-p C-p 
C-x o C-p C-p C-p C-p C-p C-p C-p C-p C-p M-f M-f M-f 
M-f <f1> v <return> C-x 4 C-o <return> C-f C-f M-d 
M-d M-d m a i l - c l i e n t - s e n d M-b M-b C-h 
C-e M-b M-f - i t C-e C-x C-e C-x C-s C-n C-a C-k C-k 
C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k C-k 
C-k C-x C-s C-b C-x C-e C-x C-s C-x b <return> C-c 
C-c C-x o C-n M-> j l f / <backspace> M-/ : M-h M-h 
j l M-/ : SPC T h a n k s ! SPC t h a t SPC d o e s 
SPC i t <return> C-x o M-x e m a r e p <backspace> 
<backspace> <backspace> <backspace> <backspace> <backspace> 
r e p o r t b u <return>

Recent messages:
mailclient-send-it
Saving file /Users/tim/Dropbox/.emacs.d/init.el...
Wrote /Users/tim/Dropbox/.emacs.d/init.el
Saving file /Users/tim/Dropbox/.emacs.d/init.el...
Wrote /Users/tim/Dropbox/.emacs.d/init.el
mailclient-send-it
(No changes need to be saved)
Sending...done
Mark set
Using try-expand-dabbrev [2 times]

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug mailclient ffap browse-url message
rfc822 mml mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231
mailabbrev gmm-utils mailheader em-unix em-script em-ls em-hist em-pred
em-glob em-dirs em-basic em-cmpl em-term term disp-table ehelp electric
em-prompt esh-opt em-banner em-alias esh-var esh-io esh-cmd esh-ext
esh-proc esh-arg esh-groups eshell esh-module esh-mode esh-util
hippie-exp smtpmail sendmail rfc2047 rfc2045 ietf-drums mail-utils
cus-edit hi-lock recentf tree-widget vc-git find-func help-mode view
multi-isearch info network-stream auth-source eieio byte-opt bytecomp
byte-compile cconv macroexp assoc gnus-util mm-util mail-prsvr
password-cache starttls tls erc-menu erc-join erc-ring erc-networks
erc-pcomplete erc-track erc-match erc-button wid-edit erc-fill erc-stamp
erc-netsplit eldoc elisp-slime-nav etags paredit saveplace
idle-highlight-mode hideshow easymenu textmate imenu glasses whitespace
solarized-light-theme solarized-definitions hl-line cus-start cus-load
ansi-color shell pcomplete comint regexp-opt ring maxframe elein
erc-nick-notify notify erc-goodies erc erc-backend erc-compat
format-spec thingatpt pp clojure-test-mode-autoloads
clojure-mode-autoloads deft-autoloads elein-autoloads
erc-nick-notify-autoloads markdown-mode-autoloads marmalade-autoloads
furl-autoloads maxframe-autoloads notify-autoloads slime-autoloads
starter-kit-bindings-autoloads windmove starter-kit-eshell-autoloads
starter-kit-lisp-autoloads elisp-slime-nav-autoloads
starter-kit-autoloads server edmacro kmacro smex starter-kit-misc
ido-ubiquitous cl ido paren starter-kit-defuns uniquify advice help-fns
advice-preload magit-autoloads ido-ubiquitous-autoloads smex-autoloads
find-file-in-project-autoloads idle-highlight-mode-autoloads
paredit-autoloads textmate-autoloads package tabulated-list time-date
tooltip ediff-hook vc-hooks lisp-float-type mwheel ns-win tool-bar dnd
fontset image fringe lisp-mode register page menu-bar rfn-eshadow timer
select scroll-bar 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 minibuffer loaddefs button faces cus-face files
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote make-network-process ns
multi-tty emacs)