changeset 111964:ec45dfa69a06

* net/tramp.el (tramp-temp-buffer-file-name): Make it permanent-local. (tramp-handle-insert-file-contents): Do not set permanent-local property. * net/tramp-cache.el (tramp-persistency-file-name): Use `locate-user-emacs-file' if fboundp. * net/tramp-sh.el (tramp-methods): Add "ksu". (tramp-default-user-alist): Add "ksu". Use `regexp-opt' for method list.
author Michael Albinus <michael.albinus@gmx.de>
date Tue, 14 Dec 2010 21:33:33 +0100
parents 44431106d60d
children e9a4d71c9ddc
files lisp/ChangeLog lisp/net/tramp-cache.el lisp/net/tramp-sh.el lisp/net/tramp.el
diffstat 4 files changed, 49 insertions(+), 20 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Tue Dec 14 12:52:30 2010 +0000
+++ b/lisp/ChangeLog	Tue Dec 14 21:33:33 2010 +0100
@@ -1,3 +1,16 @@
+2010-12-14  Michael Albinus  <michael.albinus@gmx.de>
+
+	* net/tramp.el (tramp-temp-buffer-file-name): Make it permanent-local.
+	(tramp-handle-insert-file-contents): Do not set permanent-local
+	property.
+
+	* net/tramp-cache.el (tramp-persistency-file-name): Use
+	`locate-user-emacs-file' if fboundp.
+
+	* net/tramp-sh.el (tramp-methods): Add "ksu".
+	(tramp-default-user-alist): Add "ksu".  Use `regexp-opt' for
+	method list.
+
 2010-12-14  Glenn Morris  <rgm@gnu.org>
 
 	* progmodes/js.el: Doc't require font-lock, etags, or easymenu.
@@ -49,7 +62,7 @@
 2010-12-13  Michael Albinus  <michael.albinus@gmx.de>
 
 	* net/tramp.el (tramp-action-password, tramp-process-actions):
-	Revert patch from 2010-12-08.  Use `save-restriction'.
+	Revert previous from.  Use `save-restriction'.
 
 2010-12-13  Stephen Berman  <stephen.berman@gmx.net>
 
@@ -64,6 +77,7 @@
 
 	* net/tramp.el (tramp-action-password): Delete region, do not narrow.
 	(tramp-process-actions): Do not widen.
+
 	* net/tramp-sh.el (tramp-sh-handle-start-file-process):
 	Protect buffer-modified value.  (Bug#7557)
 
--- a/lisp/net/tramp-cache.el	Tue Dec 14 12:52:30 2010 +0000
+++ b/lisp/net/tramp-cache.el	Tue Dec 14 21:33:33 2010 +0100
@@ -62,6 +62,8 @@
 (defcustom tramp-persistency-file-name
   (cond
    ;; GNU Emacs.
+   ((and (fboundp 'locate-user-emacs-file))
+    (expand-file-name (tramp-compat-funcall 'locate-user-emacs-file "tramp")))
    ((and (boundp 'user-emacs-directory)
 	 (stringp (symbol-value 'user-emacs-directory))
 	 (file-directory-p (symbol-value 'user-emacs-directory)))
@@ -403,5 +405,4 @@
 
 (provide 'tramp-cache)
 
-;; arch-tag: ee1739b7-7628-408c-9b96-d11a74b05d26
 ;;; tramp-cache.el ends here
--- a/lisp/net/tramp-sh.el	Tue Dec 14 12:52:30 2010 +0000
+++ b/lisp/net/tramp-sh.el	Tue Dec 14 21:33:33 2010 +0100
@@ -306,6 +306,12 @@
     (tramp-remote-sh            "/bin/sh")))
 ;;;###tramp-autoload
 (add-to-list 'tramp-methods
+  '("ksu"
+    (tramp-login-program        "ksu")
+    (tramp-login-args           (("%u") ("-q")))
+    (tramp-remote-sh            "/bin/sh")))
+;;;###tramp-autoload
+(add-to-list 'tramp-methods
   '("krlogin"
     (tramp-login-program        "krlogin")
     (tramp-login-args           (("%h") ("-l" "%u") ("-x")))
@@ -378,9 +384,16 @@
 	     `(,tramp-local-host-regexp "\\`root\\'" "su"))
 
 (add-to-list 'tramp-default-user-alist
-	     '("\\`su\\(do\\)?\\'" nil "root"))
+	     `(,(concat "\\`" (regexp-opt '("su" "sudo" "ksu")) "\\'")
+	       nil "root"))
 (add-to-list 'tramp-default-user-alist
-	     `("\\`r\\(em\\)?\\(cp\\|sh\\)\\|telnet\\|plink1?\\'"
+	     `(,(concat
+		 "\\`"
+		 (regexp-opt
+		  '("rcp" "remcp" "scp" "scp1" "scp2" "scpc" "scpx" "sftp"
+		    "rsync" "rsyncc" "rsh" "remsh" "ssh" "ssh1" "ssh2" "sshx"
+		    "telnet" "krlogin" "plink" "plink1" "pscp" "psftp" "fcp"))
+		 "\\'")
 	       nil ,(user-login-name)))
 
 (defconst tramp-completion-function-alist-rsh
@@ -437,6 +450,7 @@
 (tramp-set-completion-function "telnet" tramp-completion-function-alist-telnet)
 (tramp-set-completion-function "su" tramp-completion-function-alist-su)
 (tramp-set-completion-function "sudo" tramp-completion-function-alist-su)
+(tramp-set-completion-function "ksu" tramp-completion-function-alist-su)
 (tramp-set-completion-function "krlogin" tramp-completion-function-alist-rsh)
 (tramp-set-completion-function "plink" tramp-completion-function-alist-ssh)
 (tramp-set-completion-function "plink1" tramp-completion-function-alist-ssh)
@@ -2672,20 +2686,20 @@
 		  (narrow-to-region (point-max) (point-max))
 		  (if command
 		      ;; Send the command.
-                      (tramp-send-command v command nil t) ; nooutput
-                    ;; Check, whether a pty is associated.
-                    (tramp-maybe-open-connection v)
-                    (unless (tramp-compat-process-get
-                             (tramp-get-connection-process v) 'remote-tty)
-                      (tramp-error
+		      (tramp-send-command v command nil t) ; nooutput
+		    ;; Check, whether a pty is associated.
+		    (tramp-maybe-open-connection v)
+		    (unless (tramp-compat-process-get
+			     (tramp-get-connection-process v) 'remote-tty)
+		      (tramp-error
 		       v 'file-error
 		       "pty association is not supported for `%s'" name)))))
-              (let ((p (tramp-get-connection-process v)))
-                ;; Set sentinel and query flag for this process.
-                (tramp-set-connection-property p "vector" v)
-                (set-process-sentinel p 'tramp-process-sentinel)
-                (tramp-compat-set-process-query-on-exit-flag p t)
-                ;; Return process.
+	      (let ((p (tramp-get-connection-process v)))
+		;; Set sentinel and query flag for this process.
+		(tramp-set-connection-property p "vector" v)
+		(set-process-sentinel p 'tramp-process-sentinel)
+		(tramp-compat-set-process-query-on-exit-flag p t)
+		;; Return process.
 		p)))
 	;; Save exit.
 	(with-current-buffer (tramp-get-connection-buffer v)
--- a/lisp/net/tramp.el	Tue Dec 14 12:52:30 2010 +0000
+++ b/lisp/net/tramp.el	Tue Dec 14 21:33:33 2010 +0100
@@ -603,6 +603,7 @@
   "File name of a persistent local temporary file.
 Useful for \"rsync\" like methods.")
 (make-variable-buffer-local 'tramp-temp-buffer-file-name)
+(put 'tramp-temp-buffer-file-name 'permanent-local t)
 
 ;; XEmacs is distributed with few Lisp packages.  Further packages are
 ;; installed using EFS.  If we use a unified filename format, then
@@ -2842,8 +2843,8 @@
 		       (t (file-local-copy filename)))))
 
 	      ;; When the file is not readable for the owner, it
-	      ;; cannot be inserted, even it is redable for the group
-	      ;; or for everybody.
+	      ;; cannot be inserted, even if it is readable for the
+	      ;; group or for everybody.
 	      (set-file-modes local-copy (tramp-compat-octal-to-decimal "0600"))
 
 	      (when (and (null remote-copy)
@@ -2851,8 +2852,7 @@
 			  method 'tramp-copy-keep-tmpfile))
 		;; We keep the local file for performance reasons,
 		;; useful for "rsync".
-		(setq tramp-temp-buffer-file-name local-copy)
-		(put 'tramp-temp-buffer-file-name 'permanent-local t))
+		(setq tramp-temp-buffer-file-name local-copy))
 
 	      (with-progress-reporter
 		  v 3 (format "Inserting local temp file `%s'" local-copy)