/[emacs]/emacs/lisp/emulation/viper-util.el
ViewVC logotype

Diff of /emacs/lisp/emulation/viper-util.el

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.54 by lute, Mon Jul 4 17:29:04 2005 UTC revision 1.55 by kifer, Sun Jul 10 18:46:24 2005 UTC
# Line 41  Line 41 
41  (defvar viper-syntax-preference)  (defvar viper-syntax-preference)
42  (defvar viper-saved-mark)  (defvar viper-saved-mark)
43    
 (require 'cl)  
44  (require 'ring)  (require 'ring)
45    
46  (if noninteractive  (if noninteractive
# Line 1068  Line 1067 
1067                   (t key)))                   (t key)))
1068    
1069            ((listp key)            ((listp key)
1070             (setq modifiers (subseq key 0 (1- (length key)))             (setq modifiers (viper-subseq key 0 (1- (length key)))
1071                   base-key (viper-seq-last-elt key)                   base-key (viper-seq-last-elt key)
1072                   base-key-name (symbol-name base-key)                   base-key-name (symbol-name base-key)
1073                   char-p (= (length base-key-name) 1))                   char-p (= (length base-key-name) 1))
# Line 1503  This option is appropriate if you like E Line 1502  This option is appropriate if you like E
1502      ))      ))
1503    
1504    
1505    ;; this is copied from cl-extra.el
1506    ;; Return the subsequence of SEQ from START to END.
1507    ;; If END is omitted, it defaults to the length of the sequence.
1508    ;; If START or END is negative, it counts from the end.
1509    (defun viper-subseq (seq start &optional end)
1510      (if (stringp seq) (substring seq start end)
1511        (let (len)
1512          (and end (< end 0) (setq end (+ end (setq len (length seq)))))
1513          (if (< start 0) (setq start (+ start (or len (setq len (length seq))))))
1514          (cond ((listp seq)
1515                 (if (> start 0) (setq seq (nthcdr start seq)))
1516                 (if end
1517                     (let ((res nil))
1518                       (while (>= (setq end (1- end)) start)
1519                         (push (pop seq) res))
1520                       (nreverse res))
1521                   (copy-sequence seq)))
1522                (t
1523                 (or end (setq end (or len (length seq))))
1524                 (let ((res (make-vector (max (- end start) 0) nil))
1525                       (i 0))
1526                   (while (< start end)
1527                     (aset res i (aref seq start))
1528                     (setq i (1+ i) start (1+ start)))
1529                   res))))))
1530    
1531    
1532    
1533  (provide 'viper-util)  (provide 'viper-util)
1534    

Legend:
Removed from v.1.54  
changed lines
  Added in v.1.55

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26