[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] emacs/lisp/eshell em-unix.el
From: |
Michael Albinus |
Subject: |
[Emacs-diffs] emacs/lisp/eshell em-unix.el |
Date: |
Sun, 29 Nov 2009 20:10:29 +0000 |
CVSROOT: /sources/emacs
Module name: emacs
Changes by: Michael Albinus <albinus> 09/11/29 20:10:29
Modified files:
lisp/eshell : em-unix.el
Log message:
* eshell/em-unix (eshell/whoami): Make it a defun but a defalias.
(eshell/su): Flatten args. Apply better args parsing. Use "cd".
(eshell/sudo): Flatten args. Let-bind `default-directory'.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/eshell/em-unix.el?cvsroot=emacs&r1=1.47&r2=1.48
Patches:
Index: em-unix.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/eshell/em-unix.el,v
retrieving revision 1.47
retrieving revision 1.48
diff -u -b -r1.47 -r1.48
--- em-unix.el 27 Nov 2009 16:28:42 -0000 1.47
+++ em-unix.el 29 Nov 2009 20:10:29 -0000 1.48
@@ -955,7 +955,9 @@
(eshell-stringify-list
(eshell-flatten-list (cdr time-args))))))))
-(defalias 'eshell/whoami 'user-login-name)
+(defun eshell/whoami (&rest args)
+ "Make \"whoami\" Tramp aware."
+ (or (file-remote-p default-directory 'user) (user-login-name)))
(defvar eshell-diff-window-config nil)
@@ -1046,8 +1048,8 @@
(defun eshell/su (&rest args)
"Alias \"su\" to call Tramp."
- (let ((-login (member "-" args)) ;; not handled by
`eshell-eval-using-options'
- login)
+ (setq args (eshell-stringify-list (eshell-flatten-list args)))
+ (let (login)
(eshell-eval-using-options
"sudo" args
'((?h "help" nil nil "show this usage screen")
@@ -1061,8 +1063,9 @@
"localhost"))
(dir (or (file-remote-p default-directory 'localname)
default-directory)))
- (if (or login -login) (setq dir "~/"))
- (if (stringp (car args)) (setq user (car args)))
+ (eshell-for arg args
+ (if (string-equal arg "-") (setq login t) (setq user arg)))
+ (if login (setq dir "~/"))
(if (and (file-remote-p default-directory)
(not (string-equal
user (file-remote-p default-directory 'user))))
@@ -1070,12 +1073,13 @@
'tramp-default-proxies-alist
(list host user (file-remote-p default-directory))))
(eshell-parse-command
- "eshell/cd" (list (format "/su:address@hidden:%s" user host
dir))))))))
+ "cd" (list (format "/su:address@hidden:%s" user host dir))))))))
(put 'eshell/su 'eshell-no-numeric-conversions t)
(defun eshell/sudo (&rest args)
"Alias \"sudo\" to call Tramp."
+ (setq args (eshell-stringify-list (eshell-flatten-list args)))
(let (user)
(eshell-eval-using-options
"sudo" args
@@ -1089,15 +1093,15 @@
(host (or (file-remote-p default-directory 'host)
"localhost"))
(dir (or (file-remote-p default-directory 'localname)
- default-directory))
- (default-directory (format "/sudo:address@hidden:%s" user
host dir)))
+ default-directory)))
(if (and (file-remote-p default-directory)
(not (string-equal
user (file-remote-p default-directory 'user))))
(add-to-list
'tramp-default-proxies-alist
(list host user (file-remote-p default-directory))))
- (eshell-named-command (car args) (cdr args)))))))
+ (let ((default-directory (format "/sudo:address@hidden:%s" user
host dir)))
+ (eshell-named-command (car args) (cdr args))))))))
(put 'eshell/sudo 'eshell-no-numeric-conversions t)