Signed-off-by: David Kågedal <davidk@xxxxxxxxxxxxxx> --- contrib/stgit.el | 25 +++++++++++++++++++++++++ 1 files changed, 25 insertions(+), 0 deletions(-) diff --git a/contrib/stgit.el b/contrib/stgit.el index 4282585..a344869 100644 --- a/contrib/stgit.el +++ b/contrib/stgit.el @@ -89,6 +89,7 @@ Argument DIR is the repository path." (define-key stgit-mode-map "n" 'next-line) (define-key stgit-mode-map "g" 'stgit-refresh) (define-key stgit-mode-map "r" 'stgit-rename) + (define-key stgit-mode-map "e" 'stgit-edit) (define-key stgit-mode-map "\C-r" 'stgit-repair) (define-key stgit-mode-map "C" 'stgit-commit) (define-key stgit-mode-map "U" 'stgit-uncommit) @@ -204,6 +205,30 @@ Commands: (goto-char (point-min)) (diff-mode)))) +(defun stgit-edit () + "Edit the patch on the current line" + (interactive) + (let ((patch (if (stgit-applied-at-point) + (stgit-patch-at-point) + (error "This patch is not applied"))) + (edit-buf (get-buffer-create "*stgit edit*")) + (dir default-directory)) + (log-edit 'stgit-confirm-edit t nil edit-buf) + (set (make-local-variable 'stgit-edit-patch) patch) + (setq default-directory dir) + (let ((standard-output edit-buf)) + (stgit-run "edit" "--save-template=-" patch)))) + +(defun stgit-confirm-edit () + (interactive) + (let ((file (make-temp-file "stgit-edit-"))) + (write-region (point-min) (point-max) file) + (stgit-capture-output nil + (stgit-run "edit" "-f" file stgit-edit-patch)) + (with-current-buffer log-edit-parent-buffer + (stgit-refresh)))) + + (defun stgit-help () "Display help for the StGit mode." (interactive) - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html