comparison lisp/emulation/viper-macs.el @ 90201:fbb2bea03df9

Revision: miles@gnu.org--gnu-2005/emacs--unicode--0--patch-69 Merge from emacs--cvs-trunk--0 Patches applied: * emacs--cvs-trunk--0 (patch 474-484) - Update from CVS - Merge from gnus--rel--5.10 * gnus--rel--5.10 (patch 88-91) - Merge from emacs--cvs-trunk--0 - Update FSF's address in GPL notices - Update from CVS
author Miles Bader <miles@gnu.org>
date Thu, 14 Jul 2005 08:02:00 +0000
parents f9a65d7ebd29 a4c59075cac8
children edf295560b5a
comparison
equal deleted inserted replaced
90200:f9a65d7ebd29 90201:fbb2bea03df9
176 (setq key-seq (vconcat key-seq (if key (vector key) []))) 176 (setq key-seq (vconcat key-seq (if key (vector key) [])))
177 ;; the only keys available for editing are these-- no help while there 177 ;; the only keys available for editing are these-- no help while there
178 (if (member 178 (if (member
179 key 179 key
180 '(?\b ?\d '^? '^H (control h) (control \?) backspace delete)) 180 '(?\b ?\d '^? '^H (control h) (control \?) backspace delete))
181 (setq key-seq (subseq key-seq 0 (- (length key-seq) 2)))) 181 (setq key-seq (viper-subseq key-seq 0 (- (length key-seq) 2))))
182 (setq message 182 (setq message
183 (format 183 (format
184 ":map%s %s" 184 ":map%s %s"
185 variant (if (> (length key-seq) 0) 185 variant (if (> (length key-seq) 0)
186 (prin1-to-string (viper-display-macro key-seq)) 186 (prin1-to-string (viper-display-macro key-seq))
240 (setq key-seq (vconcat key-seq (if key (vector key) []))) 240 (setq key-seq (vconcat key-seq (if key (vector key) [])))
241 ;; the only keys available for editing are these-- no help while there 241 ;; the only keys available for editing are these-- no help while there
242 (cond ((member 242 (cond ((member
243 key 243 key
244 '(?\b ?\d '^? '^H (control h) (control \?) backspace delete)) 244 '(?\b ?\d '^? '^H (control h) (control \?) backspace delete))
245 (setq key-seq (subseq key-seq 0 (- (length key-seq) 2)))) 245 (setq key-seq (viper-subseq key-seq 0 (- (length key-seq) 2))))
246 ((member key '(tab (control i) ?\t)) 246 ((member key '(tab (control i) ?\t))
247 (setq key-seq (subseq key-seq 0 (1- (length key-seq)))) 247 (setq key-seq (viper-subseq key-seq 0 (1- (length key-seq))))
248 (setq message 248 (setq message
249 (format 249 (format
250 ":unmap%s %s" 250 ":unmap%s %s"
251 variant (if (> (length key-seq) 0) 251 variant (if (> (length key-seq) 0)
252 (prin1-to-string 252 (prin1-to-string
616 macro-alist-elt (assoc keyseq macro-alist) 616 macro-alist-elt (assoc keyseq macro-alist)
617 next-best-match (viper-find-best-matching-macro macro-alist keyseq)) 617 next-best-match (viper-find-best-matching-macro macro-alist keyseq))
618 618
619 (if (null macro-alist-elt) 619 (if (null macro-alist-elt)
620 (setq macro-alist-elt (car next-best-match) 620 (setq macro-alist-elt (car next-best-match)
621 unmatched-suffix (subseq event-seq (cdr next-best-match)))) 621 unmatched-suffix (viper-subseq event-seq (cdr next-best-match))))
622 622
623 (cond ((null macro-alist-elt)) 623 (cond ((null macro-alist-elt))
624 ((setq macro-body (viper-kbd-buf-definition macro-alist-elt))) 624 ((setq macro-body (viper-kbd-buf-definition macro-alist-elt)))
625 ((setq macro-body (viper-kbd-mode-definition macro-alist-elt))) 625 ((setq macro-body (viper-kbd-mode-definition macro-alist-elt)))
626 ((setq macro-body (viper-kbd-global-definition macro-alist-elt)))) 626 ((setq macro-body (viper-kbd-global-definition macro-alist-elt))))
699 ;; whether SEQ1 is a prefix of SEQ2 699 ;; whether SEQ1 is a prefix of SEQ2
700 (defun viper-prefix-subseq-p (seq1 seq2) 700 (defun viper-prefix-subseq-p (seq1 seq2)
701 (let ((len1 (length seq1)) 701 (let ((len1 (length seq1))
702 (len2 (length seq2))) 702 (len2 (length seq2)))
703 (if (<= len1 len2) 703 (if (<= len1 len2)
704 (equal seq1 (subseq seq2 0 len1))))) 704 (equal seq1 (viper-subseq seq2 0 len1)))))
705 705
706 ;; find the longest common prefix 706 ;; find the longest common prefix
707 (defun viper-common-seq-prefix (&rest seqs) 707 (defun viper-common-seq-prefix (&rest seqs)
708 (let* ((first (car seqs)) 708 (let* ((first (car seqs))
709 (rest (cdr seqs)) 709 (rest (cdr seqs))
764 match unmatched-start-idx found macro-def) 764 match unmatched-start-idx found macro-def)
765 (while (and (not found) lis) 765 (while (and (not found) lis)
766 (setq macro-def (car lis) 766 (setq macro-def (car lis)
767 def-len (length (car macro-def))) 767 def-len (length (car macro-def)))
768 (if (and (>= str-len def-len) 768 (if (and (>= str-len def-len)
769 (equal (car macro-def) (subseq str 0 def-len))) 769 (equal (car macro-def) (viper-subseq str 0 def-len)))
770 (if (or (viper-kbd-buf-definition macro-def) 770 (if (or (viper-kbd-buf-definition macro-def)
771 (viper-kbd-mode-definition macro-def) 771 (viper-kbd-mode-definition macro-def)
772 (viper-kbd-global-definition macro-def)) 772 (viper-kbd-global-definition macro-def))
773 (setq found t)) 773 (setq found t))
774 ) 774 )