changeset 85905:7100260421ed

(comment-dwim): Call comment-insert-comment-function, if defined, for blank lines. Doc fix.
author Glenn Morris <rgm@gnu.org>
date Sat, 03 Nov 2007 03:00:32 +0000
parents 09ca3d882222
children e8570ba362b2
files lisp/newcomment.el
diffstat 1 files changed, 15 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/newcomment.el	Fri Nov 02 16:01:20 2007 +0000
+++ b/lisp/newcomment.el	Sat Nov 03 03:00:32 2007 +0000
@@ -1152,7 +1152,8 @@
 If the region is active and `transient-mark-mode' is on, call
   `comment-region' (unless it only consists of comments, in which
   case it calls `uncomment-region').
-Else, if the current line is empty, insert a comment and indent it.
+Else, if the current line is empty, call `comment-insert-comment-function'
+if it is defined, otherwise insert a comment and indent it.
 Else if a prefix ARG is specified, call `comment-kill'.
 Else, call `comment-indent'.
 You can configure `comment-style' to change the way regions are commented."
@@ -1164,15 +1165,19 @@
 	;; FIXME: If there's no comment to kill on this line and ARG is
 	;; specified, calling comment-kill is not very clever.
 	(if arg (comment-kill (and (integerp arg) arg)) (comment-indent))
-      (let ((add (comment-add arg)))
-        ;; Some modes insist on keeping column 0 comment in column 0
-	;; so we need to move away from it before inserting the comment.
-	(indent-according-to-mode)
-	(insert (comment-padright comment-start add))
-	(save-excursion
-	  (unless (string= "" comment-end)
-	    (insert (comment-padleft comment-end add)))
-	  (indent-according-to-mode))))))
+      ;; Inserting a comment on a blank line. comment-indent calls
+      ;; c-i-c-f if needed in the non-blank case.
+      (if comment-insert-comment-function
+          (funcall comment-insert-comment-function)
+        (let ((add (comment-add arg)))
+          ;; Some modes insist on keeping column 0 comment in column 0
+          ;; so we need to move away from it before inserting the comment.
+          (indent-according-to-mode)
+          (insert (comment-padright comment-start add))
+          (save-excursion
+            (unless (string= "" comment-end)
+              (insert (comment-padleft comment-end add)))
+            (indent-according-to-mode)))))))
 
 ;;;###autoload
 (defcustom comment-auto-fill-only-comments nil