tramp-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Tramp and NT-Emacs with plink


From: Douglas Gray Stephens
Subject: Re: Tramp and NT-Emacs with plink
Date: Fri, 13 Sep 2002 15:14:25 +0100

Kai,

At 15:26 (GMT+0200) on 13-September-2002, Kai Großjohann wrote:
 > Douglas Gray Stephens <address@hidden> writes:
 > 
 > >  > Hm.  What do the following return at that spot?
 > >  > 
 > >  > (tramp-get-remote-encoding multi-method method user host)
 > >  > (tramp-get-remote-decoding multi-method method user host)
 > >  > (tramp-get-local-encoding multi-method method user host)
 > >  > (tramp-get-local-decoding multi-method method user host)
 > >  > 
 > >  > multi-method is nil, method should be "plink", and user and host are
 > >  > obvious I think.
 > >
 > > (tramp-get-remote-encoding nil "plink" "gray" "gray-linux-scr")
 > > "mimencode -b"
 > >
 > > (tramp-get-remote-decoding nil "plink" "gray" "gray-linux-scr")
 > > "mimencode -u -b"
 > >
 > > (tramp-get-local-encoding nil "plink" "gray" "gray-linux-scr")
 > > base64-encode-region
 > >
 > > (tramp-get-local-decoding nil "plink" "gray" "gray-linux-scr")
 > > base64-decode-region
 > >
 > > It looks as if the remote file is updated, but tramp thinks there was
 > > a problem.
 > 
 > These look good.  I'm confused.  [time passes]  Ah!  The parens are
 > wrong.  Please try this patch:
 > 
 > --- tramp.el.~2.211.~        Fri Sep 13 12:13:15 2002
 > +++ tramp.el Fri Sep 13 15:24:44 2002
 > @@ -3214,7 +3214,7 @@
 >              multi-method method user host
 >              6 "Transferring file using `%s'...done"
 >              rcp-program)))
 > -        ((and rem-enc rem-dec
 > +        ((and rem-enc rem-dec)
 >           ;; Use inline file transfer
 >           (let ((tmpbuf (get-buffer-create " *tramp file transfer*")))
 >             (save-excursion
 > @@ -3289,7 +3289,7 @@
 >                filename rem-dec)
 >               (tramp-message 5 "Decoding region into remote file %s...done"
 >                              filename)
 > -             (kill-buffer tmpbuf)))))
 > +             (kill-buffer tmpbuf))))
 >          (t
 >           (error
 >            (concat "Method `%s' should specify both encoding and "
 > 

The patch fixed the issue with saving files, thankyou.

 > > I also noticed while getting this information that
 > > find-file
 > >  /address@hidden:work/temp.pl
 > > appears to fail with an error
 > >  Not a tramp file name: d:/temp/address@hidden
 > >
 > > I guess that I'm clashing with some regular expressions.  The full
 > > *Messages* buffer is appended.
 > 
 > If this still happens with the patch, please send the *debug
 > tramp/foo* buffer (always send that buffer, the messages buffer is
 > not so useful for me).  You have to (setq tramp-debug-buffer t) to
 > get the *debug tramp/foo* buffer.

I still get this error, so have attached the dubug buffer.  I did
wonder about the debug buffer last time, but as it appeared (to my
untrained eye) to have nothing on the error, I thought the messages
may have more.  I did set debug-on-error to be true, and have also
attached the backtrace buffer in case that shows anything.

Cheers,

Douglas.


# Opening connection for address@hidden using plink...
# Waiting for prompts from remote shell
# Waiting 60s for prompt from remote shell
# Looking for regexp "^.*\([pP]assword\|passphrase.*\):? *" from remote shell
# Sending password
# Looking for regexp ".*ogin: *" from remote shell
# Looking for regexp "^[^#$%>
]*[#$%>] *" from remote shell
# Looking for regexp "^[^#$%>
]*[#$%>] *" from remote shell
# Looking for regexp "^.*\(Connection \(closed\|refused\)\|Host key 
verification failed\.\|Login \(Incorrect\|incorrect\)\|Name or service not 
known\|Permission denied\.\|Sorry, try again\.\).*\|^.*\(Received signal 
[0-9]+\).*" from remote shell
# Looking for regexp "\(Are you sure you want to continue connecting 
(yes/no)\?\)\s-*" from remote shell
# Looking for regexp "\(Store key in cache\? (y/n)\)\s-*" from remote shell
# Looking for regexp "^.*\([pP]assword\|passphrase.*\):? *" from remote shell
# Looking for regexp ".*ogin: *" from remote shell
# Looking for regexp "^[^#$%>
]*[#$%>] *" from remote shell
# Looking for regexp "^[^#$%>
]*[#$%>] *" from remote shell
# Looking for regexp "^.*\(Connection \(closed\|refused\)\|Host key 
verification failed\.\|Login \(Incorrect\|incorrect\)\|Name or service not 
known\|Permission denied\.\|Sorry, try again\.\).*\|^.*\(Received signal 
[0-9]+\).*" from remote shell
# Looking for regexp "\(Are you sure you want to continue connecting 
(yes/no)\?\)\s-*" from remote shell
# Looking for regexp "\(Store key in cache\? (y/n)\)\s-*" from remote shell
# Looking for regexp "^.*\([pP]assword\|passphrase.*\):? *" from remote shell
# Looking for regexp ".*ogin: *" from remote shell
# Looking for regexp "^[^#$%>
]*[#$%>] *" from remote shell
# Found remote shell prompt.
# Initializing remote shell
$ exec env PS1='$ ' /bin/sh
# Waiting 30s for remote `/bin/sh' to come up...
exec env 'PS1=$ ' /bin/sh
$ # Setting up remote shell environment
stty -inlcr -echo kill '^U'
$ $ # Determining coding system
foo
bar
$ # Waiting 30s for `HISTFILE=$HOME/.tramp_history; HISTSIZE=1'
$ # Waiting 30s for `set +o vi +o emacs'
$ # Waiting 30s for `unset MAIL MAILCHECK MAILPATH'
$ # Waiting 30s for `unset CDPATH'
$ # Setting shell prompt
$ PS1='
/////
'; PS2=''; PS3=''
$ echo ~root
/root
# Remote `/bin/sh' groks tilde expansion, good
# Finding command to check if file exists
$ test -e / 2>/dev/null; echo tramp_exit_status $? 
tramp_exit_status 0
$ test -e /\ this\ file\ does\ not\ exist\  2>/dev/null; echo tramp_exit_status 
$? 
tramp_exit_status 1
# Finding a suitable `ls' command
# Checking remote `/export/home/gray/bin/ls' command for `-n' option
$ test -x /export/home/gray/bin/ls 2>/dev/null; echo tramp_exit_status $? 
tramp_exit_status 1
# Checking remote `/bin/ls' command for `-n' option
$ test -x /bin/ls 2>/dev/null; echo tramp_exit_status $? 
tramp_exit_status 0
# Testing remote command `/bin/ls' for -n...
$ /bin/ls -lnd / >/dev/null 2>/dev/null; echo tramp_exit_status $? 
tramp_exit_status 0
# Testing remote command `/bin/ls' for -n...okay
# Using remote command `/bin/ls' for getting directory listings
$ tramp_set_exit_status () {
return $1
}
$ test -e /export/home/gray/bin 2>/dev/null; echo tramp_exit_status $? 
tramp_exit_status 1
$ test -e /bin 2>/dev/null; echo tramp_exit_status $? 
tramp_exit_status 0
$ ( test -d /bin 2>/dev/null; echo tramp_exit_status $? )
tramp_exit_status 0
$ test -e /usr/bin 2>/dev/null; echo tramp_exit_status $? 
tramp_exit_status 0
$ ( test -d /usr/bin 2>/dev/null; echo tramp_exit_status $? )
tramp_exit_status 0
$ test -e /usr/sbin 2>/dev/null; echo tramp_exit_status $? 
tramp_exit_status 0
$ ( test -d /usr/sbin 2>/dev/null; echo tramp_exit_status $? )
tramp_exit_status 0
$ test -e /usr/local/bin 2>/dev/null; echo tramp_exit_status $? 
tramp_exit_status 0
$ ( test -d /usr/local/bin 2>/dev/null; echo tramp_exit_status $? )
tramp_exit_status 0
$ test -e /usr/ccs/bin 2>/dev/null; echo tramp_exit_status $? 
tramp_exit_status 1
$ test -e /local/bin 2>/dev/null; echo tramp_exit_status $? 
tramp_exit_status 1
$ test -e /local/freeware/bin 2>/dev/null; echo tramp_exit_status $? 
tramp_exit_status 1
$ test -e /local/gnu/bin 2>/dev/null; echo tramp_exit_status $? 
tramp_exit_status 1
$ test -e /usr/freeware/bin 2>/dev/null; echo tramp_exit_status $? 
tramp_exit_status 1
$ test -e /usr/pkg/bin 2>/dev/null; echo tramp_exit_status $? 
tramp_exit_status 1
$ test -e /usr/contrib/bin 2>/dev/null; echo tramp_exit_status $? 
tramp_exit_status 1
$ PATH=/bin:/usr/bin:/usr/sbin:/usr/local/bin; export PATH
$ LC_TIME=C; export LC_TIME; echo huhu
huhu
$ mesg n; echo huhu
huhu
$ biff n ; echo huhu
sh: biff: command not found
huhu
$ unalias ls; echo huhu
sh: unalias: `ls': not an alias
huhu
$ ( test / -nt / )
$ tramp_test_nt () {
test -n "`find $1 -prune -newer $2 -print`"
}
$ tramp_uudecode () {
(echo begin 600 /tmp/tramp.$$; tail +2) | uudecode
cat /tmp/tramp.$$
rm -f /tmp/tramp.$$
}
$ while read d; do if test -x $d/perl5 -a -f $d/perl5; then echo 
tramp_executable $d/perl5; break; fi; done <<'EOF'
$ /export/home/gray/bin
$ /bin
$ /usr/bin
$ /usr/sbin
$ /usr/local/bin
$ /usr/ccs/bin
$ /local/bin
$ /local/freeware/bin
$ /local/gnu/bin
$ /usr/freeware/bin
$ /usr/pkg/bin
$ /usr/contrib/bin
$ EOF
$ while read d; do if test -x $d/perl -a -f $d/perl; then echo tramp_executable 
$d/perl; break; fi; done <<'EOF'
$ /export/home/gray/bin
$ /bin
$ /usr/bin
$ /usr/sbin
$ /usr/local/bin
$ /usr/ccs/bin
$ /local/bin
$ /local/freeware/bin
$ /local/gnu/bin
$ /usr/freeware/bin
$ /usr/pkg/bin
$ /usr/contrib/bin
$ EOF
tramp_executable /usr/bin/perl
# Sending the Perl `file-attributes' implementation.
$ tramp_file_attributes () {
/usr/bin/perl -e '$f = $ARGV[0];
@s = lstat($f);
if (($s[2] & 0170000) == 0120000) { $l = readlink($f); $l = "\"$l\""; }
elsif (($s[2] & 0170000) == 040000) { $l = "t"; }
else { $l = "nil" };
printf("(%s %u %d %d (%u %u) (%u %u) (%u %u) %u %u t (%u . %u) (%u %u))\n",
$l, $s[3], $s[4], $s[5], $s[8] >> 16 & 0xffff, $s[8] & 0xffff,
$s[9] >> 16 & 0xffff, $s[9] & 0xffff, $s[10] >> 16 & 0xffff, $s[10] & 0xffff,
$s[7], $s[2], $s[1] >> 16 & 0xffff, $s[1] & 0xffff, $s[0] >> 16 & 0xffff, $s[0] 
& 0xffff);' $1 2>/dev/null
}
# Sending the Perl `mime-encode' implementations.
$ tramp_encode () {
/usr/bin/perl -e '
# This script contributed by Juanma Barranquero <address@hidden>.
# Copyright (C) 2002 Free Software Foundation, Inc.
use strict;

my %trans = do {
    my $i = 0;
    map {(substr(unpack(q(B8), chr $i++), 2, 6), $_)}
      split //, 
q(ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/);
};

binmode(\*STDIN);

# We read in chunks of 54 bytes, to generate output lines
# of 72 chars (plus end of line)
$/ = \54;

while (my $data = <STDIN>) {
    my $pad = q();

    # Only for the last chunk, and only if did not fill the last three-byte 
packet
    if (eof) {
        my $mod = length($data) % 3;
        $pad = q(=) x (3 - $mod) if $mod;
    }

    # Not the fastest method, but it is simple: unpack to binary string, split
    # by groups of 6 bits and convert back from binary to byte; then map into
    # the translation table
    print
      join q(),
        map($trans{$_},
            (substr(unpack(q(B*), $data) . q(00000), 0, 432) =~ /....../g)),
              $pad,
                qq(\n);
}
' 2>/dev/null
}
$ tramp_encode_with_module () {
perl -MMIME::Base64 -0777 -ne 'print encode_base64($_)' 2>/dev/null
}
# Sending the Perl `mime-decode' implementations.
$ tramp_decode () {
/usr/bin/perl -e '
# This script contributed by Juanma Barranquero <address@hidden>.
# Copyright (C) 2002 Free Software Foundation, Inc.
use strict;

my %trans = do {
    my $i = 0;
    map {($_, sprintf(q(%06b), $i++))}
      split //, 
q(ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/)
};

my %bytes = map {(unpack(q(B8), chr $_), chr $_)} 0 .. 255;

binmode(\*STDOUT);

# We are going to accumulate into $pending to accept any line length
# (we do not check they are <= 76 chars as the RFC says)
my $pending = q();

while (my $data = <STDIN>) {
    chomp $data;

    # If we find one or two =, we have reached the end and
    # any following data is to be discarded
    my $finished = $data =~ s/(==?).*/$1/;
    $pending .= $data;

    my $len = length($pending);
    my $chunk = substr($pending, 0, $len & ~3, q());

    # Easy method: translate from chars to (pregenerated) six-bit packets, join,
    # split in 8-bit chunks and convert back to char.
    print join q(),
      map $bytes{$_},
        ((join q(), map {$trans{$_} || q()} split //, $chunk) =~ /......../g);

    last if $finished;
}
' 2>/dev/null
}
$ tramp_decode_with_module () {
perl -MMIME::Base64 -0777 -ne 'print decode_base64($_)' 2>/dev/null
}
$ while read d; do if test -x $d/ln -a -f $d/ln; then echo tramp_executable 
$d/ln; break; fi; done <<'EOF'
$ /export/home/gray/bin
$ /bin
$ /usr/bin
$ /usr/sbin
$ /usr/local/bin
$ /usr/ccs/bin
$ /local/bin
$ /local/freeware/bin
$ /local/gnu/bin
$ /usr/freeware/bin
$ /usr/pkg/bin
$ /usr/contrib/bin
$ EOF
tramp_executable /bin/ln
# Checking remote encoding command `mimencode -b' for sanity
$ ( mimencode -b </dev/null >/dev/null 2>/dev/null; echo tramp_exit_status $? )
tramp_exit_status 0
# Checking remote decoding command `mimencode -u -b' for sanity
$ ( echo xyzzy | mimencode -b | mimencode -u -b >/dev/null 2>/dev/null; echo 
tramp_exit_status $? )
tramp_exit_status 0
# Checking to see if encoding/decoding commands work on remote host...
$ echo xyzzy | mimencode -b | mimencode -u -b
xyzzy
# Checking to see if encoding/decoding commands work on remote host...done
$ cd ~; pwd
/home/gray
$ ( test -d /home/gray/work/temp.pl 2>/dev/null; echo tramp_exit_status $? )
tramp_exit_status 1
# Finding true name for `/plink:address@hidden:/home/gray/work/temp.pl'
# Check /home
$ test -e /home 2>/dev/null; echo tramp_exit_status $? 
tramp_exit_status 0
# file attributes with perl: /plink:address@hidden:/home
$ tramp_file_attributes /home
(t 13 0 0 (15745 21806) (15703 46115) (15703 46115) 4096 16877 t (1 . 30746) (0 
769))
# Check /home/gray
$ test -e /home/gray 2>/dev/null; echo tramp_exit_status $? 
tramp_exit_status 0
# file attributes with perl: /plink:address@hidden:/home/gray
$ tramp_file_attributes /home/gray
(t 20 500 500 (15745 61817) (15744 26181) (15744 26181) 4096 16877 t (1 . 
63138) (0 769))
# Check /home/gray/work
$ test -e /home/gray/work 2>/dev/null; echo tramp_exit_status $? 
tramp_exit_status 0
# file attributes with perl: /plink:address@hidden:/home/gray/work
$ tramp_file_attributes /home/gray/work
(t 17 500 500 (15745 48595) (15745 61703) (15745 61703) 4096 16893 t (1 . 
63180) (0 769))
# Check /home/gray/work/temp.pl
$ test -e /home/gray/work/temp.pl 2>/dev/null; echo tramp_exit_status $? 
tramp_exit_status 0
# file attributes with perl: /plink:address@hidden:/home/gray/work/temp.pl
$ tramp_file_attributes /home/gray/work/temp.pl
(nil 1 500 500 (15745 56362) (15745 55402) (15745 55402) 2019 33204 t (1 . 
63700) (0 769))
# True name of `/plink:address@hidden:/home/gray/work/temp.pl' is 
`/home/gray/work/temp.pl'
$ test -e /home/gray/work/temp.pl 2>/dev/null; echo tramp_exit_status $? 
tramp_exit_status 0
# file attributes with perl: /plink:address@hidden:/home/gray/work/temp.pl
$ tramp_file_attributes /home/gray/work/temp.pl
(nil 1 500 500 (15745 56362) (15745 55402) (15745 55402) 2019 33204 t (1 . 
63700) (0 769))
# Finding true name for `/plink:address@hidden:/home/gray/work/temp.pl'
# Check /home
$ test -e /home 2>/dev/null; echo tramp_exit_status $? 
tramp_exit_status 0
# file attributes with perl: /plink:address@hidden:/home
$ tramp_file_attributes /home
(t 13 0 0 (15745 21806) (15703 46115) (15703 46115) 4096 16877 t (1 . 30746) (0 
769))
# Check /home/gray
$ test -e /home/gray 2>/dev/null; echo tramp_exit_status $? 
tramp_exit_status 0
# file attributes with perl: /plink:address@hidden:/home/gray
$ tramp_file_attributes /home/gray
(t 20 500 500 (15745 61817) (15744 26181) (15744 26181) 4096 16877 t (1 . 
63138) (0 769))
# Check /home/gray/work
$ test -e /home/gray/work 2>/dev/null; echo tramp_exit_status $? 
tramp_exit_status 0
# file attributes with perl: /plink:address@hidden:/home/gray/work
$ tramp_file_attributes /home/gray/work
(t 17 500 500 (15745 48595) (15745 61703) (15745 61703) 4096 16893 t (1 . 
63180) (0 769))
# Check /home/gray/work/temp.pl
$ test -e /home/gray/work/temp.pl 2>/dev/null; echo tramp_exit_status $? 
tramp_exit_status 0
# file attributes with perl: /plink:address@hidden:/home/gray/work/temp.pl
$ tramp_file_attributes /home/gray/work/temp.pl
(nil 1 500 500 (15745 56362) (15745 55402) (15745 55402) 2019 33204 t (1 . 
63700) (0 769))
# True name of `/plink:address@hidden:/home/gray/work/temp.pl' is 
`/home/gray/work/temp.pl'
$ test -e /home/gray/work/temp.pl 2>/dev/null; echo tramp_exit_status $? 
tramp_exit_status 0
# file attributes with perl: /plink:address@hidden:/home/gray/work/temp.pl
$ tramp_file_attributes /home/gray/work/temp.pl
(nil 1 500 500 (15745 56362) (15745 55402) (15745 55402) 2019 33204 t (1 . 
63700) (0 769))
$ test -e /home/gray/work/temp.pl 2>/dev/null; echo tramp_exit_status $? 
tramp_exit_status 0
$ test -e /home/gray/work/temp.pl 2>/dev/null; echo tramp_exit_status $? 
tramp_exit_status 0
# Encoding remote file /plink:address@hidden:/home/gray/work/temp.pl...
$ mimencode -b < /home/gray/work/temp.pl 2>/dev/null; echo tramp_exit_status $? 
CiMgR2V0IGRldGFpbHMgCm15ICRmaWx0ZXIsJHBhc3N3ZCwkaG9zdCwkdmVyaWZ5OwppZiAo
JCNBUkdWID09IDMpIHsKICAgICgkZmlsdGVyLCAkcGFzc3dkLCRob3N0LCR2ZXJpZnkpPUBB
UkdWOwp9IGVsc2UgewogICAgcHJpbnQgIkZpbHRlcjogIjsKICAgICRmaWx0ZXI9PFNURElO
PjsKICAgIGNob3AgJGZpbHRlcjsKICAgIHByaW50ICJQYXNzd29yZDogIjsKICAgICRwYXNz
d2Q9PFNURElOPjsKICAgIGNob3AgJHBhc3N3ZDsKICAgIHByaW50ICJMREFQUyBIb3N0OiAi
OwogICAgJGhvc3Q9PFNURElOPjsKICAgIGNob3AgJGhvc3Q7CiAgICBwcmludCAiQ2VydGlm
aWNhdGUgdmVyaWZpY2F0aW9uIChub25lL3JlcXVpcmUpOiAiOwogICAgJHZlcmlmeT08U1RE
SU4+OwogICAgY2hvcCAkdmVyaWZ5Owp9Cgp1c2UgTmV0OjpMREFQUzsKIyRsZGFwID0gbmV3
IE5ldDo6TERBUFMoJ2hvbHN0LmhvdXN0b24uc2luZXQuc2xiLmNvbScsdmVyc2lvbj0+Mykg
b3IgZGllICIkQCI7CiMkbGRhcCA9IG5ldyBOZXQ6OkxEQVBTKCdsZGFwMi5zbGIuY29tJyx2
ZXJzaW9uPT4zKSBvciBkaWUgIiRAIjsKIyRsZGFwID0gbmV3IE5ldDo6TERBUFMoJ2xkYXA0
LnNsYi5jb20nLHZlcnNpb249PjMpIG9yIGRpZSAiJEAiOwojJGxkYXAgPSBuZXcgTmV0OjpM
REFQUygnbGRhcC5zbGIuY29tJyx2ZXJzaW9uPT4zKSBvciBkaWUgIiRAIjsKIyBTZXQgYSB0
aW1lcgokdGltZW91dD0xMDsKJFNJR3tBTFJNfSA9IHN1YiB7IGRpZSAidGltZW91dCIgfTsK
ZXZhbCB7CiAgICBhbGFybSgkdGltZW91dCk7CiAgICAkbGRhcCA9IG5ldyBOZXQ6OkxEQVBT
KCRob3N0LHZlcnNpb249PjMsdmVyaWZ5PT4kdmVyaWZ5LG9uZXJyb3I9Pid3YXJuJyk7CiAg
ICBhbGFybSgwKTsKfTsKaWYgKCRAKSB7CiAgICBpZiAoJEAgPX4gL3RpbWVvdXQvKSB7Cglk
aWUgIkNvbm5lY3Rpb24gdG8gJGhvc3QgcG9ydCBmYWlsZWQgdG8gc3RhcnQgaW4gJHRpbWVv
dXQgc2Vjb25kcyEiOwogICAgfSBlbHNlIHsKCWRpZSAkQDsKICAgIH0KfQp1bmxlc3MgKCRs
ZGFwKSB7CiAgICBkaWUgIkNvbm5lY3Rpb24gdG8gJGhvc3QgZmFpbGVkISI7Cn0gICAgICAK
CiRtZXNnID0gJGxkYXAtPnNlYXJjaCAoICAjIHBlcmZvcm0gYSBzZWFyY2gKCQkJIGJhc2Ug
ICA9PiAibz1zbGIsYz1BTiIsCgkJCSBmaWx0ZXIgPT4gJGZpbHRlciwKCQkJIGF0dHJzID0+
IFsnYWxpYXMnLCdjbicsJ21haWwnXQoJCQkgCgkJCSApOwokbWVzZy0+Y29kZSAmJiBkaWUg
JG1lc2ctPmVycm9yOwoKICAjIENoZWNrIG9uZSByZWNvcmQgYW5kIGdldCBETgpteSAkbWF4
PSRtZXNnLT5jb3VudDsKaWYgKCRtYXggIT0gMSkgewogICAgcHJpbnQgcXF7Rm91bmQgJG1h
eCBtYXRjaGVzIHRvIHRoZSBmaWx0ZXIgIiRmaWx0ZXIiOlxufSwKICAgICctJ3gyMCwiXG4i
OwogICAgZm9yKCRpID0gMCA7ICRpIDwgJG1heCA7ICRpKyspIHsKCW15ICRlbnRyeSA9ICRt
ZXNnLT5lbnRyeSgkaSk7Cglmb3JlYWNoIG15ICRhdHRyICgkZW50cnktPmF0dHJpYnV0ZXMp
IHsKCSAgICBwcmludCAnICcsam9pbigiXG4gICIsJGF0dHIsICRlbnRyeS0+Z2V0X3ZhbHVl
KCRhdHRyKSksIlxuIjsKCX0KCXByaW50ICctJ3gyMCwiXG4iOwogICAgfQogICAgcHJpbnQg
Ik11c3QgaGF2ZSBvbmUgbWF0Y2ggZm9yIGxvZ2luIVxuIjsKfSBlbHNlIHsKICAgIG15ICRl
bnRyeSA9ICRtZXNnLT5lbnRyeSgwKTsKICAgIG15ICRkbj0kZW50cnktPmRuOwogICAgaWYg
KCRwYXNzd2QgZXEgJycpIHsKCXByaW50ICJDYW5ub3QgYXV0aGVudGljYXRlIHdpdGggYmxh
bmsgcGFzc3dvcmQhXG4iOwogICAgfSBlbHNlIHsKCSRtZXNnID0gJGxkYXAtPmJpbmQoICRk
biwgcGFzc3dvcmQgPT4gJHBhc3N3ZCk7CglpZiAoJG1lc2ctPmNvZGUpIHsKCSAgICBwcmlu
dCAiRmFpbGVkIHRvIGF1dGhlbnRpY2F0ZSBhcyAkZG5cbiIsJG1lc2ctPmVycm9yLCJcbiI7
Cgl9IGVsc2UgewoJICAgIHByaW50ICJBdXRoZW50aWNhdGVkIGFzICRkblxuIjsKCX0KICAg
IH0KfQoKJGxkYXAtPnVuYmluZDsK
tramp_exit_status 0
# Decoding remote file /plink:address@hidden:/home/gray/work/temp.pl...
# Decoding remote file /plink:address@hidden:/home/gray/work/temp.pl with 
function base64-decode-region...
# Decoding remote file /plink:address@hidden:/home/gray/work/temp.pl...done
$ test -e /home/gray/work/temp.pl 2>/dev/null; echo tramp_exit_status $? 
tramp_exit_status 0
# file attributes with perl: /plink:address@hidden:/home/gray/work/temp.pl
$ tramp_file_attributes /home/gray/work/temp.pl
(nil 1 500 500 (15745 61835) (15745 55402) (15745 55402) 2019 33204 t (1 . 
63700) (0 769))
# Inserting local temp file `d:/Temp/tramp.2148xFf'...
$ test -e /home/gray/work/temp.pl 2>/dev/null; echo tramp_exit_status $? 
tramp_exit_status 0
# file attributes with perl: /plink:address@hidden:/home/gray/work/temp.pl
$ tramp_file_attributes /home/gray/work/temp.pl
(nil 1 500 500 (15745 61835) (15745 55402) (15745 55402) 2019 33204 t (1 . 
63700) (0 769))
$ test -e /home/gray/work/temp.pl 2>/dev/null; echo tramp_exit_status $? 
tramp_exit_status 0
$ test -w /home/gray/work/temp.pl 2>/dev/null; echo tramp_exit_status $? 
tramp_exit_status 0
$ test -e /home/gray/work/temp.pl 2>/dev/null; echo tramp_exit_status $? 
tramp_exit_status 0
Signaling: (error "Not a tramp file name: d:/temp/address@hidden")
  signal(error ("Not a tramp file name: d:/temp/address@hidden"))
  error("Not a tramp file name: %s" "d:/temp/address@hidden")
  (if (string-match (nth 0 tramp-file-name-structure) name) nil (error "Not a 
tramp file name: %s" name))
  (unless (string-match (nth 0 tramp-file-name-structure) name) (error "Not a 
tramp file name: %s" name))
  (progn (unless (string-match ... name) (error "Not a tramp file name: %s" 
name)) (setq method (match-string ... name)) (if (and method ...) 
(tramp-dissect-multi-file-name name) (let ... ... ...)))
  (unwind-protect (progn (unless ... ...) (setq method ...) (if ... ... ...)) 
(set-match-data save-match-data-internal))
  (let ((save-match-data-internal ...)) (unwind-protect (progn ... ... ...) 
(set-match-data save-match-data-internal)))
  (save-match-data (unless (string-match ... name) (error "Not a tramp file 
name: %s" name)) (setq method (match-string ... name)) (if (and method ...) 
(tramp-dissect-multi-file-name name) (let ... ... ...)))
  (let (method) (save-match-data (unless ... ...) (setq method ...) (if ... ... 
...)))
  tramp-dissect-file-name("d:/temp/address@hidden")
  (let* ((v1 ...) (v1-multi-method ...) (v1-method ...) (v1-user ...) (v1-host 
...) (v1-path ...)) (with-parsed-tramp-file-name file2 v2 (when ... ...) 
(unless ... ...) (unless ... ...) (if ... ... ...)))
  (with-parsed-tramp-file-name file1 v1 (with-parsed-tramp-file-name file2 v2 
(when ... ...) (unless ... ...) (unless ... ...) (if ... ... ...)))
  (save-excursion (with-parsed-tramp-file-name file1 v1 
(with-parsed-tramp-file-name file2 v2 ... ... ... ...)))
  (cond ((not ...) nil) ((not ...) t) (t (save-excursion ...)))
  tramp-handle-file-newer-than-file-p("d:/temp/address@hidden" 
"/plink:address@hidden:/home/gray/work/temp.pl")
  apply(tramp-handle-file-newer-than-file-p ("d:/temp/address@hidden" 
"/plink:address@hidden:/home/gray/work/temp.pl"))
  (progn (apply (cdr fn) args))
  (unwind-protect (progn (apply ... args)) (set-match-data 
save-match-data-internal))
  (let ((save-match-data-internal ...)) (unwind-protect (progn ...) 
(set-match-data save-match-data-internal)))
  (save-match-data (apply (cdr fn) args))
  (catch (quote tramp-forward-to-ange-ftp) (save-match-data (apply ... args)))
  (if fn (catch (quote tramp-forward-to-ange-ftp) (save-match-data ...)) 
(tramp-run-real-handler operation args))
  (let ((fn ...)) (if fn (catch ... ...) (tramp-run-real-handler operation 
args)))
  tramp-file-name-handler(file-newer-than-file-p "d:/temp/address@hidden" 
"/plink:address@hidden:/home/gray/work/temp.pl")
  file-newer-than-file-p("d:address@hidden" 
"/plink:address@hidden:/home/gray/work/temp.pl")
  after-find-file(nil t)
  find-file-noselect-1(#<buffer temp.pl> 
"/plink:address@hidden:/home/gray/work/temp.pl" nil nil 
"/plink:address@hidden:/home/gray/work/temp.pl" ((1 . 63700) (0 769)))
  find-file-noselect("/address@hidden:work/temp.pl" nil nil 1)
  find-file("/address@hidden:work/temp.pl" 1)
  call-interactively(find-file)

reply via email to

[Prev in Thread] Current Thread [Next in Thread]