Commits

Anonymous committed 8554f11

1.19 prerelease.

Comments (0)

Files changed (40)

+1999-10-19  Kirat Singh <singhki@jany.gs.com>
+
+	* efs.el: Added support for sidewinder ftp proxy.
+
+2000-03-11  Michael Sperber [Mr. Preprocessor]  <sperber@informatik.uni-tuebingen.de>
+
+	* Makefile.efs:
+	* efs-vm.el: Removed efs-vm.el as per Kyle's recommendation.
+
+2000-03-04  Michael Sperber [Mr. Preprocessor]  <sperber@informatik.uni-tuebingen.de>
+
+	* efs.el (efs-ls): Try to please wu-ftpd 2.6.0 by CWD'ing before
+	doing an ls.
+
+1999-12-28  Katsumi Yamaoka   <yamaoka@jpl.org>
+
+	* efs.el (efs-load, efs-require): Signal `file-error'.
+
+1999-11-03    Robert Fenk <fenk@forwiss.tu-muenchen.de>
+
+	* efs.el (efs-local-apollo-unix): `getenv "HOME"' replaced by
+	`user-home-directory', because usually HOME is not defined on WinNT.
+
+1999-06-15  Jan Vroonhof  <vroonhof@math.ethz.ch>
+
+	* efs.el (efs-insert-file-contents-general): Generalized i-f-c
+	function derived from old i-f-c function.
+	(efs-insert-file-contents): Use it.
+	(efs-insert-file-contents-literally): Use it.
+
 1999-01-03  Mike Sperber  <sperber@informatik.uni-tuebingen.de>
 
 	* RELEASE: 1.18.
 
 include Makefile.efs
 
-VERSION = 1.16
-AUTHOR_VERSION = 1.18
+VERSION = 1.17
+AUTHOR_VERSION = 1.19
 MAINTAINER = Mike Sperber <sperber@informatik.uni-tuebingen.de>
 PACKAGE = efs
 PKG_TYPE = regular
-REQUIRES = xemacs-base vm dired
+REQUIRES = xemacs-base dired
 CATEGORY = libs
 
 ELCS = $(EFSOBJS) efs-x19.15.elc $(XEOBJS_EFS) $(MULEOBJS_EFS)
 ###############################################################################
 #
 # File:         Makefile
-# Release:      $EFS release: 1.17 $
+# Release:      $EFS release: 1.19 $
 # Release:      $dired release: 7.9 $
-# Version:      $Revision$
+# Version:      #Revision: 1.9 $
 # RCS:
 # Description:  Makefile for byte-compiling EFS (primarily) and dired.
 # Author:       Andy Norman, HPLabs, Bristol, UK.
 BDIR=
 # Directory containing Dired's .elc files.
 DIREDDIR=
-# Directory containing VM's .elc files.
-VMDIR=
 # Directory containing custom's .elc files.
 CUSTOMDIR=
 # Bourne shell executable, please.
           efs-pc.el efs-ti-explorer.el efs-ti-twenex.el \
           efs-tops-20.el efs-dl.el efs-guardian.el efs-coke.el \
           efs-vms.el efs-vos.el efs-plan9.el efs-ms-unix.el
-VMOBJS = efs-vm.elc
-VMSRC = efs-vm.el
 MULEOBJS_EFS = efs-dired-mule.elc
 MULEOBJS_DIRED = dired-mule.elc
 MULESRC_EFS = efs-dired-mule.el
 GESRC_DIRED = dired-fsf.el \
 	diff.el\
 	$(MULESRC_DIRED)
-XEOBJS_EFS = $(VMOBJS)
+XEOBJS_EFS = 
 XEOBJS_DIRED = dired-faces.elc dired-xemacs.elc diff.elc
 XEOBJS = $(XEOBJS_EFS) $(XEOBJS_DIRED)
-XESRC_EFS = $(VMSRC) $(MULESRC_EFS)
+XESRC_EFS = $(MULESRC_EFS)
 XESRC_DIRED = dired-faces.el dired-xemacs.el diff.el \
 	$(MULESRC_DIRED)
 XEPACKAGESRC_EFS = $(EFSSRC) efs-x19.15.el $(XESRC_EFS) $(MULESRC_EFS)
 	       Makefile.efs
 DISTMISC_DIRED = README RELEASE INSTALL ChangeLog LISTS \
 	         Makefile.dired
-OBJS = $(DOBJS) $(EFSOBJS) $(VMOBJS) $(GEOBJS) $(XEOBJS) \
+OBJS = $(DOBJS) $(EFSOBJS) $(GEOBJS) $(XEOBJS) \
        efs-18.elc efs-19.elc efs-19.23.elc efs-19.34.elc \
        efs-l19.11.elc efs-x19.15.elc \
        emacs-19.elc fn-handler.elc \
 .SUFFIXES: .elc .el .texi .info
 
 .el.elc:
-	BDIR=$(BDIR) CWD=$(CWD) DIREDDIR=$(DIREDDIR) VMDIR=$(VMDIR) CUSTOMDIR=$(CUSTOMDIR)\
+	BDIR=$(BDIR) CWD=$(CWD) DIREDDIR=$(DIREDDIR) CUSTOMDIR=$(CUSTOMDIR)\
   $(EMACS) -batch -no-site-file -l $(CWD)/fixup $(IGNORE_CUSTOM) -f batch-byte-compile $(CWD)/$<
 
 .texi.info:
 efs-19.34.elc: efs-19.34.el
 efs-l19.11.elc: efs-l19.11.el
 efs-x19.15.elc: efs-x19.15.el
-# efs vm support
-efs-vm.elc: efs-vm.el
 # backward compatibility files
 fn-handler.elc: fn-handler.el
 emacs-19.elc: emacs-19.el
 guardian: core efs-guardian.elc
 plan9: core efs-plan9.elc
 coke: core efs-coke.elc
-vm: core $(VMOBJS)
 
 # The grand tour
 efs: $(EFSOBJS)
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;
 ;; File:         efs-auto.el
-;; Release:      $efs release: 1.18 $
+;; Release:      $efs release: 1.19 $
 ;; Version:      #Revision: 1.8 $
 ;; RCS:          
 ;; Description:  Simple way of autoloading efs
 (require 'efs-fnh)
 
 (defconst efs-auto-version
-  (concat (substring "$efs release: 1.18 $" 14 -2)
+  (concat (substring "$efs release: 1.19 $" 14 -2)
 	  "/"
 	  (substring "#Revision: 1.8 $" 11 -2)))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;
 ;; File:         efs-cms-knet.el
-;; Release:      $efs release: 1.18 $
+;; Release:      $efs release: 1.19 $
 ;; Version:      #Revision: 1.1 $
 ;; RCS:          
 ;; Description:  CMS support for efs using KNET/VM server
 (require 'efs)
 
 (defconst efs-cms-knet-version
-  (concat (substring "$efs release: 1.18 $" 14 -2)
+  (concat (substring "$efs release: 1.19 $" 14 -2)
 	  "/"
 	  (substring "#Revision: 1.1 $" 11 -2)))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;
 ;; File:         efs-cms.el
-;; Release:      $efs release: 1.18 $
+;; Release:      $efs release: 1.19 $
 ;; Version:      #Revision: 1.9 $
 ;; RCS:          
 ;; Description:  CMS support for efs
 (require 'efs)
 
 (defconst efs-cms-version
-  (concat (substring "$efs release: 1.18 $" 14 -2)
+  (concat (substring "$efs release: 1.19 $" 14 -2)
 	  "/"
 	  (substring "#Revision: 1.9 $" 11 -2)))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;
 ;; File:         efs-coke.el
-;; Release:      $efs release: 1.18 $
+;; Release:      $efs release: 1.19 $
 ;; Version:      #Revision: 1.1 $
 ;; RCS:          
 ;; Description:  Coke Machine support for efs
 (require 'efs)
 
 (defconst efs-coke-version
-  (concat (substring "$efs release: 1.18 $" 14 -2)
+  (concat (substring "$efs release: 1.19 $" 14 -2)
 	  "/"
 	  (substring "#Revision: 1.1 $" 11 -2)))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;
 ;; File:         efs-cp-p.el
-;; Release:      $efs release: 1.18 $
+;; Release:      $efs release: 1.19 $
 ;; Version:      #Revision: 1.1 $
 ;; RCS:          
 ;; Description:  Support for preserving file modtimes with copies. i.e. cp -p
 ;;;; Internal Variables
 
 (defconst efs-cp-p-version
-  (concat (substring "$efs release: 1.18 $" 14 -2)
+  (concat (substring "$efs release: 1.19 $" 14 -2)
 	  "/"
 	  (substring "#Revision: 1.1 $" 11 -2)))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;
 ;; File:         efs-cu.el
-;; Release:      $efs release: 1.18 $
+;; Release:      $efs release: 1.19 $
 ;; Version:      #Revision: 1.12 $
 ;; RCS:          
 ;; Description:  Common utilities needed by efs files.
 ;;;; -------------------------------------------------------------
 
 (defconst efs-cu-version
-  (concat (substring "$efs release: 1.18 $" 14 -2)
+  (concat (substring "$efs release: 1.19 $" 14 -2)
 	  "/"
 	  (substring "#Revision: 1.12 $" 11 -2)))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;
 ;; File:         efs-defun.el
-;; Release:      $efs release: 1.18 $
+;; Release:      $efs release: 1.19 $
 ;; Version:      #Revision: 1.1 $
 ;; RCS:          
 ;; Description:  efs-defun allows for OS-dependent coding of functions
 ;;; Variables
 
 (defconst efs-defun-version
-  (concat (substring "$efs release: 1.18 $" 14 -2)
+  (concat (substring "$efs release: 1.19 $" 14 -2)
 	  "/"
 	  (substring "#Revision: 1.1 $" 11 -2)))
 

efs-dired-mule.el

 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;
 ;; File:         efs-dired.el
-;; Release:      $efs release: 1.18 $
+;; Release:      $efs release: 1.19 $
 ;; Version:      #Revision: 1.2 $
 ;; RCS:          
 ;; Description:  Makes efs-dired.el work with MULE.
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 (defconst efs-dired-mule-version
-  (concat (substring "$efs release: 1.18 $" 14 -2)
+  (concat (substring "$efs release: 1.19 $" 14 -2)
 	  "/"
 	  (substring "#Revision: 1.2 $" 11 -2)))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;
 ;; File:         efs-dired.el
-;; Release:      $efs release: 1.18 $
+;; Release:      $efs release: 1.19 $
 ;; Version:      #Revision: 1.32 $
 ;; RCS:          
 ;; Description:  Extends much of Dired to work under efs.
 (autoload 'dired-shell-call-process "dired-shell")
 
 (defconst efs-dired-version
-  (concat (substring "$efs release: 1.18 $" 14 -2)
+  (concat (substring "$efs release: 1.19 $" 14 -2)
 	  "/"
 	  (substring "#Revision: 1.32 $" 11 -2)))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;
 ;; File:         efs-dl.el
-;; Release:      $efs release: 1.18 $
+;; Release:      $efs release: 1.19 $
 ;; Version:      #Revision: 1.3 $
 ;; RCS:          
 ;; Description:  Unix descriptive listing support for efs
 (require 'efs)
 
 (defconst efs-dl-version
-  (concat (substring "$efs release: 1.18 $" 14 -2)
+  (concat (substring "$efs release: 1.19 $" 14 -2)
 	  "/"
 	  (substring "#Revision: 1.3 $" 11 -2)))
 

efs-dos-distinct.el

 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;
 ;; File:         efs-dos-distinct.el
-;; Release:      $efs release: 1.18 $
+;; Release:      $efs release: 1.19 $
 ;; Version:      #Revision: 1.1 $
 ;; RCS:          
 ;; Description:  Distinct's DOS FTP server support for efs
 (require 'efs)
 
 (defconst efs-dos-distinct-version
-  (concat (substring "$efs release: 1.18 $" 14 -2)
+  (concat (substring "$efs release: 1.19 $" 14 -2)
 	  "/"
 	  (substring "#Revision: 1.1 $" 11 -2)))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;
 ;; File:         efs-dump.el
-;; Release:      $efs release: 1.18 $
+;; Release:      $efs release: 1.19 $
 ;; Version:      #Revision: 1.2 $
 ;; RCS:
 ;; Description:  Install a bare-bones EFS hook into file-name-handler-alist
 (provide 'efs-dump)
 
 (defconst efs-dump-version
-  (concat (substring "$efs release: 1.18 $" 14 -2)
+  (concat (substring "$efs release: 1.19 $" 14 -2)
 	  "/"
 	  (substring "#Revision: 1.2 $" 11 -2)))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;
 ;; File:         efs-fnh.el
-;; Release:      $efs release: 1.18 $
+;; Release:      $efs release: 1.19 $
 ;; Version:      #Revision: 1.4 $
 ;; RCS:
 ;; Description:  Look for the emacs version, and install into
 (provide 'efs-fnh)
 
 (defconst efs-fnh-version
-  (concat (substring "$efs release: 1.18 $" 14 -2)
+  (concat (substring "$efs release: 1.19 $" 14 -2)
 	  "/"
 	  (substring "#Revision: 1.4 $" 11 -2)))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;
 ;; File:         efs-guardian.el
-;; Release:      $efs release: 1.18 $
+;; Release:      $efs release: 1.19 $
 ;; Version:      #Revision: 1.7 $
 ;; RCS:          
 ;; Description:  Guardian support for efs
 ;;; and debugging. Thanks.
 
 (defconst efs-guardian-version
-  (concat (substring "$efs release: 1.18 $" 14 -2)
+  (concat (substring "$efs release: 1.19 $" 14 -2)
 	  "/"
 	  (substring "#Revision: 1.7 $" 11 -2)))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;
 ;; File:         efs-gwp.el
-;; Release:      $efs release: 1.18 $
+;; Release:      $efs release: 1.19 $
 ;; Version:      #Revision: 1.1 $
 ;; RCS:          
 ;; Description:  Support for efs to use an interactive gateway.
 ;;; Internal Variables
 
 (defconst efs-gwp-version
-  (concat (substring "$efs release: 1.18 $" 14 -2)
+  (concat (substring "$efs release: 1.19 $" 14 -2)
 	  "/"
 	  (substring "#Revision: 1.1 $" 11 -2)))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;
 ;; File:         efs-hell.el
-;; Release:      $efs release: 1.18 $
+;; Release:      $efs release: 1.19 $
 ;; Version:      #Revision: 1.1 $
 ;; RCS:          
 ;; Description:  Hellsoft FTP server support for efs
 (require 'efs)
 
 (defconst efs-hell-version
-  (concat (substring "$efs release: 1.18 $" 14 -2)
+  (concat (substring "$efs release: 1.19 $" 14 -2)
 	  "/"
 	  (substring "#Revision: 1.1 $" 11 -2)))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;
 ;; File:         efs-ka9q.el
-;; Release:      $efs release: 1.18 $
+;; Release:      $efs release: 1.19 $
 ;; Version:      #Revision: 1.2 $
 ;; RCS:          
 ;; Description:  KA9Q support for efs
 (require 'efs)
 
 (defconst efs-ka9q-version
-  (concat (substring "$efs release: 1.18 $" 14 -2)
+  (concat (substring "$efs release: 1.19 $" 14 -2)
 	  "/"
 	  (substring "#Revision: 1.2 $" 11 -2)))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;
 ;; File:         efs-kerberos.el
-;; Release:      $efs release: 1.18 $
+;; Release:      $efs release: 1.19 $
 ;; Version:      #Revision: 1.1 $
 ;; RCS:
 ;; Description:  Support for Kerberos gateways.
 (require 'efs)
 
 (defconst efs-kerberos-version
-  (concat (substring "$efs release: 1.18 $" 14 -2)
+  (concat (substring "$efs release: 1.19 $" 14 -2)
 	  "/"
 	  (substring "#Revision: 1.1 $" 11 -2)))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;
 ;; File:         efs-mpe.el
-;; Release:      $efs release: 1.18 $
+;; Release:      $efs release: 1.19 $
 ;; Version:      #Revision: 1.8 $
 ;; RCS:          
 ;; Description:  MPE (HP3000) support for efs.
 ;;; Internal Variables
 
 (defconst efs-mpe-version
-  (concat (substring "$efs release: 1.18 $" 14 -2)
+  (concat (substring "$efs release: 1.19 $" 14 -2)
 	  "/"
 	  (substring "#Revision: 1.8 $" 11 -2)))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;
 ;; File:         efs-ms-unix.el
-;; Release:      $efs release: 1.18 $
+;; Release:      $efs release: 1.19 $
 ;; Version:      #Revision: 1.1 $
 ;; RCS:          
 ;; Description:  efs support for the Microsoft PC FTP server in unix mode.
 (require 'efs)
 
 (defconst efs-ms-unix-version
-  (concat (substring "$efs release: 1.18 $" 14 -2)
+  (concat (substring "$efs release: 1.19 $" 14 -2)
 	  "/"
 	  (substring "#Revision: 1.1 $" 11 -2)))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;
 ;; File:         efs-mts.el
-;; Release:      $efs release: 1.18 $
+;; Release:      $efs release: 1.19 $
 ;; Version:      #Revision: 1.1 $
 ;; RCS:          
 ;; Description:  MTS support for efs
 (require 'efs)
 
 (defconst efs-mts-version
-  (concat (substring "$efs release: 1.18 $" 14 -2)
+  (concat (substring "$efs release: 1.19 $" 14 -2)
 	  "/"
 	  (substring "#Revision: 1.1 $" 11 -2)))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;
 ;; File:         efs-mvs.el
-;; Release:      $efs release: 1.18 $
+;; Release:      $efs release: 1.19 $
 ;; Version:      #Revision: 1.4 $
 ;; RCS:          
 ;; Description:  MVS support for efs
 (require 'efs)
 
 (defconst efs-mvs-version
-  (concat (substring "$efs release: 1.18 $" 14 -2)
+  (concat (substring "$efs release: 1.19 $" 14 -2)
 	  "/"
 	  (substring "#Revision: 1.4 $" 11 -2)))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;
 ;; File:         efs-netrc.el
-;; Release:      $efs release: 1.18 $
+;; Release:      $efs release: 1.19 $
 ;; Version:      #Revision: 1.2 $
 ;; RCS:          
 ;; Description:  Parses ~/.netrc file, and does completion in /.
 ;;;; ------------------------------------------------------------
 
 (defconst efs-netrc-version
-  (concat (substring "$efs release: 1.18 $" 14 -2)
+  (concat (substring "$efs release: 1.19 $" 14 -2)
 	  "/"
 	  (substring "#Revision: 1.2 $" 11 -2)))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;
 ;; File:         efs-netware.el
-;; Release:      $efs release: 1.18 $
+;; Release:      $efs release: 1.19 $
 ;; Version:      #Revision: 1.5 $
 ;; RCS:          
 ;; Description:  efs support for the Novell Netware FTP server
 (require 'efs)
 
 (defconst efs-netware-version
-  (concat (substring "$efs release: 1.18 $" 14 -2)
+  (concat (substring "$efs release: 1.19 $" 14 -2)
 	  "/"
 	  (substring "#Revision: 1.5 $" 11 -2)))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;
 ;; File:         efs-nos-ve.el
-;; Release:      $efs release: 1.18 $
+;; Release:      $efs release: 1.19 $
 ;; Version:      #Revision: 1.2 $
 ;; RCS:          
 ;; Description:  efs support for NOS/VE
 ;;; providing imformation and testing.
 
 (defconst efs-nos-ve-version
-  (concat (substring "$efs release: 1.18 $" 14 -2)
+  (concat (substring "$efs release: 1.19 $" 14 -2)
 	  "/"
 	  (substring "#Revision: 1.2 $" 11 -2)))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;
 ;; File:         efs-ovwrt.el
-;; Release:      $efs release: 1.18 $
+;; Release:      $efs release: 1.19 $
 ;; Version:      #Revision: 1.3 $
 ;; RCS:
 ;; Description:  Utilities for overwriting functions with new definitions.
     (error)))
 
 (defconst efs-ovwrt-version
-  (concat (substring "$efs release: 1.18 $" 14 -2)
+  (concat (substring "$efs release: 1.19 $" 14 -2)
 	  "/"
 	  (substring "#Revision: 1.3 $" 11 -2)))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;
 ;; File:         efs-pc.el
-;; Release:      $efs release: 1.18 $
+;; Release:      $efs release: 1.19 $
 ;; Version:      #Revision: 1.1 $
 ;; RCS:          
 ;; Description:  PC support for efs
 (require 'efs)
 
 (defconst efs-pc-version
-  (concat (substring "$efs release: 1.18 $" 14 -2)
+  (concat (substring "$efs release: 1.19 $" 14 -2)
 	  "/"
 	  (substring "#Revision: 1.1 $" 11 -2)))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;
 ;; File:         efs-plan9.el
-;; Release:      $efs release: 1.18 $
+;; Release:      $efs release: 1.19 $
 ;; Version:      #Revision: 1.1 $
 ;; RCS:          
 ;; Description:  efs support for the Plan 9 FTP Server
 (require 'efs)
 
 (defconst efs-plan9-version
-  (concat (substring "$efs release: 1.18 $" 14 -2)
+  (concat (substring "$efs release: 1.19 $" 14 -2)
 	  "/"
 	  (substring "#Revision: 1.1 $" 11 -2)))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;
 ;; File:         efs-report.el
-;; Release:      $efs release: 1.18 $
+;; Release:      $efs release: 1.19 $
 ;; Version:      #Revision: 1.10 $
 ;; RCS:          
 ;; Description:  Function to report efs bugs in a usable way.
 ;;; Variables
 
 (defconst efs-report-version
-  (concat (substring "$efs release: 1.18 $" 14 -2)
+  (concat (substring "$efs release: 1.19 $" 14 -2)
 	  "/"
 	  (substring "#Revision: 1.10 $" 11 -2)))
 

efs-ti-explorer.el

 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;
 ;; File:         efs-ti-explorer.el
-;; Release:      $efs release: 1.18 $
+;; Release:      $efs release: 1.19 $
 ;; Version:      #Revision: 1.1 $
 ;; RCS:          
 ;; Description:  Explorer support for efs
 (require 'efs)
 
 (defconst efs-ti-explorer-version
-  (concat (substring "$efs release: 1.18 $" 14 -2)
+  (concat (substring "$efs release: 1.19 $" 14 -2)
 	  "/"
 	  (substring "#Revision: 1.1 $" 11 -2)))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;
 ;; File:         efs-ti-twenex.el
-;; Release:      $efs release: 1.18 $
+;; Release:      $efs release: 1.19 $
 ;; Version:      #Revision: 1.1 $
 ;; RCS:          
 ;; Description:  Support for a TI lisp machine in Twenex emulation mode.
 (require 'efs)
 
 (defconst efs-ti-twenex-version
-  (concat (substring "$efs release: 1.18 $" 14 -2)
+  (concat (substring "$efs release: 1.19 $" 14 -2)
 	  "/"
 	  (substring "#Revision: 1.1 $" 11 -2)))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;
 ;; File:         efs-tops-20.el
-;; Release:      $efs release: 1.18 $
+;; Release:      $efs release: 1.19 $
 ;; Version:      #Revision: 1.1 $
 ;; RCS:          
 ;; Description:  TOPS-20 support for efs
 (provide 'efs-tops-20)
 
 (defconst efs-tops-20-version
-  (concat (substring "$efs release: 1.18 $" 14 -2)
+  (concat (substring "$efs release: 1.19 $" 14 -2)
 	  "/"
 	  (substring "#Revision: 1.1 $" 11 -2)))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;
 ;; File:         efs-vms.el
-;; Release:      $efs release: 1.18 $
+;; Release:      $efs release: 1.19 $
 ;; Version:      #Revision: 1.13 $
 ;; RCS:          
 ;; Description:  VMS support for efs
 (require 'efs)
 
 (defconst efs-vms-version
-  (concat (substring "$efs release: 1.18 $" 14 -2)
+  (concat (substring "$efs release: 1.19 $" 14 -2)
 	  "/"
 	  (substring "#Revision: 1.13 $" 11 -2)))
 
 ;;
 ;; File:         efs-vos.el
 ;; Description:  VOS support for efs
-;; Release:      $efs release: 1.18 $
+;; Release:      $efs release: 1.19 $
 ;; Version:      #Revision: 1.1 $
 ;; RCS:          
 ;; Author:       Sandy Rutherford <sandy@ibm550.sissa.it>
 (require 'efs)
 
 (defconst efs-vos-version
-  (concat (substring "$efs release: 1.18 $" 14 -2)
+  (concat (substring "$efs release: 1.19 $" 14 -2)
 	  "/"
 	  (substring "#Revision: 1.1 $" 11 -2)))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;
 ;; File:         efs-x19.15.el
-;; Release:      $efs release: 1.18 $
+;; Release:      $efs release: 1.19 $
 ;; Version:      #Revision: 1.2 $
 ;; RCS:          
 ;; Description:  efs support for XEmacs, versions 19.15, and later.
 (require 'efs-ovwrt)
 
 (defconst efs-x19\.15-version
-  (concat (substring "$efs release: 1.18 $" 14 -2)
+  (concat (substring "$efs release: 1.19 $" 14 -2)
 	  "/"
 	  (substring "#Revision: 1.2 $" 11 -2)))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;
 ;; File:         efs.el
-;; Release:      $efs release: 1.18 $
-;; Version:      #Revision: 1.59 $
+;; Release:      $efs release: 1.19 $
+;; Version:      #Revision: 1.60 $
 ;; RCS:          
 ;; Description:  Transparent FTP support for the original GNU Emacs
 ;;               from FSF and XEmacs
 ;;; get-file-buffer
 ;;; insert-directory
 ;;; insert-file-contents
+;;; insert-file-contents-literally
 ;;; list-directory
 ;;; make-directory-internal
 ;;; rename-file
 ;;;    efs|Andy Norman and Sandy Rutherford
 ;;;    |ange@hplb.hpl.hp.com and sandy@ibm550.sissa.it
 ;;;    |transparent FTP Support for GNU Emacs
-;;;    |$Date$|$efs release: 1.18 $|
+;;;    |$Date$|$efs release: 1.19 $|
 
 ;;; Host and listing type notation:
 ;;;
 ;;;; ------------------------------------------------------------
 
 (defconst efs-version
-  (concat (substring "$efs release: 1.18 $" 14 -2)
+  (concat (substring "$efs release: 1.19 $" 14 -2)
 	  "/"
 	  (substring "#Revision: 1.57 $" 11 -2)))
 
   is to be on a port different from 21, set efs-gateway-host to 
   \"<host>#<port>\".
 
+  '(sidewinder FTP-PROGRAM FTP-PROGRAM-ARGS)
+  This is for sidewinder proxies. We first FTP to the proxy, and give
+  a USER command of the form \"USER <username>@<host>\". This should
+  now connect to <host>. Now we send another USER command \"USER <user>\".
+
   '(raptor FTP-PROGRAM FTP-PROGRAM-ARGS USER)
   This is for the gateway called raptor by Eagle.  After connecting to the
   the gateway, the command \"user <user>@host USER\" is issued to login
                  (list :tag "Local"
                        :value (local "" nil)
                        (const :format "" local)
-		       (file :tag "FTP Program")
-		       (repeat :tag "FTP Program Args" string))
+					   (file :tag "FTP Program")
+					   (repeat :tag "FTP Program Args" string))
                  (list :tag "Proxy"
                        :value (proxy "" nil)
                        (const :format "" proxy)
-		       (file :tag "FTP Program")
-		       (repeat :tag "FTP Program Args" string))
+					   (file :tag "FTP Program")
+					   (repeat :tag "FTP Program Args" string))
+				 (list :tag "Sidewinder"
+					   :value (sidewinder "" nil)
+					   (const :format "" sidewinder)
+					   (file :tag "FTP Program")
+					   (repeat :tag "FTP Program Args" string))
                  (list :tag "Raptor"
                        :value (raptor "" nil "")
                        (const :format "" raptor)
-		       (file :tag "FTP Program")
-		       (repeat :tag "FTP Program Args" string)
-		       (string :tag "User"))
+					   (file :tag "FTP Program")
+					   (repeat :tag "FTP Program Args" string)
+					   (string :tag "User"))
                  (list :tag "Interlock"
                        :value (interlock "" nil)
                        (const :format "" interlock)
-		       (file :tag "FTP Program")
-		       (repeat :tag "FTP Program Args" string))
+					   (file :tag "FTP Program")
+					   (repeat :tag "FTP Program Args" string))
                  (list :tag "Kerberos"
                        :value (kerberos "" nil "" nil)
                        (const :format "" kerberos)
-		       (file :tag "FTP Program")
-		       (repeat :tag "FTP Program Args" string)
-		       (file :tag "KINIT Program")
-		       (repeat :tag "KINIT Program Args" string))
+					   (file :tag "FTP Program")
+					   (repeat :tag "FTP Program Args" string)
+					   (file :tag "KINIT Program")
+					   (repeat :tag "KINIT Program Args" string))
                  (list :tag "Remsh"
                        :value (remsh "" nil "" nil)
                        (const :format "" remsh)
-		       (file :tag "Gateway Program")
-		       (repeat :tag "Gateway Program Args" string)
-		       (file :tag "FTP Program")
-		       (repeat :tag "FTP Program Args" string))
+					   (file :tag "Gateway Program")
+					   (repeat :tag "Gateway Program Args" string)
+					   (file :tag "FTP Program")
+					   (repeat :tag "FTP Program Args" string))
                  (list :tag "Interactive"
                        :value (interactive "" nil "" nil)
                        (const :format "" interactive)
-		       (file :tag "Gateway Program")
-		       (repeat :tag "Gateway Program Args" string)
-		       (file :tag "FTP Program")
-		       (repeat :tag "FTP Program Args" string)))
+					   (file :tag "Gateway Program")
+					   (repeat :tag "Gateway Program Args" string)
+					   (file :tag "FTP Program")
+					   (repeat :tag "FTP Program Args" string)))
   :group 'efs-gateways)
 
 (defcustom efs-gateway-hash-mark-size nil
   :type 'boolean
   :group 'efs-programs)
 
-(defcustom efs-nslookup-threshold 1000
+(defcustom efs-nslookup-threshold 5000
   "How many iterations efs waits on the nslookup program.
 Applies when nslookup is used to compute a fully qualified domain name
 for the local host, in the case when `system-name' does not return one.
 
 ;; Can we somehow grok this from system type?  No.
 (defcustom efs-local-apollo-unix
-  (eq 0 (string-match "//" (or (getenv "HOME") (getenv "SHELL") "")))
+  (eq 0 (string-match "//" (or (user-home-directory) (getenv "SHELL") "")))
   "*Defines whether the local machine is an apollo running Domain.
 This variable has nothing to do with efs, and should be basic to all 
 of emacs."
 				(nth 2 efs-gateway-type)
 				(list (nth 3 efs-gateway-type))
 				(nth 4 efs-gateway-type)))))
-     ((memq use-gateway '(proxy raptor interlock kerberos))
+     ((memq use-gateway '(proxy sidewinder raptor interlock kerberos))
       (message "Opening FTP connection to %s via %s..." host efs-gateway-host)
       (setq proc (apply 'start-process name buffer (nth 1 efs-gateway-type)
 			(nth 2 efs-gateway-type))))
 	   ((eq cmd0 'type)
 	    (setq cmd-string (concat "type " (symbol-name cmd1))))
      
+	   ;; CWD command
+	   ((eq cmd0 'cwd)
+	    (let ((host-type (efs-host-type host user)))
+	      (setq cmd1 (efs-quote-string host-type
+					   (efs-fix-path host-type cmd1))
+		    cmd-string (concat "quote " (symbol-name cmd0) " " cmd1))))
+
 	   ;; DIR command
 	   ;; cmd == 'dir "remote-path" "local-path" "ls-switches"
 	   ((memq cmd0 '(dir nlist))
 					 (efs-quote-string host-type cmd1)
 					 cmd2)))
 	       ((setq cmd-string
-		      (format "%s \"%s %s\" %s"
+		      (format "%s \"%s%s%s\" %s"
 			      (if (eq cmd0 'nlist)
 				  efs-nlist-cmd
 				"ls")
-			      cmd3 (efs-quote-string host-type cmd1 t)
+			      cmd3
+			      (if (string-equal cmd1 "") "" " ")
+			      (efs-quote-string host-type cmd1 t)
 			      ;; cmd2 is a temp file, not nec. to quote.
 			      cmd2))))))
 	   
 	(progn
 	  (setq proc (efs-kerberos-login host user proc))
 	  (efs-login-send-user host user proc gate))
-      (let ((to (if (memq gate '(proxy raptor))
+      (let ((to (if (memq gate '(proxy sidewinder raptor))
 		    efs-gateway-host
 		  host))
 	    port cmd result)
 Optional argument GATE specifies which type of gateway is being used.
 RETRY argument specifies to try twice if we get a 421 response."
   (let ((cmd (cond
-	      ((memq gate '(proxy interlock))
+	      ((memq gate '(proxy sidewinder interlock))
 	       (format "quote USER \"%s\"@%s" user
 		       (if (and efs-nslookup-on-connect
 				(string-match "[^0-9.]" host))
 	      (t
 	       (format "quote user \"%s\"" user))))
 	(msg (format "Logging in as user %s%s..." user
-		     (if (memq gate '(proxy raptor kerberos))
+		     (if (memq gate '(proxy sidewinder raptor kerberos))
 			 (concat "@" host) "")))  
 	result code)	 
 	
     
     ;; Send USER command.
     (setq result (efs-raw-send-cmd proc cmd nil))
+
+	(if (eq gate 'sidewinder)
+		(setq result (efs-raw-send-cmd proc (format "quote user \"%s\"" user))))
     
     ;; Analyze result of USER (this follows RFC959 strictly)
     (if (< (length (nth 1 result)) 4)
 		   listing-result)
 	      (efs-send-cmd
 	       host user
-	       (list (if nlist 'nlist 'dir) path (cdr temp) lsargs)
+	       (list 'cwd path)
 	       (if (eq msg t)
-		   (format "Listing %s" (efs-relativize-filename file))
+		   (format "CWD'ing to %s" (efs-relativize-filename file))
 		 msg)
 	       nil
 	       (efs-cont (result line cont-lines)
 		   (host-type listing-type host user temp-file path
 			      switches file lsargs noparse parse noerror
 			      msg nowait cont)
-		 ;; The client flipped to ascii, remember this.
-		 (let ((buff (get-buffer
-			      (efs-ftp-process-buffer host user))))
-		   (if buff
-		       (efs-save-buffer-excursion
-			 (set-buffer buff)
-			 (setq efs-process-client-altered-xfer-type
-			       'ascii))))
-		 (unwind-protect
-		     (if result
-			 (or (setq listing-result
-				   (efs-ls-dumb-check
-				    (and (or (eq host-type 'unknown)
-					     (eq listing-type 'unix:unknown))
-					 'unknown)
-				    line host file path lsargs msg
-				    noparse noerror nowait cont))
-			     ;; If dumb-check returns non-nil
-			     ;; then it would have handled any error recovery
-			     ;; and conts. listing-result would only be set to
-			     ;; t if nowait was non-nil. Therefore, the final
-			     ;; return for efs-ls could never be t, even if I
-			     ;; set listing-result to t here.
-			     (if noerror
-				 (if cont
-				     (efs-call-cont cont nil))
-			       (efs-error host user
-					  (concat "DIR failed: "
-						  line))))
+		 (if result
+		     (efs-error host user (format "CWD %s failed: " line))
+		   (efs-send-cmd
+		    host user
+		    (list (if nlist 'nlist 'dir) "" (cdr temp) lsargs)
+		    (if (eq msg t)
+			(format "Listing %s" (efs-relativize-filename file))
+		      msg)
+		    nil
+		    (efs-cont (result line cont-lines)
+			(host-type listing-type host user temp-file path
+				   switches file lsargs noparse parse noerror
+				   msg nowait cont)
+		      ;; The client flipped to ascii, remember this.
+		      (let ((buff (get-buffer
+				   (efs-ftp-process-buffer host user))))
+			(if buff
+			    (efs-save-buffer-excursion
+			      (set-buffer buff)
+			      (setq efs-process-client-altered-xfer-type
+				    'ascii))))
+		      (unwind-protect
+			  (if result
+			      (or (setq listing-result
+					(efs-ls-dumb-check
+					 (and (or (eq host-type 'unknown)
+						  (eq listing-type 'unix:unknown))
+					      'unknown)
+					 line host file path lsargs msg
+					 noparse noerror nowait cont))
+				  ;; If dumb-check returns non-nil
+				  ;; then it would have handled any error recovery
+				  ;; and conts. listing-result would only be set to
+				  ;; t if nowait was non-nil. Therefore, the final
+				  ;; return for efs-ls could never be t, even if I
+				  ;; set listing-result to t here.
+				  (if noerror
+				      (if cont
+					  (efs-call-cont cont nil))
+				    (efs-error host user
+					       (concat "DIR failed: "
+						       line))))
 		       
-		       ;; listing worked
-		       (if (efs-ftp-path temp-file)
-			   (efs-add-file-entry (efs-host-type efs-gateway-host)
-					       temp-file nil nil nil))
-		       (save-excursion
-			 ;; A hack to get around a jka-compr problem.
-			 ;; Do we still need it?
-			 (let ((default-major-mode 'fundamental-mode)
-			       efs-verbose jka-compr-enabled)
-			   (set-buffer (get-buffer-create
-					efs-data-buffer-name))
-			   (erase-buffer)
-			   (if (or (file-readable-p temp-file)
-				   (sleep-for efs-retry-time)
-				   (file-readable-p temp-file))
-			       (insert-file-contents temp-file)
-			     (efs-error host user
-					(format
-					 "list data file %s not readable"
-					 temp-file))))
-			 (if parse
-			     (progn
-			       (efs-set-files
-				file
-				(efs-parse-listing listing-type host user path
-						   file lsargs))
-			       ;; Parsing may update the host type.
-			       (and lsargs (memq (efs-host-type host)
-						 efs-dumb-host-types)
-				    (setq lsargs nil))))
-			 (let ((listing (buffer-string)))
-			   (efs-add-to-ls-cache file lsargs listing parse)
-			   (if (and (null lsargs) switches)
-			       ;; Try to convert
-			       (let ((conv (efs-get-ls-converter switches)))
-				 (and conv
-				      (setq conv (assoc
-						  (char-to-string 0)
-						  conv))
-				      (funcall (cdr conv) listing-type nil)
-				      (setq listing (buffer-string)))))
-			   (or nowait (setq listing-result listing))
-			   ;; Call the ls cont, with first arg the
-			   ;; listing string.
-			   (if cont
-			       (efs-call-cont cont listing)))))
-		   (efs-del-tmp-name temp-file)))
+			    ;; listing worked
+			    (if (efs-ftp-path temp-file)
+				(efs-add-file-entry (efs-host-type efs-gateway-host)
+						    temp-file nil nil nil))
+			    (save-excursion
+			      ;; A hack to get around a jka-compr problem.
+			      ;; Do we still need it?
+			      (let ((default-major-mode 'fundamental-mode)
+				    efs-verbose jka-compr-enabled)
+				(set-buffer (get-buffer-create
+					     efs-data-buffer-name))
+				(erase-buffer)
+				(if (or (file-readable-p temp-file)
+					(sleep-for efs-retry-time)
+					(file-readable-p temp-file))
+				    (insert-file-contents temp-file)
+				  (efs-error host user
+					     (format
+					      "list data file %s not readable"
+					      temp-file))))
+			      (if parse
+				  (progn
+				    (efs-set-files
+				     file
+				     (efs-parse-listing listing-type host user path
+							file lsargs))
+				    ;; Parsing may update the host type.
+				    (and lsargs (memq (efs-host-type host)
+						      efs-dumb-host-types)
+					 (setq lsargs nil))))
+			      (let ((listing (buffer-string)))
+				(efs-add-to-ls-cache file lsargs listing parse)
+				(if (and (null lsargs) switches)
+				    ;; Try to convert
+				    (let ((conv (efs-get-ls-converter switches)))
+				      (and conv
+					   (setq conv (assoc
+						       (char-to-string 0)
+						       conv))
+					   (funcall (cdr conv) listing-type nil)
+					   (setq listing (buffer-string)))))
+				(or nowait (setq listing-result listing))
+				;; Call the ls cont, with first arg the
+				;; listing string.
+				(if cont
+				    (efs-call-cont cont listing)))))
+			(efs-del-tmp-name temp-file)))
+		    nowait)))
 	       nowait)
 	      (and (null nowait) listing-result))))
       (error "Attempt to get a remote listing for the local file %s" file))))
 	    (efs-set-buffer-mode))
 	(error "efs-write-region called for a local file")))))
 
-(defun efs-insert-file-contents (filename &optional visit &rest args)
+(defun efs-insert-file-contents (filename &rest args)
   ;; Inserts file contents for remote files.
   ;; The additional ARGS covers V19 BEG and END. Should also handle the
   ;; CODING-SYSTEM arg for mule. Hope the two don't trip over each other.
+  (apply 'efs-insert-file-contents-general 'insert-file-contents filename args))
+
+(defun efs-insert-file-contents-literally (filename &rest args)
+  ;; Inserts file contents for remote files.
+  ;; The additional ARGS covers V19 BEG and END. Should also handle the
+  ;; CODING-SYSTEM arg for mule. Hope the two don't trip over each other.
+  (apply 'efs-insert-file-contents-general 'insert-file-contents-literally
+	 filename args))
+
+(defun efs-insert-file-contents-general
+         (handled-func filename &optional visit &rest args)  
   (barf-if-buffer-read-only)
   (unwind-protect
       (let* ((filename (expand-file-name filename))
 		   (format "Retrieving %s" abbr)
 		   (efs-cont (result line cont-lines) (filename visit buffer
 								host-type
-								temp args)
+								temp handled-func args)
 		     (if result
 			 (signal 'ftp-error
 				 (list "Opening input file"
 				   (file-readable-p temp))
 			       
 			       (setq i-f-c-size
-				   (nth 1 (apply 'insert-file-contents
+				     (nth 1 (apply handled-func
 						 temp visit args)))
 			     (signal 'ftp-error
 				     (list
 		   file
 		   (if nosuffix '("") efs-load-lisp-extensions))))
     (if (not filename)
-	(and (null noerror) (error "Cannot open load file %s" file))
+	(and (null noerror) (signal 'file-error
+				    (list "Cannot open load file %s" file)))
       (let ((parsed (efs-ftp-path filename))
 	    (after-load (and (boundp 'after-load-alist)
 			     (assoc file after-load-alist))))
 		     filename parsed temp nil t nil
 		     (format "Getting %s" filename))
 		    (or (file-readable-p temp)
-			(error
-			 "efs-load: temp file %s is unreadable" temp))
+			(signal-error
+			 'file-error
+			 (list "efs-load: temp file %s is unreadable" temp)))
 		    (or nomessage
 			(message "Loading %s..." file))
 		    ;; temp is an absolute filename, so load path
     (let ((fullpath (efs-load-openp filename
 				    efs-load-lisp-extensions)))
       (if (not fullpath)
-	  (error "Cannot open load file: %s" filename)
+	  (signal 'file-error (list "Cannot open load file: %s" filename))
 	(let ((parsed (efs-ftp-path fullpath)))
 	  (if parsed
 	      (let ((temp (car (efs-make-tmp-name nil (car parsed)))))
 		       fullpath parsed temp nil t nil
 		       (format "Getting %s" fullpath))
 		      (or (file-readable-p temp)
-			  (error
-			   "efs-require: temp file %s is unreadable" temp))
+			  (signal 'file-error
+				  (list "efs-require: temp file %s is unreadable" temp)))
 		      (efs-real-require feature temp))
 		  (efs-del-tmp-name temp)))
 	    (efs-real-require feature fullpath)))))))
 
 ;; I/O
 (put 'insert-file-contents 'efs 'efs-insert-file-contents)
+(put 'insert-file-contents-literally 'efs 'efs-insert-file-contents-literally)
 (put 'write-region 'efs 'efs-write-region)
 (put 'directory-files 'efs 'efs-directory-files)
 (put 'list-directory 'efs 'efs-list-directory)
 This file documents EFS, a system for transparent file-transfer
 between remote hosts using the FTP protocol within Emacs.
 
-This info is for version 1.17 of EFS.
+This info is for version 1.19 of EFS.
 
-Documentation version: 1.2
+Documentation version: 1.3
 
 Copyright @copyright{} 1991, 1992 Free Software Foundation, Inc.
 
 @titlepage
 @sp5
 @center @titlefont{EFS}
-@center version 1.17
+@center version 1.19
 @sp2
 @center A transparent remote file system, by Sandy Rutherford and Andy Norman
 @sp7
 @end example
 @end table
 
-Failing these, someone on the EFS mailing list (@xref{Getting help}) may
+Failing these, someone on the EFS mailing list (see @xref{Getting help}.) may
 be able to help you find the latest version.
 
 @node Installing source, Customization, Obtaining source code, Installing EFS
 The above instructions should allow you to access all hosts that your
 local machine can access. If your local host has limited access,
 however, you may wish to have EFS working through a gateway
-machine. If so, read on. Otherwise, @xref{Using EFS} to get started
-using EFS.
+machine. If so, read on. Otherwise, to get started
+using EFS, see @xref{Using EFS}.
 
 @node Customization, Using a gateway, Installing source, Installing EFS
 @comment  node-name,  next,  previous,  up
 
 There are many customization options for EFS, and only a few of them
 need to be touched in any specific setup.  All options are available
-through the Custom package (@xref{(Custom)Top}).  EFS provides access
+through the Custom package, see @xref{(Custom)Top}.  EFS provides access
 through the customization group @code{efs}.
 
 
 to the type gateway that you
 have.  This variable is a list, the first element of which is a symbol
 denoting the type of gateway.  The following arguments give data on how
-to use the gateway; it depends on the gateway types (@xref{Gateway
-types}).
+to use the gateway; it depends on the gateway types---see @xref{Gateway
+types}.
 
 @end enumerate
 
 @vindex efs-gwp-prompt-pattern
 
 @item raptor
-This is a type of gateway where efs is expected to specify a gateway
+This is a type of gateway where EFS is expected to specify a gateway
 user, and send a password for this user using the @code{ACCOUNT} command.
 For example, to log in to @samp{foobar.edu} as sandy, while using the account
 ange on the gateway, the following commands would be sent:
 This can be done with either efs-set-account, or within your .netrc
 file.  If no password is set, you will be prompted for one.
 
+@item sidewinder
+This is for the Sidewinder proxy: EFS ftp's to the proxy, and then gives
+a @code{USER} command of the form @code{USER <username>@@<host>}. This
+connects to @code{<host>}. Then EFS sends another @code{USER} command
+@code{USER <user>}.
+
+For such a gateway, you would set @code{efs-gateway-type} to
+
+@example
+(list 'sidewinder efs-ftp-program efs-ftp-program-args)
+@end example
+
 @item interlock
 This is a type of gateway where you are expected to send a PASS
 command after opening the connection to the gateway.
 copying the file to the local machine, compressing it there, and then
 sending it back. Binary file transfers between machines of different
 architectures can be a risky business. Test things out first on some
-test files. @xref{Bugs} Also, note that EFS sometimes
+test files. Look at @xref{Bugs}. Also, note that EFS sometimes
 copies files by moving them through the local machine. Again,
 be careful when doing this with binary files on non-Unix
 machines.
 @item
 CMS machines, with the exception of anonymous accounts, nearly always
 need an account password. To have EFS send an account password,
-you can either include it in your @file{.netrc} (@xref{Using a .netrc}), or use
+you can either include it in your @file{.netrc} (see @xref{Using a .netrc}.), or use
 @code{efs-set-account}.
 @findex efs-set-account
 
 completion won't work on
 that file since EFS doesn't know about it yet. The solution if to
 force EFS to reread the directory and update it's cache, and the
-easiest way to do that is with Dired --- @xref{Using Dired} to see how.
+easiest way to do that is with Dired---see @xref{Using Dired}.
 
 Another problem is that the @code{ls} command can take a long time,
 especially when dealing with distant hosts over slow links. So if you're
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.