From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: David Reitter Newsgroups: gmane.emacs.devel Subject: Free modifier key assignment (OS X) Date: Sun, 25 Sep 2005 21:34:18 +0100 Message-ID: <1949F677-E294-4028-B103-F56D8CB48824@gmail.com> NNTP-Posting-Host: main.gmane.org Mime-Version: 1.0 (Apple Message framework v734) Content-Type: multipart/mixed; boundary="===============1437325537==" X-Trace: sea.gmane.org 1127680792 28983 80.91.229.2 (25 Sep 2005 20:39:52 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Sun, 25 Sep 2005 20:39:52 +0000 (UTC) Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sun Sep 25 22:39:50 2005 Return-path: Original-Received: from lists.gnu.org ([199.232.76.165]) by ciao.gmane.org with esmtp (Exim 4.43) id 1EJdGy-0000LO-HK for ged-emacs-devel@m.gmane.org; Sun, 25 Sep 2005 22:38:57 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1EJdE9-0004qD-TU for ged-emacs-devel@m.gmane.org; Sun, 25 Sep 2005 16:36:02 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1EJdCj-0004cT-8h for emacs-devel@gnu.org; Sun, 25 Sep 2005 16:34:33 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1EJdCf-0004aA-6W for emacs-devel@gnu.org; Sun, 25 Sep 2005 16:34:30 -0400 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1EJdCf-0004a6-32 for emacs-devel@gnu.org; Sun, 25 Sep 2005 16:34:29 -0400 Original-Received: from [66.249.82.205] (helo=xproxy.gmail.com) by monty-python.gnu.org with esmtp (Exim 4.34) id 1EJdCa-0000O9-6V for emacs-devel@gnu.org; Sun, 25 Sep 2005 16:34:24 -0400 Original-Received: by xproxy.gmail.com with SMTP id t5so484766wxc for ; Sun, 25 Sep 2005 13:34:23 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:mime-version:to:message-id:content-type:from:subject:date:x-mailer; b=pCSfrMefJEbX76+k4g5xZ592cert51+4lY/1yjg5Cn+PLyzh8Kt2oWNQwAJWjWXQJuJAGGLY5bcchKKkqjrlSQb6nnBCJk/pX0QP9O+1BFbF907vBtMbaTfXDxyF+oXMJf/kAd1m4vMB8hhpQWVPMKrcg4O3/9XhK0LNuE06xdM= Original-Received: by 10.70.113.4 with SMTP id l4mr1209141wxc; Sun, 25 Sep 2005 13:34:23 -0700 (PDT) Original-Received: from ?10.0.0.61? ( [82.20.25.125]) by mx.gmail.com with ESMTP id i33sm618746wxd.2005.09.25.13.34.19; Sun, 25 Sep 2005 13:34:23 -0700 (PDT) Original-To: Emacs-Devel ' X-Mailer: Apple Mail (2.734) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:43223 Archived-At: --===============1437325537== Content-Type: multipart/signed; micalg=sha1; boundary=Apple-Mail-11--950596624; protocol="application/pkcs7-signature" --Apple-Mail-11--950596624 Content-Type: multipart/mixed; boundary=Apple-Mail-10--950596930 --Apple-Mail-10--950596930 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed Here is the latest version of mac-modifier-keys patch, which allows people to freely assign modifier keys on their keyboard to Emacs modifiers. The current solution is overly complicated and doesn't allow certain combinations of settings such as Command->Hyper (while saying Option- >Meta). The reasoning behind it is described here. http://lists.gnu.org/archive/html/emacs-devel/2005-05/msg00661.html Note that any xmodmap solution people may think of will not work on OS X when using Carbon - OS X doesn't normally use X11 for its graphics output. I would like to recommend applying this now before the release is readied, because otherwise one will have to change customization options that get documented in the release. The present patch allows for longer-term stability. (It is backwards-compatible to cater for the many people who've been installing CVS Emacs.) --Apple-Mail-10--950596930 Content-Transfer-Encoding: quoted-printable Content-Type: application/octet-stream; x-unix-mode=0644; x-mac-creator=454D4178; name="mac-modifier-keys.patch" Content-Disposition: attachment; filename=mac-modifier-keys.patch Index:=20src/macterm.c=0A= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0ARCS=20file:=20= /cvsroot/emacs/emacs/src/macterm.c,v=0Aretrieving=20revision=201.123=0A= diff=20-c=20-r1.123=20macterm.c=0A***=20src/macterm.c=0914=20Jul=202005=20= 09:23:24=20-0000=091.123=0A---=20src/macterm.c=0915=20Jul=202005=20= 23:15:49=20-0000=0A***************=0A***=2086,99=20****=0A=20=20#include=20= "atimer.h"=0A=20=20#include=20"keymap.h"=0A=20=20=0A!=20/*=20Set=20of=20= macros=20that=20handle=20mapping=20of=20Mac=20modifier=20keys=20to=20= emacs.=20=20*/=0A!=20#define=20macCtrlKey=20=20=20=20=20(NILP=20= (Vmac_reverse_ctrl_meta)=20?=20controlKey=20:=09\=0A!=20=09=09=09(NILP=20= (Vmac_command_key_is_meta)=20?=20optionKey=20:=20cmdKey))=0A=20=20= #define=20macShiftKey=20=20=20=20(shiftKey)=0A!=20#define=20macMetaKey=20= =20=20=20=20(NILP=20(Vmac_reverse_ctrl_meta)=20?=09=09=09\=0A!=20=09=09=09= (NILP=20(Vmac_command_key_is_meta)=20?=20optionKey=20:=20cmdKey)=20\=0A!=20= =09=09=09:=20controlKey)=0A!=20#define=20macAltKey=20=20=20=20=20=20= (NILP=20(Vmac_command_key_is_meta)=20?=20cmdKey=20:=20optionKey)=0A=20=20= =0C=0A=20=20=0A=20=20/*=20Non-nil=20means=20Emacs=20uses=20toolkit=20= scroll=20bars.=20=20*/=0A---=2086,118=20----=0A=20=20#include=20= "atimer.h"=0A=20=20#include=20"keymap.h"=0A=20=20=0A!=20/*=20Set=20of=20= macros=20that=20handle=20mapping=20of=20Mac=20modifier=20keys=20to=20= emacs.=20=20=0A!=20=20=20=20=20If=20any=20of=20the=20newer-style=20= mac_*_modifier=20variables=20is=20set,=20these=20=0A!=20=20=20=20=20= macros=20are=20basically=20out=20of=20function.=0A!=20=20*/=0A!=20=20=0A= !=20#define=20macOldModifierSetting=20=20=20(=20=20= NILP(Vmac_control_modifier)=20&&=20\=0A!=20=09=09=09=09=20=20=20= NILP(Vmac_option_modifier)=20&&=20\=0A!=20=09=09=09=09=20=20=20= NILP(Vmac_command_modifier)=20=20=20)=0A!=20=20=0A!=20#define=20= macCtrlKey=20=20=20=20=20(macOldModifierSetting=20?=20\=0A!=20=20=09=09=09= (NILP(Vmac_reverse_ctrl_meta)=20?=20controlKey=20:=09\=0A!=20=20=09=09=09= =20=20=20=20=20=20=20(NILP(Vmac_command_key_is_meta)=20?=20\=0A!=20=09=09= =09=09optionKey=20:=20cmdKey))=20:=09=09=20\=0A!=20=20=09=09=09= controlKey)=0A=20=20#define=20macShiftKey=20=20=20=20(shiftKey)=0A!=20=20= =0A!=20#define=20macMetaKey=20=20=20=20=20(macOldModifierSetting=20?=20\=0A= !=20=20=09=09=09(NILP(Vmac_reverse_ctrl_meta)=20?=09=09\=0A!=20=20=09=09=09= =20(NILP(Vmac_command_key_is_meta)=20?=20optionKey=20:=20\=0A!=20=09=09=09= =20=20cmdKey)=20:=20controlKey)=20:=09=09=20=20=20=20=20=20=20\=0A!=20=20= =09=09=09(cmdKey=20|=20controlKey=20|=20optionKey))=0A!=20=20=0A!=20= #define=20macAltKey=20=20=20=20=20(macOldModifierSetting=20?=20=20\=0A!=20= =09=09=09(NILP(Vmac_command_key_is_meta)=20?=20\=0A!=20=09=09=09=20= cmdKey=20:=20optionKey)=20:=20optionKey)=0A!=20=20=0A!=20#define=20= macCmdKey=20(cmdKey)=0A=20=20=0C=0A=20=20=0A=20=20/*=20Non-nil=20means=20= Emacs=20uses=20toolkit=20scroll=20bars.=20=20*/=0A***************=0A***=20= 205,211=20****=0A=20=20=0A=20=20/*=20The=20keysyms=20to=20use=20for=20= the=20various=20modifiers.=20=20*/=0A=20=20=0A!=20static=20Lisp_Object=20= Qalt,=20Qhyper,=20Qsuper,=20Qmodifier_value;=0A=20=20=0A=20=20extern=20= int=20inhibit_window_system;=0A=20=20=0A---=20224,230=20----=0A=20=20=0A=20= =20/*=20The=20keysyms=20to=20use=20for=20the=20various=20modifiers.=20=20= */=0A=20=20=0A!=20static=20Lisp_Object=20Qalt,=20Qhyper,=20Qsuper,=20= Qctrl,=20Qmeta,=20Qmodifier_value;=0A=20=20=0A=20=20extern=20int=20= inhibit_window_system;=0A=20=20=0A***************=0A***=207321,7333=20= ****=0A=20=20/*=20Contains=20the=20string=20"reverse",=20which=20is=20a=20= constant=20for=20mouse=20button=20emu.*/=0A=20=20Lisp_Object=20Qreverse;=0A= =20=20=0A!=20/*=20True=20if=20using=20command=20key=20as=20meta=20key.=20= =20*/=0A=20=20Lisp_Object=20Vmac_command_key_is_meta;=0A=20=20=0A=20=20= /*=20Modifier=20associated=20with=20the=20option=20key,=20or=20nil=20for=20= normal=20behavior.=20*/=0A=20=20Lisp_Object=20Vmac_option_modifier;=0A=20= =20=0A!=20/*=20True=20if=20the=20ctrl=20and=20meta=20keys=20should=20be=20= reversed.=20=20*/=0A=20=20Lisp_Object=20Vmac_reverse_ctrl_meta;=0A=20=20=0A= =20=20/*=20True=20if=20the=20option=20and=20command=20modifiers=20should=20= be=20used=20to=20emulate=0A---=207340,7360=20----=0A=20=20/*=20Contains=20= the=20string=20"reverse",=20which=20is=20a=20constant=20for=20mouse=20= button=20emu.*/=0A=20=20Lisp_Object=20Qreverse;=0A=20=20=0A!=20/*=20True=20= if=20using=20command=20key=20as=20meta=20key.=20=20=0A!=20=20=20=20= Deprecated;=20only=20use=20if=20macOldModifierSetting=20evaluates=20to=20= true.=20*/=0A=20=20Lisp_Object=20Vmac_command_key_is_meta;=0A=20=20=0A+=20= /*=20Modifier=20associated=20with=20the=20control=20key,=20or=20nil=20= for=20normal=20behavior.=20*/=0A+=20Lisp_Object=20Vmac_control_modifier;=0A= +=20=0A=20=20/*=20Modifier=20associated=20with=20the=20option=20key,=20= or=20nil=20for=20normal=20behavior.=20*/=0A=20=20Lisp_Object=20= Vmac_option_modifier;=0A=20=20=0A!=20/*=20Modifier=20associated=20with=20= the=20command=20key,=20or=20nil=20for=20normal=20behavior.=20*/=0A!=20= Lisp_Object=20Vmac_command_modifier;=0A!=20=0A!=20/*=20True=20if=20the=20= ctrl=20and=20meta=20keys=20should=20be=20reversed.=20=0A!=20=09= Deprecated;=20only=20use=20if=20macOldModifierSetting=20evaluates=20to=20= true.=20*/=0A=20=20Lisp_Object=20Vmac_reverse_ctrl_meta;=0A=20=20=0A=20=20= /*=20True=20if=20the=20option=20and=20command=20modifiers=20should=20be=20= used=20to=20emulate=0A***************=0A***=207347,7352=20****=0A---=20= 7374,7386=20----=0A=20=20=20=20=20for=20processing=20before=20Emacs=20= sees=20it.=20=20*/=0A=20=20Lisp_Object=20Vmac_pass_control_to_system;=0A=20= =20=0A+=20/*=20If=20=20non-nil,=20the=20Mac=20\"Option\"=20key=20can=20= be=20used=20to=20compose=0A+=20=20=20=20=20=20=20=20characters=20as=20= handled=20by=20the=20system=20and=20depending=20on=20the=0A+=20=20=20=20=20= =20=20=20keyboard=20layout=20chosen.=20Only=20if=20the=20Mac=20= \"Command\"=20or=20\"Ctrl\"=20key=0A+=20=20=20=20=20=20=20=20is=20= depressed=20at=20the=20same=20time,=20Emacs=20evaluates=20the=20= combination=20using=0A+=20=20=20=20=20=20=20=20whatever=20modifier=20is=20= set=20in=20mac-option-modifier.=20=20*/=0A+=20Lisp_Object=20= Vmac_pass_option_to_system;=0A+=20=0A=20=20/*=20Points=20to=20the=20= variable=20`inev'=20in=20the=20function=20XTread_socket.=20=20It=20is=0A=20= =20=20=20=20used=20for=20passing=20an=20input=20event=20to=20the=20= function=20back=20from=0A=20=20=20=20=20Carbon/Apple=20event=20handlers.=20= =20*/=0A***************=0A***=207404,7420=20****=0A=20=20=20=20unsigned=20= int=20result=20=3D=200;=0A=20=20=20=20if=20(mods=20&=20macShiftKey)=0A=20= =20=20=20=20=20result=20|=3D=20shift_modifier;=0A!=20=20=20if=20(mods=20= &=20macCtrlKey)=0A!=20=20=20=20=20result=20|=3D=20ctrl_modifier;=0A!=20=20= =20if=20(mods=20&=20macMetaKey)=0A!=20=20=20=20=20result=20|=3D=20= meta_modifier;=0A!=20=20=20if=20(NILP=20(Vmac_command_key_is_meta)=20&&=20= (mods=20&=20macAltKey))=0A!=20=20=20=20=20result=20|=3D=20alt_modifier;=0A= !=20=20=20if=20(!NILP=20(Vmac_option_modifier)=20&&=20(mods=20&=20= optionKey))=20{=0A!=20=20=20=20=20=20=20Lisp_Object=20val=20=3D=20= Fget(Vmac_option_modifier,=20Qmodifier_value);=0A!=20=20=20=20=20=20=20= if=20(!NILP(val))=0A=20=20=20=20=20=20=20=20=20=20=20=20result=20|=3D=20= XUINT(val);=0A!=20=20=20}=0A=20=20=0A=20=20=20=20return=20result;=0A=20=20= }=0A---=207438,7512=20----=0A=20=20=20=20unsigned=20int=20result=20=3D=20= 0;=0A=20=20=20=20if=20(mods=20&=20macShiftKey)=0A=20=20=20=20=20=20= result=20|=3D=20shift_modifier;=0A!=20=0A!=20=20=20if=20= (macOldModifierSetting)=20=20=20/*=20compatibility=20with=20old-style=20= modifier=20keys=20*/=0A!=20=20=20=20=20{=0A!=20=20=20=20=20=20=20if=20= (mods=20&=20macCtrlKey)=0A!=20=09result=20|=3D=20ctrl_modifier;=0A!=20=20= =20=20=20=20=20if=20(mods=20&=20macMetaKey)=0A!=20=09result=20|=3D=20= meta_modifier;=0A!=20=0A!=20=20=20=20=20=20=20if=20(=20(=20= NILP(Vmac_pass_option_to_system)=20||=20=0A!=20=09=20=20=20=20=20(=20/*=20= only=20for=20ctrl/cmd=20combos=20if=20option=20is=20handled=20by=20= system=20*/=0A!=20=09=20=20=20=20=20=20(mods=20&=20cmdKey)=20||=20(mods=20= &=20controlKey)=20=0A!=20=09=20=20=20=20=20=20=20)=0A!=20=09=20=20=20=20=20= )=20&&=0A!=20=09=20=20=20!NILP=20(Vmac_command_key_is_meta)=20&&=0A!=20=09= =20=20=20(mods=20&=20macAltKey)=20=0A!=20=09)=0A!=20=09result=20|=3D=20= alt_modifier;=0A!=20=20=20=20=20}=20else=0A!=20=20=20=20=20{=0A!=20=20=20= =20=20=20=20/*=20new-style=20modifier=20keys=20*/=20=0A!=20=0A!=20=20=20=20= =20=20=20/*=20if=20Vmac_pass_option_to_system=20is=20NIL,=20we=20fully=20= process=20the=20Option=0A!=20=09=20key.=20Otherwise,=20we=20only=20= process=20it=20if=20an=20additional=20Ctrl=20or=20Command=0A!=20=09=20is=20= pressed.=20That=20way=20the=20system=20may=20convert=20the=20character=20= to=20a=20=0A!=20=09=20composed=20one.=0A!=20=20=20=20=20=20=20*/=0A!=20=0A= !=20=20=20=20=20=20=20if=20(=0A!=20=09=20=20(mods=20&=20optionKey)=20&&=0A= !=20=09=20=20(=0A!=20=09=20=20=20(=20NILP(Vmac_pass_option_to_system)=20= ||=20=0A!=20=09=20=20=20=20=20(=20=0A!=20=09=20=20=20=20=20=20(mods=20&=20= cmdKey)=20||=20(mods=20&=20controlKey)=20=0A!=20=09=20=20=20=20=20=20=20= )=0A!=20=09=20=20=20=20=20)=0A!=20=09=20=20=20)=0A!=20=09=20=20)=0A!=20=09= {=0A!=20=09=20=20if=20(!NILP=20(Vmac_option_modifier))=20{=0A!=20=09=20=20= =20=20Lisp_Object=20val=20=3D=20Fget(Vmac_option_modifier,=20= Qmodifier_value);=0A!=20=09=20=20=20=20if=20(!NILP(val))=0A!=20=09=20=20=20= =20=20=20result=20|=3D=20XUINT(val);=0A!=20=09=20=20}=20else=20{=20/*=20= default=20behavior=20if=20modifier=20variable=20is=20set=20to=20nil:=20=0A= !=20=09=09=20=20=20=20=20=20do=20NOT=20assume=20alt=20modifier,=20= because=20the=20OS=20already=20=0A!=20=09=09=20=20=20=20=20=20sends=20a=20= modified=20key=20(e.g.=20option-l=20->=20@=20=0A!=20=09=09=20=20=20=20=20= =20on=20German=20keyboard)=20*/=0A!=20=09=20=20=20=20=20=20=0A!=20=09=20=20= =20=20=20=20result=20|=3D=20alt_modifier;=20=20=0A!=20=09=20=20}=0A!=20=0A= !=20=09}=0A!=20=20=20=20=20=20=20if=20(!NILP=20(Vmac_command_modifier)=20= &&=20(mods=20&=20cmdKey))=20{=0A!=20=09Lisp_Object=20val=20=3D=20= Fget(Vmac_command_modifier,=20Qmodifier_value);=0A!=20=09if=20= (!NILP(val))=0A=20=20=20=20=20=20=20=20=20=20=20=20result=20|=3D=20= XUINT(val);=0A!=20=20=20=20=20=20=20}=20else=20{=20/*=20default=20= behavior=20if=20modifier=20variable=20is=20not=20set:=20=0A!=20=09=09=20=20= assign=20hyper*/=0A!=20=09if=20(mods=20&=20macCmdKey)=0A!=20=09=20=20= result=20|=3D=20hyper_modifier;=0A!=20=20=20=20=20=20=20}=0A!=20=20=20=20= =20=20=20if=20(!NILP=20(Vmac_control_modifier)=20&&=20(mods=20&=20= controlKey))=20{=0A!=20=09Lisp_Object=20val=20=3D=20= Fget(Vmac_control_modifier,=20Qmodifier_value);=0A!=20=09if=20= (!NILP(val))=0A!=20=20=20=20=20=20=20=20=20=20=20result=20|=3D=20= XUINT(val);=0A!=20=20=20=20=20=20=20}=20else=20{=20/*=20default=20= behavior=20if=20modifier=20variable=20is=20not=20set=20*/=0A!=20=09if=20= (mods=20&=20macCtrlKey)=0A!=20=09=20=20result=20|=3D=20ctrl_modifier;=0A= !=20=20=20=20=20=20=20}=0A!=20=20=20=20=20}=0A=20=20=0A=20=20=20=20= return=20result;=0A=20=20}=0A***************=0A***=209326,9334=20****=0A=20= =20=09=09=20||=20!(er.modifiers=20&=20cmdKey))=0A=20=20=09=09&&=20(!NILP=20= (Vmac_pass_control_to_system)=0A=20=20=09=09=20=20=20=20||=20= !(er.modifiers=20&=20controlKey))=0A!=20=09=09&&=20(!NILP=20= (Vmac_command_key_is_meta)=0A!=20=09=09=20=20=20=20&&=20NILP=20= (Vmac_option_modifier)=0A!=20=09=09=20=20=20=20||=20!(er.modifiers=20&=20= optionKey)))=0A=20=20=09=20=20=20=20=20=20if=20(SendEventToEventTarget=20= (eventRef,=20toolbox_dispatcher)=0A=20=20=09=09=20=20!=3D=20= eventNotHandledErr)=0A=20=20=09=09break;=0A---=209418,9431=20----=0A=20=20= =09=09=20||=20!(er.modifiers=20&=20cmdKey))=0A=20=20=09=09&&=20(!NILP=20= (Vmac_pass_control_to_system)=0A=20=20=09=09=20=20=20=20||=20= !(er.modifiers=20&=20controlKey))=0A!=20=09=09&&=20(!NILP=20= (Vmac_pass_option_to_system)=0A!=20=09=09=20=20=20=20||=20= (macOldModifierSetting=20?=0A!=20=09=09=20=20=20=20((!NILP=20= (Vmac_command_key_is_meta)=0A!=20=09=09=20=20=20=20=20=20&&=20NILP=20= (Vmac_option_modifier)=0A!=20=09=09=20=20=20=20=20=20||=20!(er.modifiers=20= &=20optionKey)))=0A!=20=09=09=09:=20=20!(er.modifiers=20&=20optionKey))=0A= !=20=09=09=20=20=20=20)=0A!=20=09=09)=0A=20=20=09=20=20=20=20=20=20if=20= (SendEventToEventTarget=20(eventRef,=20toolbox_dispatcher)=0A=20=20=09=09= =20=20!=3D=20eventNotHandledErr)=0A=20=20=09=09break;=0A***************=0A= ***=209377,9386=20****=0A=20=20=09=09inev.kind=20=3D=20= NON_ASCII_KEYSTROKE_EVENT;=0A=20=20=09=20=20=20=20=20=20}=0A=20=20=09=20=20= =20=20else=0A!=20=09=20=20=20=20=20=20{=0A!=20=09=09if=20(er.modifiers=20= &=20(controlKey=20|=0A!=20=09=09=09=09=20=20=20=20(NILP=20= (Vmac_command_key_is_meta)=20?=20optionKey=0A!=20=09=09=09=09=20=20=20=20= =20:=20cmdKey)))=0A=20=20=09=09=20=20{=0A=20=20=09=09=20=20=20=20/*=20= This=20code=20comes=20from=20Keyboard=20Resource,=0A=20=20=09=09=20=20=20= =20=20=20=20Appendix=20C=20of=20IM=20-=20Text.=20=20This=20is=20= necessary=0A---=209474,9492=20----=0A=20=20=09=09inev.kind=20=3D=20= NON_ASCII_KEYSTROKE_EVENT;=0A=20=20=09=20=20=20=20=20=20}=0A=20=20=09=20=20= =20=20else=0A!=20=09=20=20=20=20=20=20{=20=0A!=20=09=09if=20=20= (er.modifiers=20&=20(controlKey=20|=20=0A!=20=09=09=09=09=20=20=20=20=20= (NILP=20(Vmac_pass_option_to_system)=20?=20optionKey=20:=200)=20|=20=0A!=20= =20=09=09=09=09=20=20=20=20=20(=0A!=20=20=09=09=09=09=20=20=20=20=20=20= (macOldModifierSetting=20?=20=20=0A!=20=20=09=09=09=09=20=20=20=20=20=20=20= (NILP=20(Vmac_command_key_is_meta)=20?=20=0A!=20=20=09=09=09=09=09= optionKey=20:=20cmdKey=0A!=20=20=09=09=09=09=09)=20=0A!=20=20=09=09=09=09= =20=20=20=20=20=20=20:=20cmdKey=0A!=20=20=09=09=09=09=20=20=20=20=20=20=20= )=0A!=20=20=09=09=09=09=20=20=20=20=20=20)=20=20=0A!=20=20=09=09=09=09=20= =20=20=20=20)=0A!=20=20=09=09=20=20=20=20=20)=0A=20=20=09=09=20=20{=0A=20= =20=09=09=20=20=20=20/*=20This=20code=20comes=20from=20Keyboard=20= Resource,=0A=20=20=09=09=20=20=20=20=20=20=20Appendix=20C=20of=20IM=20-=20= Text.=20=20This=20is=20necessary=0A***************=0A***=209388,9394=20= ****=0A=20=20=09=09=20=20=20=20=20=20=20translation=20when=20option=20or=20= command=20is=20pressed.=0A=20=20=09=09=20=20=20=20=20=20=20It=20also=20= does=20not=20translate=20correctly=0A=20=20=09=09=20=20=20=20=20=20=20= control-shift=20chars=20like=20C-%=20so=20mask=20off=20shift=0A!=20=09=09= =20=20=20=20=20=20=20here=20also=20*/=0A=20=20=09=09=20=20=20=20int=20= new_modifiers=20=3D=20er.modifiers=20&=200xe600;=0A=20=20=09=09=20=20=20=20= /*=20mask=20off=20option=20and=20command=20*/=0A=20=20=09=09=20=20=20=20= int=20new_keycode=20=3D=20keycode=20|=20new_modifiers;=0A---=209494,9507=20= ----=0A=20=20=09=09=20=20=20=20=20=20=20translation=20when=20option=20or=20= command=20is=20pressed.=0A=20=20=09=09=20=20=20=20=20=20=20It=20also=20= does=20not=20translate=20correctly=0A=20=20=09=09=20=20=20=20=20=20=20= control-shift=20chars=20like=20C-%=20so=20mask=20off=20shift=0A!=20=09=09= =20=20=20=20=20=20=20here=20also.=0A!=20=0A!=20=09=09=20=20=20=20=20=20=20= For=20combinations=20with=20the=20option=20key=20(alt),=20this=20is=20= only=0A!=20=09=09=20=20=20=20=20=20=20done=20if=20either=20command=20or=20= control=20are=20used=20additionally,=0A!=20=09=09=20=20=20=20=20=20=20in=20= which=20case=20this=20isn't=20handled=20=0A!=20=09=09=20=20=20=20=20=20=20= or=20if=20mac-pass-option-to-system=20is=20nil=20=20--=20in=20order=0A!=20= =09=09=20=20=20=20=20=20=20to=20preserve=20key=20combinations=20= translated=20by=20the=20OS,=20such=20as=20Alt-3.=0A!=20=09=09=20=20=20=20= */=0A=20=20=09=09=20=20=20=20int=20new_modifiers=20=3D=20er.modifiers=20= &=200xe600;=0A=20=20=09=09=20=20=20=20/*=20mask=20off=20option=20and=20= command=20*/=0A=20=20=09=09=20=20=20=20int=20new_keycode=20=3D=20keycode=20= |=20new_modifiers;=0A***************=0A***=209397,9415=20****=0A=20=20=09= =09=20=20=20=20inev.code=20=3D=20KeyTranslate=20(kchr_ptr,=20= new_keycode,=0A=20=20=09=09=09=09=09=20=20=20=20=20=20&some_state)=20&=20= 0xff;=0A=20=20=09=09=20=20}=0A-=20=09=09else=20if=20(!NILP=20= (Vmac_option_modifier)=0A-=20=09=09=09=20&&=20(er.modifiers=20&=20= optionKey))=0A-=20=09=09=20=20{=0A-=20=09=09=20=20=20=20/*=20When=20= using=20the=20option=20key=20as=20an=20emacs=20modifier,=0A-=20=09=09=20=20= =20=20=20=20=20convert=20the=20pressed=20key=20code=20back=20to=20one=0A= -=20=09=09=20=20=20=20=20=20=20without=20the=20Mac=20option=20modifier=20= applied.=20*/=0A-=20=09=09=20=20=20=20int=20new_modifiers=20=3D=20= er.modifiers=20&=20~optionKey;=0A-=20=09=09=20=20=20=20int=20new_keycode=20= =3D=20keycode=20|=20new_modifiers;=0A-=20=09=09=20=20=20=20Ptr=20= kchr_ptr=20=3D=20(Ptr)=20GetScriptManagerVariable=20(smKCHRCache);=0A-=20= =09=09=20=20=20=20unsigned=20long=20some_state=20=3D=200;=0A-=20=09=09=20= =20=20=20inev.code=20=3D=20KeyTranslate=20(kchr_ptr,=20new_keycode,=0A-=20= =09=09=09=09=09=20=20=20=20=20=20&some_state)=20&=200xff;=0A-=20=09=09=20= =20}=0A=20=20=09=09else=0A=20=20=09=09=20=20inev.code=20=3D=20er.message=20= &=20charCodeMask;=0A=20=20=09=09inev.kind=20=3D=20ASCII_KEYSTROKE_EVENT;=0A= ---=209510,9515=20----=0A***************=0A***=2010029,10034=20****=0A= ---=2010129,10138=20----=0A=20=20#if=20TARGET_API_MAC_CARBON=0A=20=20=20=20= init_required_apple_events=20();=0A=20=20=0A+=20=20=20Qctrl=20=3D=20= intern=20("ctrl");=0A+=20=20=20Fput=20(Qctrl,=20Qmodifier_value,=20= make_number=20(ctrl_modifier));=0A+=20=20=20Qmeta=20=3D=20intern=20= ("meta");=0A+=20=20=20Fput=20(Qmeta,=20Qmodifier_value,=20make_number=20= (meta_modifier));=20=0A=20=20#if=20USE_CARBON_EVENTS=0A=20=20#ifdef=20= MAC_OSX=0A=20=20=20=20init_service_handler=20();=0A***************=0A***=20= 10079,10084=20****=0A---=2010183,10191=20----=0A=20=20#ifdef=20MAC_OSX=0A= =20=20=20=20Fprovide=20(intern=20("mac-carbon"),=20Qnil);=0A=20=20#endif=0A= +=20/*=20Deprecated=20variables=20to=20configure=20modifier=20key=20= assignment.=0A+=20=09Retained=20for=20backward-compatibility.=20*/=0A+=20= =09=0A=20=20=0A=20=20=20=20staticpro=20(&Qreverse);=0A=20=20=20=20= Qreverse=20=3D=20intern=20("reverse");=0A***************=0A***=20= 10105,10123=20****=0A=20=20=0A=20=20=20=20DEFVAR_LISP=20= ("mac-command-key-is-meta",=20&Vmac_command_key_is_meta,=0A=20=20=20=20=20= =20doc:=20/*=20Non-nil=20means=20that=20the=20command=20key=20is=20used=20= as=20the=20Emacs=20meta=20key.=0A!=20Otherwise=20the=20option=20key=20is=20= used.=20=20*/);=0A=20=20=20=20Vmac_command_key_is_meta=20=3D=20Qt;=0A=20=20= =0A=20=20=20=20DEFVAR_LISP=20("mac-option-modifier",=20= &Vmac_option_modifier,=0A=20=20=20=20=20=20doc:=20/*=20Modifier=20to=20= use=20for=20the=20Mac=20alt/option=20key.=20=20The=20value=20can=0A=20=20= be=20alt,=20hyper,=20or=20super=20for=20the=20respective=20modifier.=20=20= If=20the=20value=20is=0A!=20nil=20then=20the=20key=20will=20act=20as=20= the=20normal=20Mac=20option=20modifier.=20=20*/);=0A=20=20=20=20= Vmac_option_modifier=20=3D=20Qnil;=0A=20=20=0A!=20=20=20DEFVAR_LISP=20= ("mac-reverse-ctrl-meta",=20&Vmac_reverse_ctrl_meta,=0A!=20=20=20=20=20= doc:=20/*=20Non-nil=20means=20that=20the=20control=20and=20meta=20keys=20= are=20reversed.=20=20This=20is=0A!=20useful=20for=20non-standard=20= keyboard=20layouts.=20=20*/);=0A!=20=20=20Vmac_reverse_ctrl_meta=20=3D=20= Qnil;=0A=20=20=0A=20=20=20=20DEFVAR_LISP=20= ("mac-emulate-three-button-mouse",=0A=20=20=09=20=20=20=20=20=20=20= &Vmac_emulate_three_button_mouse,=0A---=2010212,10267=20----=0A=20=20=0A=20= =20=20=20DEFVAR_LISP=20("mac-command-key-is-meta",=20= &Vmac_command_key_is_meta,=0A=20=20=20=20=20=20doc:=20/*=20Non-nil=20= means=20that=20the=20command=20key=20is=20used=20as=20the=20Emacs=20meta=20= key.=0A!=20Otherwise=20the=20option=20key=20is=20used.=20This=20variable=20= is=20DEPRECATED.=20=0A!=20It=20is=20only=20in=20effect=20if=20all=20of=20= the=20variables=20mac-*-modifier=20are=20nil.=20*/);=0A=20=20=20=20= Vmac_command_key_is_meta=20=3D=20Qt;=0A+=20=20=20=0A+=20=20=20= DEFVAR_LISP=20("mac-reverse-ctrl-meta",=20&Vmac_reverse_ctrl_meta,=0A+=20= =20=20=20=20doc:=20/*=20Non-nil=20means=20that=20the=20control=20and=20= meta=20keys=20are=20reversed.=20=20This=20is=0A+=20useful=20for=20= non-standard=20keyboard=20layouts.=20This=20variable=20is=20DEPRECATED.=20= =0A+=20Backwards-compatibility:=20It=20is=20only=20in=20effect=20if=20= none=20of=20the=20variables=20=0A+=20= mac-{command|control|option}-modifier=20is=20non-nil.=20*/);=0A+=20=20=20= Vmac_reverse_ctrl_meta=20=3D=20Qnil;=0A+=20=0A+=20=0A+=20/*=20Variables=20= to=20configure=20modifier=20key=20assignment.=20=20*/=0A+=20=09=0A+=20=20= =20DEFVAR_LISP=20("mac-control-modifier",=20&Vmac_control_modifier,=0A+=20= =20=20=20=20doc:=20/*=20Modifier=20to=20use=20for=20the=20Mac=20control=20= key.=20=20The=20value=20can=0A+=20be=20alt,=20hyper,=20or=20super=20for=20= the=20respective=20modifier.=20=20If=20the=20value=20is=0A+=20nil=20then=20= the=20key=20will=20act=20as=20the=20normal=20Mac=20control=20modifier.=20= =20=0A+=20Backwards-compatibility:=20If=20all=20values=20of=20=0A+=20= mac-{command|control|option}-modifier=20are=20nil,=20the=20deprecated=0A= +=20default=20assignment=20determined=20by=20mac-command-key-is-meta=20= and=0A+=20mac-reverse-ctrl-meta=20is=20used.=20*/);=0A+=20=20=20= Vmac_control_modifier=20=3D=20Qnil;=0A=20=20=0A=20=20=20=20DEFVAR_LISP=20= ("mac-option-modifier",=20&Vmac_option_modifier,=0A=20=20=20=20=20=20= doc:=20/*=20Modifier=20to=20use=20for=20the=20Mac=20alt/option=20key.=20=20= The=20value=20can=0A=20=20be=20alt,=20hyper,=20or=20super=20for=20the=20= respective=20modifier.=20=20If=20the=20value=20is=0A!=20nil=20then=20the=20= key=20will=20act=20as=20the=20normal=20Mac=20option=20modifier,=20and=20= the=20option=0A!=20key=20can=20be=20used=20to=20compose=20characters=20= depending=20on=20the=20chosen=20Mac=20keyboard=0A!=20setting.=20=0A!=20= Note=20that=20mac-pass-option-to-system=20takes=20precedence=20over=20= this=20setting.=20If=20=0A!=20mac-pass-option-to-system=20is=20non-nil,=20= simple=20key=20combinations=20with=20Option=0A!=20will=20be=20handled=20= by=20the=20system=20in=20order=20to=20produce=20characters,=20and=20only=0A= !=20combinations=20in=20conjunction=20with=20Command=20or=20Control=20= will=20let=20Emacs=20see=0A!=20the=20modifier=20that=20is=20assigned=20= to=20the=20Option=20key.=20=0A!=20Backwards-compatibility:=20If=20all=20= values=20of=20=0A!=20mac-{command|control|option}-modifier=20are=20nil,=20= the=20deprecated=20default=20=0A!=20assignment=20determined=20by=20= mac-command-key-is-meta=20and=0A!=20mac-reverse-ctrl-meta=20is=20used.=20= =20*/);=0A=20=20=20=20Vmac_option_modifier=20=3D=20Qnil;=0A=20=20=0A!=20=20= =20DEFVAR_LISP=20("mac-command-modifier",=20&Vmac_command_modifier,=0A!=20= =20=20=20=20doc:=20/*=20Modifier=20to=20use=20for=20the=20Mac=20command=20= key.=20=20The=20value=20can=0A!=20be=20alt,=20hyper,=20or=20super=20for=20= the=20respective=20modifier.=20If=20the=20value=20is=0A!=20nil=20then=20= the=20key=20will=20act=20as=20the=20Emacs=20'hyper'=20modifier.=20=0A!=20= Backwards-compatibility:=20If=20all=20values=20of=20=0A!=20= mac-{command|control|option}-modifier=20are=20nil,=20the=20deprecated=0A= !=20default=20assignment=20determined=20by=20mac-command-key-is-meta=20= and=0A!=20mac-reverse-ctrl-meta=20is=20used.=20=20*/);=0A!=20=20=20= Vmac_command_modifier=20=3D=20Qnil;=0A=20=20=0A=20=20=20=20DEFVAR_LISP=20= ("mac-emulate-three-button-mouse",=0A=20=20=09=20=20=20=20=20=20=20= &Vmac_emulate_three_button_mouse,=0A***************=0A***=2010146,10151=20= ****=0A---=2010290,10303=20----=0A=20=20=20=20=20doc:=20/*=20If=20= non-nil,=20the=20Mac=20\"Control\"=20key=20is=20passed=20on=20to=20the=20= Mac=0A=20=20Toolbox=20for=20processing=20before=20Emacs=20sees=20it.=20=20= */);=0A=20=20=20=20Vmac_pass_control_to_system=20=3D=20Qt;=0A+=20=0A+=20=20= =20DEFVAR_LISP=20("mac-pass-option-to-system",=20= &Vmac_pass_option_to_system,=0A+=20=20=20=20doc:=20/*=20If=20=20non-nil,=20= the=20Mac=20\"Option\"=20key=20can=20be=20used=20to=20compose=0A+=20=20=20= =20=20=20=20characters=20as=20handled=20by=20the=20system=20and=20= depending=20on=20the=0A+=20=20=20=20=20=20=20keyboard=20layout=20chosen.=20= Only=20if=20the=20Mac=20\"Command\"=20or=20\"Ctrl\"=20key=0A+=20=20=20=20= =20=20=20is=20depressed=20at=20the=20same=20time,=20Emacs=20evaluates=20= the=20combination=20using=0A+=20=20=20=20=20=20=20whatever=20modifier=20= is=20set=20in=20mac-option-modifier.=20=20*/);=0A+=20=20=20= Vmac_pass_option_to_system=20=3D=20Qt;=0A=20=20=0A=20=20#endif=0A=20=20=0A= --Apple-Mail-10--950596930-- --Apple-Mail-11--950596624 Content-Transfer-Encoding: base64 Content-Type: application/pkcs7-signature; name=smime.p7s Content-Disposition: attachment; filename=smime.p7s MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIGOzCCAvQw ggJdoAMCAQICAw3xWjANBgkqhkiG9w0BAQQFADBiMQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhh d3RlIENvbnN1bHRpbmcgKFB0eSkgTHRkLjEsMCoGA1UEAxMjVGhhd3RlIFBlcnNvbmFsIEZyZWVt YWlsIElzc3VpbmcgQ0EwHhcNMDUwMjAxMjM0NTA0WhcNMDYwMjAxMjM0NTA0WjBiMRAwDgYDVQQE EwdSZWl0dGVyMQ4wDAYDVQQqEwVEYXZpZDEWMBQGA1UEAxMNRGF2aWQgUmVpdHRlcjEmMCQGCSqG SIb3DQEJARYXZGF2aWQucmVpdHRlckBnbWFpbC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw ggEKAoIBAQDhuoehK+SM/uai1CMVwn3NgRTTwqPpEBKKrr0RKTwxn+B9KFHUK033x4cV1zF4NsHx t8OG7uk25ZRnBdf2xGC4Dmz2LiGKKhps+EkGzxFuKA3Q8WbXv7stEsS1ALl/mapcaOXTukzKGcu9 wYFpmSi+PMc/61Th7A9T3bBNQcC2rKuILcaB3GM4ajekoEKFEPx/sTtMhGOLLwb5JcrWhxD0ADIA S1woY1PS3BJ4YTzPPkZMul46s7riV6CPd2gjnSn2aGvgXHTOHz7tOWmD4phVZ/THQ7nGLnIPy7gi HfXKvJ3IlM2NcHrgAGMNHaDwSWkdNdNhFe2rsoGTvLRF/fXVAgMBAAGjNDAyMCIGA1UdEQQbMBmB F2RhdmlkLnJlaXR0ZXJAZ21haWwuY29tMAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEEBQADgYEA QxQdE8kyJWkgofiVLxnFYttKuNAkgP0vumRW7Jxc93TX56z3Y6j0pZiYFQcTOYkjdWFsPUSDdnIl X26P8/ZiCDosSNAeXHaizmoNjl+RkopgKxC7Th6hY0ZrEC5e0733wzeB8O8L05JX1x7KSMrjjX/s i5F5LSZMRP+o63kulIQwggM/MIICqKADAgECAgENMA0GCSqGSIb3DQEBBQUAMIHRMQswCQYDVQQG EwJaQTEVMBMGA1UECBMMV2VzdGVybiBDYXBlMRIwEAYDVQQHEwlDYXBlIFRvd24xGjAYBgNVBAoT EVRoYXd0ZSBDb25zdWx0aW5nMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlz aW9uMSQwIgYDVQQDExtUaGF3dGUgUGVyc29uYWwgRnJlZW1haWwgQ0ExKzApBgkqhkiG9w0BCQEW HHBlcnNvbmFsLWZyZWVtYWlsQHRoYXd0ZS5jb20wHhcNMDMwNzE3MDAwMDAwWhcNMTMwNzE2MjM1 OTU5WjBiMQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkgTHRk LjEsMCoGA1UEAxMjVGhhd3RlIFBlcnNvbmFsIEZyZWVtYWlsIElzc3VpbmcgQ0EwgZ8wDQYJKoZI hvcNAQEBBQADgY0AMIGJAoGBAMSmPFVzVftOucqZWh5owHUEcJ3f6f+jHuy9zfVb8hp2vX8MOmHy v1HOAdTlUAow1wJjWiyJFXCO3cnwK4Vaqj9xVsuvPAsH5/EfkTYkKhPPK9Xzgnc9A74r/rsYPge/ QIACZNenprufZdHFKlSFD0gEf6e20TxhBEAeZBlyYLf7AgMBAAGjgZQwgZEwEgYDVR0TAQH/BAgw BgEB/wIBADBDBgNVHR8EPDA6MDigNqA0hjJodHRwOi8vY3JsLnRoYXd0ZS5jb20vVGhhd3RlUGVy c29uYWxGcmVlbWFpbENBLmNybDALBgNVHQ8EBAMCAQYwKQYDVR0RBCIwIKQeMBwxGjAYBgNVBAMT EVByaXZhdGVMYWJlbDItMTM4MA0GCSqGSIb3DQEBBQUAA4GBAEiM0VCD6gsuzA2jZqxnD3+vrL7C F6FDlpSdf0whuPg2H6otnzYvwPQcUCCTcDz9reFhYsPZOhl+hLGZGwDFGguCdJ4lUJRix9sncVcl jd2pnDmOjCBPZV+V2vf3h9bGCE6u9uo05RAaWzVNd+NWIXiC3CEZNd4ksdMdRv9dX2VPMYIC5zCC AuMCAQEwaTBiMQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg THRkLjEsMCoGA1UEAxMjVGhhd3RlIFBlcnNvbmFsIEZyZWVtYWlsIElzc3VpbmcgQ0ECAw3xWjAJ BgUrDgMCGgUAoIIBUzAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0w NTA5MjUyMDM0MTlaMCMGCSqGSIb3DQEJBDEWBBRGbPDvGZzLZLiCKPmV0hlLCyP/mDB4BgkrBgEE AYI3EAQxazBpMGIxCzAJBgNVBAYTAlpBMSUwIwYDVQQKExxUaGF3dGUgQ29uc3VsdGluZyAoUHR5 KSBMdGQuMSwwKgYDVQQDEyNUaGF3dGUgUGVyc29uYWwgRnJlZW1haWwgSXNzdWluZyBDQQIDDfFa MHoGCyqGSIb3DQEJEAILMWugaTBiMQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1 bHRpbmcgKFB0eSkgTHRkLjEsMCoGA1UEAxMjVGhhd3RlIFBlcnNvbmFsIEZyZWVtYWlsIElzc3Vp bmcgQ0ECAw3xWjANBgkqhkiG9w0BAQEFAASCAQCqHUqRHwHjYS4K9oQ6aYw1QI7d4U666sEoi2OY TlgTQ1UWn6gp0FT2LvK4de+EJqboTr5DJJowiKs9iWApFaMtiRniaGoE9ocGRsj9Ali+AzH6Ji3J yAGkHAJy5d5KwKj7pPw89Pz2mtHUfw1ADaDvP8Ht7y7nGQ9NfGcYxo2n8xNUx1HmwyOc3N5c1MNQ WEoxdCcvCehVy/YX3STLI1KrzxTaTOkGiYWo+gReIGBv0LCQQQoDY06aY1aZWSRDJvX1Hulo1kx8 qdEYYIZS3WzmLOGcbr0j5DaviqyIEa5VK4A7t04MNfDTsH5qaQzA+1GzpPnuXoLMBn3+qlu67Oih AAAAAAAA --Apple-Mail-11--950596624-- --===============1437325537== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Emacs-devel mailing list Emacs-devel@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-devel --===============1437325537==--