aboutsummaryrefslogtreecommitdiffstats
path: root/lisp
diff options
context:
space:
mode:
authorDmitry Gutov2013-12-01 06:13:50 +0200
committerDmitry Gutov2013-12-01 06:13:50 +0200
commit52789f7fb3f25cfbc6397bed8912a88698c9f8f1 (patch)
tree2cb22c71e533d65d8c6ab7d0431d1ce571478bf5 /lisp
parent2e6710c39621ab7dd18b33517699b3daa3dfbb26 (diff)
downloademacs-52789f7fb3f25cfbc6397bed8912a88698c9f8f1.tar.gz
emacs-52789f7fb3f25cfbc6397bed8912a88698c9f8f1.zip
Apply the initial log-edit tweaks discussed at emacs-devel
* .dir-locals.el: (log-edit-move): Add the "Author: " header. * lisp/vc/log-edit.el (log-edit-mode-map): Add binding for `log-edit-beginning-of-line'. (log-edit-setup-add-author): New user option. (log-edit-beginning-of-line): New command. (log-edit): Move major mode call above the contents setup so that the local variable values are already applied. (log-edit): Only insert "Author: " when `log-edit-setup-add-author' is non-nil. (log-edit): When SETUP is non-nil, position point after ": " instead of point-min.
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog13
-rw-r--r--lisp/vc/log-edit.el33
2 files changed, 41 insertions, 5 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 5c6c40bc515..79b46f0f3f4 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,16 @@
12013-12-01 Dmitry Gutov <dgutov@yandex.ru>
2
3 * vc/log-edit.el (log-edit-mode-map): Add binding for
4 `log-edit-beginning-of-line'.
5 (log-edit-setup-add-author): New user option.
6 (log-edit-beginning-of-line): New command.
7 (log-edit): Move major mode call above the contents setup so that
8 the local variable values are already applied.
9 (log-edit): Only insert "Author: " when
10 `log-edit-setup-add-author' is non-nil.
11 (log-edit): When SETUP is non-nil, position point after ": "
12 instead of point-min.
13
12013-12-01 Glenn Morris <rgm@gnu.org> 142013-12-01 Glenn Morris <rgm@gnu.org>
2 15
3 * startup.el (command-line): Warn if ~/emacs.d is in load-path. 16 * startup.el (command-line): Warn if ~/emacs.d is in load-path.
diff --git a/lisp/vc/log-edit.el b/lisp/vc/log-edit.el
index dfc7eee81a6..ecec69489dc 100644
--- a/lisp/vc/log-edit.el
+++ b/lisp/vc/log-edit.el
@@ -32,6 +32,7 @@
32(require 'add-log) ; for all the ChangeLog goodies 32(require 'add-log) ; for all the ChangeLog goodies
33(require 'pcvs-util) 33(require 'pcvs-util)
34(require 'ring) 34(require 'ring)
35(require 'message)
35 36
36;;;; 37;;;;
37;;;; Global Variables 38;;;; Global Variables
@@ -55,6 +56,7 @@
55 ("\C-c\C-a" . log-edit-insert-changelog) 56 ("\C-c\C-a" . log-edit-insert-changelog)
56 ("\C-c\C-d" . log-edit-show-diff) 57 ("\C-c\C-d" . log-edit-show-diff)
57 ("\C-c\C-f" . log-edit-show-files) 58 ("\C-c\C-f" . log-edit-show-files)
59 ("\C-a" . log-edit-beginning-of-line)
58 ("\M-n" . log-edit-next-comment) 60 ("\M-n" . log-edit-next-comment)
59 ("\M-p" . log-edit-previous-comment) 61 ("\M-p" . log-edit-previous-comment)
60 ("\M-r" . log-edit-comment-search-backward) 62 ("\M-r" . log-edit-comment-search-backward)
@@ -116,6 +118,13 @@ If SETUP is 'force, this variable has no effect."
116 :group 'log-edit 118 :group 'log-edit
117 :type 'boolean) 119 :type 'boolean)
118 120
121(defcustom log-edit-setup-add-author nil
122 "Non-nil means `log-edit' should add the `Author:' header when
123its SETUP argument is non-nil."
124 :group 'log-edit
125 :type 'boolean
126 :safe 'booleanp)
127
119(defcustom log-edit-hook '(log-edit-insert-cvs-template 128(defcustom log-edit-hook '(log-edit-insert-cvs-template
120 log-edit-show-files 129 log-edit-show-files
121 log-edit-insert-changelog) 130 log-edit-insert-changelog)
@@ -427,13 +436,15 @@ done. Otherwise, it uses the current buffer."
427 (if buffer (pop-to-buffer buffer)) 436 (if buffer (pop-to-buffer buffer))
428 (when (and log-edit-setup-invert (not (eq setup 'force))) 437 (when (and log-edit-setup-invert (not (eq setup 'force)))
429 (setq setup (not setup))) 438 (setq setup (not setup)))
430 (when setup
431 (erase-buffer)
432 (insert "Summary: \nAuthor: ")
433 (save-excursion (insert "\n\n")))
434 (if mode 439 (if mode
435 (funcall mode) 440 (funcall mode)
436 (log-edit-mode)) 441 (log-edit-mode))
442 (when setup
443 (erase-buffer)
444 (insert "Summary: ")
445 (when log-edit-setup-add-author
446 (insert "\nAuthor: "))
447 (insert "\n\n"))
437 (set (make-local-variable 'log-edit-callback) callback) 448 (set (make-local-variable 'log-edit-callback) callback)
438 (if (listp params) 449 (if (listp params)
439 (dolist (crt params) 450 (dolist (crt params)
@@ -445,7 +456,10 @@ done. Otherwise, it uses the current buffer."
445 (if buffer (set (make-local-variable 'log-edit-parent-buffer) parent)) 456 (if buffer (set (make-local-variable 'log-edit-parent-buffer) parent))
446 (set (make-local-variable 'log-edit-initial-files) (log-edit-files)) 457 (set (make-local-variable 'log-edit-initial-files) (log-edit-files))
447 (when setup (run-hooks 'log-edit-hook)) 458 (when setup (run-hooks 'log-edit-hook))
448 (goto-char (point-min)) (push-mark (point-max)) 459 (if setup
460 (message-position-point)
461 (goto-char (point-min)))
462 (push-mark (point-max))
449 (message "%s" (substitute-command-keys 463 (message "%s" (substitute-command-keys
450 "Press \\[log-edit-done] when you are done editing.")))) 464 "Press \\[log-edit-done] when you are done editing."))))
451 465
@@ -574,6 +588,15 @@ If you want to abort the commit, simply delete the buffer."
574 (shrink-window-if-larger-than-buffer) 588 (shrink-window-if-larger-than-buffer)
575 (selected-window))))) 589 (selected-window)))))
576 590
591(defun log-edit-beginning-of-line (&optional n)
592 "Move point to beginning of header value or to beginning of line.
593
594It works the same as `message-beginning-of-line', but it uses a
595different header separator appropriate for `log-edit-mode'."
596 (interactive "p")
597 (let ((mail-header-separator ""))
598 (message-beginning-of-line n)))
599
577(defun log-edit-empty-buffer-p () 600(defun log-edit-empty-buffer-p ()
578 "Return non-nil if the buffer is \"empty\"." 601 "Return non-nil if the buffer is \"empty\"."
579 (or (= (point-min) (point-max)) 602 (or (= (point-min) (point-max))