Variable: tramp-perl-file-truename
tramp-perl-file-truename is a variable defined in tramp-sh.el.gz.
Value
"%p -e '\nuse File::Spec;\nuse Cwd \"realpath\";\n\nsub myrealpath {\n my ($file) = @_;\n return realpath($file) if (-e $file || -l $file);\n}\n\nsub recursive {\n my ($volume, @dirs) = @_;\n my $real = myrealpath(File::Spec->catpath(\n $volume, File::Spec->catdir(@dirs), \"\"));\n if ($real) {\n my ($vol, $dir) = File::Spec->splitpath($real, 1);\n return ($vol, File::Spec->splitdir($dir));\n }\n else {\n my $last = pop(@dirs);\n ($volume, @dirs) = recursive($volume, @dirs);\n push(@dirs, $last);\n return ($volume, @dirs);\n }\n}\n\n$result = myrealpath($ARGV[0]);\nif (!$result) {\n my ($vol, $dir) = File::Spec->splitpath($ARGV[0], 1);\n ($vol, @dirs) = recursive($vol, File::Spec->splitdir($dir));\n\n $result = File::Spec->catpath($vol, File::Spec->catdir(@dirs), \"\");\n}\n\nif (-l $ARGV[0]) {\n print \"t\\n\";\n }\nelse {\n print \"nil\\n\";\n }\n\n$result =~ s/\"/\\\\\"/g;\nprint \"\\\"$result\\\"\\n\";\n' \"$1\" %n"
Documentation
Perl script to produce output suitable for use with file-truename
on the remote file system.
Format specifiers are replaced by tramp-expand-script, percent
characters need to be doubled.
Source Code
;; Defined in /usr/src/emacs/lisp/net/tramp-sh.el.gz
(defconst tramp-perl-file-truename
"%p -e '
use File::Spec;
use Cwd \"realpath\";
sub myrealpath {
my ($file) = @_;
return realpath($file) if (-e $file || -l $file);
}
sub recursive {
my ($volume, @dirs) = @_;
my $real = myrealpath(File::Spec->catpath(
$volume, File::Spec->catdir(@dirs), \"\"));
if ($real) {
my ($vol, $dir) = File::Spec->splitpath($real, 1);
return ($vol, File::Spec->splitdir($dir));
}
else {
my $last = pop(@dirs);
($volume, @dirs) = recursive($volume, @dirs);
push(@dirs, $last);
return ($volume, @dirs);
}
}
$result = myrealpath($ARGV[0]);
if (!$result) {
my ($vol, $dir) = File::Spec->splitpath($ARGV[0], 1);
($vol, @dirs) = recursive($vol, File::Spec->splitdir($dir));
$result = File::Spec->catpath($vol, File::Spec->catdir(@dirs), \"\");
}
if (-l $ARGV[0]) {
print \"t\\n\";
}
else {
print \"nil\\n\";
}
$result =~ s/\"/\\\\\"/g;
print \"\\\"$result\\\"\\n\";
' \"$1\" %n"
"Perl script to produce output suitable for use with `file-truename'
on the remote file system.
Format specifiers are replaced by `tramp-expand-script', percent
characters need to be doubled.")