From: Stefan Monnier Date: Fri, 23 Mar 2001 17:50:41 +0000 (+0000) Subject: (skeleton-internal-list): Fix bogus logic. X-Git-Tag: emacs-pretest-21.0.101~186 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=5b83f9c0951c960b3dd11efc394aaf4989798929;p=emacs.git (skeleton-internal-list): Fix bogus logic. (skeleton-pair-insert-maybe): Don't pair after a backslash. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 89a0cf7280e..157555516d5 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,7 +1,12 @@ +2001-03-23 Stefan Monnier + + * skeleton.el (skeleton-internal-list): Fix bogus logic. + (skeleton-pair-insert-maybe): Don't pair after a backslash. + 2001-03-23 Kenichi Handa - * international/encoded-kb.el (encoded-kbd-self-insert-ccl): Call - ccl-execute-on-string directly so that CCL program handling + * international/encoded-kb.el (encoded-kbd-self-insert-ccl): + Call ccl-execute-on-string directly so that CCL program handling multibyte sequence can work correctly. (encoded-kbd-setup-keymap): Fix the default value of `valid-codes' property of the coding system. diff --git a/lisp/skeleton.el b/lisp/skeleton.el index 45a43ebbe5f..df23e43a132 100644 --- a/lisp/skeleton.el +++ b/lisp/skeleton.el @@ -264,8 +264,8 @@ If ELEMENT is a string or a character it gets inserted (see also _ interesting point, interregion here > indent line (or interregion if > _) according to major mode @ add position to `skeleton-positions' - & do next ELEMENT if previous moved point - | do next ELEMENT if previous didn't move point + & do next ELEMENT iff previous moved point + | do next ELEMENT iff previous didn't move point -num delete num preceding characters (see `skeleton-untabify') resume: skipped, continue here if quit is signaled nil skipped @@ -383,9 +383,9 @@ automatically, and you are prompted to fill in the variable parts."))) opoint) (or str (setq str `(setq str (skeleton-read ',(car skeleton) nil ,recursive)))) - (when (and (eq (car skeleton) '\n) - (save-excursion (beginning-of-line) (looking-at "[ \t]*$"))) - (setq skeleton (cons '> (cdr skeleton)))) + (when (and (eq (cadr skeleton) '\n) + (<= (current-column) (current-indentation))) + (setq skeleton (cons nil (cons '> (cddr skeleton))))) (while (setq skeleton-modified (eq opoint (point)) opoint (point) skeleton (cdr skeleton)) @@ -509,7 +509,7 @@ will attempt to insert pairs of matching characters.") "*If this is nil, paired insertion is inhibited before or inside a word.") -(defvar skeleton-pair-filter (lambda ()) +(defvar skeleton-pair-filter (lambda () nil) "Attempt paired insertion if this function returns nil, before inserting. This allows for context-sensitive checking whether pairing is appropriate.") @@ -530,6 +530,8 @@ With no ARG, if `skeleton-pair' is non-nil, pairing can occur. If the region is visible the pair is wrapped around it depending on `skeleton-autowrap'. Else, if `skeleton-pair-on-word' is non-nil or we are not before or inside a word, and if `skeleton-pair-filter' returns nil, pairing is performed. +Pairing is also prohibited if we are right after a quoting character +such as backslash. If a match is found in `skeleton-pair-alist', that is inserted, else the defaults are used. These are (), [], {}, <> and `' for the @@ -541,6 +543,7 @@ symmetrical ones, and the same character twice for the others." (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"))