More effectually prevent defun list wrapping in C-x C-w

* lisp/vc/log-edit.el (log-edit-fill-entry): Match and replace
with NBSPs the opening defun list also.

* test/lisp/vc/log-edit-tests.el
(log-edit-fill-entry-no-defun-list-wrapping): New test.
This commit is contained in:
Po Lu 2024-04-24 11:45:31 +08:00
parent d3d1be8ae5
commit 145a77808e
2 changed files with 27 additions and 1 deletions

View file

@ -698,7 +698,15 @@ according to `fill-column'."
(save-excursion
(goto-char beg)
(when (re-search-forward
"^[[:blank:]]*(.*\\([[:space:]]\\).*):"
;; Also replace spaces within defun lists
;; prefixed by a file name so that
;; fill-region never attempts to break
;; them, even if multiple items combine
;; with symbols to exceed the fill column
;; by the expressly permitted margin of 1
;; character.
(concat "^\\([[:blank:]]*\\|\\* .*[[:blank:]]"
"\\)(.*\\([[:space:]]\\).*):")
end t)
(replace-regexp-in-region "[[:space:]]" " "
(setq space-beg

View file

@ -344,4 +344,22 @@ next line instead.")
(let ((fill-column 20)) (log-edit-fill-entry))
(should (equal (buffer-string) wanted)))))
(ert-deftest log-edit-fill-entry-no-defun-list-wrapping ()
;; This test verifies that the opening defun list of an entry is never
;; broken, even in the event its length in total exceeds the fill
;; column.
(let (string wanted)
(setq string "
* src/androidfns.c (Fxw_display_color_p):
(Fx_display_grayscale_p): Report color and/or grayscale properly.
"
wanted "
* src/androidfns.c (Fxw_display_color_p, Fx_display_grayscale_p):
Report color and/or grayscale properly.
")
(with-temp-buffer
(insert string)
(let ((fill-column 64)) (log-edit-fill-entry))
(should (equal (buffer-string) wanted)))))
;;; log-edit-tests.el ends here