summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
b1c81a9)
Signed-off-by: Gustav Hållberg <gustav@virtutech.com>
Non-interactively, operate on PATCHES, and collapse instead of
expand if COLLAPSE is not nil."
Non-interactively, operate on PATCHES, and collapse instead of
expand if COLLAPSE is not nil."
- (interactive (list (stgit-patches-marked-or-at-point)))
+ (interactive (list (stgit-patches-marked-or-at-point t)))
(stgit-assert-mode)
(let ((patches-diff (funcall (if collapse #'intersection #'set-difference)
patches stgit-expanded-patches)))
(stgit-assert-mode)
(let ((patches-diff (funcall (if collapse #'intersection #'set-difference)
patches stgit-expanded-patches)))
"Hide the contents selected patches, or the patch at point.
See also `stgit-expand'."
"Hide the contents selected patches, or the patch at point.
See also `stgit-expand'."
- (interactive (list (stgit-patches-marked-or-at-point)))
+ (interactive (list (stgit-patches-marked-or-at-point t)))
(stgit-assert-mode)
(stgit-expand patches t))
(stgit-assert-mode)
(stgit-expand patches t))
["Push/pop patch" stgit-push-or-pop
:label (if (stgit-applied-at-point-p) "Pop patch" "Push patch")
:active (stgit-patch-name-at-point nil t)]
["Push/pop patch" stgit-push-or-pop
:label (if (stgit-applied-at-point-p) "Pop patch" "Push patch")
:active (stgit-patch-name-at-point nil t)]
- ["Delete patch" stgit-delete :active (stgit-patch-name-at-point nil t)]
+ ["Delete patches" stgit-delete
+ :active (stgit-patches-marked-or-at-point nil t)]
"-"
["Move patches" stgit-move-patches
:active stgit-marked-patches
"-"
["Move patches" stgit-move-patches
:active stgit-marked-patches
(defun stgit-patched-file-at-point ()
(get-text-property (point) 'file-data))
(defun stgit-patched-file-at-point ()
(get-text-property (point) 'file-data))
-(defun stgit-patches-marked-or-at-point ()
- "Return the symbols of the marked patches, or the patch on the current line."
+(defun stgit-patches-marked-or-at-point (&optional cause-error only-patches)
+ "Return the symbols of the marked patches, or the patch on the current line.
+If CAUSE-ERRROR is not nil, signal an error if none found.
+If ONLY-PATCHES is not nil, do not include index or work tree."
(if stgit-marked-patches
stgit-marked-patches
(if stgit-marked-patches
stgit-marked-patches
- (let ((patch (stgit-patch-name-at-point)))
- (if patch
- (list patch)
- '()))))
+ (let ((patch (stgit-patch-name-at-point nil only-patches)))
+ (cond (patch (list patch))
+ (cause-error (error "No patches marked or at this line"))
+ (t nil)))))
(defun stgit-goto-patch (patchsym &optional file)
"Move point to the line containing patch PATCHSYM.
(defun stgit-goto-patch (patchsym &optional file)
"Move point to the line containing patch PATCHSYM.
With a prefix argument, or SPILL-P, spill the patch contents to
the work tree and index."
With a prefix argument, or SPILL-P, spill the patch contents to
the work tree and index."
- (interactive (list (stgit-patches-marked-or-at-point)
+ (interactive (list (stgit-patches-marked-or-at-point t t)
current-prefix-arg))
(stgit-assert-mode)
(unless patchsyms
current-prefix-arg))
(stgit-assert-mode)
(unless patchsyms
(interactive "P")
(stgit-assert-mode)
(let ((patchargs (if arg
(interactive "P")
(stgit-assert-mode)
(let ((patchargs (if arg
- (let ((patches (stgit-patches-marked-or-at-point)))
- (cond ((null patches)
- (error "No patch to update"))
- ((> (length patches) 1)
- (error "Too many patches selected"))
- (t
- (cons "-p" patches))))
+ (let ((patches (stgit-patches-marked-or-at-point nil t)))
+ (when (> (length patches) 1)
+ (error "Too many patches marked"))
+ (cons "-p" patches))
nil)))
(unless (stgit-index-empty-p)
(setq patchargs (cons "--index" patchargs)))
nil)))
(unless (stgit-index-empty-p)
(setq patchargs (cons "--index" patchargs)))