%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
;ELC ;;; Compiled ;;; in Emacs version 25.2.1 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. ;;; This file does not contain utf-8 non-ASCII characters, ;;; and so can be loaded in Emacs versions earlier than 23. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\300\301!\210\302\303\304\305\306\301\307\310&\210\302\311\312\313\306\301\307\314&\210\302\315\316\317\306\301\307\320&\210\302\321\322\323\306\301\324\325\307\326& \207" [require tramp custom-declare-variable tramp-inline-compress-start-size 4096 "The minimum size of compressing where inline transfer.\nWhen inline transfer, compress transferred data of file\nwhose size is this value or above (up to `tramp-copy-size-limit').\nIf it is nil, no compression at all will be applied." :group :type (choice (const nil) integer) tramp-copy-size-limit 10240 "The maximum file size where inline copying is preferred over an out-of-the-band copy.\nIf it is nil, out-of-the-band copy will be used without a check." (choice (const nil) integer) tramp-terminal-type "dumb" "Value of TERM environment variable for logging in to remote host.\nBecause Tramp wants to parse the output of the remote shell, it is easily\nconfused by ANSI color escape sequences and suchlike. Often, shell init\nfiles conditionalize this setup based on the TERM environment variable." string tramp-histfile-override "~/.tramp_history" "When invoking a shell, override the HISTFILE with this value.\nWhen setting to a string, it redirects the shell history to that\nfile. Be careful when setting to \"/dev/null\"; this might\nresult in undesired results when using \"bash\" as shell.\n\nThe value t unsets any setting of HISTFILE, and sets both\nHISTFILESIZE and HISTSIZE to 0. If you set this variable to nil,\nhowever, the *override* is disabled, so the history will go to\nthe default storage location, e.g. \"$HOME/.sh_history\"." :version "25.2" (choice (const :tag "Do not override HISTFILE" nil) (const :tag "Unset HISTFILE" t) (string :tag "Redirect to a file"))] 10) #@48 Escape sequences produced by the "ls" command. (defconst tramp-color-escape-sequence-regexp "[[;0-9]+m" (#$ . 2172)) #@166 String used to recognize end of output. The `$' character at the end is quoted; the string cannot be detected as prompt when being sent on echoing hosts, therefore. (defvar tramp-end-of-output (byte-code "\301\302\303\304!\305 P!\"\207" [process-environment format "///%s#$" md5 prin1-to-string current-time-string] 5) (#$ . 2297)) #@40 Prompt when establishing a connection. (defconst tramp-initial-end-of-output "#$ " (#$ . 2636)) #@50 String used to recognize end of heredoc strings. (defconst tramp-end-of-heredoc (md5 tramp-end-of-output) (#$ . 2738)) #@51 Whether to use `tramp-ssh-controlmaster-options'. (custom-declare-variable 'tramp-use-ssh-controlmaster-options t '(#$ . 2863) :group 'tramp :version "24.4" :type 'boolean) #@464 Which ssh Control* arguments to use. If it is a string, it should have the form "-o ControlMaster=auto -o ControlPath='tramp.%%r@%%h:%%p' -o ControlPersist=no". Percent characters in the ControlPath spec must be doubled, because the string is used as format string. Otherwise, it will be auto-detected by Tramp, if `tramp-use-ssh-controlmaster-options' is non-nil. The value depends on the installed local ssh version. The string is used in `tramp-methods'. (defvar tramp-ssh-controlmaster-options nil (#$ . 3043)) (byte-code "\303\304\305\"\210\303\304\306\"\210\303\304\307\"\210\303\304\310\"\210\303\304\311\"\210\303\304\312\"\210\303\304\313\"\210\303\304\314\"\210\303\304\315\"\210\303\304\316\"\210\303\304\317\"\210\303\304\320\"\210\303\304\321\"\210\303\304\322\"\210\303\304\323\"\210\303\304\324\325\326\327\330\331\332\333\334\335\336 #C\337BBBBBBBD\340BBB\"\210\303\304\341\342\326\343\344\345\346\335\336 #C\347BBBBBD\350BBB\"\210\303\304\351\352\326\353\354\355\356\357\360\335\336 #C\361BBBBBBBD\362BBB\"\210\303\304\363\364\326\365\366\367\370\371\372\335\336 #C\373BBBBBBBD\374BBB\"\210\303\304\375\"\210\303\376\n\377B\"\210\303\201@ \201A \201B B\"\210\303\201@ \201C \201D \201E E\"\207" [tramp-terminal-type tramp-initial-end-of-output tramp-local-host-regexp add-to-list tramp-methods ("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)) ("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)) ("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) (tramp-gw-args (("-o" "GlobalKnownHostsFile=/dev/null") ("-o" "UserKnownHostsFile=/dev/null") ("-o" "StrictHostKeyChecking=no"))) (tramp-default-port 22)) ("scpx" (tramp-login-program "ssh") (tramp-login-args (("-l" "%u") ("-p" "%p") ("%c") ("-e" "none") ("-t" "-t") ("%h") ("/bin/sh"))) (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) (tramp-gw-args (("-o" "GlobalKnownHostsFile=/dev/null") ("-o" "UserKnownHostsFile=/dev/null") ("-o" "StrictHostKeyChecking=no"))) (tramp-default-port 22)) ("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") ("-r"))) (tramp-copy-env (("RSYNC_RSH") ("ssh" "%c"))) (tramp-copy-keep-date t) (tramp-copy-keep-tmpfile t) (tramp-copy-recursive t)) ("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"))) ("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"))) ("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")) (tramp-gw-args (("-o" "GlobalKnownHostsFile=/dev/null") ("-o" "UserKnownHostsFile=/dev/null") ("-o" "StrictHostKeyChecking=no"))) (tramp-default-port 22)) ("sshx" (tramp-login-program "ssh") (tramp-login-args (("-l" "%u") ("-p" "%p") ("%c") ("-e" "none") ("-t" "-t") ("%h") ("/bin/sh"))) (tramp-async-args (("-q"))) (tramp-remote-shell "/bin/sh") (tramp-remote-shell-login ("-l")) (tramp-remote-shell-args ("-c")) (tramp-gw-args (("-o" "GlobalKnownHostsFile=/dev/null") ("-o" "UserKnownHostsFile=/dev/null") ("-o" "StrictHostKeyChecking=no"))) (tramp-default-port 22)) ("telnet" (tramp-login-program "telnet") (tramp-login-args (("%h") ("%p") ("2>/dev/null"))) (tramp-remote-shell "/bin/sh") (tramp-remote-shell-login ("-l")) (tramp-remote-shell-args ("-c")) (tramp-default-port 23)) ("nc" (tramp-login-program "telnet") (tramp-login-args (("%h") ("%p") ("2>/dev/null"))) (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") ("2>/dev/null"))) (tramp-default-port 23)) ("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)) ("sudo" (tramp-login-program "sudo") (tramp-login-args (("-u" "%u") ("-s") ("-H") ("-p" "P\"\"a\"\"s\"\"s\"\"w\"\"o\"\"r\"\"d\"\":"))) (tramp-login-env (("SHELL") ("/bin/sh"))) (tramp-remote-shell "/bin/sh") (tramp-remote-shell-login ("-l")) (tramp-remote-shell-args ("-c")) (tramp-connection-timeout 10)) ("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)) ("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"))) "plink" (tramp-login-program "plink") tramp-login-args ("-l" "%u") ("-P" "%p") ("-ssh") ("-t") ("%h") ("\"") format "env 'TERM=%s' 'PROMPT_COMMAND=' 'PS1=%s'" (("/bin/sh") ("\"")) ((tramp-remote-shell "/bin/sh") (tramp-remote-shell-login ("-l")) (tramp-remote-shell-args ("-c")) (tramp-default-port 22)) "plinkx" (tramp-login-program "plink") ("-load") ("%h") ("-t") ("\"") (("/bin/sh") ("\"")) ((tramp-remote-shell "/bin/sh") (tramp-remote-shell-login ("-l")) (tramp-remote-shell-args ("-c"))) "pscp" (tramp-login-program "plink") ("-l" "%u") ("-P" "%p") ("-ssh") ("-t") ("%h") ("\"") (("/bin/sh") ("\"")) ((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) (tramp-default-port 22)) "psftp" (tramp-login-program "plink") ("-l" "%u") ("-P" "%p") ("-ssh") ("-t") ("%h") ("\"") (("/bin/sh") ("\"")) ((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") ("-r"))) (tramp-copy-keep-date t) (tramp-copy-recursive t)) ("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)) tramp-default-method-alist ("\\`root\\'" "su") tramp-default-user-alist "\\`\\(?:ksu\\|su\\(?:do\\)?\\)\\'" (nil "root") "\\`\\(?:fcp\\|krlogin\\|nc\\|r\\(?:cp\\|emcp\\|sh\\)\\|telnet\\)\\'" nil user-login-name] 15) #@71 Default list of (FUNCTION FILE) pairs to be examined for rsh methods. (defconst tramp-completion-function-alist-rsh '((tramp-parse-rhosts "/etc/hosts.equiv") (tramp-parse-rhosts "~/.rhosts")) (#$ . 10834)) #@71 Default list of (FUNCTION FILE) pairs to be examined for ssh methods. (defconst 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")) (#$ . 11046)) #@74 Default list of (FUNCTION FILE) pairs to be examined for telnet methods. (defconst tramp-completion-function-alist-telnet '((tramp-parse-hosts "/etc/hosts")) (#$ . 11680)) #@70 Default list of (FUNCTION FILE) pairs to be examined for su methods. (defconst tramp-completion-function-alist-su '((tramp-parse-passwd "/etc/passwd")) (#$ . 11858)) #@78 Default list of (FUNCTION REGISTRY) pairs to be examined for putty sessions. (defconst tramp-completion-function-alist-putty (byte-code "\301\302>\203 \303\202\f \304DC\207" [system-type tramp-parse-putty (windows-nt) "HKEY_CURRENT_USER\\Software\\SimonTatham\\PuTTY\\Sessions" "~/.putty/sessions"] 3) (#$ . 12030)) (byte-code "\300\301\302\"\210\303\304\305\306\307\301\310\311&\210\303\312\313\314\307\301\315\316\310\317& \210\303\320\321\322\307\301\310\323\324N\203. \325\202/ \326&\207" [eval-after-load tramp #[nil "\305\306\"\210\305\307\"\210\305\310 \"\210\305\311 \"\210\305\312 \"\210\305\313\"\210\305\314\"\210\305\315 \"\210\305\316 \"\210\305\317\n\"\210\305\320\n\"\210\305\321\"\210\305\322\"\210\305\323\"\210\305\324\"\210\305\325 \"\210\305\326\f\"\210\305\327 \"\210\305\330 \"\210\305\331 \"\207" [tramp-completion-function-alist-rsh tramp-completion-function-alist-ssh tramp-completion-function-alist-telnet tramp-completion-function-alist-su tramp-completion-function-alist-putty tramp-set-completion-function "rcp" "remcp" "scp" "scpx" "rsync" "rsh" "remsh" "ssh" "sshx" "telnet" "nc" "su" "sudo" "ksu" "krlogin" "plink" "plinkx" "pscp" "psftp" "fcp"] 3] custom-declare-variable 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") "List of directories to search for executables on remote host.\nFor every remote host, this variable will be set buffer local,\nkeeping the list of existing directories on that host.\n\nYou can use `~' in this list, but when searching for a shell which groks\ntilde expansion, all directory names starting with `~' will be ignored.\n\n`Default Directories' represent the list of directories given by\nthe command \"getconf PATH\". It is recommended to use this\nentry on head of this list, because these are the default\ndirectories for POSIX compatible commands. On remote hosts which\ndo not offer the getconf command (like cygwin), the value\n\"/bin:/usr/bin\" is used instead. This entry is represented in\nthe list by the special value `tramp-default-remote-path'.\n\n`Private Directories' are the settings of the $PATH environment,\nas given in your `~/.profile'. This entry is represented in\nthe list by the special value `tramp-own-remote-path'." :group :type (repeat (choice (const :tag "Default Directories" tramp-default-remote-path) (const :tag "Private Directories" tramp-own-remote-path) (string :tag "Directory"))) tramp-remote-process-environment `("TMOUT=0" "LC_CTYPE=''" ,(format "TERM=%s" tramp-terminal-type) ,(format "INSIDE_EMACS='%s,tramp:%s'" emacs-version tramp-version) "CDPATH=" "HISTORY=" "MAIL=" "MAILCHECK=" "MAILPATH=" "PAGER=cat" "autocorrect=" "correct=") "List of environment variables to be set on the remote host.\n\nEach element should be a string of the form ENVVARNAME=VALUE. An\nentry ENVVARNAME= disables the corresponding environment variable,\nwhich might have been set in the init files like ~/.profile.\n\nSpecial handling is applied to the PATH environment, which should\nnot be set here. Instead, it should be set via `tramp-remote-path'." :version "24.4" (repeat string) tramp-sh-extra-args '(("/bash\\'" . "-norc -noprofile")) "Alist specifying extra arguments to pass to the remote shell.\nEntries are (REGEXP . ARGS) where REGEXP is a regular expression\nmatching the shell file name and ARGS is a string specifying the\narguments.\n\nThis variable is only used when Tramp needs to start up another shell\nfor tilde expansion. The extra arguments should typically prevent the\nshell from reading its init file." alist widget-type (alist :key-type string :value-type string) (repeat (cons string string))] 10) #@473 List of pattern/action pairs. Whenever a pattern matches, the corresponding action is performed. Each item looks like (PATTERN ACTION). The PATTERN should be a symbol, a variable. The value of this variable gives the regular expression to search for. Note that the regexp must match at the end of the buffer, "\'" is implicitly appended to it. The ACTION should also be a symbol, but a function. When the corresponding PATTERN matches, the ACTION function is called. (defconst 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-process-alive-regexp tramp-action-process-alive)) (#$ . 15887)) #@145 List of pattern/action pairs. This list is used for copying/renaming with out-of-band methods. See `tramp-actions-before-shell' for more info. (defconst 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)) (#$ . 16870)) #@219 Shell function to implement `uudecode' to standard output. Many systems support `uudecode -o /dev/stdout' or `uudecode -o -' for this or `uudecode -p', but some systems don't, and for them we have this shell function. (defconst tramp-uudecode "(echo begin 600 %t; tail -n +2) | uudecode\ncat %t\nrm -f %t" (#$ . 17303)) #@230 Perl script to produce output suitable for use with `file-truename' on the remote file system. Escape sequence %s is replaced with name of Perl binary. This string is passed to `format', so percent characters need to be doubled. (defconst tramp-perl-file-truename "%s -e '\nuse File::Spec;\nuse Cwd \"realpath\";\n\nsub myrealpath {\n my ($file) = @_;\n return realpath($file) if -e $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\" 2>/dev/null" (#$ . 17630)) #@244 Perl script to produce output suitable for use with `file-name-all-completions' on the remote file system. Escape sequence %s is replaced with name of Perl binary. This string is passed to `format', so percent characters need to be doubled. (defconst tramp-perl-file-name-all-completions "%s -e 'sub case {\n my $str = shift;\n if ($ARGV[2]) {\n return lc($str);\n }\n else {\n return $str;\n }\n}\nopendir(d, $ARGV[0]) || die(\"$ARGV[0]: $!\\nfail\\n\");\n@files = readdir(d); closedir(d);\nforeach $f (@files) {\n if (case(substr($f, 0, length($ARGV[1]))) eq case($ARGV[1])) {\n if (-d \"$ARGV[0]/$f\") {\n print \"$f/\\n\";\n }\n else {\n print \"$f\\n\";\n }\n }\n}\nprint \"ok\\n\"\n' \"$1\" \"$2\" \"$3\" 2>/dev/null" (#$ . 18861)) #@232 Perl script to produce output suitable for use with `file-attributes' on the remote file system. Escape sequence %s is replaced with name of Perl binary. This string is passed to `format', so percent characters need to be doubled. (defconst tramp-perl-file-attributes "%s -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.0 %%u t (%%u . %%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] >> 16 & 0xffff,\n $stat[1] & 0xffff\n);' \"$1\" \"$2\" 2>/dev/null" (#$ . 19618)) #@216 Perl script implementing `directory-files-attributes' as Lisp `read'able output. Escape sequence %s is replaced with name of Perl binary. This string is passed to `format', so percent characters need to be doubled. (defconst tramp-perl-directory-files-and-attributes "%s -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.0 %%u t (%%u . %%u) (%%u . %%u))\\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] >> 16 & 0xffff,\n $stat[1] & 0xffff,\n $stat[0] >> 16 & 0xffff,\n $stat[0] & 0xffff);\n}\nprintf(\")\\n\");' \"$1\" \"$2\" 2>/dev/null" (#$ . 20837)) #@270 Perl program to use for encoding a file. Escape sequence %s is replaced with name of Perl binary. This string is passed to `format', so percent characters need to be doubled. This implementation requires the MIME::Base64 Perl module to be installed on the remote host. (defconst tramp-perl-encode-with-module "%s -MMIME::Base64 -0777 -ne 'print encode_base64($_)' 2>/dev/null" (#$ . 22609)) #@270 Perl program to use for decoding a file. Escape sequence %s is replaced with name of Perl binary. This string is passed to `format', so percent characters need to be doubled. This implementation requires the MIME::Base64 Perl module to be installed on the remote host. (defconst tramp-perl-decode-with-module "%s -MMIME::Base64 -0777 -ne 'print decode_base64($_)' 2>/dev/null" (#$ . 23007)) #@176 Perl program to use for encoding a file. Escape sequence %s is replaced with name of Perl binary. This string is passed to `format', so percent characters need to be doubled. (defconst tramp-perl-encode "%s -e '\n# This script contributed by Juanma Barranquero <lektu@terra.es>.\n# Copyright (C) 2002-2017 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 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}' 2>/dev/null" (#$ . 23405)) #@176 Perl program to use for decoding a file. Escape sequence %s is replaced with name of Perl binary. This string is passed to `format', so percent characters need to be doubled. (defconst tramp-perl-decode "%s -e '\n# This script contributed by Juanma Barranquero <lektu@terra.es>.\n# Copyright (C) 2002-2017 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}' 2>/dev/null" (#$ . 24693)) #@99 Perl program to use for encoding a file. Escape sequence %s is replaced with name of Perl binary. (defconst tramp-perl-pack "%s -e 'binmode STDIN; binmode STDOUT; print pack(q{u*}, join q{}, <>)'" (#$ . 26145)) #@99 Perl program to use for decoding a file. Escape sequence %s is replaced with name of Perl binary. (defconst tramp-perl-unpack "%s -e 'binmode STDIN; binmode STDOUT; print unpack(q{u*}, join q{}, <>)'" (#$ . 26362)) #@118 Awk program to use for encoding a file. This string is passed to `format', so percent characters need to be doubled. (defconst tramp-awk-encode "od -v -t x1 -A n | busybox awk '\\\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}'" (#$ . 26584)) #@118 Awk program to use for decoding a file. This string is passed to `format', so percent characters need to be doubled. (defconst tramp-awk-decode "busybox awk '\\\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 2>/dev/null\")\n }\n obc=0; o=0\n }\n }\n }\n }\n}'" (#$ . 27415)) #@70 Test command for checking `tramp-awk-encode' and `tramp-awk-decode'. (defconst tramp-awk-coding-test "test -c /dev/zero && od -v -t x1 -A n </dev/null && busybox awk '{}' </dev/null" (#$ . 28072)) #@46 Marker in stat commands for file attributes. (defconst tramp-stat-marker "/////" (#$ . 28275)) #@53 Quoted marker in stat commands for file attributes. (defconst tramp-stat-quoted-marker "\\/\\/\\/\\/\\/" (#$ . 28376)) #@251 Script to check existence of VC related files. It must be send formatted with two strings; the tests for file existence, and file readability. Input shall be read via here-document, otherwise the command could exceed maximum length of command line. (defconst tramp-vc-registered-read-file-names "echo \"(\"\nwhile read file; do\n if %s \"$file\"; then\n echo \"(\\\"$file\\\" \\\"file-exists-p\\\" t)\"\n else\n echo \"(\\\"$file\\\" \\\"file-exists-p\\\" nil)\"\n fi\n if %s \"$file\"; then\n echo \"(\\\"$file\\\" \\\"file-readable-p\\\" t)\"\n else\n echo \"(\\\"$file\\\" \\\"file-readable-p\\\" nil)\"\n fi\ndone\necho \")\"" (#$ . 28502)) #@106 Alist of handler functions. Operations not mentioned here will be handled by the normal Emacs functions. (defconst tramp-sh-file-name-handler-alist '((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-recursive-delete-directory . tramp-sh-handle-dired-recursive-delete-directory) (dired-uncache . tramp-handle-dired-uncache) (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-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-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) (insert-file-contents-literally . tramp-sh-handle-insert-file-contents-literally) (load . tramp-handle-load) (make-auto-save-file-name . tramp-handle-make-auto-save-file-name) (make-directory . tramp-sh-handle-make-directory) (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-sh-handle-start-file-process) (substitute-in-file-name . tramp-handle-substitute-in-file-name) (unhandled-file-name-directory . tramp-handle-unhandled-file-name-directory) (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)) (#$ . 29173)) (add-to-list 'tramp-foreign-file-name-handler-alist '(identity . tramp-sh-file-name-handler) 'append) #@472 Like `make-symbolic-link' for Tramp files. If LINKNAME is a non-Tramp file, it is used verbatim as the target of the symlink. If LINKNAME is a Tramp file, only the localname component is used as the target of the symlink. If LINKNAME is a Tramp file and the localname component is relative, then it is expanded first, before the localname component is taken. Note that this can give surprising results if the user/host for the source and target of the symlink differ. (defalias 'tramp-sh-handle-make-symbolic-link #[(filename linkname &optional ok-if-already-exists) "\306!\307 !\310 !\311 !\312 !\313 !@\314 !\315\316 C\"A\211B\204! \317\320\321CD=E\321FE\211E\203E\322\323\324\325\326!!G\327\216GG\330 \210)rGq\210\331 +CCDHE\3321HIX\205\333 J\334\216F\203\257 H\335X\203\257 \336\337H\340U\203\221 \341\202\250 H\342U\203\234 \341\202\250 H\343U\203\247 \344\202\250 \345DPC#\210I\346Y\205 \347E!\203\311 \340I\350E\351\321#E)H\342U\203\352 \340Ir\352E!q\210D\323PD\353C\331 C\"C*\354E!\205 \336\355E\356\357H\"DPC$*0\202 \210\202\n\210,\202LI\322Y\203LKLr\324\360!q\210p\361 \210LK\321\211MN\362\211O\362PQ\363 \210\364\365!\210+\211RG\330 \210\366R!\210+)E\203E\342\367\370=\211\371N\336\372DC#E!CCDHE\3731 HIX\205 \333 J\374\216F\203\267H\335X\203\267\336\337H\340U\203\231\341\202\260H\342U\203\244\341\202\260H\343U\203\257\344\202\260\345DPC#\210I\346Y\205\347E!\203\321\340I\350E\351\321#E)H\342U\203\362\340Ir\352E!q\210D\323PD\353C\331 C\"C*\354E!\205\336\355E\356\357H\"DPC$*0\202\210\202\210,\375=\336\372DC#C\"\210-\376!\203MS\203=S\247\203G\377\356\201U \"!\204G \201V \201W CCD=E\321FE\211E\203-E\322\323\324\325\326!!G\201X \216GG\330 \210)rGq\210\331 +CCDHE\201Y 1$HIX\205 \333 J\201Z \216F\203\316H\335X\203\316\336\337H\340U\203\260\341\202\307H\342U\203\273\341\202\307H\343U\203\306\344\202\307\345DPC#\210I\346Y\205\347E!\203\350\340I\350E\351\321#E)H\342U\203 \340Ir\352E!q\210D\323PD\353C\331 C\"C*\354E!\205\336\355E\356\357H\"DPC$*0\202(\210\202)\210,\202kI\322Y\203kKLr\324\360!q\210p\361 \210LK\321\211MN\362\211O\362PQ\363 \210\364\365!\210+\211RG\330 \210\366R!\210+)E\2036E\342\367\370=\211\371N\336\372DC#E!CCDHE\201[ 10HIX\205,\333 J\201\\ \216F\203\332H\335X\203\332\336\337H\340U\203\274\341\202\323H\342U\203\307\341\202\323H\343U\203\322\344\202\323\345DPC#\210I\346Y\205+\347E!\203\364\340I\350E\351\321#E)H\342U\203\340Ir\352E!q\210D\323PD\353C\331 C\"C*\354E!\205+\336\355E\356\357H\"DPC$*0\2024\210\2025\210,\375=\336\372DC#C\"\210-\202M\201] !\210\201^ T!\203b\312\306\201_ T!!!T\201` \316 !\"\210\201` \"\210\201a \356\201b \201c A!\"\"\205\244\201a \356\201d B\201c T!\201c \201e \201f !P!$\".\207" [linkname l l-method l-user l-host l-localname tramp-dissect-file-name tramp-file-name-method tramp-file-name-user tramp-file-name-host tramp-file-name-localname tramp-file-name-hop tramp-get-remote-ln tramp-run-real-handler file-name-directory file-error "Making a symbolic link. ln(1) does not exist on the remote host." nil 10 "\n%s" get-buffer-create generate-new-buffer-name " *string-output*" #[nil "\301!\207" [standard-output kill-buffer] 2] backtrace buffer-string (error) match-data #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] 3 apply message 0 "" 1 2 "Warning: " "Tramp: " 4 processp tramp-get-connection-property "vector" tramp-get-connection-buffer append vectorp tramp-debug-message format "(%d) # " "*debug tramp*" kill-all-local-variables t erase-buffer run-hooks temp-buffer-setup-hook internal-temp-output-buffer-show "%s" error-message-string error-message format-message (error) #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] signal file-exists-p yes-or-no-p l-hop cwd ln arguments fmt-string vec-or-proc tramp-message-show-message standard-output level tramp-verbose save-match-data-internal default-directory #1=#:old-dir buffer-read-only buffer-file-name buffer-undo-list inhibit-modification-hooks inhibit-read-only #2=#:buf ok-if-already-exists filename "File %s already exists; make it a link anyway? " file-already-exists "File %s already exists" #[nil "\301!\207" [standard-output kill-buffer] 2] (error) #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] (error) #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] delete-file tramp-tramp-file-p expand-file-name tramp-flush-file-property tramp-send-command-and-check "cd %s" tramp-shell-quote-argument "%s -sf %s %s" "./" file-name-nondirectory] 11 (#$ . 32870)]) #@39 Like `file-truename' for Tramp files. (defalias 'tramp-sh-handle-file-truename #[(filename) "\306\307\310\311!!\312 !\313 !\314 !\315 !\316 !@\317\n\f\320 !\203?\n\321 \322\323$\211A\323=\2039\n\324B \325\326CCDEF\3271\344 EGX\205\340 \330 H\331\216I\203\216 E\332X\203\216 \333\334E\335U\203p \336\202\207 E\337U\203{ \336\202\207 E\340U\203\206 \341\202\207 \342DPC#\210G\325Y\205\337 \343F!\203\250 \335G\344F\345\324#F)E\337U\203\311 \335Gr\346F!q\210D\347PD\350C\351 C\"C*\352F!\205\337 \333\353F\306\354E\"DPC$*0\202\350 \210\202\351 \210,\355 !\203\356 \306\357\355 !\360 !#\"\210r\346 !q\210eb\210e\361 {B)\202p \362 !\203;\344 \363\324#\203;\344 \364\324#\203;\365 J\366#\210\367 \306\370\360 !\"\"B\202p \371\372 \373\"\324\335\374\324KLMNOPO\203 MLW\203 O\211AO\242N \375\376\377\201[ \350\201\\ \201] B!NC#\373#CCDEF\201^ 1)EGX\205%\330 H\201_ \216I\203\323E\332X\203\323\333\334E\335U\203\265\336\202\314E\337U\203\300\336\202\314E\340U\203\313\341\202\314\342DPC#\210G\325Y\205$\343F!\203\355\335G\344F\345\324#F)E\337U\203\335Gr\346F!q\210D\347PD\350C\351 C\"C*\352F!\205$\333\353F\306\354E\"DPC$*0\202-\210\202.\210,\201` \317\n\f\377\201[ \350\201a \201] B!NC#\373#$!@KN\201b \230\203 \375\201c \324CDEF\201d 1 EGX\205\330 H\201e \216I\203\263E\332X\203\263\333\334E\335U\203\225\336\202\254E\337U\203\240\336\202\254E\340U\203\253\341\202\254\342DPC#\210G\325Y\205\343F!\203\315\335G\344F\345\324#F)E\337U\203\356\335Gr\346F!q\210D\347PD\350C\351 C\"C*\352F!\205\333\353F\306\354E\"DPC$*0\202 \210\202\210,\202PN\201f \230\203\334 \375\201g \324CDEF\201h 1\314EGX\205\310\330 H\201i \216I\203vE\332X\203v\333\334E\335U\203X\336\202oE\337U\203c\336\202oE\340U\203n\341\202o\342DPC#\210G\325Y\205\307\343F!\203\220\335G\344F\345\324#F)E\337U\203\261\335Gr\346F!q\210D\347PD\350C\351 C\"C*\352F!\205\307\333\353F\306\354E\"DPC$*0\202\320\210\202\321\210,B\211AB\210\202PK;\203 \375\201j KCCDEF\201k 1\225EGX\205\221\330 H\201l \216I\203?E\332X\203?\333\334E\335U\203!\336\2028E\337U\203,\336\2028E\340U\2037\341\2028\342DPC#\210G\325Y\205\220\343F!\203Y\335G\344F\345\324#F)E\337U\203z\335Gr\346F!q\210D\347PD\350C\351 C\"C*\352F!\205\220\333\353F\306\354E\"DPC$*0\202\231\210\202\232\210,MTM\320K!\203\252\324B\201m K!\203\364\201n K\"\204\361 \201o \201p KCCDQF\324IF\211F\203\270F\201q \347\201r \201s \201t !!R\201u \216RR\201v \210)rRq\210\351 +CCDEF\201w 1\257EGX\205\253\330 H\201x \216I\203YE\332X\203Y\333\334E\335U\203;\336\202RE\337U\203F\336\202RE\340U\203Q\341\202R\342DPC#\210G\325Y\205\252\343F!\203s\335G\344F\345\324#F)E\337U\203\224\335Gr\346F!q\210D\347PD\350C\351 C\"C*\352F!\205\252\333\353F\306\354E\"DPC$*0\202\263\210\202\264\210,\202\fG\201q Y\203\fSTr\201r \201y !q\210p\201z \210TS\324\211UV\201{ \211W\201{ XY\201| \210\201} \201~ !\210+\211ZR\201v \210\201 Z!\210+)F\203\337F\337\201\200 \201\201 Q\211\201\202 N\333\201\203 DC#E!CCDEF\201\204 1\331EGX\205\325\330 H\201\205 \216I\203\203E\332X\203\203\333\334E\335U\203e\336\202|E\337U\203p\336\202|E\340U\203{\341\202|\342DPC#\210G\325Y\205\324\343F!\203\235\335G\344F\345\324#F)E\337U\203\276\335Gr\346F!q\210D\347PD\350C\351 C\"C*\352F!\205\324\333\353F\306\354E\"DPC$*0\202\335\210\202\336\210,\201Q Q\333\201\203 DC#C\"\210- K\350\372K\373\"O\"\211O\202RNBBB\202PMLY\203I \201o \201\206 LCCDQF\324IF\211F\203F\201q \347\201r \201s \201t !!R\201\207 \216RR\201v \210)rRq\210\351 +CCDEF\201\210 1EGX\205\330 H\201\211 \216I\203\261E\332X\203\261\333\334E\335U\203\223\336\202\252E\337U\203\236\336\202\252E\340U\203\251\341\202\252\342DPC#\210G\325Y\205\343F!\203\313\335G\344F\345\324#F)E\337U\203\354\335Gr\346F!q\210D\347PD\350C\351 C\"C*\352F!\205\333\353F\306\354E\"DPC$*0\202\210\202\f\210,\202dG\201q Y\203dSTr\201r \201y !q\210p\201z \210TS\324\211UV\201{ \211W\201{ XY\201| \210\201} \201~ !\210+\211ZR\201v \210\201 Z!\210+)F\2037 F\337\201\200 \201\201 Q\211\201\202 N\333\201\203 DC#E!CCDEF\201\212 11 EGX\205- \330 H\201\213 \216I\203\333E\332X\203\333\333\334E\335U\203\275\336\202\324E\337U\203\310\336\202\324E\340U\203\323\341\202\324\342DPC#\210G\325Y\205, \343F!\203\365\335G\344F\345\324#F)E\337U\203 \335Gr\346F!q\210D\347PD\350C\351 C\"C*\352F!\205, \333\353F\306\354E\"DPC$*0\2025 \210\2026 \210,\201Q Q\333\201\203 DC#C\"\210-\201] B!\211B\203b \377\201[ \336BB\373#\202c \373\211B\336\230\203n \373B. \325\201\214 BDCDEF\201\215 1$\nEGX\205 \n\330 H\201\216 \216I\203\316 E\332X\203\316 \333\334E\335U\203\260 \336\202\307 E\337U\203\273 \336\202\307 E\340U\203\306 \341\202\307 \342DPC#\210G\325Y\205\n\343F!\203\350 \335G\344F\345\324#F)E\337U\203 \n\335Gr\346F!q\210D\347PD\350C\351 C\"C*\352F!\205\n\333\353F\306\354E\"DPC$*0\202(\n\210\202)\n\210,B)A\201\217 \322A$\210A)\202;\324B \325\326CCDEF\201\220 1\362\nEGX\205\356\n\330 H\201\221 \216I\203\234\nE\332X\203\234\n\333\334E\335U\203~\n\336\202\225\nE\337U\203\211\n\336\202\225\nE\340U\203\224\n\341\202\225\n\342DPC#\210G\325Y\205\355\n\343F!\203\266\n\335G\344F\345\324#F)E\337U\203\327\n\335Gr\346F!q\210D\347PD\350C\351 C\"C*\352F!\205\355\n\333\353F\306\354E\"DPC$*0\202\366\n\210\202\367\n\210,\355 !\203\356 \306\357\355 !\360 !#\"\210r\346 !q\210eb\210e\361 {B)\202~\362 !\203I\344 \363\324#\203I\344 \364\324#\203I\365 J\366#\210\367 \306\370\360 !\"\"B\202~\371\372 \373\"\324\335\374\324KLMNOPO\203MLW\203O\211AO\242N \375\376\377\201[ \350\201\\ \201] B!NC#\373#CCDEF\201\222 17\fEGX\2053\f\330 H\201\223 \216I\203\341E\332X\203\341\333\334E\335U\203\303\336\202\332E\337U\203\316\336\202\332E\340U\203\331\341\202\332\342DPC#\210G\325Y\2052\f\343F!\203\373\335G\344F\345\324#F)E\337U\203\f\335Gr\346F!q\210D\347PD\350C\351 C\"C*\352F!\2052\f\333\353F\306\354E\"DPC$*0\202;\f\210\202<\f\210,\201` \317\n\f\377\201[ \350\201a \201] B!NC#\373#$!@KN\201b \230\203 \375\201c \324CDEF\201\224 1 EGX\205 \330 H\201\225 \216I\203\301\fE\332X\203\301\f\333\334E\335U\203\243\f\336\202\272\fE\337U\203\256\f\336\202\272\fE\340U\203\271\f\341\202\272\f\342DPC#\210G\325Y\205 \343F!\203\333\f\335G\344F\345\324#F)E\337U\203\374\f\335Gr\346F!q\210D\347PD\350C\351 C\"C*\352F!\205 \333\353F\306\354E\"DPC$*0\202 \210\202 \210,\202^N\201f \230\203\352 \375\201g \324CDEF\201\226 1\332 EGX\205\326 \330 H\201\227 \216I\203\204 E\332X\203\204 \333\334E\335U\203f \336\202} E\337U\203q \336\202} E\340U\203| \341\202} \342DPC#\210G\325Y\205\325 \343F!\203\236 \335G\344F\345\324#F)E\337U\203\277 \335Gr\346F!q\210D\347PD\350C\351 C\"C*\352F!\205\325 \333\353F\306\354E\"DPC$*0\202\336 \210\202\337 \210,B\211AB\210\202^K;\203 \375\201j KCCDEF\201\230 1\243EGX\205\237\330 H\201\231 \216I\203ME\332X\203M\333\334E\335U\203/\336\202FE\337U\203:\336\202FE\340U\203E\341\202F\342DPC#\210G\325Y\205\236\343F!\203g\335G\344F\345\324#F)E\337U\203\210\335Gr\346F!q\210D\347PD\350C\351 C\"C*\352F!\205\236\333\353F\306\354E\"DPC$*0\202\247\210\202\250\210,MTM\320K!\203\270\324B\201m K!\203\201n K\"\204\377 \201o \201p KCCDQF\324IF\211F\203\306F\201q \347\201r \201s \201t !!R\201\232 \216RR\201v \210)rRq\210\351 +CCDEF\201\233 1\275EGX\205\271\330 H\201\234 \216I\203gE\332X\203g\333\334E\335U\203I\336\202`E\337U\203T\336\202`E\340U\203_\341\202`\342DPC#\210G\325Y\205\270\343F!\203\201\335G\344F\345\324#F)E\337U\203\242\335Gr\346F!q\210D\347PD\350C\351 C\"C*\352F!\205\270\333\353F\306\354E\"DPC$*0\202\301\210\202\302\210,\202G\201q Y\203STr\201r \201y !q\210p\201z \210TS\324\211UV\201{ \211W\201{ XY\201| \210\201} \201~ !\210+\211ZR\201v \210\201 Z!\210+)F\203\355F\337\201\200 \201\201 Q\211\201\202 N\333\201\203 DC#E!CCDEF\201\235 1\347EGX\205\343\330 H\201\236 \216I\203\221E\332X\203\221\333\334E\335U\203s\336\202\212E\337U\203~\336\202\212E\340U\203\211\341\202\212\342DPC#\210G\325Y\205\342\343F!\203\253\335G\344F\345\324#F)E\337U\203\314\335Gr\346F!q\210D\347PD\350C\351 C\"C*\352F!\205\342\333\353F\306\354E\"DPC$*0\202\353\210\202\354\210,\201Q Q\333\201\203 DC#C\"\210- K\350\372K\373\"O\"\211O\202`NBBB\202^MLY\203W \201o \201\206 LCCDQF\324IF\211F\203F\201q \347\201r \201s \201t !!R\201\237 \216RR\201v \210)rRq\210\351 +CCDEF\201\240 1EGX\205\330 H\201\241 \216I\203\277E\332X\203\277\333\334E\335U\203\241\336\202\270E\337U\203\254\336\202\270E\340U\203\267\341\202\270\342DPC#\210G\325Y\205\343F!\203\331\335G\344F\345\324#F)E\337U\203\372\335Gr\346F!q\210D\347PD\350C\351 C\"C*\352F!\205\333\353F\306\354E\"DPC$*0\202\210\202\210,\202rG\201q Y\203rSTr\201r \201y !q\210p\201z \210TS\324\211UV\201{ \211W\201{ XY\201| \210\201} \201~ !\210+\211ZR\201v \210\201 Z!\210+)F\203EF\337\201\200 \201\201 Q\211\201\202 N\333\201\203 DC#E!CCDEF\201\242 1?EGX\205;\330 H\201\243 \216I\203\351E\332X\203\351\333\334E\335U\203\313\336\202\342E\337U\203\326\336\202\342E\340U\203\341\341\202\342\342DPC#\210G\325Y\205:\343F!\203\335G\344F\345\324#F)E\337U\203$\335Gr\346F!q\210D\347PD\350C\351 C\"C*\352F!\205:\333\353F\306\354E\"DPC$*0\202C\210\202D\210,\201Q Q\333\201\203 DC#C\"\210-\201] B!\211B\203p\377\201[ \336BB\373#\202q\373\211B\336\230\203|\373B. \325\201\214 BDCDEF\201\244 12EGX\205.\330 H\201\245 \216I\203\334E\332X\203\334\333\334E\335U\203\276\336\202\325E\337U\203\311\336\202\325E\340U\203\324\341\202\325\342DPC#\210G\325Y\205-\343F!\203\366\335G\344F\345\324#F)E\337U\203\335Gr\346F!q\210D\347PD\350C\351 C\"C*\352F!\205-\333\353F\306\354E\"DPC$*0\2026\210\2027\210,B)$.\201\246 !\336\230\203L\373\202M\336#\207" [filename v method user host localname format "%s%s" tramp-dissect-file-name expand-file-name tramp-file-name-method tramp-file-name-user tramp-file-name-host tramp-file-name-localname tramp-file-name-hop tramp-make-tramp-file-name file-name-absolute-p tramp-get-file-property "file-truename" undef nil 4 "Finding true name for `%s'" (error) match-data #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] 3 apply message 0 #3="" 1 2 "Warning: " "Tramp: " processp tramp-get-connection-property "vector" tramp-get-connection-buffer "\n%s" append buffer-string vectorp tramp-debug-message "(%d) # " tramp-get-remote-readlink tramp-send-command-and-check "%s --canonicalize-missing %s" tramp-shell-quote-argument point-at-eol tramp-get-remote-perl "perl-file-spec" "perl-cwd-realpath" tramp-maybe-send-script "tramp_perl_file_truename" tramp-send-command-and-read "tramp_perl_file_truename %s" 47 tramp-compat-split-string "/" 20 5 "Check %s" mapconcat hop value result arguments fmt-string level vec-or-proc tramp-verbose save-match-data-internal tramp-message-show-message tramp-perl-file-truename symlink-target numchase-limit numchase thisstep steps directory-sep-char signal standard-output default-directory #1=#:old-dir buffer-read-only buffer-file-name buffer-undo-list inhibit-modification-hooks inhibit-read-only #2=#:buf identity (#3#) reverse (error) #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] file-attributes (#3#) "." "Ignoring step `.'" (error) #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] ".." "Processing step `..'" (error) #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] "Follow symlink to %s" (error) #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] tramp-tramp-file-p tramp-equal-remote file-error "Symlink target `%s' on wrong host" 10 get-buffer-create generate-new-buffer-name " *string-output*" #[nil "\301!\207" [standard-output kill-buffer] 2] backtrace (error) #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] "*debug tramp*" kill-all-local-variables t erase-buffer run-hooks temp-buffer-setup-hook internal-temp-output-buffer-show "%s" error-message-string error-message format-message (error) #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] "Maximum number (%d) of symlinks exceeded" #[nil "\301!\207" [standard-output kill-buffer] 2] (error) #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] (error) #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] "True name of `%s' is `%s'" (error) #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] tramp-set-file-property (error) #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] (error) #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] (error) #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] (error) #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] (error) #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] #[nil "\301!\207" [standard-output kill-buffer] 2] (error) #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] (error) #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] #[nil "\301!\207" [standard-output kill-buffer] 2] (error) #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] (error) #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] (error) #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] file-name-nondirectory] 18 (#$ . 37692)]) #@39 Like `file-exists-p' for Tramp files. (defalias 'tramp-sh-handle-file-exists-p #[(filename) "\306!\307 !\310 !\311 !\312 !\313 !\314 !\203_ \315 \316\317$\211\317=\203Y \315 \320\321$??\206O \315 \322\321$??\206O \323 \324\325\326 !\327 !#\"\330 \316$\210)\202\201 \315 \320\321$??\206\201 \315 \322\321$??\206\201 \323 \324\325\326 !\327 !#\".\207" [filename v method user host localname tramp-dissect-file-name tramp-file-name-method tramp-file-name-user tramp-file-name-host tramp-file-name-localname tramp-file-name-hop file-name-absolute-p tramp-get-file-property "file-exists-p" undef "file-attributes-integer" nil "file-attributes-string" tramp-send-command-and-check format "%s %s" tramp-get-file-exists-command tramp-shell-quote-argument tramp-set-file-property hop value] 8 (#$ . 52056)]) #@41 Like `file-attributes' for Tramp files. (defalias 'tramp-sh-handle-file-attributes #[(filename &optional id-format) "\204 \306\3071\264 \310\311\n!!\312!\313!\314!\315!\316!\317!\203\203 \320\321\322\"\323$\211\323=\203} \212\324\325!\203T \326#\202d \327!\203c \330#\202d \331\206m \332#\")\333\321\322\"$\210)\202\260 \212\324\325!\203\225 \326#\202\245 \327!\203\244 \330#\202\245 \331\206\256 \332#\").0\207\210\331\207" [id-format last-coding-system-used filename v method user integer (error) tramp-dissect-file-name expand-file-name tramp-file-name-method tramp-file-name-user tramp-file-name-host tramp-file-name-localname tramp-file-name-hop file-name-absolute-p tramp-get-file-property format "file-attributes-%s" undef tramp-convert-file-attributes tramp-get-remote-stat tramp-do-file-attributes-with-stat tramp-get-remote-perl tramp-do-file-attributes-with-perl nil tramp-do-file-attributes-with-ls tramp-set-file-property host localname hop value] 7 (#$ . 52884)]) #@70 Implement `file-attributes' for Tramp files using the ls(1) command. (defalias 'tramp-do-file-attributes-with-ls #[(vec localname &optional id-format) "\306\211\211\211\211\211\211\211\211@ABC\307\310DCEFGH\3111\303 GIX\205\277 \312 J\313\216K\203m G\314X\203m \315\316G\317U\203O \320\202f G\321U\203Z \320\202f G\322U\203e \323\202f \324FPE#\210I\325Y\205\276 \326H!\203\207 \317I\327H\330\306#H)G\321U\203\250 \317Ir\331H!q\210F\332PF\333E\334 C\"E*\335H!\205\276 \315\336H\337\340G\"FPE$*0\202\307 \210\202\310 \210,\341C\337\342\343C!\344D!#\"\204\355 \341C\337\345\346C!\344D!#\"\205\347C\337\350\351C!L\352=\203\353\202\354\355C!\203 \356\202\357C!\203\360\202\320\344D!%\"\210r\361C!q\210\362 \317V\205eb\210\3631<\364p!0\202~\211MA@\365\232\205}\366\367MAA@\"\205}\364MAA@\317\321\224O!N\364\370\321MAA@\"!\211O\371\245PNP\\OP\371_Z+B)@\372\364p!!\364p!\364p!\364p!L\352=\203\252\247\204\240\373\n\247\204\274\373\202\274;\204\263\372!\n;\204\274\372\n!\364p! \317H\374=B \317H\375=AB\203\353\376\377!\210\355C!\203\344\364p!\202\352`\201Q {A\206\361\f\n\201R \201S \201T \201U @\373\257\f). \207" [res-symlink-target res-size res-gid res-uid res-numlinks res-filemodes nil 5 "file attributes with ls: %s" (error) match-data #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] 3 apply message 0 "" 1 2 "Warning: " "Tramp: " 4 processp tramp-get-connection-property "vector" tramp-get-connection-buffer "\n%s" append buffer-string vectorp tramp-debug-message format "(%d) # " tramp-send-command-and-check "%s %s" tramp-get-file-exists-command tramp-shell-quote-argument "%s -h %s" tramp-get-test-command tramp-send-command "%s %s %s %s" tramp-get-ls-command integer "-ildn" "-ild" tramp-get-ls-command-with-quoting-style "--quoting-style=c" tramp-get-ls-command-with-w-option "-w" tramp-get-buffer buffer-size (invalid-read-syntax) read "Integer constant overflow in reader" string-match "^[0-9]+\\([0-9][0-9][0-9][0-9][0-9]\\)\\'" match-string 65536 symbol-name -1 108 100 search-forward "-> " res-inode dirp symlinkp vec localname arguments fmt-string level vec-or-proc tramp-verbose save-match-data-internal tramp-message-show-message id-format err big small twiddle point-at-eol (0 0) (0 0) (0 0) t] 13 (#$ . 53936)]) #@66 Implement `file-attributes' for Tramp files using a Perl script. (defalias 'tramp-do-file-attributes-with-perl #[(vec localname &optional id-format) "\306\307 C\3101\223 \f&X\205\217 \311 '\312\216(\203K \f\313X\203K \314\315\f\316U\2031 \317\202F \f\320U\203; \317\202F \f\321U\203E \322\202F \323P\n#\210&\324Y\205\216 \325 !\203b \316&\326 \327\330#)\f\320U\203} \316&r\331 !q\210\332P\333\n\334 C\"*\335 !\205\216 \314\336 \337\340\f\"P\n$*0\202\227 \210\202\230 \210,\341)\342#\210\343\337\344\345 !*#\"\207" [vec localname arguments fmt-string level vec-or-proc 5 "file attributes with perl: %s" (error) match-data #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] 3 apply message 0 "" 1 2 "Warning: " "Tramp: " 4 processp tramp-get-connection-property "vector" nil tramp-get-connection-buffer "\n%s" append buffer-string vectorp tramp-debug-message format "(%d) # " tramp-maybe-send-script "tramp_perl_file_attributes" tramp-send-command-and-read "tramp_perl_file_attributes %s %s" tramp-shell-quote-argument tramp-verbose save-match-data-internal tramp-message-show-message tramp-perl-file-attributes id-format] 6 (#$ . 56320)]) #@68 Implement `file-attributes' for Tramp files using stat(1) command. (defalias 'tramp-do-file-attributes-with-stat #[(vec localname &optional id-format) "\306\307 C\3101\223 \f,X\205\217 \311 -\312\216.\203K \f\313X\203K \314\315\f\316U\2031 \317\202F \f\320U\203; \317\202F \f\321U\203E \322\202F \323P\n#\210,\324Y\205\216 \325 !\203b \316,\326 \327\330#)\f\320U\203} \316,r\331 !q\210\332P\333\n\334 C\"*\335 !\205\216 \314\336 \337\340\f\"P\n$*0\202\227 \210\202\230 \210,\341\337\342\343!\344 !\345!\344 !\346!/\2110\347=\203\272 \350\202\300 /\351/Q0\347=\203\313 \352\202\321 /\353/Q/\211\344 !1&\"\207" [vec localname arguments fmt-string level vec-or-proc 5 "file attributes with stat: %s" (error) match-data #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] 3 apply message 0 "" 1 2 "Warning: " "Tramp: " 4 processp tramp-get-connection-property "vector" nil tramp-get-connection-buffer "\n%s" append buffer-string vectorp tramp-debug-message format "(%d) # " tramp-send-command-and-read "( (%s %s || %s -h %s) && (%s -c '((%s%%N%s) %%h %s %s %%Xe0 %%Ye0 %%Ze0 %%se0 %s%%A%s t %%ie0 -1)' %s | sed -e 's/\"/\\\\\"/g' -e 's/%s/\"/g') || echo nil)" tramp-get-file-exists-command tramp-shell-quote-argument tramp-get-test-command tramp-get-remote-stat integer "%ue0" "%U" "%ge0" "%G" tramp-verbose save-match-data-internal tramp-message-show-message tramp-stat-marker id-format tramp-stat-quoted-marker] 17 (#$ . 57513)]) #@50 Like `set-visited-file-modtime' for Tramp files. (defalias 'tramp-sh-handle-set-visited-file-modtime #[(&optional time-list) "\306 \204 \307\310\311 \"\210\203 \312\313C\"\207\306 \314\315\n!\316!\317!\320!\"\321!#\322!$\323%\324\n!&\325&8\206E \326'\327\330!\203P \330J'\331\232\204a \312\313'C\"\210\202~ \332\333\334\335!\336#!#\"\210`\337 {&\340#\341&$\210\327\330!\203\207 .\314\207" [time-list coding-system-used f v method user buffer-file-name error "Can't set-visited-file-modtime: buffer `%s' not visiting a file" buffer-name tramp-run-real-handler set-visited-file-modtime nil tramp-dissect-file-name tramp-file-name-method tramp-file-name-user tramp-file-name-host tramp-file-name-localname tramp-file-name-hop t file-attributes 5 (-1 65535) boundp last-coding-system-used (0 0) tramp-send-command format "%s -ild %s" tramp-get-ls-command tramp-shell-quote-argument point-at-eol tramp-set-file-property "visited-file-modtime-ild" host localname hop remote-file-name-inhibit-cache attr modtime] 7 (#$ . 59005)]) #@305 Like `verify-visited-file-modtime' for Tramp files. At the time `verify-visited-file-modtime' calls this function, we already know that the buffer is visiting a file and that `visited-file-modtime' does not return 0. Do not call this function directly, unless those two cases are already taken care of. (defalias 'tramp-sh-handle-verify-visited-file-modtime #[(&optional buf) "r\206 pq\210\306 \211\203 \307 \310=\204 \311\312 \313\314$\204# \315\202\254 \316 !\317\n!\320\n!\321\n!\322\n!%\323\n!&\315'\324 !(\325(8)\307 *(\203y )\326\232\204y \327\330)*A:\204p *@*AD\202r *\"!\331W\202\252 (\203\246 \332\n\333\334\335\n!\336%!#\"\210r\337\n!q\210`\340 {()(\341\n%\342\343$\232\202\252 *\344\232.\n*\207" [buf f v method user host buffer-file-name visited-file-modtime 0 tramp-file-name-handler file-remote-p nil connected t tramp-dissect-file-name tramp-file-name-method tramp-file-name-user tramp-file-name-host tramp-file-name-localname tramp-file-name-hop file-attributes 5 (0 0) abs tramp-time-diff 2 tramp-send-command format "%s -ild %s" tramp-get-ls-command tramp-shell-quote-argument tramp-get-buffer point-at-eol tramp-get-file-property "visited-file-modtime-ild" "" (-1 65535) localname hop remote-file-name-inhibit-cache attr modtime mt] 8 (#$ . 60070)]) #@40 Like `set-file-modes' for Tramp files. (defalias 'tramp-sh-handle-set-file-modes #[(filename mode) "\306!\307 !\310 !\311 !\312 !\313 !\314 \315 !\"\210\314 \"\210\316 \317\320\321!\322 !#\323$.\207" [filename v method user host localname tramp-dissect-file-name tramp-file-name-method tramp-file-name-user tramp-file-name-host tramp-file-name-localname tramp-file-name-hop tramp-flush-file-property file-name-directory tramp-barf-unless-okay format "chmod %s %s" tramp-compat-decimal-to-octal tramp-shell-quote-argument "Error while changing file's mode %s" hop mode] 7 (#$ . 61375)]) #@40 Like `set-file-times' for Tramp files. (defalias 'tramp-sh-handle-set-file-times #[(filename &optional time) "\306!\203\205 \307!\310 !\311 !\312 !\313 !\314 !#\315 !\205\202 \316 \317 !\"\210\316 \"\210$\203= $\320\232\203B \321 \202D $\322%$\323 \324\325%\203V \326\202W \327\315 !\330 \331\332#\203{ \324\333%\203r \334\335$\322#\202w \334\335$\"\"\202| \327\336 !%\"*.\207\337\332\340\332\211\211\341\334\335$\"\336!&\342U\207" [filename v method user host localname tramp-tramp-file-p tramp-dissect-file-name tramp-file-name-method tramp-file-name-user tramp-file-name-host tramp-file-name-localname tramp-file-name-hop tramp-get-remote-touch tramp-flush-file-property file-name-directory (0 0) current-time t tramp-send-command-and-check format "%s %s %s %s" "env TZ=UTC" "" tramp-get-connection-property "touch-t" nil "-t %s" format-time-string "%Y%m%d%H%M.%S" tramp-shell-quote-argument tramp-call-process "touch" "-t" 0 hop time utc] 12 (#$ . 61980)]) #@191 Set the ownership for FILENAME. If UID and GID are provided, these values are used; otherwise uid and gid of the corresponding user is taken. Both parameters must be non-negative integers. (defalias 'tramp-set-file-uid-gid #[(filename &optional uid gid) "\306 !\203r \307 !\310\n!\311\n!\312\n!\313\n!$\314\n!%\315 \316U\203: \317\n!\203: \320$&'#\202m \321&!\203F &\206J \322\n\323\"\321'!\203V '\206Z \324\n\323\"'&\325\n\326\327&'\330$!$\"*.\202\307 \3312\273 \332\333\334\335#\211()B)\336\216\321&!\203\221 &\206\224 \337\323!\321'!\203\240 '\206\243 \340\323!'&\341\334\342\334\211\211\326\343&'#\330 !&-0\211*\331=?\205\306 *))\207" [last-coding-system-used filename v method user host tramp-tramp-file-p tramp-dissect-file-name tramp-file-name-method tramp-file-name-user tramp-file-name-host tramp-file-name-localname tramp-file-name-hop user-uid 0 tramp-local-host-p tramp-set-file-uid-gid natnump tramp-get-remote-uid integer tramp-get-remote-gid tramp-send-command format "chown %d:%d %s" tramp-shell-quote-argument #1=#:timeout run-with-timer 5 nil #[nil "\300\301\211\"\207" [throw #1#] 3] #[nil "\301!\207" [-with-timeout-timer- cancel-timer] 2] tramp-get-local-uid tramp-get-local-gid tramp-call-process "chown" "%d:%d" localname hop uid gid -with-timeout-timer- with-timeout-timers -with-timeout-value-] 11 (#$ . 62970)]) #@55 Check, whether SELINUX is enabled on the remote host. (defalias 'tramp-remote-selinux-p #[(vec) "\302\303!\304\305#\211\305=\203 \306\307\"\310\303!\304 #\210 )\207" [vec value tramp-get-connection-property tramp-get-connection-process "selinux-p" undef tramp-send-command-and-check "selinuxenabled" tramp-set-connection-property] 5 (#$ . 64351)]) #@46 Like `file-selinux-context' for Tramp files. (defalias 'tramp-sh-handle-file-selinux-context #[(filename) "\306!\307 !\310 !\311 !\312 !\313 !\"\314 !\203~ \315 \316\317$\211#\317=\203x \320\321$%\322 !\203k \323 \324\325\326 !\327 !#\"\203k r\330 !q\210eb\210\331$\332 \333#\203j \334\335!\334\336!\334\337!\334\340!F%)%*#\341 \316#$\210#)\202\277 \320\321$%\322 !\203\274 \323 \324\325\326 !\327 !#\"\203\274 r\330 !q\210eb\210\331$\332 \333#\203\273 \334\335!\334\336!\334\337!\334\340!F%)%*.\207" [filename v method user host localname tramp-dissect-file-name tramp-file-name-method tramp-file-name-user tramp-file-name-host tramp-file-name-localname tramp-file-name-hop file-name-absolute-p tramp-get-file-property "file-selinux-context" undef (nil nil nil nil) "\\([a-z0-9_]+\\):\\([a-z0-9_]+\\):\\([a-z0-9_]+\\):\\([a-z0-9_]+\\)" tramp-remote-selinux-p tramp-send-command-and-check format "%s -d -Z %s" tramp-get-ls-command tramp-shell-quote-argument tramp-get-connection-buffer re-search-forward point-at-eol t match-string 1 2 3 4 tramp-set-file-property hop value regexp context] 8 (#$ . 64711)]) #@50 Like `set-file-selinux-context' for Tramp files. (defalias 'tramp-sh-handle-set-file-selinux-context #[(filename context) "\306!\307 !\310 !\311 !\312 !\313 !:\205\304 \314 !\205\304 @;\205/ @A@;\205; A@\3158;\205G \3158\3168;\205S \3168 \317 \320\321\203i \320\322\"\202j \323 \203w \320\324 \"\202x \323\203\205 \320\325\"\202\206 \323\203\223 \320\326\"\202\224 \323\327 !&\"\205\303 \203\273 \203\273 \203\273 \203\273 \330 \331$\210\202\302 \330 \331\332$\210\333,.\207" [filename v method user host localname tramp-dissect-file-name tramp-file-name-method tramp-file-name-user tramp-file-name-host tramp-file-name-localname tramp-file-name-hop tramp-remote-selinux-p 2 3 tramp-send-command-and-check format "chcon %s %s %s %s %s" "--user=%s" "" "--role=%s" "--type=%s" "--range=%s" tramp-shell-quote-argument tramp-set-file-property "file-selinux-context" undef t hop context range type role] 10 (#$ . 65848)]) #@51 Check, whether ACL is enabled on the remote host. (defalias 'tramp-remote-acl-p #[(vec) "\302\303!\304\305#\211\305=\203 \306\307\"\310\303!\304 #\210 )\207" [vec value tramp-get-connection-property tramp-get-connection-process "acl-p" undef tramp-send-command-and-check "getfacl /" tramp-set-connection-property] 5 (#$ . 66828)]) #@34 Like `file-acl' for Tramp files. (defalias 'tramp-sh-handle-file-acl #[(filename) "\306!\307 !\310 !\311 !\312 !\313 !\314 !\203r \315 \316\317$\211\317=\203l \320 !\205b \321 \322\323\324 !\"\"\205b r\325 !q\210db\210\326 \210deV\205a \327\330!\204] \331\330!\205a \330\332 !)\333 \316$\210)\202\247 \320 !\205\247 \321 \322\323\324 !\"\"\205\247 r\325 !q\210db\210\326 \210deV\205\246 \327\330!\204\242 \331\330!\205\246 \330\332 !).\207" [filename v method user host localname tramp-dissect-file-name tramp-file-name-method tramp-file-name-user tramp-file-name-host tramp-file-name-localname tramp-file-name-hop file-name-absolute-p tramp-get-file-property "file-acl" undef tramp-remote-acl-p tramp-send-command-and-check format "getfacl -ac %s" tramp-shell-quote-argument tramp-get-connection-buffer delete-blank-lines subrp substring-no-properties functionp buffer-string tramp-set-file-property hop value] 7 (#$ . 67171)]) #@38 Like `set-file-acl' for Tramp files. (defalias 'tramp-sh-handle-set-file-acl #[(filename acl-string) "\306\307!!\310 !\311 !\312 !\313 !\314 !;\203J \315 !\203J \316 \317\320\321 !%\"\210\322 \323\"\203J \324 \325$\210\326\202R \324 \327\330$\210\323.\207" [filename v method user host localname tramp-dissect-file-name expand-file-name tramp-file-name-method tramp-file-name-user tramp-file-name-host tramp-file-name-localname tramp-file-name-hop tramp-remote-acl-p tramp-send-command format "setfacl --set-file=- %s <<'%s'\n%s\n%s\n" tramp-shell-quote-argument tramp-send-command-and-check nil tramp-set-file-property "file-acl" t "file-acl-string" undef hop acl-string tramp-end-of-heredoc] 8 (#$ . 68125)]) #@43 Like `file-executable-p' for Tramp files. (defalias 'tramp-sh-handle-file-executable-p #[(filename) "\306!\307 !\310 !\311 !\312 !\313 !\314 !\203H \315 \316\317$\211\317=\203B \320 \321\"\2068 \322\323\"\324 \316$\210)\202S \320 \321\"\206S \322\323\".\207" [filename v method user host localname tramp-dissect-file-name tramp-file-name-method tramp-file-name-user tramp-file-name-host tramp-file-name-localname tramp-file-name-hop file-name-absolute-p tramp-get-file-property "file-executable-p" undef tramp-check-cached-permissions 120 tramp-run-test "-x" tramp-set-file-property hop value] 6 (#$ . 68863)]) #@41 Like `file-readable-p' for Tramp files. (defalias 'tramp-sh-handle-file-readable-p #[(filename) "\306!\307 !\310 !\311 !\312 !\313 !\314 !\203H \315 \316\317$\211\317=\203B \320 \321\"\2068 \322\323\"\324 \316$\210)\202S \320 \321\"\206S \322\323\".\207" [filename v method user host localname tramp-dissect-file-name tramp-file-name-method tramp-file-name-user tramp-file-name-host tramp-file-name-localname tramp-file-name-hop file-name-absolute-p tramp-get-file-property "file-readable-p" undef tramp-check-cached-permissions 114 tramp-run-test "-r" tramp-set-file-property hop value] 6 (#$ . 69501)]) #@48 Like `file-newer-than-file-p' for Tramp files. (defalias 'tramp-sh-handle-file-newer-than-file-p #[(file1 file2) "\306!\204 \307\207\306 !\204 \310\207\212\311!\311 !\3128\313\232\2046 \312\n8\314\232\2046 \315\316\312\n8\3128\"V\202\215\317 \"\204d\320\321!\203H \202I !\322\f!\323\f!@\324\f!A\325\f!B\326\f!C\f\327\330 DDEFG\307HG\211G\203JG\331\332\333\334\335!!I\336\216II\337 \210)rIq\210\340 +CDEJG\3411AJKX\205=\342 L\343\216H\203\353 J\344X\203\353 \345\346J\315U\203\315 \347\202\344 J\350U\203\330 \347\202\344 J\351U\203\343 \352\202\344 \353EPD#\210K\354Y\205<\355G!\203\315K\356G\357\307#G)J\350U\203&\315Kr\360G!q\210E\332PE\361D\340 C\"D*\362G!\205<\345\363G\364\365J\"EPD$*0\202E\210\202F\210,\202\210K\331Y\203\210MNr\333\366!q\210p\367 \210NM\307\211OP\310\211Q\310RS\370 \210\371\372!\210+\211TI\337 \210\373T!\210+)G\203SG\350\374\375F\211\376N\345\377ED#E!CDEJG\201U 1MJKX\205I\342 L\201V \216H\203\367J\344X\203\367\345\346J\315U\203\331\347\202\360J\350U\203\344\347\202\360J\351U\203\357\352\202\360\353EPD#\210K\354Y\205H\355G!\203\315K\356G\357\307#G)J\350U\2032\315Kr\360G!q\210E\332PE\361D\340 C\"D*\362G!\205H\345\363G\364\365J\"EPD$*0\202Q\210\202R\210,\201F F\345\377ED#C\"\210.\320!\322\f!\323\f!@\324\f!A\325\f!B\326\f!C\201W \201X \f! #.+\207" [file1 file2 fa2 fa1 v method file-exists-p nil t file-attributes 5 (0 0) (0 0) 0 tramp-time-diff tramp-equal-remote tramp-dissect-file-name tramp-tramp-file-p tramp-file-name-method tramp-file-name-user tramp-file-name-host tramp-file-name-localname tramp-file-name-hop file-error "Files %s and %s must have same method, user, host" 10 "\n%s" get-buffer-create generate-new-buffer-name " *string-output*" #[nil "\301!\207" [standard-output kill-buffer] 2] backtrace buffer-string (error) match-data #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] 3 apply message "" 1 2 "Warning: " "Tramp: " 4 processp tramp-get-connection-property "vector" tramp-get-connection-buffer append vectorp tramp-debug-message format "(%d) # " "*debug tramp*" kill-all-local-variables erase-buffer run-hooks temp-buffer-setup-hook internal-temp-output-buffer-show "%s" error-message-string error-message format-message user host localname hop arguments fmt-string signal vec-or-proc tramp-message-show-message standard-output level tramp-verbose save-match-data-internal default-directory #1=#:old-dir buffer-read-only buffer-file-name buffer-undo-list inhibit-modification-hooks inhibit-read-only #2=#:buf (error) #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] tramp-run-test2 tramp-get-test-nt-command] 11 (#$ . 70133)]) #@42 Like `file-directory-p' for Tramp files. (defalias 'tramp-sh-handle-file-directory-p #[(filename) "\306!\307 !\310 !\311 !\312 !\313 ! G\314U\206L \315 !\203H \316 \317\320$\211\320=\203B \321\322\"\323 \317$\210)\202L \321\322\".\207" [filename v method user host localname tramp-dissect-file-name tramp-file-name-method tramp-file-name-user tramp-file-name-host tramp-file-name-localname tramp-file-name-hop 0 file-name-absolute-p tramp-get-file-property "file-directory-p" undef tramp-run-test "-d" tramp-set-file-property hop value] 6 (#$ . 72939)]) #@41 Like `file-writable-p' for Tramp files. (defalias 'tramp-sh-handle-file-writable-p #[(filename) "\306!\307 !\310 !\311 !\312 !\313 !\314 !\203` \315 \316\317$\211\317=\203Z \320!\203A \321 \322\"\206P \323\324\"\202P \323\325\326!\"\205P \323\324\326!\"\327 \316$\210)\202\203 \320!\203t \321 \322\"\206\203 \323\324\"\202\203 \323\325\326!\"\205\203 \323\324\326!\".\207" [filename v method user host localname tramp-dissect-file-name tramp-file-name-method tramp-file-name-user tramp-file-name-host tramp-file-name-localname tramp-file-name-hop file-name-absolute-p tramp-get-file-property "file-writable-p" undef file-exists-p tramp-check-cached-permissions 119 tramp-run-test "-w" "-d" file-name-directory tramp-set-file-property hop value] 6 (#$ . 73520)]) #@52 Like `file-ownership-preserved-p' for Tramp files. (defalias 'tramp-sh-handle-file-ownership-preserved-p #[(filename &optional group) "\306!\307 !\310 !\311 !\312 !\313 !\314 !\203c \315 \316\317$\211\317=\203] \320!\211?\206R \3218\322 \323\"U\205R ?\206R \3248\325 \323\"U)\326 \316$\210)\202\211 \320!\211?\206\210 \3218\322 \323\"U\205\210 ?\206\210 \3248\325 \323\"U).\207" [filename v method user host localname tramp-dissect-file-name tramp-file-name-method tramp-file-name-user tramp-file-name-host tramp-file-name-localname tramp-file-name-hop file-name-absolute-p tramp-get-file-property "file-ownership-preserved-p" undef file-attributes 2 tramp-get-remote-uid integer 3 tramp-get-remote-gid tramp-set-file-property hop value attributes group] 6 (#$ . 74315)]) #@56 Like `directory-files-and-attributes' for Tramp files. (defalias 'tramp-sh-handle-directory-files-and-attributes #[(directory &optional full match nosort id-format) "\204 \306\307 !\205\376 \310 !\311\312 !\313\n!\314\n!\315\n!\316\n!\"\317\n!#\320\"!\203| \321\n\"\322\323\"\324$\211$\324=\203v \212\325\326\327\n!\203V \330\n\"#\202f \331\n!\203e \332\n\"#\202f \333\")$\334\n\"\322\323\"$$\210$)\202\240 \212\325\335\327\n!\203\216 \330\n\"#\202\236 \331\n!\203\235 \332\n\"#\202\236 \333\").!%\333\211&'%\203\341 %\211A%\242'(\203\310 \336('@\"\203\253 )\203\327 '\310'@ \"\240\210'&B&\202\253 *\203\353 &\202\360 \337&\340\"\206\375 \341 )(*%+\207" [id-format directory v method user host integer file-directory-p expand-file-name copy-tree tramp-dissect-file-name tramp-file-name-method tramp-file-name-user tramp-file-name-host tramp-file-name-localname tramp-file-name-hop file-name-absolute-p tramp-get-file-property format "directory-files-and-attributes-%s" undef mapcar #[#1=(x) "@\302 A\"B\207" [x v tramp-convert-file-attributes] 4] tramp-get-remote-stat tramp-do-directory-files-and-attributes-with-stat tramp-get-remote-perl tramp-do-directory-files-and-attributes-with-perl nil tramp-set-file-property #[#1# "@\302 A\"B\207" [x v tramp-convert-file-attributes] 4] string-match sort #[(x y) "@ @\231\207" [x y] 2] tramp-handle-directory-files-and-attributes localname hop value temp result item match full nosort] 8 (#$ . 75130)]) #@81 Implement `directory-files-and-attributes' for Tramp files using a Perl script. (defalias 'tramp-do-directory-files-and-attributes-with-perl #[(vec localname &optional id-format) "\306\307 C\3101\223 \f=X\205\217 \311 >\312\216?\203K \f\313X\203K \314\315\f\316U\2031 \317\202F \f\320U\203; \317\202F \f\321U\203E \322\202F \323P\n#\210=\324Y\205\216 \325 !\203b \316=\326 \327\330#)\f\320U\203} \316=r\331 !q\210\332P\333\n\334 C\"*\335 !\205\216 \314\336 \337\340\f\"P\n$*0\202\227 \210\202\230 \210,\341@\342#\210\343\337\344\345 !A#\"\211B;\203m\346B\330<\330? \211\203y \347\332\350\351\352!!C\353\216CC\354 \210)rCq\210\334 +C\3551p\f=X\205l\311 >\356\216?\203(\f\313X\203(\314\315\f\316U\203\317\202#\f\320U\203\317\202#\f\321U\203\"\322\202#\323P\n#\210=\324Y\205k\325 !\203?\316=\326 \327\330#)\f\320U\203Z\316=r\331 !q\210\332P\333\n\334 C\"*\335 !\205k\314\336 \337\340\f\"P\n$*0\202t\210\202u\210,\202\267=\347Y\203\267DEr\350\357!q\210p\360 \210ED\330\211FG\361\211H\361IJ\362 \210\363\364!\210+\211KC\354 \210\365K!\210+) \203a \320\366\367<\211\370N\314\371\n#E!C\3721[\f=X\205W\311 >\373\216?\203\f\313X\203\314\315\f\316U\203\371\317\202\f\320U\203\317\202\f\321U\203 \322\202\323P\n#\210=\324Y\205V\325 !\203*\316=\326 \327\330#)\f\320U\203E\316=r\331 !q\210\332P\333\n\334 C\"*\335 !\205V\314\336 \337\340\f\"P\n$*0\202_\210\202`\210,\374<\314\371\n#C\"\210-B)\207" [vec localname arguments fmt-string level vec-or-proc 5 "directory-files-and-attributes with perl: %s" (error) match-data #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] 3 apply message 0 "" 1 2 "Warning: " "Tramp: " 4 processp tramp-get-connection-property "vector" nil tramp-get-connection-buffer "\n%s" append buffer-string vectorp tramp-debug-message format "(%d) # " tramp-maybe-send-script "tramp_perl_directory_files_and_attributes" tramp-send-command-and-read "tramp_perl_directory_files_and_attributes %s %s" tramp-shell-quote-argument file-error 10 get-buffer-create generate-new-buffer-name " *string-output*" #[nil "\301!\207" [standard-output kill-buffer] 2] backtrace (error) #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] "*debug tramp*" kill-all-local-variables t erase-buffer run-hooks temp-buffer-setup-hook internal-temp-output-buffer-show "%s" error-message-string error-message format-message (error) #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] signal tramp-verbose save-match-data-internal tramp-message-show-message tramp-perl-directory-files-and-attributes id-format object standard-output default-directory #1=#:old-dir buffer-read-only buffer-file-name buffer-undo-list inhibit-modification-hooks inhibit-read-only #2=#:buf] 11 (#$ . 76639)]) #@83 Implement `directory-files-and-attributes' for Tramp files using stat(1) command. (defalias 'tramp-do-directory-files-and-attributes-with-stat #[(vec localname &optional id-format) "\306\307 C\3101\223 \f/X\205\217 \311 0\312\2161\203K \f\313X\203K \314\315\f\316U\2031 \317\202F \f\320U\203; \317\202F \f\321U\203E \322\202F \323P\n#\210/\324Y\205\216 \325 !\203b \316/\326 \327\330#)\f\320U\203} \316/r\331 !q\210\332P\333\n\334 C\"*\335 !\205\216 \314\336 \337\340\f\"P\n$*0\202\227 \210\202\230 \210,\341\337\342\343 !\344!\345!\203\255 \346\202\270 \347!\203\267 \350\202\270 \317\351!2\211\211\2113\352=\203\313 \353\202\321 2\3542Q3\352=\203\334 \355\202\342 2\3562Q2\2114&\"\207" [vec localname arguments fmt-string level vec-or-proc 5 "directory-files-and-attributes with stat: %s" (error) match-data #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] 3 apply message 0 "" 1 2 "Warning: " "Tramp: " 4 processp tramp-get-connection-property "vector" nil tramp-get-connection-buffer "\n%s" append buffer-string vectorp tramp-debug-message format "(%d) # " tramp-send-command-and-read "cd %s && echo \"(\"; (%s %s -a | xargs %s -c '(%s%%n%s (%s%%N%s) %%h %s %s %%Xe0 %%Ye0 %%Ze0 %%se0 %s%%A%s t %%ie0 -1)' -- 2>/dev/null | sed -e 's/\"/\\\\\"/g' -e 's/%s/\"/g'); echo \")\"" tramp-shell-quote-argument tramp-get-ls-command tramp-get-ls-command-with-quoting-style "--quoting-style=shell" tramp-get-ls-command-with-w-option "-w" tramp-get-remote-stat integer "%ue0" "%U" "%ge0" "%G" tramp-verbose save-match-data-internal tramp-message-show-message tramp-stat-marker id-format tramp-stat-quoted-marker] 17 (#$ . 79527)]) #@51 Like `file-name-all-completions' for Tramp files. (defalias 'tramp-sh-handle-file-name-all-completions #[(filename directory) "\306 \307\216\310\311 \"*?\205\205\312\313\n!!\314!\315!\316!@\317!A\320!B\321 \322\323C\2066 DC\324\325\322\326\327 G\330\331#\"\"@)\206\201\332E\333\334!\203| \335F\336#\210\337\340\341A!\341 !\342\343!\203n \343\202o \344J\203w \330\202x \345$\202\236 \337\346\341A!\347! G\345U\203\220 \350\202\226 \337\351\341 !\"\347!\352!&\"\210r\353!q\210db\210\331y\210\354\355!\203\366\331y\210\356\357`\360 {CGHIJ\332KJ\211J\203\257J\361\362\363\364\365!!L\366\216LL\367 \210)rLq\210\370 +CGHMJ\3711\246MNX\205\242\306 \372\216K\203@M\373X\203@\324\374M\345U\203 \375\2029M\330U\203+\375\2029M\376U\2036\377\2029\201W HPG#\210N\201X Y\205\241\201Y J!\203b\345N\201Z J\201[ \332#J)M\330U\203\205\345Nr\201\\ J!q\210H\362PH\325G\370 C\"G*\201] J!\205\241\324\201^ J\337\201_ M\"HPG$*0\202\252\210\202\253\210,\202\375N\361Y\203\375OPr\363\201` !q\210p\201a \210PO\332\211QR\201b \211S\201b TU\201c \210\201d \201e !\210+\211VL\367 \210\201f V!\210+)J\203\341J\330\201g \201h I\211\201i N\324\201j HG#E!CGHMJ\201k 1\333MNX\205\327\306 \201l \216K\203uM\373X\203u\324\374M\345U\203U\375\202nM\330U\203`\375\202nM\376U\203k\377\202n\201W HPG#\210N\201X Y\205\326\201Y J!\203\227\345N\201Z J\201[ \332#J)M\330U\203\272\345Nr\201\\ J!q\210H\362PH\325G\370 C\"G*\201] J!\205\326\324\201^ J\337\201_ M\"HPG$*0\202\337\210\202\340\210,\201I I\324\201j HG#C\"\210-\202F\354\201m !\204F\356\201n \341A!\370 DGHIJ\332KJ\211J\203J\361\362\363\364\365!!L\201o \216LL\367 \210)rLq\210\370 +CGHMJ\201p 1\371MNX\205\365\306 \201q \216K\203\223M\373X\203\223\324\374M\345U\203s\375\202\214M\330U\203~\375\202\214M\376U\203\211\377\202\214\201W HPG#\210N\201X Y\205\364\201Y J!\203\265\345N\201Z J\201[ \332#J)M\330U\203\330\345Nr\201\\ J!q\210H\362PH\325G\370 C\"G*\201] J!\205\364\324\201^ J\337\201_ M\"HPG$*0\202\375\210\202\376\210,\202PN\361Y\203POPr\363\201` !q\210p\201a \210PO\332\211QR\201b \211S\201b TU\201c \210\201d \201e !\210+\211VL\367 \210\201f V!\210+)J\2034J\330\201g \201h I\211\201i N\324\201j HG#E!CGHMJ\201r 1.MNX\205*\306 \201s \216K\203\310M\373X\203\310\324\374M\345U\203\250\375\202\301M\330U\203\263\375\202\301M\376U\203\276\377\202\301\201W HPG#\210N\201X Y\205)\201Y J!\203\352\345N\201Z J\201[ \332#J)M\330U\203 \345Nr\201\\ J!q\210H\362PH\325G\370 C\"G*\201] J!\205)\324\201^ J\337\201_ M\"HPG$*0\2022\210\2023\210,\201I I\324\201j HG#C\"\210-\331y\345U\203Y`\360 {EBE\202F)\201t A\201u \201b $\210\201v \201w E\"\210\201t A P\201x E$)\"\".\207" [save-match-data-internal filename directory v method user match-data #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] string-match "/" tramp-dissect-file-name expand-file-name tramp-file-name-method tramp-file-name-user tramp-file-name-host tramp-file-name-localname tramp-file-name-hop all-completions mapcar list apply append #[(x) "\305 \n\306OP\307\310$\211\205 \fC)\207" [v localname filename x cache-hit tramp-get-file-property 0 "file-name-all-completions" nil] 7] tramp-compat-number-sequence 1 -1 nil tramp-send-command tramp-get-remote-perl tramp-maybe-send-script "tramp_perl_file_name_all_completions" format "tramp_perl_file_name_all_completions %s %s %d" tramp-shell-quote-argument boundp read-file-name-completion-ignore-case completion-ignore-case 0 "(cd %s 2>&1 && (%s -a %s 2>/dev/null || %s -a 2>/dev/null) | while IFS= read f; do if %s -d \"$f\" 2>/dev/null; then \\echo \"$f/\"; else \\echo \"$f\"; fi; done && \\echo ok) || \\echo fail" tramp-get-ls-command "." "-d %s*" tramp-get-test-command tramp-get-buffer looking-at "^fail$" file-error "tramp-sh-handle-file-name-all-completions: %s" point-at-eol 10 "\n%s" get-buffer-create generate-new-buffer-name " *string-output*" #[nil "\301!\207" [standard-output kill-buffer] 2] backtrace buffer-string (error) #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] 3 message "" 2 "Warning: " host localname hop remote-file-name-inhibit-cache tramp-completion-reread-directory-timeout result tramp-perl-file-name-all-completions arguments fmt-string signal vec-or-proc tramp-message-show-message standard-output level tramp-verbose default-directory #1=#:old-dir buffer-read-only buffer-file-name buffer-undo-list inhibit-modification-hooks inhibit-read-only #2=#:buf "Tramp: " 4 processp tramp-get-connection-property "vector" tramp-get-connection-buffer vectorp tramp-debug-message "(%d) # " "*debug tramp*" kill-all-local-variables t erase-buffer run-hooks temp-buffer-setup-hook internal-temp-output-buffer-show "%s" error-message-string error-message format-message (error) #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] "^ok$" "tramp-sh-handle-file-name-all-completions: internal error accessing `%s': `%s'" #[nil "\301!\207" [standard-output kill-buffer] 2] (error) #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] (error) #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] tramp-set-file-property "file-exists-p" mapc #[(entry) "\303 \nP\304\305$\207" [v localname entry tramp-set-file-property "file-exists-p" t] 5] "file-name-all-completions"] 15 (#$ . 81218)]) #@42 Like `add-name-to-file' for Tramp files. (defalias 'tramp-sh-handle-add-name-to-file #[(filename newname &optional ok-if-already-exists) "\306 \"\204%\307\310!\203 \202 !\311\n!\312\n!\313\n!\314\n!@\315\n!A\n\316\317\320CBC=D\321ED\211D\203D\322\323\324\325\326!!F\327\216FF\330 \210)rFq\210\331 +CBCGD\3321GHX\205\333 I\334\216E\203\262 G\335X\203\262 \336\337G\340U\203\224 \341\202\253 G\342U\203\237 \341\202\253 G\343U\203\252 \344\202\253 \345CPB#\210H\346Y\205\347D!\203\314 \340H\350D\351\321#D)G\342U\203\355 \340Hr\352D!q\210C\323PC\353B\331 C\"B*\354D!\205\336\355D\356\357G\"CPB$*0\202\f\210\202 \210,\202OH\322Y\203OJKr\324\360!q\210p\361 \210KJ\321\211LM\362\211N\362OP\363 \210\364\365!\210+\211QF\330 \210\366Q!\210+)D\203D\342\367\370=\211\371N\336\372CB#E!CBCGD\3731GHX\205\f\333 I\374\216E\203\272G\335X\203\272\336\337G\340U\203\234\341\202\263G\342U\203\247\341\202\263G\343U\203\262\344\202\263\345CPB#\210H\346Y\205\347D!\203\324\340H\350D\351\321#D)G\342U\203\365\340Hr\352D!q\210C\323PC\353B\331 C\"B*\354D!\205\336\355D\356\357G\"CPB$*0\202\210\202\210,\375=\336\372CB#C\"\210.\307!R\311R!S\312R!T\313R!U\314R!V\315R!W\307 !X\311X!Y\312X!Z\313X![\314X!\\\315X!]R\205t\376R!^_\247\203\225\377 !\203\225\201` \356\201a \"!\203\225X\316\201b CBC=D\321ED\211D\203~D\322\323\324\325\326!!F\201c \216FF\330 \210)rFq\210\331 +CBCGD\201d 1uGHX\205q\333 I\201e \216E\203G\335X\203\336\337G\340U\203\341\202G\342U\203\f\341\202G\343U\203\344\202\345CPB#\210H\346Y\205p\347D!\2039\340H\350D\351\321#D)G\342U\203Z\340Hr\352D!q\210C\323PC\353B\331 C\"B*\354D!\205p\336\355D\356\357G\"CPB$*0\202y\210\202z\210,\202\274H\322Y\203\274JKr\324\360!q\210p\361 \210KJ\321\211LM\362\211N\362OP\363 \210\364\365!\210+\211QF\330 \210\366Q!\210+)D\203\207D\342\367\370=\211\371N\336\372CB#E!CBCGD\201f 1\201GHX\205}\333 I\201g \216E\203+G\335X\203+\336\337G\340U\203 \341\202$G\342U\203\341\202$G\343U\203#\344\202$\345CPB#\210H\346Y\205|\347D!\203E\340H\350D\351\321#D)G\342U\203f\340Hr\352D!q\210C\323PC\353B\331 C\"B*\354D!\205|\336\355D\356\357G\"CPB$*0\202\205\210\202\206\210,\375=\336\372CB#C\"\210-_\203\242^\201h P^\201i X\201j \\!\"\210\201i X\\\"\210\201k R\356\201l ^\201m V!\201m \\!$\201n \201o $. \207" [filename newname v method user host tramp-equal-remote tramp-dissect-file-name tramp-tramp-file-p tramp-file-name-method tramp-file-name-user tramp-file-name-host tramp-file-name-localname tramp-file-name-hop file-error "add-name-to-file: %s" "only implemented for same method, same user, same host" nil 10 "\n%s" get-buffer-create generate-new-buffer-name " *string-output*" #[nil "\301!\207" [standard-output kill-buffer] 2] backtrace buffer-string (error) match-data #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] 3 apply message 0 "" 1 2 "Warning: " "Tramp: " 4 processp tramp-get-connection-property "vector" tramp-get-connection-buffer append vectorp tramp-debug-message format "(%d) # " "*debug tramp*" kill-all-local-variables t erase-buffer run-hooks temp-buffer-setup-hook internal-temp-output-buffer-show "%s" error-message-string error-message format-message (error) #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] signal tramp-get-remote-ln file-exists-p localname hop arguments fmt-string vec-or-proc tramp-message-show-message standard-output level tramp-verbose save-match-data-internal default-directory #1=#:old-dir buffer-read-only buffer-file-name buffer-undo-list inhibit-modification-hooks inhibit-read-only #2=#:buf v1 v1-method v1-user v1-host v1-localname v1-hop v2 v2-method v2-user v2-host v2-localname v2-hop ln ok-if-already-exists yes-or-no-p "File %s already exists; make it a new name anyway? " "add-name-to-file: file %s already exists" #[nil "\301!\207" [standard-output kill-buffer] 2] (error) #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] (error) #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] " -f" tramp-flush-file-property file-name-directory tramp-barf-unless-okay "%s %s %s" tramp-shell-quote-argument "error with add-name-to-file, see buffer `%s' for details" buffer-name] 11 (#$ . 86812)]) #@35 Like `copy-file' for Tramp files. (defalias 'tramp-sh-handle-copy-file #[(filename newname &optional ok-if-already-exists keep-date preserve-uid-gid preserve-extended-attributes) "\306!\306 !\307!\204 \307 !\203 \310\311 \n\f &\207 \203/ \312\313 \n\f \257\"\207\f\203>