changeset 36967:cebc3019a629

(skeleton-internal-list): Fix bogus logic. (skeleton-pair-insert-maybe): Don't pair after a backslash.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Fri, 23 Mar 2001 17:49:58 +0000
parents d672c5699e29
children bcf99bb19125
files lisp/skeleton.el
diffstat 1 files changed, 9 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/skeleton.el	Fri Mar 23 17:20:52 2001 +0000
+++ b/lisp/skeleton.el	Fri Mar 23 17:49:58 2001 +0000
@@ -264,8 +264,8 @@
 	_	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 @@
 	 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 @@
   "*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 @@
 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 @@
 	(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"))