home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: alt.lucid-emacs.help
- Sender: help-lucid-emacs-request@lucid.com
- Date: Mon, 27 Jul 92 18:29:46 PDT
- From: eb%watergate@lucid.com (Eric Benson)
- Message-ID: <9207280129.AA23761@watergate.lucid>
- Subject: Re: Change in point movement behavior
- References: <MCGRANT.92Jul27153440@isl.stanford.edu>
- <MCGRANT.92Jul27162250@isl.stanford.edu>
- Reply-To: eb@lucid.com
- Path: sparky!uunet!wendy-fate.uu.net!help-lucid-emacs
- Lines: 27
-
- In Emacs 18 the cursor keys actually send the characters C-n and C-p
- to Emacs. In lemacs they are the X keysyms 'up and 'down. We had
- originally bound these keys to the commands previous-line and
- next-line, but that doesn't work well for modes with local bindings
- for C-n and C-p, since people usually expect the cursor keys to do
- exactly the same thing as C-b, C-f, C-p and C-n, regardless of what
- those keys are bound to. So, we changed the cursor key bindings to be
- keyboard macros containing exactly those characters instead. This
- works fine, except that next-line and previous-line check the variable
- last-command to decide if it should keep the goal column at the same
- place, and apparently the keyboard macro was causing this to fail.
- However, it turns out that Emacs 18 has this extra special hack to
- make keyboard macros containing exactly one character set last-command
- to the command to which the character is bound. Lemacs didn't have
- this hack, so I added it. It will appear in 19.3, but if you want it
- now, in command_loop_1 in keyboard.c, change the line
-
- Vlast_command = Qt;
-
- to
-
- if (!(!NILP(Vexecuting_macro) &&
- ((XTYPE (Vexecuting_macro) == Lisp_String &&
- XSTRING (Vexecuting_macro)->size == 1) ||
- (XTYPE (Vexecuting_macro) == Lisp_Vector &&
- XVECTOR (Vexecuting_macro)->size == 1))))
- Vlast_command = Qt;
-