]> git.eshelyaron.com Git - emacs.git/commitdiff
* net/tramp-sh.el (tramp-sh-handle-file-name-all-completions): Fix
authorMichael Albinus <michael.albinus@gmx.de>
Fri, 23 Sep 2011 09:38:41 +0000 (11:38 +0200)
committerMichael Albinus <michael.albinus@gmx.de>
Fri, 23 Sep 2011 09:38:41 +0000 (11:38 +0200)
nasty bug using wrong cached values.

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

index 65315b303f1e7b68cd431815e98b7cd600ee5f09..ff0e18403a6b741aaac57566476a8bcab44a46b4 100644 (file)
@@ -1,3 +1,8 @@
+2011-09-23  Michael Albinus  <michael.albinus@gmx.de>
+
+       * net/tramp-sh.el (tramp-sh-handle-file-name-all-completions): Fix
+       nasty bug using wrong cached values.
+
 2011-09-23  Alan Mackenzie  <acm@muc.de>
 
        * progmodes/cc-defs.el (c-version): Increase to 5.31.9.
index e94581392faf5273793bf3dd81758479df5d3090..56424f794764a6b52dce067dbc2e6de8e629a427 100644 (file)
@@ -1738,7 +1738,9 @@ and gid of the corresponding user is taken.  Both parameters must be integers."
                        "file-name-all-completions"
                        nil)))
                  (when cache-hit (list cache-hit))))
-             (tramp-compat-number-sequence (length filename) 0 -1)))))
+             ;; We cannot use a length of 0, because file properties
+             ;; for "foo" and "foo/" are identical.
+             (tramp-compat-number-sequence (length filename) 1 -1)))))
 
          ;; Cache expired or no matching cache entry found so we need
          ;; to perform a remote operation.
@@ -1803,12 +1805,12 @@ and gid of the corresponding user is taken.  Both parameters must be integers."
            (with-current-buffer (tramp-get-buffer v)
              (goto-char (point-max))
 
-             ;; Check result code, found in last line of output
+             ;; Check result code, found in last line of output.
              (forward-line -1)
              (if (looking-at "^fail$")
                  (progn
                    ;; Grab error message from line before last line
-                   ;; (it was put there by `cd 2>&1')
+                   ;; (it was put there by `cd 2>&1').
                    (forward-line -1)
                    (tramp-error
                     v 'file-error
@@ -1829,9 +1831,8 @@ tramp-sh-handle-file-name-all-completions: internal error accessing `%s': `%s'"
                (push (buffer-substring (point) (point-at-eol)) result)))
 
            ;; Because the remote op went through OK we know the
-           ;; directory we `cd'-ed to exists
-           (tramp-set-file-property
-            v localname "file-exists-p" t)
+           ;; directory we `cd'-ed to exists.
+           (tramp-set-file-property v localname "file-exists-p" t)
 
            ;; Because the remote op went through OK we know every
            ;; file listed by `ls' exists.
@@ -1840,11 +1841,10 @@ tramp-sh-handle-file-name-all-completions: internal error accessing `%s': `%s'"
                    v (concat localname entry) "file-exists-p" t))
                 result)
 
-           ;; Store result in the cache
+           ;; Store result in the cache.
            (tramp-set-file-property
             v (concat localname filename)
-            "file-name-all-completions"
-            result))))))))
+           "file-name-all-completions" result))))))))
 
 ;; cp, mv and ln