1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-23 07:19:15 +00:00

(c-fill-paragraph): Count number of spaces

at comment end, and re-insert them after filling.
This commit is contained in:
Gerd Moellmann 2000-01-03 14:49:24 +00:00
parent f70020842c
commit bcf90db982

View File

@ -2073,26 +2073,32 @@ Optional prefix ARG means justify paragraph as well."
(let ((ender-start (progn
(goto-char (cdr lit-limits))
(skip-syntax-backward "^w ")
(point))))
(point)))
spaces)
(goto-char (cdr lit-limits))
(setq tmp-post (point-marker))
(insert ?\n)
(set-marker end (point))
(forward-line -1)
(if (and (looking-at (concat "[ \t]*\\("
(if (and (looking-at (concat "[ \t]*\\(\\("
c-comment-prefix-regexp
"\\)[ \t]*"))
"\\)[ \t]*\\)"))
(eq ender-start (match-end 0)))
;; The comment ender is prefixed by nothing
;; but a comment line prefix. Remove it
;; along with surrounding ws.
nil
(setq spaces (- (match-end 1) (match-end 2)))
(goto-char ender-start))
;(skip-chars-backward " \t\r\n")
(skip-chars-backward " \t\r\n")
(when (/= (point) ender-start)
(insert ?x) ; Insert first to keep marks right.
(delete-region (point) (1+ ender-start))
(setq hang-ender-stuck t)))))
;; Keep one or two spaces between the text and
;; the ender, depending on how many there are now.
(unless spaces (setq spaces (- ender-start (point))))
(setq spaces (max (min spaces 2) 1))
; Insert the filler first to keep marks right.
(insert (make-string spaces ?x))
(delete-region (point) (+ ender-start spaces))
(setq hang-ender-stuck spaces)))))
(when (<= beg (car lit-limits))
;; The region to be filled includes the comment starter.
(goto-char (car lit-limits))
@ -2187,9 +2193,9 @@ Warning: `c-comment-prefix-regexp' doesn't match the comment prefix %S"
(delete-char 1)
(when hang-ender-stuck
(skip-syntax-backward "^w ")
(forward-char -1)
(insert ?\ )
(delete-char 1))
(forward-char (- hang-ender-stuck))
(insert (make-string hang-ender-stuck ?\ ))
(delete-char hang-ender-stuck))
(set-marker tmp-post nil)))))
(set-marker end nil))
;; Always return t. This has the effect that if filling isn't done