Mercurial > emacs
changeset 23864:62965fadf048
(comment-region): Handle comment-padding
separately for insertion and for deletion, in the right way for each.
author | Karl Heuer <kwzh@gnu.org> |
---|---|
date | Mon, 14 Dec 1998 02:50:10 +0000 |
parents | 478c3628a2cd |
children | e5da22ef0b94 |
files | lisp/simple.el |
diffstat | 1 files changed, 22 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/simple.el Sun Dec 13 11:26:30 1998 +0000 +++ b/lisp/simple.el Mon Dec 14 02:50:10 1998 +0000 @@ -2772,8 +2772,10 @@ (save-excursion (save-restriction (let ((cs comment-start) (ce comment-end) + (cp (when comment-padding + (make-string comment-padding ? ))) numarg) - (if (consp arg) (setq numarg t) + (if (consp arg) (setq numarg t) (setq numarg (prefix-numeric-value arg)) ;; For positive arg > 1, replicate the comment delims now, ;; then insert the replicated strings just once. @@ -2781,13 +2783,11 @@ (setq cs (concat cs comment-start) ce (concat ce comment-end)) (setq numarg (1- numarg)))) - (when comment-padding - (setq cs (concat cs (make-string comment-padding ? )))) ;; Loop over all lines from BEG to END. - (narrow-to-region beg end) - (goto-char beg) - (while (not (eobp)) - (if (or (eq numarg t) (< numarg 0)) + (narrow-to-region beg end) + (goto-char beg) + (if (or (eq numarg t) (< numarg 0)) + (while (not (eobp)) (progn ;; Delete comment start from beginning of line. (if (eq numarg t) @@ -2797,8 +2797,11 @@ (while (and (> 1 (setq count (1+ count))) (looking-at (regexp-quote cs))) (delete-char (length cs))))) + ;; Delete comment padding from beginning of line + (when (and comment-padding (looking-at (regexp-quote cp))) + (delete-char comment-padding)) ;; Delete comment end from end of line. - (if (string= "" ce) + (if (string= "" ce) nil (if (eq numarg t) (progn @@ -2823,14 +2826,18 @@ (backward-char (length ce)) (if (looking-at (regexp-quote ce)) (delete-char (length ce))))))))) - (forward-line 1)) + (forward-line 1))) + + (when comment-padding + (setq cs (concat cs cp))) + (while (not (eobp)) ;; Insert at beginning and at end. - (if (looking-at "[ \t]*$") () - (insert cs) - (if (string= "" ce) () - (end-of-line) - (insert ce))) - (search-forward "\n" nil 'move))))))) + (if (looking-at "[ \t]*$") () + (insert cs) + (if (string= "" ce) () + (end-of-line) + (insert ce))) + (search-forward "\n" nil 'move))))))) (defun backward-word (arg) "Move backward until encountering the end of a word.