changeset 50673:4b5928c8d588

(comment-normalize-vars): Fix regexp. Prompt the user for the comment-start to use rather than signalling an error. (uncomment-region): Don't leave half-removed comment markers.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Wed, 23 Apr 2003 14:55:19 +0000
parents bc4caf3dd19d
children d0877472b39e
files lisp/newcomment.el
diffstat 1 files changed, 17 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/newcomment.el	Wed Apr 23 13:19:36 2003 +0000
+++ b/lisp/newcomment.el	Wed Apr 23 14:55:19 2003 +0000
@@ -211,7 +211,10 @@
 
 ;;;###autoload
 (defun comment-normalize-vars (&optional noerror)
-  (if (not comment-start) (or noerror (error "No comment syntax is defined"))
+  (if (not comment-start)
+      (unless noerror
+	(set (make-local-variable 'comment-start)
+	     (read-string "No comment syntax is defined.  Use: ")))
     ;; comment-use-syntax
     (when (eq comment-use-syntax 'undecided)
       (set (make-local-variable 'comment-use-syntax)
@@ -246,7 +249,7 @@
 		 ;; In case comment-start has changed since last time.
 		 (string-match comment-start-skip comment-start))
       (set (make-local-variable 'comment-start-skip)
-	   (concat "\\(\\(^\\|[^\\\\\n]\\)\\(\\\\\\\\\\)*\\)\\(\\s<+\\|"
+	   (concat "\\(\\(^\\|[^\\\n]\\)\\(\\\\\\\\\\)*\\)\\(\\s<+\\|"
 		   (regexp-quote (comment-string-strip comment-start t t))
 		   ;; Let's not allow any \s- but only [ \t] since \n
 		   ;; might be both a comment-end marker and \s-.
@@ -664,7 +667,13 @@
 	      (goto-char (match-end 0)))
 	    (if (null arg) (delete-region (point-min) (point))
 	      (skip-syntax-backward " ")
-	      (delete-char (- numarg)))
+	      (delete-char (- numarg))
+	      (unless (or (bobp)
+			  (save-excursion (goto-char (point-min))
+					  (looking-at comment-start-skip)))
+		;; If there's something left but it doesn't look like
+		;; a comment-start any more, just remove it.
+		(delete-region (point-min) (point))))
 
 	    ;; Remove the end-comment (and leading padding and such).
 	    (goto-char (point-max)) (comment-enter-backward)
@@ -677,7 +686,11 @@
 	      (when (and (bolp) (not (bobp))) (backward-char))
 	      (if (null arg) (delete-region (point) (point-max))
 		(skip-syntax-forward " ")
-		(delete-char numarg)))
+		(delete-char numarg)
+		(unless (or (eobp) (looking-at comment-end-skip))
+		  ;; If there's something left but it doesn't look like
+		  ;; a comment-end any more, just remove it.
+		  (delete-region (point) (point-max)))))
 
 	    ;; Unquote any nested end-comment.
 	    (comment-quote-nested comment-start comment-end t)