On Fri, 22 Sep 2000, Thomas Hauser wrote:
> I had problems to connect to one particular sgi Origin 2000.
> I get the message
> (invalid-read-syntax "Integer constant overflow in reader"
> "1186988379" 10) read(#<buffer "*tramp/scp thauser@modi4*">)
>
> I could trace it down to
> (defconst tramp-perl-file-attributes (concat
> "$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 %u %u (%u %u) (%u %u) (%u %u) %u %u t %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], $s[0] >> 16 & 0xffff, $s[0] & 0xffff);"
> ^
> Apparently the lstat commands returns a too large integer for the inode
> count. My fix was just setting it to some constant and then tramp
> worked for this sgi.
Daniel,
since you appear to be so good at writing concise Perl code -- can you
see how to solve this? My documentation for file-attributes says that
the inode number can be a cons cell (HIGH . LOW), similar to the time
thingies (note cons cell vs two-element list, though). I wonder if it
is right to always produce a cons cell. The documentation says that
the result is a cons cell if the value is too large...
Not sure about XEmacs here.
kai
--
I like BOTH kinds of music.