GNU bug report logs - #51754
29.0.50; [PATCH] tramp-compat-file-name-concat work in wrong way

Previous Next

Package: emacs;

Reported by: Aleksandr Vityazev <avityazev <at> posteo.org>

Date: Wed, 10 Nov 2021 18:57:01 UTC

Severity: normal

Tags: patch

Found in version 29.0.50

Fixed in version 28.1

Done: Michael Albinus <michael.albinus <at> gmx.de>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Aleksandr Vityazev <avityazev <at> posteo.org>
To: 51754 <at> debbugs.gnu.org
Subject: bug#51754: 29.0.50; [PATCH] tramp-compat-file-name-concat work in wrong way
Date: Wed, 10 Nov 2021 18:56:49 +0000
[Message part 1 (text/plain, inline)]
Hello, 

The current implementation of the tramp-compat-file-name-concat 
from lisp/net/tramp-compat.el fails test fileio-tests/file-name-concat
from file test/src/fileio-tests.el for file-name-concat on Emacs where no
file-name-concat.

#+begin_src elisp
(ert-deftest test-tramp-compat-file-name-concat ()
  (should (equal (tramp-compat-file-name-concat "foo" "bar") "foo/bar"))
  (should (equal (tramp-compat-file-name-concat "foo" "bar") "foo/bar"))
  (should (equal (tramp-compat-file-name-concat "foo" "bar" "zot") "foo/bar/zot"))
  (should (equal (tramp-compat-file-name-concat "foo/" "bar") "foo/bar"))
  (should (equal (tramp-compat-file-name-concat "foo//" "bar") "foo//bar"))
  (should (equal (tramp-compat-file-name-concat "foo/" "bar/" "zot") "foo/bar/zot"))
  (should (equal (tramp-compat-file-name-concat "fóo" "bar") "fóo/bar"))
  (should (equal (tramp-compat-file-name-concat "foo" "bár") "foo/bár"))
  (should (equal (tramp-compat-file-name-concat "fóo" "bár") "fóo/bár"))
  (let ((string (make-string 5 ?a)))
    (should (not (multibyte-string-p string)))
    (aset string 2 255)
    (should (not (multibyte-string-p string)))
    (should (equal (tramp-compat-file-name-concat "fóo" string) "fóo/aa\377aa")))
  (should (equal (tramp-compat-file-name-concat "foo") "foo"))
  (should (equal (tramp-compat-file-name-concat "foo/") "foo/"))
  (should (equal (tramp-compat-file-name-concat "foo" "") "foo"))
  (should (equal (tramp-compat-file-name-concat "foo" "" "" "" nil) "foo"))
  (should (equal (tramp-compat-file-name-concat "" "bar") "bar"))
  (should (equal (tramp-compat-file-name-concat "" "") "")))

(ert 'test-tramp-compat-file-name-concat)
#+end_src

[test-tramp-compat-file-name-concat.ert (text/plain, inline)]
Selector: test-tramp-compat-file-name-concat
Passed:  0
Failed:  1 (1 unexpected)
Skipped: 0
Total:   1/1

Started at:   2021-11-10 21:21:24+0300
Finished.
Finished at:  2021-11-10 21:21:25+0300

F

F test-tramp-compat-file-name-concat
    (wrong-type-argument characterp "zot")


[Message part 3 (text/plain, inline)]
Here is the patch to fix:
[0001-lisp-net-tramp-compat.el-Fix-tramp-compat-file-name-.patch (text/x-patch, attachment)]
[Message part 5 (text/plain, inline)]

-- 
Best regards,
Aleksandr Vityazev

This bug report was last modified 3 years and 249 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.