[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: eshell/cp not able to use Tramp syntax ?
From: |
Michael Albinus |
Subject: |
Re: eshell/cp not able to use Tramp syntax ? |
Date: |
Wed, 31 Oct 2007 21:30:21 +0100 |
User-agent: |
Gnus/5.110007 (No Gnus v0.7) Emacs/23.0.50 (gnu/linux) |
"François Puitg" <Francois.Puitg@imag.fr> writes:
> So I'll load the required library manually:
>
> ,----
> | [(meta x)] load-library esh-maint
> | [(meta x)] load-library em-unix
> | [(meta :)] (eshell/cp "/home/fran/Devel/Emacs/Org/test.c"
> | "/[puitg@ssh-leibniz.imag.fr]public_html/")
> `----
>
> Lisp backtrace below and debug info at the end of the mail.
>
> -- Frnçs
>
> Debugger entered--Lisp error: (wrong-type-argument number-char-or-marker-p (0
> . 7498))
> =((0 . 7498) 905219)
> (and attr-target (or (not ...) (eq system-type ...)) (setq attr
> (eshell-file-attributes ...)) (nth 10 attr-target) (nth 10 attr) (= (nth 10
> attr-target) (nth 10 attr)) (nth 11 attr-target) (nth 11 attr) (= (nth 11
> attr-target) (nth 11 attr)))
> (cond ((string-match "\\`\\.\\.?\\'" ...) (if eshell-warn-dot-directories
> ...)) ((and attr-target ... ... ... ... ... ... ... ...) (eshell-error ...))
> (t (let ... ...)))
> (while files (setcar files (directory-file-name ...)) (cond (... ...) (...
> ...) (t ...)) (setq files (cdr files)))
> (let ((attr-target ...) (is-dir ...) attr) (if (and ... ... ...) (error
> "%s: when %s multiple files, last argument must be a directory" command
> action)) (while files (setcar files ...) (cond ... ... ...) (setq files ...)))
> eshell-shuffle-files("cp" "copying" ("/home/fran/Devel/Emacs/Org/test.c")
> "/[puitg@ssh-leibniz.imag.fr]public_html/" copy-file nil t nil)
I've debugged it down to an error in eshell-shuffle-files. With XEmacs
21.4.20 and eshell from the XEmacs package repository, we have
((and attr-target
(or (not (eshell-under-windows-p))
(eq system-type 'ms-dos))
(setq attr (eshell-file-attributes (car files)))
(nth 10 attr-target) (nth 10 attr)
(= (nth 10 attr-target) (nth 10 attr))
(nth 11 attr-target) (nth 11 attr)
(= (nth 11 attr-target) (nth 11 attr)))
With GNU Emacs 23 and the builtin eshell from the CVS repository, where
it works, we have
((and attr-target
(or (not (eshell-under-windows-p))
(eq system-type 'ms-dos))
(setq attr (eshell-file-attributes (car files)))
(nth 10 attr-target) (nth 10 attr)
;; Use equal, not -, since the inode and the device could
;; cons cells.
(equal (nth 10 attr-target) (nth 10 attr))
(nth 11 attr-target) (nth 11 attr)
(equal (nth 11 attr-target) (nth 11 attr)))
So the error is already known (see the comment); XEmacs shall sync eshell.
Best regards, Michael.