]> git.eshelyaron.com Git - emacs.git/commitdiff
* net/tramp-smb.el (tramp-smb-version): New defvar.
authorMichael Albinus <michael.albinus@gmx.de>
Fri, 16 Oct 2009 14:36:13 +0000 (14:36 +0000)
committerMichael Albinus <michael.albinus@gmx.de>
Fri, 16 Oct 2009 14:36:13 +0000 (14:36 +0000)
(tramp-smb-maybe-open-connection): Use it, in order to avoid
repeated checks.

lisp/ChangeLog
lisp/net/tramp-smb.el

index dc3b1541f27df6c4469a58cec90d0223d7818b37..ab9cecdc4697cc8034141ecd0f27fd049691e1f6 100644 (file)
@@ -1,3 +1,9 @@
+2009-10-16  Michael Albinus  <michael.albinus@gmx.de>
+
+       * net/tramp-smb.el (tramp-smb-version): New defvar.
+       (tramp-smb-maybe-open-connection): Use it, in order to avoid
+       repeated checks.
+
 2009-10-16  Glenn Morris  <rgm@gnu.org>
 
        * emacs-lisp/byte-run.el (define-obsolete-variable-alias): Doc fix.
index d09909f330ee0976311e21aaead42d350006b9f4..c7ab6b000953dfe82905175c8b5f6eda09cdb591 100644 (file)
@@ -61,6 +61,9 @@
   :group 'tramp
   :type 'string)
 
+(defvar tramp-smb-version nil
+  "*Version string of the SMB client.")
+
 (defconst tramp-smb-prompt "^smb: .+> \\|^\\s-+Server\\s-+Comment$"
   "Regexp used as prompt in smbclient.")
 
@@ -1209,13 +1212,15 @@ connection if a previous connection has died for some reason."
         "Cannot find command %s in %s" tramp-smb-program exec-path))
 
       (let* ((default-directory (tramp-compat-temporary-file-directory))
-            (smbclient-version
-             (shell-command-to-string (concat tramp-smb-program " -V"))))
-       (tramp-message vec 6 (concat tramp-smb-program " -V"))
-       (tramp-message vec 6 "\n%s" smbclient-version)
-       (if (string-match "[ \t\n\r]+\\'" smbclient-version)
-           (setq smbclient-version
-                 (replace-match "" nil nil smbclient-version)))
+            (smbclient-version tramp-smb-version))
+       (unless smbclient-version
+         (setq smbclient-version
+               (shell-command-to-string (concat tramp-smb-program " -V")))
+         (tramp-message vec 6 (concat tramp-smb-program " -V"))
+         (tramp-message vec 6 "\n%s" smbclient-version)
+         (if (string-match "[ \t\n\r]+\\'" smbclient-version)
+             (setq smbclient-version
+                   (replace-match "" nil nil smbclient-version))))
        (unless
            (string-equal
             smbclient-version
@@ -1223,8 +1228,9 @@ connection if a previous connection has died for some reason."
              vec "smbclient-version" smbclient-version))
          (tramp-flush-directory-property vec "")
          (tramp-flush-connection-property vec))
-       (tramp-set-connection-property
-        vec "smbclient-version" smbclient-version)))
+       (setq tramp-smb-version
+             (tramp-set-connection-property
+              vec "smbclient-version" smbclient-version))))
 
     ;; If too much time has passed since last command was sent, look
     ;; whether there has been an error message; maybe due to