Path: utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!apple!bloom-beacon!spdcc!bu-cs!jbw
From: jbw@bucsf.bu.edu (Joe Wells)
Newsgroups: gnu.emacs.bug
Subject: Re: 18.54.1: ESC M-0 discards the zero
Message-ID: <38801@bu-cs.BU.EDU>
Date: 24 Sep 89 21:27:39 GMT
References: <13066.622227723@COSMOS.VLSI.CS.CMU.EDU> <38641@bu-cs.BU.EDU>
Sender: daemon@bu-cs.BU.EDU
Distribution: gnu
Organization: Boston University Computer Science Department
Lines: 38
In-reply-to: jbw@bucsf.bu.edu's message of 21 Sep 89 23:46:08 GMT

In article <38641@bu-cs.BU.EDU> jbw@bucsf.bu.edu (Joe Wells) writes:

   [Suggested change to Emacs deleted]

This was in reference to the behaviour of Emacs when ESC M-0 is pressed,
using a real meta key.  The original complainant, Derek Beatty had
suggested that Emacs should behave as if ESC ESC 0 had been typed, instead
of discarding the 0.  At first I agreed, and I proposed a patch to make
Emacs behave that way.  Then RMS sent me a letter saying he thought that
behaviour would be less than useful.  After considering this, I agreed.

Instead, I propose that Emacs should neither engage in its current
behaviour, nor in the behaviour I proposed earlier.  I think ESC M-0
should not invoke the keybinding of ESC ESC at all.  Instead, keybindings
that end with ESC (the value of meta-prefix-character) should require an
exact match with the ESC key, and should not match a meta-prefix.  Thus,
ESC M-0 would be undefined and would result in no action.  I am including
a patch that I believe would do this.

--
Joe Wells 
jbw%bucsf.bu.edu@bu-it.bu.edu
...!harvard!bu-cs!bucsf!jbw
----------------------------------------------------------------------
*** /usr14/gnu/dist-18.55/src/keyboard.c	Mon Sep  4 03:46:20 1989
--- keyboard.c	Sun Sep 24 17:16:42 1989
***************
*** 1400,1405 ****
--- 1400,1408 ----
  	  else
  	    nextglobal = Qnil;
  	}
+       /* Both definitions are terminal (not keymaps). */
+       /* Were they reached by meta_prefix_char without consuming nextc? */
+       else if (nextc >= 0) read_key_sequence_cmd = Qnil;
      }
  
    keys_prompt = 0;