From: Skip M. <sk...@po...> - 2002-01-19 12:59:49
|
Kai> I have now added something to clear-visited-file-modtime, but that Kai> should be important only for those who do not have Perl on the Kai> remote host. Please test. This fails for me. Here's the backtrace: Signaling: (wrong-type-argument number-char-or-marker-p nil) signal(wrong-type-argument (number-char-or-marker-p nil)) byte-code("..." [buf data kill-buffer signal] 3) find-file-noselect("/[manatee.mojam.com]tmp/trash") find-file("/[manatee.mojam.com]tmp/trash" nil) call-interactively(find-file) I did a little digging. The problem is in itimer-time-difference. Here's the version I have in XEmacs: (defun itimer-time-difference (t1 t2) (let (usecs secs 65536-secs carry) (setq usecs (- (nth 2 t1) (nth 2 t2))) (if (< usecs 0) (setq carry 1 usecs (+ usecs 1000000)) (setq carry 0)) (setq secs (- (nth 1 t1) (nth 1 t2) carry)) (if (< secs 0) (setq carry 1 secs (+ secs 65536)) (setq carry 0)) (setq 65536-secs (- (nth 0 t1) (nth 0 t2) carry)) (+ (* 65536-secs 65536.0) secs (/ usecs 1000000.0)))) Your t1 and t2 are two-element lists, so (nth 2 t1) and (nth 2 t2) return nil, which causes the - function to barf. It would appear that either you should pad t1 and t2 with a 0 or compute the time difference in some other fashion. In the long run it looks like itimer-time-difference should change so that usecs is computed properly in the face of short times: (setq usecs (- (or (nth 2 t1) 0) (or (nth 2 t2) 0))) If I change the code in tramp-time-diff that calls itimer-time-difference to (floor (funcall (symbol-function 'itimer-time-difference) (append t1 '(0)) (append t2 '(0))))) the error disappears. Kai> what is the value of the variable tramp-buffer-file-attributes in Kai> your buffers visiting Tramp files? I guess it should be nil, since Kai> you have Perl on the remote end. Yup, it is. Skip |