[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/lisp/skeleton.el
From: |
Stefan Monnier |
Subject: |
[Emacs-diffs] Changes to emacs/lisp/skeleton.el |
Date: |
Sun, 25 May 2003 21:02:31 -0400 |
Index: emacs/lisp/skeleton.el
diff -c emacs/lisp/skeleton.el:1.36 emacs/lisp/skeleton.el:1.37
*** emacs/lisp/skeleton.el:1.36 Sat May 24 21:31:48 2003
--- emacs/lisp/skeleton.el Sun May 25 21:02:31 2003
***************
*** 399,408 ****
(push (point) skeleton-positions))
((eq 'quote (car-safe element))
(eval (nth 1 element)))
! ((or (stringp (car-safe element))
! (consp (car-safe element)))
(if (symbolp (car-safe (car element)))
! (while (skeleton-internal-list element nil t))
(setq literal (car element))
(while literal
(skeleton-internal-list element (car literal))
--- 399,411 ----
(push (point) skeleton-positions))
((eq 'quote (car-safe element))
(eval (nth 1 element)))
! ((and (consp element)
! (or (stringp (car element)) (listp (car element))))
! ;; Don't forget: `symbolp' is also true for nil.
(if (symbolp (car-safe (car element)))
! (while (and (skeleton-internal-list element nil t)
! ;; If the interactor is nil, don't infinite loop.
! (car element)))
(setq literal (car element))
(while literal
(skeleton-internal-list element (car literal))
***************
*** 462,467 ****
--- 465,476 ----
Elements might be (?` ?` _ \"''\"), (?\\( ? _ \" )\") or (?{ \\n > _ \\n ?}
>).")
+ (defvar skeleton-pair-default-alist '((?( _ ?)) (?\))
+ (?[ _ ?]) (?\])
+ (?{ _ ?}) (?\})
+ (?< _ ?>) (?\>)
+ (?« _ ?») (?\»)
+ (?` _ ?')))
;;;###autoload
(defun skeleton-pair-insert-maybe (arg)
***************
*** 478,505 ****
the defaults are used. These are (), [], {}, <> and `' for the
symmetrical ones, and the same character twice for the others."
(interactive "*P")
! (let ((mark (and skeleton-autowrap
! (or (eq last-command 'mouse-drag-region)
! (and transient-mark-mode mark-active))))
! (skeleton-end-hook))
! (if (or arg
! (not skeleton-pair)
! (memq (char-syntax (preceding-char)) '(?\\ ?/))
! (and (not mark)
! (or overwrite-mode
! (if (not skeleton-pair-on-word) (looking-at "\\w"))
! (funcall skeleton-pair-filter))))
! (self-insert-command (prefix-numeric-value arg))
! (setq last-command-char (logand last-command-char 255))
! (skeleton-insert
! (cons nil (or (assq last-command-char skeleton-pair-alist)
! (assq last-command-char '((?( _ ?))
! (?[ _ ?])
! (?{ _ ?})
! (?< _ ?>)
! (?` _ ?')))
! `(,last-command-char _ ,last-command-char)))
! (if mark -1)))))
;; A more serious example can be found in sh-script.el
--- 487,509 ----
the defaults are used. These are (), [], {}, <> and `' for the
symmetrical ones, and the same character twice for the others."
(interactive "*P")
! (if (or arg (not skeleton-pair))
! (self-insert-command (prefix-numeric-value arg))
! (let* ((mark (and skeleton-autowrap
! (or (eq last-command 'mouse-drag-region)
! (and transient-mark-mode mark-active))))
! (skeleton-end-hook)
! (char last-command-char)
! (skeleton (or (assq char skeleton-pair-alist)
! (assq char skeleton-pair-default-alist)
! `(,char _ ,char))))
! (if (or (memq (char-syntax (preceding-char)) '(?\\ ?/))
! (and (not mark)
! (or overwrite-mode
! (if (not skeleton-pair-on-word) (looking-at "\\w"))
! (funcall skeleton-pair-filter))))
! (self-insert-command (prefix-numeric-value arg))
! (skeleton-insert (cons nil skeleton) (if mark -1))))))
;; A more serious example can be found in sh-script.el
- [Emacs-diffs] Changes to emacs/lisp/skeleton.el, Juanma Barranquero, 2003/05/06
- [Emacs-diffs] Changes to emacs/lisp/skeleton.el, Juanma Barranquero, 2003/05/18
- [Emacs-diffs] Changes to emacs/lisp/skeleton.el, Stefan Monnier, 2003/05/22
- [Emacs-diffs] Changes to emacs/lisp/skeleton.el, Stefan Monnier, 2003/05/24
- [Emacs-diffs] Changes to emacs/lisp/skeleton.el, Juanma Barranquero, 2003/05/24
- [Emacs-diffs] Changes to emacs/lisp/skeleton.el,
Stefan Monnier <=
- [Emacs-diffs] Changes to emacs/lisp/skeleton.el, Stefan Monnier, 2003/05/28