emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] emacs/lisp ChangeLog eshell/em-unix.el net/tram...


From: Michael Albinus
Subject: [Emacs-diffs] emacs/lisp ChangeLog eshell/em-unix.el net/tram...
Date: Thu, 03 Dec 2009 11:34:17 +0000

CVSROOT:        /sources/emacs
Module name:    emacs
Changes by:     Michael Albinus <albinus>       09/12/03 11:34:16

Modified files:
        lisp           : ChangeLog 
        lisp/eshell    : em-unix.el 
        lisp/net       : tramp.el 

Log message:
        Cleanup.
        * eshell/em-unix.el (top): Require 'esh-opt and 'pcomplete.
        (eshell/su, eshell/sudo): Require 'tramp.  Fix problems reading
        arguments.  Expand `default-directory'.
        
        * net/tramp.el (tramp-handle-file-remote-p): Expand FILENAME for
        the benefit of returning an expanded localname.
        (tramp-tramp-file-p): Handle the case NAME is not a string.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/ChangeLog?cvsroot=emacs&r1=1.16810&r2=1.16811
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/eshell/em-unix.el?cvsroot=emacs&r1=1.48&r2=1.49
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/net/tramp.el?cvsroot=emacs&r1=1.272&r2=1.273

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/emacs/emacs/lisp/ChangeLog,v
retrieving revision 1.16810
retrieving revision 1.16811
diff -u -b -r1.16810 -r1.16811
--- ChangeLog   3 Dec 2009 07:46:14 -0000       1.16810
+++ ChangeLog   3 Dec 2009 11:34:11 -0000       1.16811
@@ -1,3 +1,14 @@
+2009-12-03  Michael Albinus  <address@hidden>
+
+       Cleanup.
+       * eshell/em-unix.el (top): Require 'esh-opt and 'pcomplete.
+       (eshell/su, eshell/sudo): Require 'tramp.  Fix problems reading
+       arguments.  Expand `default-directory'.
+
+       * net/tramp.el (tramp-handle-file-remote-p): Expand FILENAME for
+       the benefit of returning an expanded localname.
+       (tramp-tramp-file-p): Handle the case NAME is not a string.
+
 2009-12-03  Dan Nicolaescu  <address@hidden>
 
        Add support for bzr shelve/unshelve.

Index: eshell/em-unix.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/eshell/em-unix.el,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -b -r1.48 -r1.49
--- eshell/em-unix.el   29 Nov 2009 20:10:29 -0000      1.48
+++ eshell/em-unix.el   3 Dec 2009 11:34:15 -0000       1.49
@@ -37,6 +37,8 @@
 ;;; Code:
 
 (require 'eshell)
+(require 'esh-opt)
+(require 'pcomplete)
 
 ;;;###autoload
 (eshell-defgroup eshell-unix nil
@@ -1048,10 +1050,11 @@
 
 (defun eshell/su (&rest args)
   "Alias \"su\" to call Tramp."
+  (require 'tramp)
   (setq args (eshell-stringify-list (eshell-flatten-list args)))
-  (let (login)
+  (let ((orig-args (copy-tree args)))
     (eshell-eval-using-options
-     "sudo" args
+     "su" args
      '((?h "help" nil nil "show this usage screen")
        (?l "login" nil login "provide a login environment")
        (?  nil nil login "provide a login environment")
@@ -1062,13 +1065,18 @@
                  (host (or (file-remote-p default-directory 'host)
                            "localhost"))
                  (dir (or (file-remote-p default-directory 'localname)
-                          default-directory)))
+                          (expand-file-name default-directory))))
              (eshell-for arg args
                (if (string-equal arg "-") (setq login t) (setq user arg)))
+             ;; `eshell-eval-using-options' does not handle "-".
+             (if (member "-" orig-args) (setq login t))
              (if login (setq dir "~/"))
              (if (and (file-remote-p default-directory)
+                      (or
+                       (not (string-equal
+                             "su" (file-remote-p default-directory 'method)))
                       (not (string-equal
-                            user (file-remote-p default-directory 'user))))
+                             user (file-remote-p default-directory 'user)))))
                  (add-to-list
                   'tramp-default-proxies-alist
                   (list host user (file-remote-p default-directory))))
@@ -1079,8 +1087,9 @@
 
 (defun eshell/sudo (&rest args)
   "Alias \"sudo\" to call Tramp."
+  (require 'tramp)
   (setq args (eshell-stringify-list (eshell-flatten-list args)))
-  (let (user)
+  (let ((orig-args (copy-tree args)))
     (eshell-eval-using-options
      "sudo" args
      '((?h "help" nil nil "show this usage screen")
@@ -1089,19 +1098,26 @@
        :usage "[(-u | --user) USER] COMMAND
 Execute a COMMAND as the superuser or another USER.")
      (throw 'eshell-external
-           (let* ((user (or user "root"))
+           (let ((user (or user "root"))
                   (host (or (file-remote-p default-directory 'host)
                             "localhost"))
                   (dir (or (file-remote-p default-directory 'localname)
-                           default-directory)))
+                          (expand-file-name default-directory))))
+             ;; `eshell-eval-using-options' reads options of COMMAND.
+             (while (and (stringp (car orig-args))
+                         (member (car orig-args) '("-u" "--user")))
+               (setq orig-args (cddr orig-args)))
              (if (and (file-remote-p default-directory)
+                      (or
+                       (not (string-equal
+                             "sudo" (file-remote-p default-directory 'method)))
                       (not (string-equal
-                            user (file-remote-p default-directory 'user))))
+                             user (file-remote-p default-directory 'user)))))
                  (add-to-list
                   'tramp-default-proxies-alist
                   (list host user (file-remote-p default-directory))))
              (let ((default-directory (format "/sudo:address@hidden:%s" user 
host dir)))
-               (eshell-named-command (car args) (cdr args))))))))
+               (eshell-named-command (car orig-args) (cdr orig-args))))))))
 
 (put 'eshell/sudo 'eshell-no-numeric-conversions t)
 

Index: net/tramp.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/net/tramp.el,v
retrieving revision 1.272
retrieving revision 1.273
diff -u -b -r1.272 -r1.273
--- net/tramp.el        29 Nov 2009 20:05:23 -0000      1.272
+++ net/tramp.el        3 Dec 2009 11:34:15 -0000       1.273
@@ -4629,7 +4629,7 @@
 (defun tramp-handle-file-remote-p (filename &optional identification connected)
   "Like `file-remote-p' for Tramp files."
   (when (tramp-tramp-file-p filename)
-    (with-parsed-tramp-file-name filename nil
+    (with-parsed-tramp-file-name (expand-file-name filename) nil
       (and (or (not connected)
               (let ((p (tramp-get-connection-process v)))
                 (and p (processp p) (memq (process-status p) '(run open)))))
@@ -7709,9 +7709,9 @@
           (string-to-number (match-string 2 host))))))
 
 (defun tramp-tramp-file-p (name)
-  "Return t if NAME is a Tramp file."
+  "Return t if NAME is a string with Tramp file name syntax."
   (save-match-data
-    (string-match tramp-file-name-regexp name)))
+    (and (stringp name) (string-match tramp-file-name-regexp name))))
 
 (defun tramp-find-method (method user host)
   "Return the right method string to use.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]