tramp (2.5.0-pre nil/nil); dired: multibyte characters disturb filename detection

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

tramp (2.5.0-pre nil/nil); dired: multibyte characters disturb filename detection

Justus-dev
In a tramp dired buffer, filenames containing multibyte characters are
not detected correctly; this also affects filenames below in the listing
even if they do not contain any multibyte characters themselves.

* Affected systems:

This affects only directories read with ls --dired; ls-lisp does not
exhibit this problem.  Also, emacsen 27 and prior versions, with stock
tramp, did not exhibit this problem.

My build (from the Arch User Repository) includes pgtk and native-comp;
I have not tried other versions.

* Minimal reproduction:

1. In an empty directory (e.g. /root/test/), create a file containing a
   multibyte character, followed by another file, e.g. like so:

  drwxr-xr-x 1 root root  18 Jan  2 17:38 .
  drwxr-x--- 1 root root 158 Jan  1 16:31 ..
  -rw-r--r-- 1 root root   0 Jan  1 16:31 jülich
  -rw-r--r-- 1 root root   0 Jan  2 13:10 zz

2. Find this directory via tramp, e.g. /sudo::test (this is just one
   simple way; ssh:, rsync: etc. to remote machines exhibit the problem
   as well).

3. Now try to rename jülich by hitting R on it.  This will fail with the
   following message; note that the trailing newline is erroneously
   included in the filename:

tramp-error: Not a Tramp file name: "/sudo:root@jp:/root/test/jülich
"

The corresponding debug log is attached (buffer-debug-tramp-sudo.txt).
   

* Cause:

The directory listing is retrieved in properly-decoded form, while the
filename location indices produced by --dired count bytes, not chars.
This causes a misalignment that accumulates through the entire directory
listing.

Dired's insert-directory function does not exhibit this problem because
it first reads the listing as raw bytes and then decodes it.  Tramp's
tramp-sh-handle-insert-directory also includes the decoding code,
literally the same as Dired's, but the listing already arrived in
decoded form before.

I tracked this down to tramp-open-connection-setup-interactive-shell,
which insightfully remarks:

    ;; Try to set up the coding system correctly.
    ;; CCC this can't be the right way to do it.  Hm.

In this function, if I (setq cs-decode 'no-conversion), then this
problem goes away (see the attached debug log
buffer-debug-tramp-sudo-noconv.txt).  However, it causes other problems
so this is not a fix.  We have a conflict of interest here: The
interactive shell should usually return characters in properly-decoded
form, but ls --dired requires raw bytes but is run through the same
connection.


Emacs  : GNU Emacs 28.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.24, cairo version 1.17.4)
 of 2020-12-29
Package: tramp (2.5.0-pre nil/nil)

current state:
==============
(setq
 backup-by-copying nil
 backup-by-copying-when-linked nil
 backup-by-copying-when-mismatch t
 backup-by-copying-when-privileged-mismatch 200
 backup-directory-alist nil
 connection-local-criteria-alist '(((:application tramp) tramp-connection-local-default-system-profile
                                    tramp-connection-local-default-shell-profile)
                                   )
 connection-local-profile-alist '((tramp-connection-local-default-shell-profile (shell-file-name . "/bin/sh")
                                   (shell-command-switch . "-c"))
                                  (tramp-connection-local-default-system-profile (path-separator . ":")
                                   (null-device . "/dev/null"))
                                  )
 file-name-handler-alist '(("\\(?:\\.tzst\\|\\.zst\\|\\.dz\\|\\.txz\\|\\.xz\\|\\.lzma\\|\\.lz\\|\\.g?z\\|\\.\\(?:tgz\\|svgz\\|sifz\\)\\|\\.tbz2?\\|\\.bz2\\|\\.Z\\)\\(?:~\\|\\.~[-[:alnum:]:#@^._]+\\(?:~[[:digit:]]+\\)?~\\)?\\'" . jka-compr-handler)
                           ("\\.gpg\\(~\\|\\.~[0-9]+~\\)?\\'" . epa-file-handler)
                           ("\\`\\(.+\\.\\(?:7z\\|CAB\\|LZH\\|MSU\\|ZIP\\|a\\(?:pk\\|r\\)\\|c\\(?:ab\\|pio\\)\\|de\\(?:b\\|pot\\)\\|exe\\|iso\\|jar\\|lzh\\|m\\(?:su\\|tree\\)\\|od[bfgpst]\\|pax\\|r\\(?:ar\\|pm\\)\\|shar\\|t\\(?:ar\\|bz\\|gz\\|lz\\|xz\\|zst\\)\\|warc\\|x\\(?:ar\\|p[is]\\)\\|zip\\)\\(?:\\.\\(?:Z\\|bz2\\|gz\\|l\\(?:rz\\|z\\(?:ma\\|[4o]\\)?\\)\\|uu\\|xz\\|zst\\)\\)*\\)\\(/.*\\)\\'" . tramp-archive-file-name-handler)
                           ("\\`/\\(\\([^/|:]+:[^/|:]*|\\)*[^/|:]+\\(:[^/|:]*\\)?\\)?\\'" . tramp-completion-file-name-handler)
                           ("^/\\(\\(?:\\([[:alnum:]-]+\\):\\(?:\\([^/|: ]+\\)@\\)?\\(\\(?:[[:alnum:]_.%-]+\\|\\[\\(?:\\(?:[[:alnum:]]*:\\)+[[:alnum:].]+\\)?]\\)\\(?:#[[:digit:]]+\\)?\\)?|\\)+\\)?\\([[:alnum:]-]+\\):\\(?:\\([^/|: ]+\\)@\\)?\\(\\(?:[[:alnum:]_.%-]+\\|\\[\\(?:\\(?:[[:alnum:]]*:\\)+[[:alnum:].]+\\)?]\\)\\(?:#[[:digit:]]+\\)?\\)?:\\([^\n
]*\\'\\)" . tramp-file-name-handler)
                           ("\\`/:" . file-name-non-special))
 password-cache t
 password-cache-expiry 16
 remote-file-name-inhibit-cache 10
 shell-prompt-pattern "^[^#$%>\n]*[#$%>] *"
 tramp-actions-before-shell '((tramp-login-prompt-regexp tramp-action-login) (tramp-password-prompt-regexp tramp-action-password)
                              (tramp-wrong-passwd-regexp tramp-action-permission-denied)
                              (shell-prompt-pattern tramp-action-succeed) (tramp-shell-prompt-pattern tramp-action-succeed)
                              (tramp-yesno-prompt-regexp tramp-action-yesno) (tramp-yn-prompt-regexp tramp-action-yn)
                              (tramp-terminal-prompt-regexp tramp-action-terminal)
                              (tramp-antispoof-regexp tramp-action-confirm-message)
                              (tramp-process-alive-regexp tramp-action-process-alive))
 tramp-actions-copy-out-of-band '((tramp-password-prompt-regexp tramp-action-password)
                                  (tramp-wrong-passwd-regexp tramp-action-permission-denied)
                                  (tramp-copy-failed-regexp tramp-action-permission-denied)
                                  (tramp-process-alive-regexp tramp-action-out-of-band))
 tramp-adb-connect-if-not-connected nil
 tramp-adb-file-name-handler-alist '((access-file . tramp-handle-access-file) (add-name-to-file . tramp-handle-add-name-to-file)
                                     (copy-directory . tramp-handle-copy-directory) (copy-file . tramp-adb-handle-copy-file)
                                     (delete-directory . tramp-adb-handle-delete-directory)
                                     (delete-file . tramp-adb-handle-delete-file)
                                     (directory-file-name . tramp-handle-directory-file-name)
                                     (directory-files . tramp-handle-directory-files)
                                     (directory-files-and-attributes . tramp-adb-handle-directory-files-and-attributes)
                                     (dired-compress-file . ignore) (dired-uncache . tramp-handle-dired-uncache)
                                     (exec-path . tramp-adb-handle-exec-path) (expand-file-name . tramp-handle-expand-file-name)
                                     (file-accessible-directory-p . tramp-handle-file-accessible-directory-p) (file-acl . ignore)
                                     (file-attributes . tramp-adb-handle-file-attributes)
                                     (file-directory-p . tramp-handle-file-directory-p) (file-equal-p . tramp-handle-file-equal-p)
                                     (file-executable-p . tramp-handle-file-exists-p) (file-exists-p . tramp-handle-file-exists-p)
                                     (file-in-directory-p . tramp-handle-file-in-directory-p)
                                     (file-local-copy . tramp-adb-handle-file-local-copy) (file-modes . tramp-handle-file-modes)
                                     (file-name-all-completions . tramp-adb-handle-file-name-all-completions)
                                     (file-name-as-directory . tramp-handle-file-name-as-directory)
                                     (file-name-case-insensitive-p . tramp-handle-file-name-case-insensitive-p)
                                     (file-name-completion . tramp-handle-file-name-completion)
                                     (file-name-directory . tramp-handle-file-name-directory)
                                     (file-name-nondirectory . tramp-handle-file-name-nondirectory)
                                     (file-newer-than-file-p . tramp-handle-file-newer-than-file-p)
                                     (file-notify-add-watch . tramp-handle-file-notify-add-watch)
                                     (file-notify-rm-watch . tramp-handle-file-notify-rm-watch)
                                     (file-notify-valid-p . tramp-handle-file-notify-valid-p)
                                     (file-ownership-preserved-p . ignore) (file-readable-p . tramp-handle-file-exists-p)
                                     (file-regular-p . tramp-handle-file-regular-p) (file-remote-p . tramp-handle-file-remote-p)
                                     (file-selinux-context . tramp-handle-file-selinux-context)
                                     (file-symlink-p . tramp-handle-file-symlink-p)
                                     (file-system-info . tramp-adb-handle-file-system-info)
                                     (file-truename . tramp-handle-file-truename)
                                     (file-writable-p . tramp-adb-handle-file-writable-p)
                                     (find-backup-file-name . tramp-handle-find-backup-file-name)
                                     (insert-directory . tramp-handle-insert-directory)
                                     (insert-file-contents . tramp-handle-insert-file-contents) (load . tramp-handle-load)
                                     (make-auto-save-file-name . tramp-handle-make-auto-save-file-name)
                                     (make-directory . tramp-adb-handle-make-directory) (make-directory-internal . ignore)
                                     (make-nearby-temp-file . tramp-handle-make-nearby-temp-file)
                                     (make-process . tramp-adb-handle-make-process)
                                     (make-symbolic-link . tramp-handle-make-symbolic-link)
                                     (process-file . tramp-adb-handle-process-file) (rename-file . tramp-adb-handle-rename-file)
                                     (set-file-acl . ignore) (set-file-modes . tramp-adb-handle-set-file-modes)
                                     (set-file-selinux-context . ignore) (set-file-times . tramp-adb-handle-set-file-times)
                                     (set-visited-file-modtime . tramp-handle-set-visited-file-modtime)
                                     (shell-command . tramp-handle-shell-command)
                                     (start-file-process . tramp-handle-start-file-process)
                                     (substitute-in-file-name . tramp-handle-substitute-in-file-name)
                                     (temporary-file-directory . tramp-handle-temporary-file-directory)
                                     (tramp-get-remote-gid . ignore) (tramp-get-remote-uid . ignore)
                                     (tramp-set-file-uid-gid . ignore) (unhandled-file-name-directory . ignore)
                                     (vc-registered . ignore)
                                     (verify-visited-file-modtime . tramp-handle-verify-visited-file-modtime)
                                     (write-region . tramp-adb-handle-write-region))
 tramp-adb-method "adb"
 tramp-adb-program "adb"
 tramp-adb-prompt '(decode-coding-string (base64-decode-string "XlteIyQKDV0qWyMkXVtbOnNwYWNlOl1d") 'raw-text)
 tramp-antispoof-regexp "Access granted\\. Press Return to begin session\\. "
 tramp-archive-compression-suffixes '("bz2" "gz" "lrz" "lz" "lz4" "lzma" "lzo" "uu" "xz" "Z" "zst")
 tramp-archive-enabled t
 tramp-archive-file-name-handler-alist '((access-file . tramp-archive-handle-access-file)
                                         (add-name-to-file . tramp-archive-handle-not-implemented)
                                         (copy-file . tramp-archive-handle-copy-file)
                                         (delete-directory . tramp-archive-handle-not-implemented)
                                         (delete-file . tramp-archive-handle-not-implemented)
                                         (directory-file-name . tramp-archive-handle-directory-file-name)
                                         (directory-files . tramp-handle-directory-files)
                                         (directory-files-and-attributes . tramp-handle-directory-files-and-attributes)
                                         (dired-compress-file . tramp-archive-handle-not-implemented)
                                         (dired-uncache . tramp-archive-handle-dired-uncache) (exec-path . ignore)
                                         (file-accessible-directory-p . tramp-handle-file-accessible-directory-p)
                                         (file-acl . ignore) (file-attributes . tramp-archive-handle-file-attributes)
                                         (file-directory-p . tramp-handle-file-directory-p)
                                         (file-equal-p . tramp-handle-file-equal-p)
                                         (file-executable-p . tramp-archive-handle-file-executable-p)
                                         (file-exists-p . tramp-handle-file-exists-p)
                                         (file-in-directory-p . tramp-handle-file-in-directory-p)
                                         (file-local-copy . tramp-archive-handle-file-local-copy)
                                         (file-modes . tramp-handle-file-modes)
                                         (file-name-all-completions . tramp-archive-handle-file-name-all-completions)
                                         (file-name-case-insensitive-p . ignore)
                                         (file-name-completion . tramp-handle-file-name-completion)
                                         (file-newer-than-file-p . tramp-handle-file-newer-than-file-p)
                                         (file-notify-add-watch . ignore) (file-notify-rm-watch . ignore)
                                         (file-notify-valid-p . ignore) (file-ownership-preserved-p . ignore)
                                         (file-readable-p . tramp-archive-handle-file-readable-p)
                                         (file-regular-p . tramp-handle-file-regular-p)
                                         (file-selinux-context . tramp-handle-file-selinux-context)
                                         (file-symlink-p . tramp-handle-file-symlink-p)
                                         (file-system-info . tramp-archive-handle-file-system-info)
                                         (file-truename . tramp-archive-handle-file-truename) (file-writable-p . ignore)
                                         (find-backup-file-name . ignore)
                                         (insert-directory . tramp-archive-handle-insert-directory)
                                         (insert-file-contents . tramp-archive-handle-insert-file-contents)
                                         (load . tramp-archive-handle-load) (make-auto-save-file-name . ignore)
                                         (make-directory . tramp-archive-handle-not-implemented)
                                         (make-directory-internal . tramp-archive-handle-not-implemented)
                                         (make-nearby-temp-file . tramp-handle-make-nearby-temp-file) (make-process . ignore)
                                         (make-symbolic-link . tramp-archive-handle-not-implemented) (process-file . ignore)
                                         (rename-file . tramp-archive-handle-not-implemented) (set-file-acl . ignore)
                                         (set-file-modes . tramp-archive-handle-not-implemented)
                                         (set-file-selinux-context . ignore)
                                         (set-file-times . tramp-archive-handle-not-implemented)
                                         (set-visited-file-modtime . tramp-handle-set-visited-file-modtime)
                                         (shell-command . tramp-archive-handle-not-implemented)
                                         (start-file-process . tramp-archive-handle-not-implemented)
                                         (temporary-file-directory . tramp-archive-handle-temporary-file-directory)
                                         (tramp-get-remote-gid . ignore) (tramp-get-remote-uid . ignore)
                                         (tramp-set-file-uid-gid . ignore) (unhandled-file-name-directory . ignore)
                                         (vc-registered . ignore)
                                         (verify-visited-file-modtime . tramp-handle-verify-visited-file-modtime)
                                         (write-region . tramp-archive-handle-not-implemented))
 tramp-archive-file-name-regexp "\\`\\(.+\\.\\(?:7z\\|CAB\\|LZH\\|MSU\\|ZIP\\|a\\(?:pk\\|r\\)\\|c\\(?:ab\\|pio\\)\\|de\\(?:b\\|pot\\)\\|exe\\|iso\\|jar\\|lzh\\|m\\(?:su\\|tree\\)\\|od[bfgpst]\\|pax\\|r\\(?:ar\\|pm\\)\\|shar\\|t\\(?:ar\\|bz\\|gz\\|lz\\|xz\\|zst\\)\\|warc\\|x\\(?:ar\\|p[is]\\)\\|zip\\)\\(?:\\.\\(?:Z\\|bz2\\|gz\\|l\\(?:rz\\|z\\(?:ma\\|[4o]\\)?\\)\\|uu\\|xz\\|zst\\)\\)*\\)\\(/.*\\)\\'"
 tramp-archive-method "archive"
 tramp-archive-suffixes '("7z" "apk" "ar" "cab" "CAB" "cpio" "deb" "depot" "exe" "iso" "jar" "lzh" "LZH" "msu" "MSU" "mtree" "odb"
                          "odf" "odg" "odp" "ods" "odt" "pax" "rar" "rpm" "shar" "tar" "tbz" "tgz" "tlz" "txz" "tzst" "warc" "xar"
                          "xpi" "xps" "zip" "ZIP")
 tramp-archive-unload-hook '((lambda nil (remove-hook 'after-init-hook #'tramp-register-archive-file-name-handler)))
 tramp-auto-save-directory nil
 tramp-autoload-file-name-regexp "\\`/[^/|:]+:"
 tramp-awk-decode "%a '\\\nBEGIN {\n  b64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\"\n}\n{\n  for (i=1; i<=length($0); i++) {\n    c=index(b64, substr($0,i,1))\n    if(c--) {\n      for(b=0; b<6; b++) {\n        o=o*2+int(c/32); c=(c*2)%%64\n        if(++obc==8) {\n          if (o) {\n            printf \"%%c\", o\n          } else {\n            system(\"dd if=/dev/zero bs=1 count=1 %n\")\n          }\n          obc=0; o=0\n        }\n      }\n    }\n  }\n}'"
 tramp-awk-encode "%a '\\\nBEGIN {\n  b64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\"\n  b16 = \"0123456789abcdef\"\n}\n{\n  for (c=1; c<=length($0); c++) {\n    d=index(b16, substr($0,c,1))\n    if (d--) {\n      for (b=1; b<=4; b++) {\n        o=o*2+int(d/8); d=(d*2)%%16\n        if (++obc==6) {\n          printf substr(b64,o+1,1)\n          if (++rc>75) { printf \"\\n\"; rc=0 }\n          obc=0; o=0\n        }\n      }\n    }\n  }\n}\nEND {\n  if (obc) {\n    tail=(obc==2) ? \"==\\n\" : \"=\\n\"\n    while (obc++<6) { o=o*2 }\n    printf \"%%c\", substr(b64,o+1,1)\n  } else {\n    tail=\"\\n\"\n  }\n  printf tail\n}'"
 tramp-backup-directory-alist nil
 tramp-bug-report-address "[hidden email]"
 tramp-cache-data '((nil ("locale" "en_US.utf8")))
 tramp-cache-data-changed t
 tramp-cache-read-persistent-data nil
 tramp-cache-undefined 'undef
 tramp-cache-unload-hook '(#[0 "\300\301\302\"\207" [remove-hook kill-emacs-hook tramp-dump-connection-properties] 3]
                           #[0 "\300\301\302\"\210\300\303\302\"\210\300\304\302\"\207"
                             [remove-hook before-revert-hook tramp-flush-file-function eshell-pre-command-hook kill-buffer-hook] 3]
                           )
 tramp-chunksize nil
 tramp-cleanup-all-connections-hook nil
 tramp-cleanup-connection-hook nil
 tramp-compat-emacs-compiled-version "28.0.50"
 tramp-compat-use-url-tramp-p t
 tramp-completion-file-name-handler-alist '((file-name-all-completions . tramp-completion-handle-file-name-all-completions)
                                            (file-name-completion . tramp-completion-handle-file-name-completion))
 tramp-completion-file-name-regexp "\\`/\\(\\([^/|:]+:[^/|:]*|\\)*[^/|:]+\\(:[^/|:]*\\)?\\)?\\'"
 tramp-completion-file-name-regexp-alist '((default . "\\`/\\(\\([^/|:]+:[^/|:]*|\\)*[^/|:]+\\(:[^/|:]*\\)?\\)?\\'")
                                           (simplified . "\\`/\\(\\([^/|:]*|\\)*[^/|:]+\\)?\\'")
                                           (separate . "\\`/\\(\\[[^]]*\\)?\\'"))
 tramp-completion-file-name-regexp-default "\\`/\\(\\([^/|:]+:[^/|:]*|\\)*[^/|:]+\\(:[^/|:]*\\)?\\)?\\'"
 tramp-completion-file-name-regexp-separate "\\`/\\(\\[[^]]*\\)?\\'"
 tramp-completion-file-name-regexp-simplified "\\`/\\(\\([^/|:]*|\\)*[^/|:]+\\)?\\'"
 tramp-completion-function-alist '(("adb" (tramp-adb-parse-device-names "")) ("rclone" (tramp-rclone-parse-device-names ""))
                                   ("fcp" (tramp-parse-shosts "~/.ssh/known_hosts") (tramp-parse-sconfig "~/.ssh/config"))
                                   ("psftp" (tramp-parse-shosts "~/.ssh/known_hosts") (tramp-parse-sconfig "~/.ssh/config"))
                                   ("pscp" (tramp-parse-shosts "~/.ssh/known_hosts") (tramp-parse-sconfig "~/.ssh/config"))
                                   ("plink" (tramp-parse-shosts "~/.ssh/known_hosts") (tramp-parse-sconfig "~/.ssh/config"))
                                   ("sg" (tramp-parse-etc-group "/etc/group")) ("ksu" (tramp-parse-passwd "/etc/passwd"))
                                   ("doas" (tramp-parse-passwd "/etc/passwd")) ("sudo" (tramp-parse-passwd "/etc/passwd"))
                                   ("su" (tramp-parse-passwd "/etc/passwd")) ("nc" (tramp-parse-hosts "/etc/hosts"))
                                   ("telnet" (tramp-parse-hosts "/etc/hosts"))
                                   ("sshx" (tramp-parse-shosts "~/.ssh/known_hosts") (tramp-parse-sconfig "~/.ssh/config"))
                                   ("ssh" (tramp-parse-shosts "~/.ssh/known_hosts") (tramp-parse-sconfig "~/.ssh/config"))
                                   ("rsync" (tramp-parse-shosts "~/.ssh/known_hosts") (tramp-parse-sconfig "~/.ssh/config"))
                                   ("scpx" (tramp-parse-shosts "~/.ssh/known_hosts") (tramp-parse-sconfig "~/.ssh/config"))
                                   ("scp" (tramp-parse-shosts "~/.ssh/known_hosts") (tramp-parse-sconfig "~/.ssh/config"))
                                   ("sudoedit" (tramp-parse-passwd "/etc/passwd")))
 tramp-completion-function-alist-putty '((tramp-parse-putty "~/.putty/sessions"))
 tramp-completion-function-alist-rsh '((tramp-parse-rhosts "/etc/hosts.equiv") (tramp-parse-rhosts "~/.rhosts"))
 tramp-completion-function-alist-sg '((tramp-parse-etc-group "/etc/group"))
 tramp-completion-function-alist-ssh '((tramp-parse-rhosts "/etc/hosts.equiv") (tramp-parse-rhosts "/etc/shosts.equiv")
                                       (tramp-parse-shosts "/etc/ssh_known_hosts") (tramp-parse-sconfig "/etc/ssh_config")
                                       (tramp-parse-shostkeys "/etc/ssh2/hostkeys")
                                       (tramp-parse-sknownhosts "/etc/ssh2/knownhosts") (tramp-parse-rhosts "~/.rhosts")
                                       (tramp-parse-rhosts "~/.shosts") (tramp-parse-shosts "~/.ssh/known_hosts")
                                       (tramp-parse-sconfig "~/.ssh/config") (tramp-parse-shostkeys "~/.ssh2/hostkeys")
                                       (tramp-parse-sknownhosts "~/.ssh2/knownhosts"))
 tramp-completion-function-alist-su '((tramp-parse-passwd "/etc/passwd"))
 tramp-completion-function-alist-telnet '((tramp-parse-hosts "/etc/hosts"))
 tramp-completion-reread-directory-timeout 10
 tramp-completion-use-auth-sources t
 tramp-confirm-rename-file-names t
 tramp-connection-local-default-shell-variables '((shell-file-name . "/bin/sh") (shell-command-switch . "-c"))
 tramp-connection-local-default-system-variables '((path-separator . ":") (null-device . "/dev/null"))
 tramp-connection-min-time-diff 5
 tramp-connection-properties nil
 tramp-connection-timeout 60
 tramp-copy-failed-regexp "\\(.+: \\(No such file or directory\\|Permission denied\\|is a directory\\|not a regular file\\)\\)\\s-*"
 tramp-copy-size-limit 10240
 tramp-crypt-directories nil
 tramp-crypt-enabled nil
 tramp-crypt-encfs-config ".encfs6.xml"
 tramp-crypt-file-name-handler-alist '((access-file . tramp-crypt-handle-access-file)
                                       (add-name-to-file . tramp-handle-add-name-to-file)
                                       (copy-directory . tramp-handle-copy-directory) (copy-file . tramp-crypt-handle-copy-file)
                                       (delete-directory . tramp-crypt-handle-delete-directory)
                                       (delete-file . tramp-crypt-handle-delete-file)
                                       (directory-files . tramp-crypt-handle-directory-files)
                                       (directory-files-and-attributes . tramp-handle-directory-files-and-attributes)
                                       (dired-compress-file . ignore) (dired-uncache . tramp-handle-dired-uncache)
                                       (exec-path . ignore)
                                       (file-accessible-directory-p . tramp-handle-file-accessible-directory-p)
                                       (file-acl . ignore) (file-attributes . tramp-crypt-handle-file-attributes)
                                       (file-directory-p . tramp-handle-file-directory-p)
                                       (file-equal-p . tramp-handle-file-equal-p)
                                       (file-executable-p . tramp-crypt-handle-file-executable-p)
                                       (file-exists-p . tramp-handle-file-exists-p)
                                       (file-in-directory-p . tramp-handle-file-in-directory-p)
                                       (file-local-copy . tramp-handle-file-local-copy) (file-modes . tramp-handle-file-modes)
                                       (file-name-all-completions . tramp-crypt-handle-file-name-all-completions)
                                       (file-name-case-insensitive-p . ignore)
                                       (file-name-completion . tramp-handle-file-name-completion)
                                       (file-newer-than-file-p . tramp-handle-file-newer-than-file-p)
                                       (file-notify-add-watch . ignore) (file-notify-rm-watch . ignore)
                                       (file-notify-valid-p . ignore)
                                       (file-ownership-preserved-p . tramp-crypt-handle-file-ownership-preserved-p)
                                       (file-readable-p . tramp-crypt-handle-file-readable-p)
                                       (file-regular-p . tramp-handle-file-regular-p) (file-selinux-context . ignore)
                                       (file-symlink-p . tramp-handle-file-symlink-p)
                                       (file-system-info . tramp-crypt-handle-file-system-info)
                                       (file-writable-p . tramp-crypt-handle-file-writable-p)
                                       (find-backup-file-name . tramp-handle-find-backup-file-name)
                                       (insert-directory . tramp-crypt-handle-insert-directory) (load . tramp-handle-load)
                                       (make-auto-save-file-name . tramp-handle-make-auto-save-file-name)
                                       (make-directory . tramp-crypt-handle-make-directory) (make-directory-internal . ignore)
                                       (make-nearby-temp-file . tramp-handle-make-nearby-temp-file) (make-process . ignore)
                                       (make-symbolic-link . tramp-handle-make-symbolic-link) (process-file . ignore)
                                       (rename-file . tramp-crypt-handle-rename-file) (set-file-acl . ignore)
                                       (set-file-modes . tramp-crypt-handle-set-file-modes) (set-file-selinux-context . ignore)
                                       (set-file-times . tramp-crypt-handle-set-file-times)
                                       (set-visited-file-modtime . tramp-handle-set-visited-file-modtime) (shell-command . ignore)
                                       (start-file-process . ignore)
                                       (temporary-file-directory . tramp-handle-temporary-file-directory)
                                       (tramp-set-file-uid-gid . tramp-crypt-handle-set-file-uid-gid)
                                       (unhandled-file-name-directory . ignore) (vc-registered . ignore)
                                       (verify-visited-file-modtime . tramp-handle-verify-visited-file-modtime)
                                       (write-region . tramp-handle-write-region))
 tramp-current-connection nil
 tramp-debug-font-lock-keywords '(list (concat "^\\(?:" tramp-debug-outline-regexp "\\).+") '(1 font-lock-warning-face t t)
                                  '(0 (outline-font-lock-face) keep t))
 tramp-debug-outline-regexp "[[:digit:]]+:[[:digit:]]+:[[:digit:]]+\\.[[:digit:]]+ \\(?:\\(#<thread .+>\\) \\)?[[:alnum:]-]+ (\\([[:digit:]]+\\)) #"
 tramp-debug-to-file nil
 tramp-default-host "jp"
 tramp-default-host-alist '(("adb" nil "") ("nextcloud" nil "") ("gdrive" nil "") ("rclone" nil ""))
 tramp-default-method "scp"
 tramp-default-method-alist '((nil "\\`\\(anonymous\\|ftp\\)\\'" "ftp") ("\\`ftp\\." nil "ftp")
                              ("\\`\\(127\\.0\\.0\\.1\\|::1\\|jp\\|localhost6?\\)\\'" "\\`root\\'" "su"))
 tramp-default-method-marker "-"
 tramp-default-proxies-alist nil
 tramp-default-remote-shell "/bin/sh"
 tramp-default-rename-alist nil
 tramp-default-user nil
 tramp-default-user-alist '(("\\`\\(?:fcp\\|krlogin\\|nc\\|r\\(?:cp\\|emcp\\|sh\\)\\|telnet\\)\\'" nil "piater")
                            ("\\`\\(?:doas\\|ksu\\|su\\(?:do\\)?\\)\\'" nil "root") ("\\`smb\\'" nil nil)
                            ("\\`sudoedit\\'" nil "root"))
 tramp-device-escape-sequence-regexp '(decode-coding-string (base64-decode-string "G1tbOmRpZ2l0Ol1bXStu") 'raw-text)
 tramp-devices 3
 tramp-display-escape-sequence-regexp '(decode-coding-string (base64-decode-string "G1tbOmRpZ2l0Ol07W10rbQ==") 'raw-text)
 tramp-dns-sd-service-regexp "^_[-[:alnum:]]+\\._tcp$"
 tramp-domain-regexp "[[:alnum:]_.-]+"
 tramp-echo-mark "_echo"
 tramp-echo-mark-marker "_echo"
 tramp-echo-mark-marker-length 5
 tramp-echoed-echo-mark-regexp "_echo\\(\\( \\)?\\)\\{5\\}"
 tramp-encoding-command-interactive "-i"
 tramp-encoding-command-switch "-c"
 tramp-encoding-shell "/bin/sh"
 tramp-end-of-heredoc "76731506c0f5a7376e1cc32474b6325c"
 tramp-end-of-output "///3c34b42f68abc48f64f311b3ca323636#$"
 tramp-file-missing 'file-missing
 tramp-file-mode-type-map '((0 . "-") (1 . "p") (2 . "c") (3 . "m") (4 . "d") (5 . "?") (6 . "b") (7 . "?") (8 . "-") (9 . "n")
                            (10 . "l") (11 . "?") (12 . "s") (13 . "D") (14 . "w"))
 tramp-file-name-regexp '(decode-coding-string
                          (base64-decode-string
                           "Xi9cKFwoPzpcKFtbOmFsbnVtOl0tXStcKTpcKD86XChbXi98OiAJXStcKUBcKT9cKFwoPzpbWzph\nbG51bTpdXy4lLV0rXHxcW1woPzpcKD86W1s6YWxudW06XV0qOlwpK1tbOmFsbnVtOl0uXStcKT9d\nXClcKD86I1tbOmRpZ2l0Ol1dK1wpP1wpP3xcKStcKT9cKFtbOmFsbnVtOl0tXStcKTpcKD86XChb\nXi98OiAJXStcKUBcKT9cKFwoPzpbWzphbG51bTpdXy4lLV0rXHxcW1woPzpcKD86W1s6YWxudW06\nXV0qOlwpK1tbOmFsbnVtOl0uXStcKT9dXClcKD86I1tbOmRpZ2l0Ol1dK1wpP1wpPzpcKFteCg1d\nKlwnXCk=")
                          'raw-text)
 tramp-file-name-structure '("^/\\(\\(?:\\([[:alnum:]-]+\\):\\(?:\\([^/|: ]+\\)@\\)?\\(\\(?:[[:alnum:]_.%-]+\\|\\[\\(?:\\(?:[[:alnum:]]*:\\)+[[:alnum:].]+\\)?]\\)\\(?:#[[:digit:]]+\\)?\\)?|\\)+\\)?\\([[:alnum:]-]+\\):\\(?:\\([^/|: ]+\\)@\\)?\\(\\(?:[[:alnum:]_.%-]+\\|\\[\\(?:\\(?:[[:alnum:]]*:\\)+[[:alnum:].]+\\)?]\\)\\(?:#[[:digit:]]+\\)?\\)?:\\([^\n
]*\\'\\)" 5 6 7 8 1)
 tramp-foreign-file-name-handler-alist '((tramp-adb-file-name-p . tramp-adb-file-name-handler)
                                         (tramp-ftp-file-name-p . tramp-ftp-file-name-handler)
                                         (tramp-gvfs-file-name-p . tramp-gvfs-file-name-handler)
                                         (tramp-rclone-file-name-p . tramp-rclone-file-name-handler)
                                         (tramp-smb-file-name-p . tramp-smb-file-name-handler)
                                         (tramp-sudoedit-file-name-p . tramp-sudoedit-file-name-handler)
                                         (identity . tramp-sh-file-name-handler))
 tramp-ftp-method "ftp"
 tramp-gio-events '("attribute-changed" "changed" "changes-done-hint" "created" "deleted" "moved" "pre-unmount" "unmounted")
 tramp-goa-methods '("gdrive" "nextcloud")
 tramp-goa-service "org.gnome.OnlineAccounts"
 tramp-gvfs-file-name-handler-alist '((access-file . tramp-handle-access-file) (add-name-to-file . tramp-handle-add-name-to-file)
                                      (copy-directory . tramp-handle-copy-directory) (copy-file . tramp-gvfs-handle-copy-file)
                                      (delete-directory . tramp-gvfs-handle-delete-directory)
                                      (delete-file . tramp-gvfs-handle-delete-file)
                                      (directory-file-name . tramp-handle-directory-file-name)
                                      (directory-files . tramp-handle-directory-files)
                                      (directory-files-and-attributes . tramp-handle-directory-files-and-attributes)
                                      (dired-compress-file . ignore) (dired-uncache . tramp-handle-dired-uncache)
                                      (exec-path . ignore) (expand-file-name . tramp-gvfs-handle-expand-file-name)
                                      (file-accessible-directory-p . tramp-handle-file-accessible-directory-p) (file-acl . ignore)
                                      (file-attributes . tramp-gvfs-handle-file-attributes)
                                      (file-directory-p . tramp-handle-file-directory-p)
                                      (file-equal-p . tramp-handle-file-equal-p)
                                      (file-executable-p . tramp-gvfs-handle-file-executable-p)
                                      (file-exists-p . tramp-handle-file-exists-p)
                                      (file-in-directory-p . tramp-handle-file-in-directory-p)
                                      (file-local-copy . tramp-handle-file-local-copy) (file-modes . tramp-handle-file-modes)
                                      (file-name-all-completions . tramp-gvfs-handle-file-name-all-completions)
                                      (file-name-as-directory . tramp-handle-file-name-as-directory)
                                      (file-name-case-insensitive-p . tramp-handle-file-name-case-insensitive-p)
                                      (file-name-completion . tramp-handle-file-name-completion)
                                      (file-name-directory . tramp-handle-file-name-directory)
                                      (file-name-nondirectory . tramp-handle-file-name-nondirectory)
                                      (file-newer-than-file-p . tramp-handle-file-newer-than-file-p)
                                      (file-notify-add-watch . tramp-gvfs-handle-file-notify-add-watch)
                                      (file-notify-rm-watch . tramp-handle-file-notify-rm-watch)
                                      (file-notify-valid-p . tramp-handle-file-notify-valid-p)
                                      (file-ownership-preserved-p . ignore) (file-readable-p . tramp-gvfs-handle-file-readable-p)
                                      (file-regular-p . tramp-handle-file-regular-p) (file-remote-p . tramp-handle-file-remote-p)
                                      (file-selinux-context . tramp-handle-file-selinux-context)
                                      (file-symlink-p . tramp-handle-file-symlink-p)
                                      (file-system-info . tramp-gvfs-handle-file-system-info)
                                      (file-truename . tramp-handle-file-truename)
                                      (file-writable-p . tramp-handle-file-writable-p)
                                      (find-backup-file-name . tramp-handle-find-backup-file-name)
                                      (insert-directory . tramp-handle-insert-directory)
                                      (insert-file-contents . tramp-handle-insert-file-contents) (load . tramp-handle-load)
                                      (make-auto-save-file-name . tramp-handle-make-auto-save-file-name)
                                      (make-directory . tramp-gvfs-handle-make-directory) (make-directory-internal . ignore)
                                      (make-nearby-temp-file . tramp-handle-make-nearby-temp-file) (make-process . ignore)
                                      (make-symbolic-link . tramp-handle-make-symbolic-link) (process-file . ignore)
                                      (rename-file . tramp-gvfs-handle-rename-file) (set-file-acl . ignore)
                                      (set-file-modes . tramp-gvfs-handle-set-file-modes) (set-file-selinux-context . ignore)
                                      (set-file-times . tramp-gvfs-handle-set-file-times)
                                      (set-visited-file-modtime . tramp-handle-set-visited-file-modtime) (shell-command . ignore)
                                      (start-file-process . ignore)
                                      (substitute-in-file-name . tramp-handle-substitute-in-file-name)
                                      (temporary-file-directory . tramp-handle-temporary-file-directory)
                                      (tramp-get-remote-gid . tramp-gvfs-handle-get-remote-gid)
                                      (tramp-get-remote-uid . tramp-gvfs-handle-get-remote-uid)
                                      (tramp-set-file-uid-gid . tramp-gvfs-handle-set-file-uid-gid)
                                      (unhandled-file-name-directory . ignore) (vc-registered . ignore)
                                      (verify-visited-file-modtime . tramp-handle-verify-visited-file-modtime)
                                      (write-region . tramp-handle-write-region))
 tramp-gvfs-methods '("afp" "dav" "davs" "gdrive" "mtp" "nextcloud" "sftp")
 tramp-gvfs-service-afc-volumemonitor "org.gtk.vfs.AfcVolumeMonitor"
 tramp-gvfs-service-gphoto2-volumemonitor "org.gtk.vfs.GPhoto2VolumeMonitor"
 tramp-gvfs-service-mtp-volumemonitor "org.gtk.vfs.MTPVolumeMonitor"
 tramp-gvfs-zeroconf-domain "local"
 tramp-handle-file-local-copy-hook nil
 tramp-handle-write-region-hook nil
 tramp-hexdump-awk-encode "%h -v -e '16/1 \" %%02x\" \"\\n\"' | %a '\\\nBEGIN {\n  b64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\"\n  b16 = \"0123456789abcdef\"\n}\n{\n  for (c=1; c<=length($0); c++) {\n    d=index(b16, substr($0,c,1))\n    if (d--) {\n      for (b=1; b<=4; b++) {\n        o=o*2+int(d/8); d=(d*2)%%16\n        if (++obc==6) {\n          printf substr(b64,o+1,1)\n          if (++rc>75) { printf \"\\n\"; rc=0 }\n          obc=0; o=0\n        }\n      }\n    }\n  }\n}\nEND {\n  if (obc) {\n    tail=(obc==2) ? \"==\\n\" : \"=\\n\"\n    while (obc++<6) { o=o*2 }\n    printf \"%%c\", substr(b64,o+1,1)\n  } else {\n    tail=\"\\n\"\n  }\n  printf tail\n}'"
 tramp-hexdump-encode "%h -v -e '16/1 \" %%02x\" \"\\n\"'"
 tramp-histfile-override "~/.tramp_history"
 tramp-host-regexp "[[:alnum:]_.%-]+"
 tramp-host-with-port-regexp "\\([[:alnum:]_.%-]+\\)#\\([[:digit:]]+\\)"
 tramp-ignored-file-name-regexp nil
 tramp-inhibit-progress-reporter nil
 tramp-initial-end-of-output "#$ "
 tramp-initial-file-name-regexp "\\`/[^/:]+:[^/:]*:"
 tramp-inline-compress-commands '(("env GZIP= gzip" "env GZIP= gzip -d") ("bzip2" "bzip2 -d") ("xz" "xz -d")
                                  ("zstd --rm" "zstd -d --rm") ("compress" "compress -d"))
 tramp-inline-compress-start-size 4096
 tramp-inodes 0
 tramp-ipv6-regexp "\\(?:[[:alnum:]]*:\\)+[[:alnum:].]+"
 tramp-local-coding-commands '((b64 base64-encode-region base64-decode-region) (uu tramp-uuencode-region uudecode-decode-region)
                               (pack "%p -e 'binmode STDIN; binmode STDOUT; print pack(q{u*}, join q{}, <>)' %n"
                                "%p -e 'binmode STDIN; binmode STDOUT; print unpack(q{u*}, join q{}, <>)' %n")
                               )
 tramp-local-end-of-line "\n"
 tramp-local-host-regexp "\\`\\(127\\.0\\.0\\.1\\|::1\\|jp\\|localhost6?\\)\\'"
 tramp-localname-regexp '(decode-coding-string (base64-decode-string "W14KDV0qXCc=") 'raw-text)
 tramp-login-prompt-regexp ".*\\(user\\|login\\)\\( .*\\)?: *"
 tramp-media-methods '("afc" "gphoto2" "mtp")
 tramp-method-regexp "[[:alnum:]-]+"
 tramp-method-regexp-alist '((default . "[[:alnum:]-]+") (simplified . "") (separate . "[[:alnum:]-]*"))
 tramp-methods '(("adb" (tramp-login-program "adb") (tramp-login-args (("shell"))) (tramp-tmpdir "/data/local/tmp")
                  (tramp-default-port 5555))
                 ("ftp") ("sftp") ("nextcloud") ("mtp") ("gdrive") ("davs") ("dav") ("afp")
                 ("rclone" (tramp-mount-args nil) (tramp-copyto-args nil) (tramp-moveto-args nil) (tramp-about-args ("--full")))
                 ("fcp" (tramp-login-program "fsh") (tramp-login-args (("%h") ("-l" "%u") ("sh" "-i")))
                  (tramp-remote-shell "/bin/sh") (tramp-remote-shell-login ("-l")) (tramp-remote-shell-args ("-i") ("-c"))
                  (tramp-copy-program "fcp") (tramp-copy-args (("-p" "%k"))) (tramp-copy-keep-date t))
                 ("psftp" (tramp-login-program "plink")
                  (tramp-login-args
                   (("-l" "%u") ("-P" "%p") ("-ssh") ("-t") ("%h") ("\"") ("env 'TERM=dumb' 'PROMPT_COMMAND=' 'PS1=#$ '") ("%l")
                    ("\""))
                   )
                  (tramp-remote-shell "/bin/sh") (tramp-remote-shell-login ("-l")) (tramp-remote-shell-args ("-c"))
                  (tramp-copy-program "pscp") (tramp-copy-args (("-l" "%u") ("-P" "%p") ("-sftp") ("-p" "%k") ("-q")))
                  (tramp-copy-keep-date t))
                 ("pscp" (tramp-login-program "plink")
                  (tramp-login-args
                   (("-l" "%u") ("-P" "%p") ("-ssh") ("-t") ("%h") ("\"") ("env 'TERM=dumb' 'PROMPT_COMMAND=' 'PS1=#$ '") ("%l")
                    ("\""))
                   )
                  (tramp-remote-shell "/bin/sh") (tramp-remote-shell-login ("-l")) (tramp-remote-shell-args ("-c"))
                  (tramp-copy-program "pscp") (tramp-copy-args (("-l" "%u") ("-P" "%p") ("-scp") ("-p" "%k") ("-q") ("-r")))
                  (tramp-copy-keep-date t) (tramp-copy-recursive t))
                 ("plinkx" (tramp-login-program "plink")
                  (tramp-login-args (("-load") ("%h") ("-t") ("\"") ("env 'TERM=dumb' 'PROMPT_COMMAND=' 'PS1=#$ '") ("%l") ("\"")))
                  (tramp-remote-shell "/bin/sh") (tramp-remote-shell-login ("-l")) (tramp-remote-shell-args ("-c")))
                 ("plink" (tramp-login-program "plink")
                  (tramp-login-args
                   (("-l" "%u") ("-P" "%p") ("-ssh") ("-t") ("%h") ("\"") ("env 'TERM=dumb' 'PROMPT_COMMAND=' 'PS1=#$ '") ("%l")
                    ("\""))
                   )
                  (tramp-remote-shell "/bin/sh") (tramp-remote-shell-login ("-l")) (tramp-remote-shell-args ("-c")))
                 ("krlogin" (tramp-login-program "krlogin") (tramp-login-args (("%h") ("-l" "%u") ("-x")))
                  (tramp-remote-shell "/bin/sh") (tramp-remote-shell-login ("-l")) (tramp-remote-shell-args ("-c")))
                 ("ksu" (tramp-login-program "ksu") (tramp-login-args (("%u") ("-q"))) (tramp-remote-shell "/bin/sh")
                  (tramp-remote-shell-login ("-l")) (tramp-remote-shell-args ("-c")) (tramp-connection-timeout 10))
                 ("doas" (tramp-login-program "doas") (tramp-login-args (("-u" "%u") ("-s"))) (tramp-remote-shell "/bin/sh")
                  (tramp-remote-shell-args ("-c")) (tramp-connection-timeout 10) (tramp-session-timeout 300))
                 ("sudo" (tramp-login-program "sudo")
                  (tramp-login-args (("-u" "%u") ("-s") ("-H") ("-p" "P\"\"a\"\"s\"\"s\"\"w\"\"o\"\"r\"\"d\"\":") ("%l")))
                  (tramp-remote-shell "/bin/sh") (tramp-remote-shell-login ("-l")) (tramp-remote-shell-args ("-c"))
                  (tramp-connection-timeout 10) (tramp-session-timeout 300))
                 ("sg" (tramp-login-program "sg") (tramp-login-args (("-") ("%u"))) (tramp-remote-shell "/bin/sh")
                  (tramp-remote-shell-args ("-c")) (tramp-connection-timeout 10))
                 ("su" (tramp-login-program "su") (tramp-login-args (("-") ("%u"))) (tramp-remote-shell "/bin/sh")
                  (tramp-remote-shell-login ("-l")) (tramp-remote-shell-args ("-c")) (tramp-connection-timeout 10))
                 ("nc" (tramp-login-program "telnet") (tramp-login-args (("%h") ("%p") ("%n"))) (tramp-remote-shell "/bin/sh")
                  (tramp-remote-shell-login ("-l")) (tramp-remote-shell-args ("-c")) (tramp-copy-program "nc")
                  (tramp-copy-args (("-w" "1") ("-v") ("%h") ("%r"))) (tramp-remote-copy-program "nc")
                  (tramp-remote-copy-args (("-l") ("-p" "%r") ("%n"))))
                 ("telnet" (tramp-login-program "telnet") (tramp-login-args (("%h") ("%p") ("%n"))) (tramp-remote-shell "/bin/sh")
                  (tramp-remote-shell-login ("-l")) (tramp-remote-shell-args ("-c")))
                 ("sshx" (tramp-login-program "ssh")
                  (tramp-login-args (("-l" "%u") ("-p" "%p") ("%c") ("-e" "none") ("-t" "-t") ("%h") ("%l")))
                  (tramp-async-args (("-q"))) (tramp-remote-shell "/bin/sh") (tramp-remote-shell-login ("-l"))
                  (tramp-remote-shell-args ("-c")))
                 ("ssh" (tramp-login-program "ssh") (tramp-login-args (("-l" "%u") ("-p" "%p") ("%c") ("-e" "none") ("%h")))
                  (tramp-async-args (("-q"))) (tramp-remote-shell "/bin/sh") (tramp-remote-shell-login ("-l"))
                  (tramp-remote-shell-args ("-c")))
                 ("remsh" (tramp-login-program "remsh") (tramp-login-args (("%h") ("-l" "%u"))) (tramp-remote-shell "/bin/sh")
                  (tramp-remote-shell-login ("-l")) (tramp-remote-shell-args ("-c")))
                 ("rsh" (tramp-login-program "rsh") (tramp-login-args (("%h") ("-l" "%u"))) (tramp-remote-shell "/bin/sh")
                  (tramp-remote-shell-login ("-l")) (tramp-remote-shell-args ("-c")))
                 ("rsync" (tramp-login-program "ssh") (tramp-login-args (("-l" "%u") ("-p" "%p") ("%c") ("-e" "none") ("%h")))
                  (tramp-async-args (("-q"))) (tramp-remote-shell "/bin/sh") (tramp-remote-shell-login ("-l"))
                  (tramp-remote-shell-args ("-c")) (tramp-copy-program "rsync")
                  (tramp-copy-args (("-t" "%k") ("-p") ("-r") ("-s") ("-c"))) (tramp-copy-env (("RSYNC_RSH") ("ssh" "%c")))
                  (tramp-copy-keep-date t) (tramp-copy-keep-tmpfile t) (tramp-copy-recursive t))
                 ("scpx" (tramp-login-program "ssh")
                  (tramp-login-args (("-l" "%u") ("-p" "%p") ("%c") ("-e" "none") ("-t" "-t") ("%h") ("%l")))
                  (tramp-async-args (("-q"))) (tramp-remote-shell "/bin/sh") (tramp-remote-shell-login ("-l"))
                  (tramp-remote-shell-args ("-c")) (tramp-copy-program "scp")
                  (tramp-copy-args (("-P" "%p") ("-p" "%k") ("-q") ("-r") ("%c"))) (tramp-copy-keep-date t)
                  (tramp-copy-recursive t))
                 ("scp" (tramp-login-program "ssh") (tramp-login-args (("-l" "%u") ("-p" "%p") ("%c") ("-e" "none") ("%h")))
                  (tramp-async-args (("-q"))) (tramp-remote-shell "/bin/sh") (tramp-remote-shell-login ("-l"))
                  (tramp-remote-shell-args ("-c")) (tramp-copy-program "scp")
                  (tramp-copy-args (("-P" "%p") ("-p" "%k") ("-q") ("-r") ("%c"))) (tramp-copy-keep-date t)
                  (tramp-copy-recursive t))
                 ("remcp" (tramp-login-program "remsh") (tramp-login-args (("%h") ("-l" "%u"))) (tramp-remote-shell "/bin/sh")
                  (tramp-remote-shell-login ("-l")) (tramp-remote-shell-args ("-c")) (tramp-copy-program "rcp")
                  (tramp-copy-args (("-p" "%k"))) (tramp-copy-keep-date t))
                 ("rcp" (tramp-login-program "rsh") (tramp-login-args (("%h") ("-l" "%u"))) (tramp-remote-shell "/bin/sh")
                  (tramp-remote-shell-login ("-l")) (tramp-remote-shell-args ("-c")) (tramp-copy-program "rcp")
                  (tramp-copy-args (("-p" "%k") ("-r"))) (tramp-copy-keep-date t) (tramp-copy-recursive t))
                 ("smb" (tramp-tmpdir "/C$/Temp") (tramp-case-insensitive t))
                 ("sudoedit" (tramp-sudo-login (("sudo") ("-u" "%u") ("-S") ("-H") ("-p" "Password:") ("--")))))
 tramp-mode t
 tramp-od-awk-encode "%o -v -t x1 -A n | %a '\\\nBEGIN {\n  b64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\"\n  b16 = \"0123456789abcdef\"\n}\n{\n  for (c=1; c<=length($0); c++) {\n    d=index(b16, substr($0,c,1))\n    if (d--) {\n      for (b=1; b<=4; b++) {\n        o=o*2+int(d/8); d=(d*2)%%16\n        if (++obc==6) {\n          printf substr(b64,o+1,1)\n          if (++rc>75) { printf \"\\n\"; rc=0 }\n          obc=0; o=0\n        }\n      }\n    }\n  }\n}\nEND {\n  if (obc) {\n    tail=(obc==2) ? \"==\\n\" : \"=\\n\"\n    while (obc++<6) { o=o*2 }\n    printf \"%%c\", substr(b64,o+1,1)\n  } else {\n    tail=\"\\n\"\n  }\n  printf tail\n}'"
 tramp-od-encode "%o -v -t x1 -A n"
 tramp-operation-not-permitted-regexp "\\(preserving times.*\\|set mode\\):\\s-*\\(Operation not permitted\\)"
 tramp-password-prompt-regexp '(decode-coding-string
                                (base64-decode-string
                                 "Xi4qXChcKD86YWRnYW5nc2tvZGVcfGNvbnRyYXNlXCg/OlwoPzpueVx8w7FcKWFcKVx8Z2VzbG9c\nfGhcKD86XCg/OmFzxYJcfGVzbFwpb1wpXHxpcGhhc2l3ZWRpXHxqZWxzesOzXHxsXCg/Om96aW5r\nYVx8w7ZzZW5vcmRcKVx8bVwoPzpvdCBkZSBwYXNzZVx84bqtdCBraOG6qXVcKVx8cFwoPzphXCg/\nOnJvbGFcfHNcKD86YWhpdHphXHxzXCg/OiBwaHJhc2VcfGNvZGVcfG9yZFx8cGhyYXNlXHx3b3Jb\nZHRdXClcfHZvcnRvXClcKVx8aW5cKVx8c1woPzphbGFzYW5hXHxlbmhhXHxsYXB0YcW+b2Rpc1wp\nXHx3YWNodHdvb3JkXHzQu9C+0LfQuNC90LrQsFx80L/QsNGA0L7Qu9GMXHzXodeh157XlFx82YPZ\nhNmF2Kkg2KfZhNiz2LFcfOCkl+ClgeCkquCljeCkpOCktuCkrOCljeCkplx84KS24KSs4KWN4KSm\n4KSV4KWC4KSfXHzgppfgp4Hgpqrgp43gpqTgprbgpqzgp43gpqZcfOCmquCmvuCmuOCmk+Cnn+Cm\nvuCmsOCnjeCmoVx84Kiq4Ki+4Ki44Ki14Kiw4KihXHzgqqrgqr7gqrjgqrXgqrDgq43gqqFcfOCs\nquCtjeCssOCsrOCth+CstiDgrLjgrJngrY3grJXgrYfgrKRcfOCuleCun+CuteCvgeCumuCvjeCu\nmuCviuCusuCvjVx84LC44LCC4LCV4LGH4LCk4LCq4LCm4LCu4LGBXHzgspfgs4Hgsqrgs43gsqTg\nsqrgsqZcfOC0heC0n+C0r+C0vuC0s+C0teC0vuC0leC1jeC0leC1jVx84La74LeE4LeD4LeK4La0\n4Lav4La6XHzhnpbhnrbhnoDhn5Lhnpnhnp/hnpjhn5LhnoThnrbhno/hn4tcfOODkeOCueODr+OD\nvOODiVx85a+GW+eggeeivF1cfOyVlO2YuFwpXCkuKjoAPyAq")
                                'raw-text)
 tramp-perl-decode "%p -e '\n# This script contributed by Juanma Barranquero <[hidden email]>.\n# Copyright (C) 2002-2020 Free Software Foundation, Inc.\nuse strict;\n\nmy %%trans = do {\n    my $i = 0;\n    map {($_, substr(unpack(q(B8), chr $i++), 2, 6))}\n      split //, q(ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/)\n};\n\nmy %%bytes = map {(unpack(q(B8), chr $_), chr $_)} 0 .. 255;\n\nbinmode(\\*STDOUT);\n\n# We are going to accumulate into $pending to accept any line length\n# (we do not check they are <= 76 chars as the RFC says)\nmy $pending = q();\n\nwhile (my $data = <STDIN>) {\n    chomp $data;\n\n    # If we find one or two =, we have reached the end and\n    # any following data is to be discarded\n    my $finished = $data =~ s/(==?).*/$1/;\n    $pending .= $data;\n\n    my $len = length($pending);\n    my $chunk = substr($pending, 0, $len & ~3);\n    $pending = substr($pending, $len & ~3 + 1);\n\n    # Easy method: translate from chars to (pregenerated) six-bit packets, join,\n    # split in 8-bit chunks and convert back to char.\n    print join q(),\n      map $bytes{$_},\n        ((join q(), map {$trans{$_} || q()} split //, $chunk) =~ /......../g);\n\n    last if $finished;\n}' %n"
 tramp-perl-decode-with-module "%p -MMIME::Base64 -0777 -ne 'print decode_base64($_)' %n"
 tramp-perl-directory-files-and-attributes "%p -e '\nchdir($ARGV[0]) or printf(\"\\\"Cannot change to $ARGV[0]: $''!''\\\"\\n\"), exit();\nopendir(DIR,\".\") or printf(\"\\\"Cannot open directory $ARGV[0]: $''!''\\\"\\n\"), exit();\n@list = readdir(DIR);\nclosedir(DIR);\n$n = scalar(@list);\nprintf(\"(\\n\");\nfor($i = 0; $i < $n; $i++)\n{\n    $filename = $list[$i];\n    @stat = lstat($filename);\n    if (($stat[2] & 0170000) == 0120000)\n    {\n        $type = readlink($filename);\n        $type =~ s/\"/\\\\\"/g;\n        $type = \"\\\"$type\\\"\";\n    }\n    elsif (($stat[2] & 0170000) == 040000)\n    {\n        $type = \"t\";\n    }\n    else\n    {\n        $type = \"nil\"\n    };\n    $uid = ($ARGV[1] eq \"integer\") ? $stat[4] : \"\\\"\" . getpwuid($stat[4]) . \"\\\"\";\n    $gid = ($ARGV[1] eq \"integer\") ? $stat[5] : \"\\\"\" . getgrgid($stat[5]) . \"\\\"\";\n    $filename =~ s/\"/\\\\\"/g;\n    printf(\n        \"(\\\"%%s\\\" %%s %%u %%s %%s (%%u %%u) (%%u %%u) (%%u %%u) %%u %%u t %%u -1)\\n\",\n        $filename,\n        $type,\n        $stat[3],\n        $uid,\n        $gid,\n        $stat[8] >> 16 & 0xffff,\n        $stat[8] & 0xffff,\n        $stat[9] >> 16 & 0xffff,\n        $stat[9] & 0xffff,\n        $stat[10] >> 16 & 0xffff,\n        $stat[10] & 0xffff,\n        $stat[7],\n        $stat[2],\n        $stat[1]);\n}\nprintf(\")\\n\");' \"$1\" \"$2\" %n"
 tramp-perl-encode "%p -e '\n# This script contributed by Juanma Barranquero <[hidden email]>.\n# Copyright (C) 2002-2020 Free Software Foundation, Inc.\nuse strict;\n\nmy %%trans = do {\n    my $i = 0;\n    map {(substr(unpack(q(B8), chr $i++), 2, 6), $_)}\n      split //, q(ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/);\n};\nmy $data;\n\n# We read in chunks of 54 bytes, to generate output lines\n# of 72 chars (plus end of line)\nwhile (read STDIN, $data, 54) {\n    my $pad = q();\n\n    # Only for the last chunk, and only if did not fill the last\n    # three-byte packet\n    if (eof) {\n        my $mod = length($data) %% 3;\n        $pad = q(=) x (3 - $mod) if $mod;\n    }\n\n    # Not the fastest method, but it is simple: unpack to binary string, split\n    # by groups of 6 bits and convert back from binary to byte; then map into\n    # the translation table\n    print\n      join q(),\n        map($trans{$_},\n            (substr(unpack(q(B*), $data) . q(00000), 0, 432) =~ /....../g)),\n              $pad,\n                qq(\\n);\n}' %n"
 tramp-perl-encode-with-module "%p -MMIME::Base64 -0777 -ne 'print encode_base64($_)' %n"
 tramp-perl-file-attributes "%p -e '\n@stat = lstat($ARGV[0]);\nif (!@stat) {\n    print \"nil\\n\";\n    exit 0;\n}\nif (($stat[2] & 0170000) == 0120000)\n{\n    $type = readlink($ARGV[0]);\n    $type =~ s/\"/\\\\\"/g;\n    $type = \"\\\"$type\\\"\";\n}\nelsif (($stat[2] & 0170000) == 040000)\n{\n    $type = \"t\";\n}\nelse\n{\n    $type = \"nil\"\n};\n$uid = ($ARGV[1] eq \"integer\") ? $stat[4] : \"\\\"\" . getpwuid($stat[4]) . \"\\\"\";\n$gid = ($ARGV[1] eq \"integer\") ? $stat[5] : \"\\\"\" . getgrgid($stat[5]) . \"\\\"\";\nprintf(\n    \"(%%s %%u %%s %%s (%%u %%u) (%%u %%u) (%%u %%u) %%u %%u t %%u -1)\\n\",\n    $type,\n    $stat[3],\n    $uid,\n    $gid,\n    $stat[8] >> 16 & 0xffff,\n    $stat[8] & 0xffff,\n    $stat[9] >> 16 & 0xffff,\n    $stat[9] & 0xffff,\n    $stat[10] >> 16 & 0xffff,\n    $stat[10] & 0xffff,\n    $stat[7],\n    $stat[2],\n    $stat[1]\n);' \"$1\" \"$2\" %n"
 tramp-perl-file-name-all-completions "%p -e '\nopendir(d, $ARGV[0]) || die(\"$ARGV[0]: $!\\nfail\\n\");\n@files = readdir(d); closedir(d);\nforeach $f (@files) {\n if (-d \"$ARGV[0]/$f\") {\n  print \"$f/\\n\";\n }\n else {\n  print \"$f\\n\";\n }\n}\nprint \"ok\\n\"\n' \"$1\" %n"
 tramp-perl-file-truename "%p -e '\nuse File::Spec;\nuse Cwd \"realpath\";\n\nsub myrealpath {\n    my ($file) = @_;\n    return realpath($file) if (-e $file || -l $file);\n}\n\nsub recursive {\n    my ($volume, @dirs) = @_;\n    my $real = myrealpath(File::Spec->catpath(\n                   $volume, File::Spec->catdir(@dirs), \"\"));\n    if ($real) {\n        my ($vol, $dir) = File::Spec->splitpath($real, 1);\n        return ($vol, File::Spec->splitdir($dir));\n    }\n    else {\n        my $last = pop(@dirs);\n        ($volume, @dirs) = recursive($volume, @dirs);\n        push(@dirs, $last);\n        return ($volume, @dirs);\n    }\n}\n\n$result = myrealpath($ARGV[0]);\nif (!$result) {\n    my ($vol, $dir) = File::Spec->splitpath($ARGV[0], 1);\n    ($vol, @dirs) = recursive($vol, File::Spec->splitdir($dir));\n\n    $result = File::Spec->catpath($vol, File::Spec->catdir(@dirs), \"\");\n}\n\n$result =~ s/\"/\\\\\"/g;\nprint \"\\\"$result\\\"\\n\";\n' \"$1\" %n"
 tramp-perl-pack "%p -e 'binmode STDIN; binmode STDOUT; print pack(q{u*}, join q{}, <>)' %n"
 tramp-perl-unpack "%p -e 'binmode STDIN; binmode STDOUT; print unpack(q{u*}, join q{}, <>)' %n"
 tramp-persistency-file-name "/home/piater/.config/emacs/tramp"
 tramp-port-regexp "[[:digit:]]+"
 tramp-postfix-hop-format "|"
 tramp-postfix-hop-regexp "|"
 tramp-postfix-host-format ":"
 tramp-postfix-host-format-alist '((default . ":") (simplified . ":") (separate . "]"))
 tramp-postfix-host-regexp ":"
 tramp-postfix-ipv6-format "]"
 tramp-postfix-ipv6-format-alist '((default . "]") (simplified . "]") (separate . ""))
 tramp-postfix-ipv6-regexp "]"
 tramp-postfix-method-format ":"
 tramp-postfix-method-format-alist '((default . ":") (simplified . "") (separate . "/"))
 tramp-postfix-method-regexp ":"
 tramp-postfix-user-format "@"
 tramp-postfix-user-regexp "@"
 tramp-prefix-domain-format "%"
 tramp-prefix-domain-regexp "%"
 tramp-prefix-format "/"
 tramp-prefix-format-alist '((default . "/") (simplified . "/") (separate . "/["))
 tramp-prefix-ipv6-format "["
 tramp-prefix-ipv6-format-alist '((default . "[") (simplified . "[") (separate . ""))
 tramp-prefix-ipv6-regexp "\\["
 tramp-prefix-port-format "#"
 tramp-prefix-port-regexp "#"
 tramp-prefix-regexp "^/"
 tramp-process-alive-regexp ""
 tramp-process-connection-type t
 tramp-rclone-file-name-handler-alist '((access-file . tramp-handle-access-file)
                                        (add-name-to-file . tramp-handle-add-name-to-file)
                                        (copy-directory . tramp-handle-copy-directory) (copy-file . tramp-rclone-handle-copy-file)
                                        (delete-directory . tramp-rclone-handle-delete-directory)
                                        (delete-file . tramp-rclone-handle-delete-file)
                                        (directory-file-name . tramp-handle-directory-file-name)
                                        (directory-files . tramp-rclone-handle-directory-files)
                                        (directory-files-and-attributes . tramp-handle-directory-files-and-attributes)
                                        (dired-compress-file . ignore) (dired-uncache . tramp-handle-dired-uncache)
                                        (exec-path . ignore) (expand-file-name . tramp-handle-expand-file-name)
                                        (file-accessible-directory-p . tramp-handle-file-accessible-directory-p)
                                        (file-acl . ignore) (file-attributes . tramp-rclone-handle-file-attributes)
                                        (file-directory-p . tramp-handle-file-directory-p)
                                        (file-equal-p . tramp-handle-file-equal-p)
                                        (file-executable-p . tramp-rclone-handle-file-executable-p)
                                        (file-exists-p . tramp-handle-file-exists-p)
                                        (file-in-directory-p . tramp-handle-file-in-directory-p)
                                        (file-local-copy . tramp-handle-file-local-copy) (file-modes . tramp-handle-file-modes)
                                        (file-name-all-completions . tramp-rclone-handle-file-name-all-completions)
                                        (file-name-as-directory . tramp-handle-file-name-as-directory)
                                        (file-name-case-insensitive-p . tramp-handle-file-name-case-insensitive-p)
                                        (file-name-completion . tramp-handle-file-name-completion)
                                        (file-name-directory . tramp-handle-file-name-directory)
                                        (file-name-nondirectory . tramp-handle-file-name-nondirectory)
                                        (file-newer-than-file-p . tramp-handle-file-newer-than-file-p)
                                        (file-notify-add-watch . ignore) (file-notify-rm-watch . ignore)
                                        (file-notify-valid-p . ignore) (file-ownership-preserved-p . ignore)
                                        (file-readable-p . tramp-rclone-handle-file-readable-p)
                                        (file-regular-p . tramp-handle-file-regular-p)
                                        (file-remote-p . tramp-handle-file-remote-p)
                                        (file-selinux-context . tramp-handle-file-selinux-context)
                                        (file-symlink-p . tramp-handle-file-symlink-p)
                                        (file-system-info . tramp-rclone-handle-file-system-info)
                                        (file-truename . tramp-handle-file-truename)
                                        (file-writable-p . tramp-handle-file-writable-p)
                                        (find-backup-file-name . tramp-handle-find-backup-file-name)
                                        (insert-directory . tramp-handle-insert-directory)
                                        (insert-file-contents . tramp-handle-insert-file-contents) (load . tramp-handle-load)
                                        (make-auto-save-file-name . tramp-handle-make-auto-save-file-name)
                                        (make-directory . tramp-rclone-handle-make-directory) (make-directory-internal . ignore)
                                        (make-nearby-temp-file . tramp-handle-make-nearby-temp-file) (make-process . ignore)
                                        (make-symbolic-link . tramp-handle-make-symbolic-link) (process-file . ignore)
                                        (rename-file . tramp-rclone-handle-rename-file) (set-file-acl . ignore)
                                        (set-file-modes . ignore) (set-file-selinux-context . ignore) (set-file-times . ignore)
                                        (set-visited-file-modtime . tramp-handle-set-visited-file-modtime)
                                        (shell-command . ignore) (start-file-process . ignore)
                                        (substitute-in-file-name . tramp-handle-substitute-in-file-name)
                                        (temporary-file-directory . tramp-handle-temporary-file-directory)
                                        (tramp-get-remote-gid . ignore) (tramp-get-remote-uid . ignore)
                                        (tramp-set-file-uid-gid . ignore) (unhandled-file-name-directory . ignore)
                                        (vc-registered . ignore)
                                        (verify-visited-file-modtime . tramp-handle-verify-visited-file-modtime)
                                        (write-region . tramp-handle-write-region))
 tramp-rclone-method "rclone"
 tramp-rclone-program "rclone"
 tramp-remote-coding-commands '((b64 "base64" "base64 -d -i") (b64 "base64" "base64 -d")
                                (b64 "openssl enc -base64" "openssl enc -d -base64") (b64 "mimencode -b" "mimencode -u -b")
                                (b64 "mmencode -b" "mmencode -u -b") (b64 "recode data..base64" "recode base64..data")
                                (b64 tramp-perl-encode-with-module tramp-perl-decode-with-module)
                                (b64 tramp-perl-encode tramp-perl-decode) (b64 tramp-hexdump-awk-encode tramp-awk-decode)
                                (b64 tramp-od-awk-encode tramp-awk-decode)
                                (uu "uuencode xxx" "uudecode -o /dev/stdout" "test -c /dev/stdout")
                                (uu "uuencode xxx" "uudecode -o -") (uu "uuencode xxx" "uudecode -p")
                                (uu "uuencode xxx" tramp-uudecode) (pack tramp-perl-pack tramp-perl-unpack))
 tramp-remote-file-name-spec-regexp "\\([[:alnum:]-]+\\):\\(?:\\([^/|: ]+\\)@\\)?\\(\\(?:[[:alnum:]_.%-]+\\|\\[\\(?:\\(?:[[:alnum:]]*:\\)+[[:alnum:].]+\\)?]\\)\\(?:#[[:digit:]]+\\)?\\)?"
 tramp-remote-path '(tramp-default-remote-path "/bin" "/usr/bin" "/sbin" "/usr/sbin" "/usr/local/bin" "/usr/local/sbin"
                     "/local/bin" "/local/freeware/bin" "/local/gnu/bin" "/usr/freeware/bin" "/usr/pkg/bin" "/usr/contrib/bin"
                     "/opt/bin" "/opt/sbin" "/opt/local/bin")
 tramp-remote-process-environment '("ENV=''" "TMOUT=0" "LC_CTYPE=''" "CDPATH=" "HISTORY=" "MAIL=" "MAILCHECK=" "MAILPATH="
                                    "PAGER=cat" "autocorrect=" "correct=")
 tramp-repository-branch nil
 tramp-repository-version nil
 tramp-restricted-shell-hosts-alist nil
 tramp-rfn-eshadow-overlay nil
 tramp-rsh-end-of-line "\n"
 tramp-save-ad-hoc-proxies nil
 tramp-sh-extra-args '(("/bash\\'" . "-noediting -norc -noprofile") ("/zsh\\'" . "-f +Z -V"))
 tramp-sh-file-name-handler-alist '((access-file . tramp-handle-access-file) (add-name-to-file . tramp-sh-handle-add-name-to-file)
                                    (copy-directory . tramp-sh-handle-copy-directory) (copy-file . tramp-sh-handle-copy-file)
                                    (delete-directory . tramp-sh-handle-delete-directory)
                                    (delete-file . tramp-sh-handle-delete-file)
                                    (directory-file-name . tramp-handle-directory-file-name)
                                    (directory-files . tramp-handle-directory-files)
                                    (directory-files-and-attributes . tramp-sh-handle-directory-files-and-attributes)
                                    (dired-compress-file . tramp-sh-handle-dired-compress-file)
                                    (dired-uncache . tramp-handle-dired-uncache) (exec-path . tramp-sh-handle-exec-path)
                                    (expand-file-name . tramp-sh-handle-expand-file-name)
                                    (file-accessible-directory-p . tramp-handle-file-accessible-directory-p)
                                    (file-acl . tramp-sh-handle-file-acl) (file-attributes . tramp-sh-handle-file-attributes)
                                    (file-directory-p . tramp-sh-handle-file-directory-p)
                                    (file-equal-p . tramp-handle-file-equal-p)
                                    (file-executable-p . tramp-sh-handle-file-executable-p)
                                    (file-exists-p . tramp-sh-handle-file-exists-p)
                                    (file-in-directory-p . tramp-handle-file-in-directory-p)
                                    (file-local-copy . tramp-sh-handle-file-local-copy) (file-modes . tramp-handle-file-modes)
                                    (file-name-all-completions . tramp-sh-handle-file-name-all-completions)
                                    (file-name-as-directory . tramp-handle-file-name-as-directory)
                                    (file-name-case-insensitive-p . tramp-handle-file-name-case-insensitive-p)
                                    (file-name-completion . tramp-handle-file-name-completion)
                                    (file-name-directory . tramp-handle-file-name-directory)
                                    (file-name-nondirectory . tramp-handle-file-name-nondirectory)
                                    (file-newer-than-file-p . tramp-sh-handle-file-newer-than-file-p)
                                    (file-notify-add-watch . tramp-sh-handle-file-notify-add-watch)
                                    (file-notify-rm-watch . tramp-handle-file-notify-rm-watch)
                                    (file-notify-valid-p . tramp-handle-file-notify-valid-p)
                                    (file-ownership-preserved-p . tramp-sh-handle-file-ownership-preserved-p)
                                    (file-readable-p . tramp-sh-handle-file-readable-p)
                                    (file-regular-p . tramp-handle-file-regular-p) (file-remote-p . tramp-handle-file-remote-p)
                                    (file-selinux-context . tramp-sh-handle-file-selinux-context)
                                    (file-symlink-p . tramp-handle-file-symlink-p)
                                    (file-system-info . tramp-sh-handle-file-system-info)
                                    (file-truename . tramp-sh-handle-file-truename)
                                    (file-writable-p . tramp-sh-handle-file-writable-p)
                                    (find-backup-file-name . tramp-handle-find-backup-file-name)
                                    (insert-directory . tramp-sh-handle-insert-directory)
                                    (insert-file-contents . tramp-handle-insert-file-contents) (load . tramp-handle-load)
                                    (make-auto-save-file-name . tramp-handle-make-auto-save-file-name)
                                    (make-directory . tramp-sh-handle-make-directory)
                                    (make-nearby-temp-file . tramp-handle-make-nearby-temp-file)
                                    (make-process . tramp-sh-handle-make-process)
                                    (make-symbolic-link . tramp-sh-handle-make-symbolic-link)
                                    (process-file . tramp-sh-handle-process-file) (rename-file . tramp-sh-handle-rename-file)
                                    (set-file-acl . tramp-sh-handle-set-file-acl)
                                    (set-file-modes . tramp-sh-handle-set-file-modes)
                                    (set-file-selinux-context . tramp-sh-handle-set-file-selinux-context)
                                    (set-file-times . tramp-sh-handle-set-file-times)
                                    (set-visited-file-modtime . tramp-sh-handle-set-visited-file-modtime)
                                    (shell-command . tramp-handle-shell-command)
                                    (start-file-process . tramp-handle-start-file-process)
                                    (substitute-in-file-name . tramp-handle-substitute-in-file-name)
                                    (temporary-file-directory . tramp-handle-temporary-file-directory)
                                    (tramp-get-remote-gid . tramp-sh-handle-get-remote-gid)
                                    (tramp-get-remote-uid . tramp-sh-handle-get-remote-uid)
                                    (tramp-set-file-uid-gid . tramp-sh-handle-set-file-uid-gid)
                                    (unhandled-file-name-directory . ignore) (vc-registered . tramp-sh-handle-vc-registered)
                                    (verify-visited-file-modtime . tramp-sh-handle-verify-visited-file-modtime)
                                    (write-region . tramp-sh-handle-write-region))
 tramp-shell-prompt-pattern '(decode-coding-string
                              (base64-decode-string
                               "XCg/Ol5cfA1cKVteXSMkJT4KXSojP1tdIyQlPl0gKlwoG1xbW1s6ZGlnaXQ6XTtdKltbOmFscGhh\nOl1dICpcKSo=")
                              'raw-text)
 tramp-smb-acl-program "smbcacls"
 tramp-smb-conf "/dev/null"
 tramp-smb-file-name-handler-alist '((access-file . tramp-handle-access-file)
                                     (add-name-to-file . tramp-smb-handle-add-name-to-file)
                                     (copy-directory . tramp-smb-handle-copy-directory) (copy-file . tramp-smb-handle-copy-file)
                                     (delete-directory . tramp-smb-handle-delete-directory)
                                     (delete-file . tramp-smb-handle-delete-file)
                                     (directory-file-name . tramp-handle-directory-file-name)
                                     (directory-files . tramp-smb-handle-directory-files)
                                     (directory-files-and-attributes . tramp-handle-directory-files-and-attributes)
                                     (dired-compress-file . ignore) (dired-uncache . tramp-handle-dired-uncache)
                                     (exec-path . ignore) (expand-file-name . tramp-smb-handle-expand-file-name)
                                     (file-accessible-directory-p . tramp-handle-file-accessible-directory-p)
                                     (file-acl . tramp-smb-handle-file-acl) (file-attributes . tramp-smb-handle-file-attributes)
                                     (file-directory-p . tramp-handle-file-directory-p)
                                     (file-file-equal-p . tramp-handle-file-equal-p)
                                     (file-executable-p . tramp-handle-file-exists-p) (file-exists-p . tramp-handle-file-exists-p)
                                     (file-in-directory-p . tramp-handle-file-in-directory-p)
                                     (file-local-copy . tramp-smb-handle-file-local-copy) (file-modes . tramp-handle-file-modes)
                                     (file-name-all-completions . tramp-smb-handle-file-name-all-completions)
                                     (file-name-as-directory . tramp-handle-file-name-as-directory)
                                     (file-name-case-insensitive-p . tramp-handle-file-name-case-insensitive-p)
                                     (file-name-completion . tramp-handle-file-name-completion)
                                     (file-name-directory . tramp-handle-file-name-directory)
                                     (file-name-nondirectory . tramp-handle-file-name-nondirectory)
                                     (file-newer-than-file-p . tramp-handle-file-newer-than-file-p)
                                     (file-notify-add-watch . tramp-handle-file-notify-add-watch)
                                     (file-notify-rm-watch . tramp-handle-file-notify-rm-watch)
                                     (file-notify-valid-p . tramp-handle-file-notify-valid-p)
                                     (file-ownership-preserved-p . ignore) (file-readable-p . tramp-handle-file-exists-p)
                                     (file-regular-p . tramp-handle-file-regular-p) (file-remote-p . tramp-handle-file-remote-p)
                                     (file-selinux-context . tramp-handle-file-selinux-context)
                                     (file-symlink-p . tramp-handle-file-symlink-p)
                                     (file-system-info . tramp-smb-handle-file-system-info)
                                     (file-truename . tramp-handle-file-truename)
                                     (file-writable-p . tramp-smb-handle-file-writable-p)
                                     (find-backup-file-name . tramp-handle-find-backup-file-name)
                                     (insert-directory . tramp-smb-handle-insert-directory)
                                     (insert-file-contents . tramp-handle-insert-file-contents) (load . tramp-handle-load)
                                     (make-auto-save-file-name . tramp-handle-make-auto-save-file-name)
                                     (make-directory . tramp-smb-handle-make-directory)
                                     (make-directory-internal . tramp-smb-handle-make-directory-internal)
                                     (make-nearby-temp-file . tramp-handle-make-nearby-temp-file) (make-process . ignore)
                                     (make-symbolic-link . tramp-smb-handle-make-symbolic-link)
                                     (process-file . tramp-smb-handle-process-file) (rename-file . tramp-smb-handle-rename-file)
                                     (set-file-acl . tramp-smb-handle-set-file-acl)
                                     (set-file-modes . tramp-smb-handle-set-file-modes) (set-file-selinux-context . ignore)
                                     (set-file-times . ignore) (set-visited-file-modtime . tramp-handle-set-visited-file-modtime)
                                     (shell-command . tramp-handle-shell-command)
                                     (start-file-process . tramp-smb-handle-start-file-process)
                                     (substitute-in-file-name . tramp-smb-handle-substitute-in-file-name)
                                     (temporary-file-directory . tramp-handle-temporary-file-directory)
                                     (tramp-get-remote-gid . ignore) (tramp-get-remote-uid . ignore)
                                     (tramp-set-file-uid-gid . ignore) (unhandled-file-name-directory . ignore)
                                     (vc-registered . ignore)
                                     (verify-visited-file-modtime . tramp-handle-verify-visited-file-modtime)
                                     (write-region . tramp-smb-handle-write-region))
 tramp-smb-method "smb"
 tramp-smb-options nil
 tramp-smb-program "smbclient"
 tramp-smb-winexe-program "winexe"
 tramp-smb-winexe-shell-command "powershell.exe"
 tramp-smb-winexe-shell-command-switch "-file -"
 tramp-ssh-controlmaster-options nil
 tramp-stat-marker "/////"
 tramp-stat-quoted-marker "\\/\\/\\/\\/\\/"
 tramp-sudoedit-file-name-handler-alist '((access-file . tramp-handle-access-file)
                                          (add-name-to-file . tramp-sudoedit-handle-add-name-to-file)
                                          (byte-compiler-base-file-name . ignore) (copy-directory . tramp-handle-copy-directory)
                                          (copy-file . tramp-sudoedit-handle-copy-file)
                                          (delete-directory . tramp-sudoedit-handle-delete-directory)
                                          (delete-file . tramp-sudoedit-handle-delete-file) (diff-latest-backup-file . ignore)
                                          (directory-files . tramp-handle-directory-files)
                                          (directory-files-and-attributes . tramp-handle-directory-files-and-attributes)
                                          (dired-compress-file . ignore) (dired-uncache . tramp-handle-dired-uncache)
                                          (exec-path . ignore) (expand-file-name . tramp-sudoedit-handle-expand-file-name)
                                          (file-accessible-directory-p . tramp-handle-file-accessible-directory-p)
                                          (file-acl . tramp-sudoedit-handle-file-acl)
                                          (file-attributes . tramp-sudoedit-handle-file-attributes)
                                          (file-directory-p . tramp-handle-file-directory-p)
                                          (file-equal-p . tramp-handle-file-equal-p)
                                          (file-executable-p . tramp-sudoedit-handle-file-executable-p)
                                          (file-exists-p . tramp-sudoedit-handle-file-exists-p)
                                          (file-in-directory-p . tramp-handle-file-in-directory-p)
                                          (file-local-copy . tramp-handle-file-local-copy) (file-modes . tramp-handle-file-modes)
                                          (file-name-all-completions . tramp-sudoedit-handle-file-name-all-completions)
                                          (file-name-as-directory . tramp-handle-file-name-as-directory)
                                          (file-name-case-insensitive-p . tramp-handle-file-name-case-insensitive-p)
                                          (file-name-completion . tramp-handle-file-name-completion)
                                          (file-name-directory . tramp-handle-file-name-directory)
                                          (file-name-nondirectory . tramp-handle-file-name-nondirectory)
                                          (file-newer-than-file-p . tramp-handle-file-newer-than-file-p)
                                          (file-notify-add-watch . ignore) (file-notify-rm-watch . ignore)
                                          (file-notify-valid-p . ignore) (file-ownership-preserved-p . ignore)
                                          (file-readable-p . tramp-sudoedit-handle-file-readable-p)
                                          (file-regular-p . tramp-handle-file-regular-p)
                                          (file-remote-p . tramp-handle-file-remote-p)
                                          (file-selinux-context . tramp-sudoedit-handle-file-selinux-context)
                                          (file-symlink-p . tramp-handle-file-symlink-p)
                                          (file-system-info . tramp-sudoedit-handle-file-system-info)
                                          (file-truename . tramp-sudoedit-handle-file-truename)
                                          (file-writable-p . tramp-sudoedit-handle-file-writable-p)
                                          (find-backup-file-name . tramp-handle-find-backup-file-name)
                                          (insert-directory . tramp-handle-insert-directory)
                                          (insert-file-contents . tramp-handle-insert-file-contents) (load . tramp-handle-load)
                                          (make-auto-save-file-name . tramp-handle-make-auto-save-file-name)
                                          (make-directory . tramp-sudoedit-handle-make-directory)
                                          (make-directory-internal . ignore)
                                          (make-nearby-temp-file . tramp-handle-make-nearby-temp-file) (make-process . ignore)
                                          (make-symbolic-link . tramp-sudoedit-handle-make-symbolic-link) (process-file . ignore)
                                          (rename-file . tramp-sudoedit-handle-rename-file)
                                          (set-file-acl . tramp-sudoedit-handle-set-file-acl)
                                          (set-file-modes . tramp-sudoedit-handle-set-file-modes)
                                          (set-file-selinux-context . tramp-sudoedit-handle-set-file-selinux-context)
                                          (set-file-times . tramp-sudoedit-handle-set-file-times)
                                          (set-visited-file-modtime . tramp-handle-set-visited-file-modtime)
                                          (shell-command . ignore) (start-file-process . ignore)
                                          (substitute-in-file-name . tramp-handle-substitute-in-file-name)
                                          (temporary-file-directory . tramp-handle-temporary-file-directory)
                                          (tramp-get-remote-gid . tramp-sudoedit-handle-get-remote-gid)
                                          (tramp-get-remote-uid . tramp-sudoedit-handle-get-remote-uid)
                                          (tramp-set-file-uid-gid . tramp-sudoedit-handle-set-file-uid-gid)
                                          (unhandled-file-name-directory . ignore) (vc-registered . ignore)
                                          (verify-visited-file-modtime . tramp-handle-verify-visited-file-modtime)
                                          (write-region . tramp-sudoedit-handle-write-region))
 tramp-sudoedit-method "sudoedit"
 tramp-sunos-unames "\\(?:SunOS 5\\.1[01]\\)"
 tramp-syntax 'default
 tramp-system-name "jp"
 tramp-temp-buffer-file-name nil
 tramp-temp-buffer-name " *tramp temp*"
 tramp-temp-name-prefix "tramp."
 tramp-terminal-prompt-regexp "\\(TERM = (.*)\\|Terminal type\\? \\[.*\\]\\)\\s-*"
 tramp-terminal-type "dumb"
 tramp-time-doesnt-exist '(-1 65535)
 tramp-time-dont-know '(0 0 0 1000)
 tramp-unknown-id-integer -1
 tramp-unknown-id-string "UNKNOWN"
 tramp-unload-hook '(#[0 "\300\301\302\"\207" [unload-feature tramp-cmds force] 3]
                     #[0 "\300\301\302\"\207" [unload-feature tramp-cache force] 3]
                     #[0 "\300\301\302\"\207" [unload-feature tramp-sh force] 3]
                     #[0 "\300\301\302\"\207" [remove-hook interrupt-process-functions tramp-interrupt-process] 3]
                     #[0 "\300\301\302\"\207" [remove-hook kill-buffer-hook tramp-delete-temp-file-function] 3]
                     tramp-unload-file-name-handlers #[0 "\300\301\302\"\207" [unload-feature trampver force] 3]
                     #[0 "\300\301\302\"\207" [unload-feature tramp-integration force] 3]
                     #[0 "\300\301\302\"\207" [remove-hook rfn-eshadow-update-overlay-hook tramp-rfn-eshadow-update-overlay] 3]
                     #[0 "\300\301\302\"\207" [remove-hook rfn-eshadow-setup-minibuffer-hook tramp-rfn-eshadow-setup-minibuffer] 3]
                     #[0 "\300\301\302\"\210\300\303\302\"\207" [unload-feature tramp-loaddefs force tramp-compat] 3])
 tramp-use-ssh-controlmaster-options t
 tramp-user-regexp "[^/|: ]+"
 tramp-user-with-domain-regexp "\\([^/|: ]+\\)%\\([[:alnum:]_.-]+\\)"
 tramp-uudecode "(echo begin 600 %t; tail -n +2) | uudecode\ncat %t\nrm -f %t"
 tramp-vc-registered-file-names nil
 tramp-vc-registered-read-file-names "echo \"(\"\nwhile read file; do\n    quoted=`echo \"$file\" | sed -e \"s/\\\"/\\\\\\\\\\\\\\\\\\\"/\"`\n    if %s \"$file\"; then\n echo \"(\\\"$quoted\\\" \\\"file-exists-p\\\" t)\"\n    else\n echo \"(\\\"$quoted\\\" \\\"file-exists-p\\\" nil)\"\n    fi\n    if %s \"$file\"; then\n echo \"(\\\"$quoted\\\" \\\"file-readable-p\\\" t)\"\n    else\n echo \"(\\\"$quoted\\\" \\\"file-readable-p\\\" nil)\"\n    fi\ndone\necho \")\""
 tramp-verbose 6
 tramp-version "2.5.0-pre"
 tramp-wrong-passwd-regexp "^.*\\(Connection \\(?:\\(?:clo\\|refu\\)sed\\)\\|Host key verification failed\\.\\|Login \\(?:[Ii]ncorrect\\)\\|N\\(?:ame or service not known\\|o supported authentication methods left to try!\\)\\|Permission denied\\|\\(?:Sorry, try again\\|Timeout, server not responding\\)\\.\\).*\\|^.*\\(Received signal [[:digit:]]+\\).*"
 tramp-yesno-prompt-regexp "\\(Are you sure you want to continue connecting (yes/no\\(?:\\(?:/\\[fingerprint]\\)?)\\?\\)\\)\\s-*"
 tramp-yn-prompt-regexp "\\(\\(?:Store key in cache\\? (y/\\|Update cached key\\? (y/n, Return cancels connectio\\)n)\\)\\s-*"
 )

local variables:
================
load-path shadows:
==================


buffer-debug-tramp-sudo.txt (46K) Download Attachment
buffer-debug-tramp-sudo-noconv.txt (127K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: tramp (2.5.0-pre nil/nil); dired: multibyte characters disturb filename detection

Michael Albinus
[hidden email] writes:

Hi Justus,

> In a tramp dired buffer, filenames containing multibyte characters are
> not detected correctly; this also affects filenames below in the listing
> even if they do not contain any multibyte characters themselves.
>
> * Cause:
>
> The directory listing is retrieved in properly-decoded form, while the
> filename location indices produced by --dired count bytes, not chars.
> This causes a misalignment that accumulates through the entire directory
> listing.
Thanks for your analysis. Could you, pls, check whether the appended
patch fixes the problem for you?

Best regards, Michael.


attachment0 (1K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: tramp (2.5.0-pre nil/nil); dired: multibyte characters disturb filename detection

Justus-dev
Michael Albinus <[hidden email]> wrote on Sun, 03 Jan 2021
20:06:38 +0100:

> Could you, pls, check whether the appended patch fixes the problem for
> you?

Yes it does.  Thanks!

Justus

Reply | Threaded
Open this post in threaded view
|

Re: tramp (2.5.0-pre nil/nil); dired: multibyte characters disturb filename detection

Michael Albinus
[hidden email] writes:

Hi Justus,

>> Could you, pls, check whether the appended patch fixes the problem for
>> you?
>
> Yes it does.  Thanks!

Thanks for the feedback. I've pushed the fix to both Tramp and Emacs
repositories; will also be available with Tramp 2.5.0.1 in GNU ELPA.

> Justus

Best regards, Michael.