From 6dbf6147284c906f9d1c8ff7317ab5aabb4f9b82 Mon Sep 17 00:00:00 2001 From: Martin Rudalics Date: Sun, 22 Jul 2007 08:32:16 +0000 Subject: [PATCH] (change-log-fill-parenthesized-list): New function. (change-log-indent): Call change-log-fill-parenthesized-list. (change-log-fill-paragraph): Bind fill-indent-according-to-mode to t. Have lines with leading asterisk start a paragraph. --- lisp/ChangeLog | 7 +++++++ lisp/add-log.el | 42 +++++++++++++++++++++++++++++++++++++++++- src/ChangeLog | 5 ----- 3 files changed, 48 insertions(+), 6 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index c0748aa82c1..3548af3cc9c 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,10 @@ +2007-07-22 Martin Rudalics + + * add-log.el (change-log-fill-parenthesized-list): New function. + (change-log-indent): Call change-log-fill-parenthesized-list. + (change-log-fill-paragraph): Bind fill-indent-according-to-mode to + t. Have lines with leading asterisk start a paragraph. + 2007-07-21 Jay Belanger * calc/calc-math.el (math-emacs-precision) diff --git a/lisp/add-log.el b/lisp/add-log.el index caea921d25f..906e747cac5 100644 --- a/lisp/add-log.el +++ b/lisp/add-log.el @@ -659,9 +659,45 @@ the change log file in another window." (add-change-log-entry whoami file-name t)) ;;;###autoload (define-key ctl-x-4-map "a" 'add-change-log-entry-other-window) + (defvar change-log-indent-text 0) +(defun change-log-fill-parenthesized-list () + ;; Fill parenthesized lists of names according to GNU standards. + ;; * file-name.ext (very-long-foo, very-long-bar, very-long-foobar): + ;; should be filled as + ;; * file-name.ext (very-long-foo, very-long-bar) + ;; (very-long-foobar): + (save-excursion + (end-of-line 0) + (skip-chars-backward " \t") + (when (and (equal (char-before) ?\,) + (> (point) (1+ (point-min)))) + (condition-case nil + (when (save-excursion + (and (prog2 + (up-list -1) + (equal (char-after) ?\() + (skip-chars-backward " \t")) + (or (bolp) + ;; Skip everything but a whitespace or asterisk. + (and (not (zerop (skip-chars-backward "^ \t\n*"))) + (skip-chars-backward " \t") + ;; We want one asterisk here. + (= (skip-chars-backward "*") -1) + (skip-chars-backward " \t") + (bolp))))) + ;; Delete the comma. + (delete-char -1) + ;; Close list on previous line. + (insert ")") + (skip-chars-forward " \t\n") + ;; Start list on new line. + (insert-before-markers "(")) + (error nil))))) + (defun change-log-indent () + (change-log-fill-parenthesized-list) (let* ((indent (save-excursion (beginning-of-line) @@ -729,7 +765,11 @@ Prefix arg means justify as well." (interactive "P") (let ((end (progn (forward-paragraph) (point))) (beg (progn (backward-paragraph) (point))) - (paragraph-start (concat paragraph-start "\\|\\s *\\s("))) + ;; Add lines starting with whitespace followed by a left paren or an + ;; asterisk. + (paragraph-start (concat paragraph-start "\\|\\s *\\(?:\\s(\\|\\*\\)")) + ;; Make sure we call `change-log-indent'. + (fill-indent-according-to-mode t)) (fill-region beg end justify) t)) diff --git a/src/ChangeLog b/src/ChangeLog index e2d1452a8df..2c14c0e8eaf 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,8 +1,3 @@ -2007-07-19 Martin Rudalics - - * window.c (top-level): Fix typo in final comment introduced - with last change. - 2007-07-18 Richard Stallman * data.c (Fsetq_default): Doc fix. -- 2.39.5