# HG changeset patch # User Gerd Moellmann # Date 990191405 0 # Node ID b496c10108cbc63e875f6d43f2a5a17db65b076e # Parent f6e50e3a9b78bafd55ee562a841798336fa7034f (tmm-get-keymap): Fix handling of :filter. (tmm-add-prompt): Bind buffer-read-only to nil when inserting text into *Completions*. diff -r f6e50e3a9b78 -r b496c10108cb lisp/tmm.el --- a/lisp/tmm.el Fri May 18 12:50:27 2001 +0000 +++ b/lisp/tmm.el Fri May 18 13:10:05 2001 +0000 @@ -1,6 +1,7 @@ ;;; tmm.el --- text mode access to menu-bar -;; Copyright (C) 1994, 1995, 1996, 2000 Free Software Foundation, Inc. +;; Copyright (C) 1994, 1995, 1996, 2000, 2001 +;; Free Software Foundation, Inc. ;; Author: Ilya Zakharevich ;; Maintainer: FSF @@ -339,12 +340,11 @@ (with-output-to-temp-buffer "*Completions*" (display-completion-list completions)) (remove-hook 'completion-setup-hook 'tmm-completion-delete-prompt)) - (if tmm-completion-prompt - (progn - (set-buffer "*Completions*") - (goto-char 1) - (insert tmm-completion-prompt))) - ) + (when tmm-completion-prompt + (set-buffer "*Completions*") + (let ((buffer-read-only nil)) + (goto-char (point-min)) + (insert tmm-completion-prompt)))) (save-selected-window (other-window 1) ; Electric-pop-up-window does ; not work in minibuffer @@ -410,12 +410,14 @@ (or (keymapp elt) (eq (car elt) 'lambda)) (fboundp elt)) (setq km elt)) + ((if (listp (cdr-safe elt)) (or (keymapp (cdr-safe elt)) (eq (car (cdr-safe elt)) 'lambda)) (fboundp (cdr-safe elt))) (setq km (cdr elt)) (and (stringp (car elt)) (setq str (car elt)))) + ((if (listp (cdr-safe (cdr-safe elt))) (or (keymapp (cdr-safe (cdr-safe elt))) (eq (car (cdr-safe (cdr-safe elt))) 'lambda)) @@ -426,8 +428,12 @@ (stringp (cdr (car (cdr elt)))) ; keyseq cache (setq cache (cdr (car (cdr elt)))) cache (setq str (concat str cache)))) + ((eq (car-safe elt) 'menu-item) + ;; (menu-item TITLE COMMAND KEY ...) (setq plist (cdr-safe (cdr-safe (cdr-safe elt)))) + (when (consp (car-safe plist)) + (setq plist (cdr-safe plist))) (setq km (nth 2 elt)) (setq str (eval (nth 1 elt))) (setq filter (plist-get plist :filter)) @@ -439,6 +445,7 @@ (setq cache (cdr (nth 3 elt))) cache (setq str (concat str cache)))) + ((if (listp (cdr-safe (cdr-safe (cdr-safe elt)))) (or (keymapp (cdr-safe (cdr-safe (cdr-safe elt)))) (eq (car (cdr-safe (cdr-safe (cdr-safe elt)))) 'lambda)) @@ -450,6 +457,7 @@ (stringp (cdr (car (cdr (cdr elt))))) ; keyseq cache (setq cache (cdr (car (cdr (cdr elt))))) cache (setq str (concat str cache)))) + ((stringp event) ; x-popup or x-popup element (if (or in-x-menu (stringp (car-safe elt))) (setq str event event nil km elt)