From 2b42f3ba8eb605ce1678aec587b46e28a286637f Mon Sep 17 00:00:00 2001 From: 10sr <8slashes+git@gmail.com> Date: Tue, 21 Jan 2014 10:31:27 +0900 Subject: [PATCH] update eshell/git --- emacs.el | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/emacs.el b/emacs.el index b2f09be..f29ddbe 100644 --- a/emacs.el +++ b/emacs.el @@ -1715,23 +1715,25 @@ Optional prefix ARG says how many lines to unflag; default is one line." ;; (message "%S" ;; args)) - (defun eshell/git (&rest args) - (if (require 'git-command nil t) - (git-command (mapconcat 'shell-quote-argument - args - " ")) - (apply 'eshell-git-fallback args))) + (defvar eshell/git-cat-command + nil + "List of git commands that cat just return strings as results.") + (setq eshell/git-cat-command + '("status" "st") + ) - (defun eshell-git-fallback (&rest args) - "" + + (defun eshell/git (&rest args) (if (member (car args) - '("di" "diff" "log" "show" "graph")) - (apply 'eshell-exec-visual "git" args) - (shell-command-to-string (mapconcat 'shell-quote-argument - `("git" ,@args) - " ")) - ;; (eshell-external-command "git" args) - )) + eshell/git-cat-command) + (shell-command-to-string (mapconcat 'shell-quote-argument + `("git" ,@args) + " ")) + (if (require 'git-command nil t) + (git-command (mapconcat 'shell-quote-argument + args + " ")) + (apply 'eshell-exec-visual "git" args)))) (defalias 'eshell/g 'eshell/git)