[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

how to bind C-H to rubout in lisp-listeners



    Date: Wed, 3 Jul 1991 00:13 EDT
    From: rsl@MAX-FLEISCHER.SF.Dialnet.ILA.COM (Richard Lamson)

    [Added Customer-reports: small bug fix at the end.]

RSL, you didn't give a system version (tsk, tsk), but it musta been
8.0.x.  For the record, version 331 of the source has this fix in it,
and hence it is fixed in Genera 8.1.  In fact, the fix must have just
missed the cutoff for 8.0.

	Date: Tue, 2 Jul 91 14:40:36 PDT
	From: starnet!bass!lakin@apple.com (Fred Lakin)

	I now spend alot of my time on other keyboards and have lost
	the rubout reflex -- replaced by C-H. 

	Using the following forms, I have managed to make C-H do rubout in zmacs
	buffers and mini-buffers:

	  (login-eval
	   (set-comtab-return-undo *zmacs-comtab* 	
	    '(#\CONTROL-H COM-RUBOUT)))

	  (login-eval
	   (set-comtab-return-undo *standard-comtab* 
	    '(#\CONTROL-H COM-RUBOUT)))

	However, the all-important lisp-listener C-H is uneffected. How can
	I get that too?

    I was going to suggest 

       (LOGIN-FORMS
	 (SI:ADD-IE-COMMAND 'SI:COM-RUBOUT-CHARACTER #\c-H))

    but the logout form for ADD-IE-COMMAND generates the wrong thing on the
    logout-list, so just

       (SI:ADD-IE-COMMAND 'SI:COM-RUBOUT-CHARACTER #\c-H)

    for now.  [The fix for the undo problem is below if you care (the
    system-supplied version says DELETE-IE-COMMAND instead of
    DELETE-IE-COMMANDS.]

    ;=====================================
    (SYSTEM-INTERNALS:BEGIN-PATCH-SECTION)
    (SYSTEM-INTERNALS:PATCH-SECTION-SOURCE-FILE "SYS:IO;INPUT-EDITOR.LISP.330")
    (SYSTEM-INTERNALS:PATCH-SECTION-ATTRIBUTES
      "-*- Syntax: Zetalisp; MODE: Lisp; Package: System-internals; Base: 8 -*-")

    (DEFUN MAKE-UNDO-FOR-ADD//DELETE-IE-COMMAND (CHARS &AUX (RESULT '()))
      (DOLIST (CHAR CHARS)
	(SETQ CHAR (EVAL CHAR))
	(LET ((ENTRY (ASS #'CHAR= CHAR *COMMAND-ALIST*)))
	  (PUSH (IF ENTRY
		    `(ADD-IE-COMMAND    ',(CDR ENTRY) ,CHAR)
		    `(DELETE-IE-COMMANDS ,CHAR))
		RESULT)))
      (IF (CDR RESULT) `(PROGN ,@(NREVERSE RESULT)) (CAR RESULT)))