Show More
@@ -41,6 +41,11 b'' | |||
|
41 | 41 | :type 'sexp |
|
42 | 42 | :group 'mercurial) |
|
43 | 43 | |
|
44 | (defcustom mq-signoff-address nil | |
|
45 | "Address with which to sign off on a patch." | |
|
46 | :type 'string | |
|
47 | :group 'mercurial) | |
|
48 | ||
|
44 | 49 | |
|
45 | 50 | ;;; Internal variables. |
|
46 | 51 | |
@@ -72,6 +77,7 b'' | |||
|
72 | 77 | (define-key mq-global-map "e" 'mq-refresh-edit) |
|
73 | 78 | (define-key mq-global-map "i" 'mq-new) |
|
74 | 79 | (define-key mq-global-map "n" 'mq-next) |
|
80 | (define-key mq-global-map "o" 'mq-signoff) | |
|
75 | 81 | (define-key mq-global-map "p" 'mq-previous) |
|
76 | 82 | (define-key mq-global-map "s" 'mq-edit-series) |
|
77 | 83 | (define-key mq-global-map "t" 'mq-top) |
@@ -84,6 +90,7 b'' | |||
|
84 | 90 | (defvar mq-edit-mode-map (make-sparse-keymap)) |
|
85 | 91 | (define-key mq-edit-mode-map "\C-c\C-c" 'mq-edit-finish) |
|
86 | 92 | (define-key mq-edit-mode-map "\C-c\C-k" 'mq-edit-kill) |
|
93 | (define-key mq-edit-mode-map "\C-c\C-s" 'mq-signoff) | |
|
87 | 94 | |
|
88 | 95 | |
|
89 | 96 | ;;; Helper functions. |
@@ -366,6 +373,34 b' With a prefix argument, display a git-co' | |||
|
366 | 373 | (diff-mode) |
|
367 | 374 | (font-lock-fontify-buffer))) |
|
368 | 375 | |
|
376 | (defun mq-signoff () | |
|
377 | "Sign off on the current patch, in the style used by the Linux kernel. | |
|
378 | If the variable mq-signoff-address is non-nil, it will be used, otherwise | |
|
379 | the value of the ui.username item from your hgrc will be used." | |
|
380 | (interactive) | |
|
381 | (let ((was-editing (eq major-mode 'mq-edit-mode)) | |
|
382 | signed) | |
|
383 | (unless was-editing | |
|
384 | (mq-refresh-edit)) | |
|
385 | (save-excursion | |
|
386 | (let* ((user (or mq-signoff-address | |
|
387 | (hg-run0 "debugconfig" "ui.username"))) | |
|
388 | (signoff (concat "Signed-off-by: " user))) | |
|
389 | (if (search-forward signoff nil t) | |
|
390 | (message "You have already signed off on this patch.") | |
|
391 | (goto-char (point-max)) | |
|
392 | (let ((case-fold-search t)) | |
|
393 | (if (re-search-backward "^Signed-off-by: " nil t) | |
|
394 | (forward-line 1) | |
|
395 | (insert "\n"))) | |
|
396 | (insert signoff) | |
|
397 | (message "%s" signoff) | |
|
398 | (setq signed t)))) | |
|
399 | (unless was-editing | |
|
400 | (if signed | |
|
401 | (mq-edit-finish) | |
|
402 | (mq-edit-kill))))) | |
|
403 | ||
|
369 | 404 | |
|
370 | 405 | (provide 'mq) |
|
371 | 406 |
General Comments 0
You need to be logged in to leave comments.
Login now