i've never seen problems from the attempt to cwd to a file.
this probably has nothing to do with things, but i had problems awhile ago with efs until
applying the attached.
Dmitry Yaitskov wrote:
I applied this patch, and it helped - kind of... but getting the
package index still fails, with the following messages:
----------------------------- cut here -----------------------------
Opening FTP connection to ftp.xemacs.org...
Logging in as user anonymous...
Logging in as user anonymous...done
CWD'ing to /anonymous@ftp.xemacs.org:/pub/xemacs/packages/...
CWD'ing to /anonymous@ftp.xemacs.org:/pub/xemacs/packages/...done
Listing /anonymous@ftp.xemacs.org:/pub/xemacs/packages/...
Listing /anonymous@ftp.xemacs.org:/pub/xemacs/packages/...done
Opening input file: No such file or directory,
/anonymous@ftp.xemacs.org:/pub/xemacs/packages/package-index.LATEST.pgp
----------------------------- cut here -----------------------------
(And this also happens with --vanilla.) I'm stumped... any ideas? One
thing that's changed is, I moved from nt4 to w2k - but how could this
be related I don't know.
Adrian Aichner <aichner(a)ecf.teradyne.com> wrote:
> To whom it may concern:
<snip>
>
> xemacs-packages/libs/efs/ChangeLog:
>
> 2000-07-11 Adrian Aichner <aichner(a)ecf.teradyne.com>
>
> * efs.el (efs-get-file-entry): Perform `efs-get-files' for dir,
> not path, which could be a file.
>
> xemacs-packages patch:
>
> cd d:\tmp\xemacs-packages\
> cvs diff libs/efs
> Compilation started at Tue Jul 11 12:15:49 2000 +0200 (W. Europe Daylight Time)
> ? libs/efs/bindist.err
> ? libs/efs/distclean.err
> ? libs/efs/make.exe.stackdump
> cvs server: Diffing libs/efs
> Index: libs/efs/efs.el
> ===================================================================
> RCS file: /usr/CVSroot/XEmacs/xemacs-packages/libs/efs/efs.el,v
> retrieving revision 1.9
> diff -u -r1.9 efs.el
> --- efs.el 2000/05/19 16:00:54 1.9
> +++ efs.el 2000/07/11 10:17:48
> @@ -6351,7 +6351,7 @@
> (or (and efs-allow-child-lookup
> (efs-allow-child-lookup host-type
> host user r-dir file)
> - (setq ent (efs-get-files path t))
> + (setq ent (efs-get-files dir t))
> (efs-get-hash-entry "." ent))
> ;; i.e. it's a directory by child lookup
> (efs-get-hash-entry
<snip>
--
Cheers,
-Dima.
--
Ben
In order to save my hands, I am cutting back on my mail. I also write
as succinctly as possible -- please don't be offended. If you send me
mail, you _will_ get a response, but please be patient, especially for
XEmacs-related mail. If you need an immediate response and it is not
apparent in your message, please say so. Thanks for your understanding.
See also
http://www.666.com/ben/chronic-pain/
Index: efs.el
===================================================================
RCS file: /usr/CVSroot/XEmacs/xemacs-packages/libs/efs/efs.el,v
retrieving revision 1.9
diff -u -r1.9 efs.el
--- efs.el 2000/05/19 16:00:54 1.9
+++ efs.el 2000/07/12 09:12:35
@@ -354,6 +354,12 @@
;; List of gateway types for which we need to do explicit file handling on
;; the gateway machine.
+(defconst efs-null-device (cond ((boundp 'null-device) null-device)
+ ((boundp 'grep-null-device) grep-null-device)
+ ((eq system-type 'windows-nt) "nul")
+ (t "/dev/null"))
+ "Filename corresponding to the null device.")
+
;;;; ------------------------------------------------------------------
;;;; User customization variables. Please read through these carefully.
;;;; ------------------------------------------------------------------
@@ -588,7 +594,15 @@
;;; End of gateway config variables.
(defcustom efs-tmp-name-template
- (concat (if (fboundp 'temp-directory) (temp-directory) "/tmp")
"/efs")
+ (concat (if (fboundp 'temp-directory)
+ ;; we may be calling the cygwin ftp client, regardless of
+ ;; whether we're running a cygwin version of xemacs, and it
+ ;; doesn't accept \'s in filenames. the windows ftp client
+ ;; accepts /'s, so use them.
+ (if (eq system-type 'windows-nt)
+ (replace-in-string (temp-directory) "\\\\" "/")
+ (temp-directory))
+ "/tmp") "/efs")
"Template used to create temporary files.
If you are worried about security, make this a directory in some
bomb-proof cave somewhere. efs does clean up its temp files, but
@@ -6490,7 +6504,7 @@
(memq host-type efs-unix-host-types)
(let ((line (nth 1 (efs-send-cmd
host user
- (list 'get tilde "/dev/null")
+ (list 'get tilde efs-null-device)
(format "expanding %s" tilde)))))
(setq res
(and (string-match efs-expand-dir-msgs line)
@@ -10175,7 +10189,8 @@
;; Try to get tilde.
((null dir)
(let ((tilde (nth 1 (efs-send-cmd
- host user (list 'get "~" "/dev/null")))))
+ host user (list 'get "~"
+ efs-null-device)))))
(cond
;; super dumb unix
((string-match efs-super-dumb-unix-tilde-regexp tilde)