From 38f90ec1fbdec7f45a6047d6aaf9a0c458be3167 Mon Sep 17 00:00:00 2001 From: Zhongwei Yao Date: Wed, 24 Sep 2014 17:38:39 +0800 Subject: [PATCH] enable adb access with port format, e.g. /adb:164.2.168.1#5555:/ --- lisp/tramp-adb.el | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/lisp/tramp-adb.el b/lisp/tramp-adb.el index 8c1cbbe..444f901 100644 --- a/lisp/tramp-adb.el +++ b/lisp/tramp-adb.el @@ -988,11 +988,20 @@ PRESERVE-UID-GID and PRESERVE-EXTENDED-ATTRIBUTES are completely ignored." (tramp-set-connection-property v "process-buffer" nil)))))) ;; Helper functions. +(defun tramp-adb-get-host-for-execution (vec) + "Returns host name and port from VEC to be used in shell exceution. +E.g. a host name \"192.168.1.1#5555\" returns \"192.168.1.1:5555\" + a host name \"R38273882DE\" returns \"R38273882DE\"." + (if (tramp-file-name-port vec) + (format + "%s:%s" (tramp-file-name-real-host vec) (tramp-file-name-port vec)) + (tramp-file-name-host vec))) (defun tramp-adb-execute-adb-command (vec &rest args) "Returns nil on success error-output on failure." - (when (> (length (tramp-file-name-host vec)) 0) - (setq args (append (list "-s" (tramp-file-name-host vec)) args))) + (let ((host (tramp-file-name-host vec))) + (when (> (length host) 0) + (setq args (append (list "-s" (tramp-adb-get-host-for-execution vec)) args)))) (with-temp-buffer (prog1 (unless @@ -1093,6 +1102,7 @@ connection if a previous connection has died for some reason." (let* ((buf (tramp-get-connection-buffer vec)) (p (get-buffer-process buf)) (host (tramp-file-name-host vec)) + (exe-host (tramp-adb-get-host-for-execution vec)) (user (tramp-file-name-user vec)) devices) @@ -1109,7 +1119,7 @@ connection if a previous connection has died for some reason." (setq devices (mapcar 'cadr (tramp-adb-parse-device-names nil))) (if (not devices) (tramp-error vec 'file-error "No device connected")) - (if (and (> (length host) 0) (not (member host devices))) + (if (and (> (length host) 0) (not (member exe-host devices))) (tramp-error vec 'file-error "Device %s not connected" host)) (if (and (> (length devices) 1) (zerop (length host))) (tramp-error @@ -1119,7 +1129,7 @@ connection if a previous connection has died for some reason." (let* ((coding-system-for-read 'utf-8-dos) ;is this correct? (process-connection-type tramp-process-connection-type) (args (if (> (length host) 0) - (list "-s" host "shell") + (list "-s" exe-host "shell") (list "shell"))) (p (let ((default-directory (tramp-compat-temporary-file-directory))) -- 1.9.1