CVS update by michaels packages/xemacs-packages/efs, Makefile.efs,
efs-cms.el, efs-defun.el, efs-dl.el, efs-fnh.el, efs-ka9q.el,
efs-ms-unix.el, efs-netware.el, efs-plan9.el, efs-ti-twenex.el,
efs-vos.el ...
xemacs-cvs at xemacs.org
xemacs-cvs at xemacs.org
Fri Oct 12 11:16:38 EDT 2007
User: michaels
Date: 07/10/12 17:16:38
Modified: packages/xemacs-packages/efs ChangeLog LISTS Makefile
Makefile.efs README efs-auto.el efs-cms-knet.el
efs-cms.el efs-coke.el efs-cp-p.el efs-cu.el
efs-defun.el efs-dired-mule.el efs-dired.el
efs-dl.el efs-dos-distinct.el efs-dump.el
efs-fnh.el efs-guardian.el efs-gwp.el efs-hell.el
efs-ka9q.el efs-kerberos.el efs-mpe.el
efs-ms-unix.el efs-mts.el efs-mvs.el efs-netrc.el
efs-netware.el efs-nos-ve.el efs-ovwrt.el efs-pc.el
efs-plan9.el efs-report.el efs-ti-explorer.el
efs-ti-twenex.el efs-tops-20.el efs-vms.el
efs-vos.el efs-x19.15.el efs.el efs.texi
Log:
EFS 1.24
Revision Changes Path
1.42 +107 -16 XEmacs/packages/xemacs-packages/efs/ChangeLog
Index: ChangeLog
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/efs/ChangeLog,v
retrieving revision 1.41
retrieving revision 1.42
diff -u -p -r1.41 -r1.42
--- ChangeLog 2004/10/04 08:54:56 1.41
+++ ChangeLog 2007/10/12 15:16:29 1.42
@@ -1,7 +1,98 @@
-2004-10-04 Norbert Koch <viteno at xemacs.org>
+2007-10-10 Michael Sperber <sperber at deinprogramm.de>
- * Makefile (VERSION): XEmacs package 1.33 released.
+ * EFS 1.24.
+2007-08-27 Michael Sperber <sperber at informatik.uni-tuebingen.de>
+
+ * efs-cu.el (efs):
+ (efs-behavior):
+ (efs-auto-save):
+ (efs-gateways):
+ (efs-programs):
+ (efs-parameters):
+ (efs-hooks): Move these customization groups from efs.el.
+ (efs-vms-host-regexp):
+ (efs-cms-host-regexp):
+ (efs-mts-host-regexp):
+ (efs-ti-explorer-host-regexp):
+ (efs-ti-twenex-host-regexp):
+ (efs-sysV-unix-host-regexp):
+ (efs-bsd-unix-host-regexp):
+ (efs-next-unix-host-regexp):
+ (efs-unix-host-regexp):
+ (efs-dumb-unix-host-regexp):
+ (efs-super-dumb-unix-host-regexp):
+ (efs-dos-host-regexp):
+ (efs-apollo-unix-host-regexp):
+ (efs-mvs-host-regexp):
+ (efs-tops-20-host-regexp):
+ (efs-mpe-host-regexp):
+ (efs-ka9q-host-regexp):
+ (efs-dos-distinct-host-regexp):
+ (efs-os2-host-regexp):
+ (efs-vos-host-regexp):
+ (efs-hell-host-regexp):
+ (efs-guardian-host-regexp):
+ (efs-ms-unix-host-regexp):
+ (efs-plan9-host-regexp):
+ (efs-cms-knet-host-regexp):
+ (efs-nos-ve-host-regexp):
+ (efs-netware-host-regexp):
+ (efs-dumb-apollo-unix-regexp): Customize.
+
+2007-08-21 Mike Sperber <sperber at informatik.uni-tuebingen.de>
+
+ * efs.el (efs-skip-msgs-alist): Ignore IPv6 "No route to host"
+ error messages from the client.
+
+2007-05-10 Noah Friedman <friedman at splode.com>
+
+ * efs.el (efs-require): Handle extra arguments beyond feature and
+ filename portably. Emacs 22 has 'noerror' argument.
+
+ * efs-netrc.el (efs-root-file-name-completion): Handle optional
+ arg `predicate' for Emacs 22.
+
+2007-02-05 Michael Sperber <sperber at informatik.uni-tuebingen.de>
+
+ * efs-dired.el (efs-dired-copy-file): Enable recursive copying.
+
+2007-01-03 Mike Sperber <sperber at informatik.uni-tuebingen.de>
+
+ * efs.el (efs-month-and-time-regexp): Copy change for Breton month
+ names from Dired.
+
+2006-04-12 Mike Sperber <sperber at informatik.uni-tuebingen.de>
+
+ * efs.el (efs-ftp-explicit-empty-file-name): Add, to handle
+ *BSD-specific kludge for ftp clients that don't accept an explicit
+ empty file name.
+
+2005-04-09 Mike Sperber <sperber at informatik.uni-tuebingen.de>
+
+ * efs.texi (Getting help): Note new mailing list.
+
+ * efs-report.el (efs-bug-address): New mailing list.
+
+ * efs.el (efs-process-scream-and-yell)
+ (efs-require-scream-and-yell): New mailing list.
+
+2005-01-14 Steve Youngs <steve at sxemacs.org>
+
+ * efs-fnh.el (efs-handle-emacs-version): Use `emacs-*-version'
+ variables for version info instead of string-matching through
+ `emacs-version'.
+
+2005-01-23 Timothy OCallaghan <T.OCallaghan at elsevier.com>.
+
+ * efs-vms.el (efs-fix-path):
+ (efs-fix-dir-path): Make EFS work better for VMS hosts.
+
+2005-01-23 Michael Sperber <sperber at informatik.uni-tuebingen.de>
+
+ * efs.el (efs-send-cmd): Kludge addition for VMS, based on a patch
+ by Timothy OCallaghan <T.OCallaghan at elsevier.com>.
+
2004-10-02 Mike Sperber <sperber at informatik.uni-tuebingen.de>
* EFS 1.23.
@@ -40,8 +131,8 @@
2003-08-07 Mike Sperber <sperber at informatik.uni-tuebingen.de>
* efs.el (efs-month-and-time-regexp): Rewrite to match Dired.
- (efs-file-size-submatch):
- (efs-month-date-submatch):
+ (efs-file-size-submatch):
+ (efs-month-date-submatch):
(efs-time-or-year-submatch): Add.
(efs-month-regexp-alist): Replaces `efs-month-alist'. Should
handle lotsa more languages than before.
@@ -72,7 +163,7 @@
2002-09-05 Katsumi Yamaoka <yamaoka at jpl.org>
- * efs.el (efs-load):
+ * efs.el (efs-load):
(efs-require): Make `eval-after-load' work.
2002-09-01 Michael Sperber [Mr. Preprocessor] <sperber at informatik.uni-tuebingen.de>
@@ -92,7 +183,7 @@
2002-08-27 Michael Sperber [Mr. Preprocessor] <sperber at informatik.uni-tuebingen.de>
- * efs-guardian.el (efs-fix-path):
+ * efs-guardian.el (efs-fix-path):
(efs-split-guardian-path):
(efs-guardian-file-name-nondirectory):
(efs-fix-dir-path): Rewrite Guardian path handling based on
@@ -133,14 +224,14 @@
2002-04-13 Jonathan Harris <jhar at tardis.ed.ac.uk>
- * efs-dired.el (efs-dired-compress-file):
- * efs.el (efs-recover-file):
+ * efs-dired.el (efs-dired-compress-file):
+ * efs.el (efs-recover-file):
* efs-cu.el (efs-chase-symlinks): Force proper use of
`efs-file-symlink-p'.
2002-04-13 Bob Weiner <weiner at altrasoft.com>
- * efs.el:
+ * efs.el:
(efs-wipe-from-ls-cache):
(efs-substitute-in-file-name):
(efs-file-name-as-directory):
@@ -151,8 +242,8 @@
2002-04-13 Michael Sperber [Mr. Preprocessor] <sperber at informatik.uni-tuebingen.de>
- * efs.el (efs-file-regular-p):
- (efs-internal-file-regular-p):
+ * efs.el (efs-file-regular-p):
+ (efs-internal-file-regular-p):
* efs-guardian.el (efs-internal-file-regular-p): Added
`file-regular-p' for remote files.
@@ -292,9 +383,9 @@
1998-10-27 Jan Vroonhof <vroonhof at math.ethz.ch>
* efs.el: Require comint softly. Provide dummy if not
- available (bare XEmacs)
-
- * efs-netrc.el: Do not require passwd. Use autoload.
+ available (bare XEmacs)
+
+ * efs-netrc.el: Do not require passwd. Use autoload.
1999-10-19 Kirat Singh <singhki at jany.gs.com>
@@ -424,7 +515,7 @@
1998-03-14 Michael Sperber [Mr. Preprocessor] <sperber at informatik.uni-tuebingen.de>
- * efs-dump.el: Pulled in necessary variables and autoloads.
+ * efs-dump.el: Pulled in necessary variables and autoloads.
* dumped-lisp.el: Created.
@@ -509,8 +600,8 @@
* efs.el, efs-tops-20.el, efs-vos.el, efs-pc.el, efs-netware.el, efs-nos-ve.el, efs-mts.el, efs-mvs.el, efs-netrc.el, efs-mpe.el, efs-ms-unix.el, efs-hell.el, efs-ka9q.el, efs-dos-distinct.el, efs-guardian.el, efs-dired.el, efs-dl.el, efs-cms.el:
Remove preceding-char & following-char.
+
-
1997-04-25 Michael Sperber [Mr. Preprocessor] <sperber at informatik.uni-tuebingen.de>
* efs.texi: Directory entry.
1.5 +6 -23 XEmacs/packages/xemacs-packages/efs/LISTS
Index: LISTS
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/efs/LISTS,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -p -r1.4 -r1.5
--- LISTS 2001/05/15 07:20:09 1.4
+++ LISTS 2007/10/12 15:16:29 1.5
@@ -1,26 +1,9 @@
-There are several mailing lists relevant to efs. If you wish to join
-a list, send e-mail to their -request address.
+The EFS mailing list discusses all aspects of EFS. You can send
+messages to the list at
- efs-bugs at hplb.hpl.hp.com
+elisp-code-efs at nongnu.org
-This is where all bug reports should go. M-x efs-report-bug is the
-recommended way of sending bug reports about efs, and this will send by
-default to this address.
+You can subscribe, view the archives, and perform a number of other
+adminstrative tasks at:
- efs-help at hplb.hpl.hp.com
-
-This is where general discussions about efs should go. For beta-testing
-discussions, use efs-testers instead.
-
- efs-testers at hplb.hpl.hp.com
-
-This is where discussions about beta testing efs should go. Bugs should
-however be reported to efs-bugs. Patches for beta test bugs will be
-sent to this list.
-
- efs-announce at hplb.hpl.hp.com
-
-This is where announcements such as new generally available releases of efs
-should go.
-
-Each of the lists have a -request address to join and leave the list.
+http://lists.nongnu.org/mailman/listinfo/elisp-code-efs
1.47 +1 -1 XEmacs/packages/xemacs-packages/efs/Makefile
Index: Makefile
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/efs/Makefile,v
retrieving revision 1.46
retrieving revision 1.47
diff -u -p -r1.46 -r1.47
--- Makefile 2004/10/04 08:54:56 1.46
+++ Makefile 2007/10/12 15:16:29 1.47
@@ -20,7 +20,7 @@
include Makefile.efs
VERSION = 1.33
-AUTHOR_VERSION = 1.23
+AUTHOR_VERSION = 1.24
MAINTAINER = Mike Sperber <sperber at informatik.uni-tuebingen.de>
PACKAGE = efs
PKG_TYPE = regular
1.12 +1 -1 XEmacs/packages/xemacs-packages/efs/Makefile.efs
Index: Makefile.efs
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/efs/Makefile.efs,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -p -r1.11 -r1.12
--- Makefile.efs 2004/10/02 14:05:57 1.11
+++ Makefile.efs 2007/10/12 15:16:30 1.12
@@ -1,7 +1,7 @@
###############################################################################
#
# File: Makefile
-# Release: $EFS release: 1.23 $
+# Release: $EFS release: 1.24 $
# Release: $dired release: 7.11 $
# Version: #Revision: 1.9 $
# RCS:
1.11 +1 -1 XEmacs/packages/xemacs-packages/efs/README
Index: README
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/efs/README,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -p -r1.10 -r1.11
--- README 2004/10/02 14:05:57 1.10
+++ README 2007/10/12 15:16:30 1.11
@@ -1,4 +1,4 @@
-This is EFS 1.23
+This is EFS 1.24
================
EFS is a system for transparent file-transfer between remote VMS, CMS,
1.13 +2 -2 XEmacs/packages/xemacs-packages/efs/efs-auto.el
Index: efs-auto.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/efs/efs-auto.el,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -p -r1.12 -r1.13
--- efs-auto.el 2004/10/02 14:05:57 1.12
+++ efs-auto.el 2007/10/12 15:16:30 1.13
@@ -2,7 +2,7 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; File: efs-auto.el
-;; Release: $efs release: 1.23 $
+;; Release: $efs release: 1.24 $
;; Version: #Revision: 1.8 $
;; RCS:
;; Description: Simple way of autoloading efs
@@ -34,7 +34,7 @@
(require 'efs-fnh)
(defconst efs-auto-version
- (concat (substring "$efs release: 1.23 $" 14 -2)
+ (concat (substring "$efs release: 1.24 $" 14 -2)
"/"
(substring "#Revision: 1.8 $" 11 -2)))
1.13 +2 -2 XEmacs/packages/xemacs-packages/efs/efs-cms-knet.el
Index: efs-cms-knet.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/efs/efs-cms-knet.el,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -p -r1.12 -r1.13
--- efs-cms-knet.el 2004/10/02 14:05:58 1.12
+++ efs-cms-knet.el 2007/10/12 15:16:30 1.13
@@ -2,7 +2,7 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; File: efs-cms-knet.el
-;; Release: $efs release: 1.23 $
+;; Release: $efs release: 1.24 $
;; Version: #Revision: 1.1 $
;; RCS:
;; Description: CMS support for efs using KNET/VM server
@@ -21,7 +21,7 @@
(require 'efs)
(defconst efs-cms-knet-version
- (concat (substring "$efs release: 1.23 $" 14 -2)
+ (concat (substring "$efs release: 1.24 $" 14 -2)
"/"
(substring "#Revision: 1.1 $" 11 -2)))
1.13 +2 -2 XEmacs/packages/xemacs-packages/efs/efs-cms.el
Index: efs-cms.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/efs/efs-cms.el,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -p -r1.12 -r1.13
--- efs-cms.el 2004/10/02 14:05:58 1.12
+++ efs-cms.el 2007/10/12 15:16:30 1.13
@@ -2,7 +2,7 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; File: efs-cms.el
-;; Release: $efs release: 1.23 $
+;; Release: $efs release: 1.24 $
;; Version: #Revision: 1.9 $
;; RCS:
;; Description: CMS support for efs
@@ -20,7 +20,7 @@
(require 'efs)
(defconst efs-cms-version
- (concat (substring "$efs release: 1.23 $" 14 -2)
+ (concat (substring "$efs release: 1.24 $" 14 -2)
"/"
(substring "#Revision: 1.9 $" 11 -2)))
1.13 +2 -2 XEmacs/packages/xemacs-packages/efs/efs-coke.el
Index: efs-coke.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/efs/efs-coke.el,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -p -r1.12 -r1.13
--- efs-coke.el 2004/10/02 14:05:58 1.12
+++ efs-coke.el 2007/10/12 15:16:30 1.13
@@ -2,7 +2,7 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; File: efs-coke.el
-;; Release: $efs release: 1.23 $
+;; Release: $efs release: 1.24 $
;; Version: #Revision: 1.1 $
;; RCS:
;; Description: Coke Machine support for efs
@@ -20,7 +20,7 @@
(require 'efs)
(defconst efs-coke-version
- (concat (substring "$efs release: 1.23 $" 14 -2)
+ (concat (substring "$efs release: 1.24 $" 14 -2)
"/"
(substring "#Revision: 1.1 $" 11 -2)))
1.13 +2 -2 XEmacs/packages/xemacs-packages/efs/efs-cp-p.el
Index: efs-cp-p.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/efs/efs-cp-p.el,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -p -r1.12 -r1.13
--- efs-cp-p.el 2004/10/02 14:05:58 1.12
+++ efs-cp-p.el 2007/10/12 15:16:30 1.13
@@ -2,7 +2,7 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; File: efs-cp-p.el
-;; Release: $efs release: 1.23 $
+;; Release: $efs release: 1.24 $
;; Version: #Revision: 1.2 $
;; RCS:
;; Description: Support for preserving file modtimes with copies. i.e. cp -p
@@ -22,7 +22,7 @@
;;;; Internal Variables
(defconst efs-cp-p-version
- (concat (substring "$efs release: 1.23 $" 14 -2)
+ (concat (substring "$efs release: 1.24 $" 14 -2)
"/"
(substring "#Revision: 1.1 $" 11 -2)))
1.13 +153 -58 XEmacs/packages/xemacs-packages/efs/efs-cu.el
Index: efs-cu.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/efs/efs-cu.el,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -p -r1.12 -r1.13
--- efs-cu.el 2004/10/02 14:05:58 1.12
+++ efs-cu.el 2007/10/12 15:16:30 1.13
@@ -2,7 +2,7 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; File: efs-cu.el
-;; Release: $efs release: 1.23 $
+;; Release: $efs release: 1.24 $
;; Version: #Revision: 1.13 $
;; RCS:
;; Description: Common utilities needed by efs files.
@@ -18,6 +18,7 @@
;;;; Provisions and autoloads.
(provide 'efs-cu)
+(require 'custom)
(require 'backquote)
(autoload 'efs-get-process "efs")
(autoload 'efs-parse-netrc "efs-netrc")
@@ -53,7 +54,7 @@ user's curent login name is used.")
;;;; -------------------------------------------------------------
(defconst efs-cu-version
- (concat (substring "$efs release: 1.23 $" 14 -2)
+ (concat (substring "$efs release: 1.24 $" 14 -2)
"/"
(substring "#Revision: 1.13 $" 11 -2)))
@@ -95,92 +96,186 @@ additional arguments user, host, and rem
;; the part of the path to the left of this pattern.
;;;; -----------------------------------------------------------
+;;;; Customization groups
+;;;; -----------------------------------------------------------
+
+(defgroup efs nil
+ "Transparent ftp access."
+:group 'files)
+
+(defgroup efs-behavior nil
+ "User-visible aspects of EFS."
+:prefix "efs-"
+:group 'efs)
+
+(defgroup efs-auto-save nil
+ "EFS interaction with auto-save."
+:prefix "efs-"
+:group 'efs)
+
+(defgroup efs-gateways nil
+ "Using EFS via an ftp gateway."
+:prefix "efs-"
+:group 'efs)
+
+(defgroup efs-programs nil
+ "External programs used by EFS."
+:prefix "efs-"
+:group 'efs)
+
+(defgroup efs-parameters nil
+ "Behind-the-scenes parameters of EFS."
+:prefix "efs-"
+:group 'efs)
+
+(defgroup efs-hooks nil
+ "Hooks for EFS."
+:prefix "efs-"
+:group 'efs)
+
+;;;; -----------------------------------------------------------
;;;; Variables for multiple host type support
;;;; -----------------------------------------------------------
-(defvar efs-vms-host-regexp nil
- "Regexp to match the names of hosts running VMS.")
-(defvar efs-cms-host-regexp nil
- "Regexp to match the names of hosts running CMS.")
-(defvar efs-mts-host-regexp nil
- "Regexp to match the names of hosts running MTS.")
-(defvar efs-ti-explorer-host-regexp nil
+(defcustom efs-vms-host-regexp nil
+ "Regexp to match the names of hosts running VMS."
+:group 'efs-parameters
+:type '(choice (const nil) regexp))
+(defcustom efs-cms-host-regexp nil
+ "Regexp to match the names of hosts running CMS."
+:group 'efs-parameters
+:type '(choice (const nil) regexp))
+(defcustom efs-mts-host-regexp nil
+ "Regexp to match the names of hosts running MTS."
+:group 'efs-parameters
+:type '(choice (const nil) regexp))
+(defcustom efs-ti-explorer-host-regexp nil
"Regexp to match the names of hosts running TI-EXPLORER.
-These are lisp machines.")
-(defvar efs-ti-twenex-host-regexp nil
+These are lisp machines."
+:group 'efs-parameters
+:type '(choice (const nil) regexp))
+(defcustom efs-ti-twenex-host-regexp nil
"Regexp to match the names of hosts running TI-TWENEX.
-These are lisp machines, and this should not be confused with DEC's TOPS-20.")
-(defvar efs-sysV-unix-host-regexp nil
+These are lisp machines, and this should not be confused with DEC's TOPS-20."
+:group 'efs-parameters
+:type '(choice (const nil) regexp))
+(defcustom efs-sysV-unix-host-regexp nil
"Regexp to match the names of sysV unix hosts.
These are defined to be unix hosts which mark symlinks
-with a @ in an ls -lF listing.")
-(defvar efs-bsd-unix-host-regexp nil
+with a @ in an ls -lF listing."
+:group 'efs-parameters
+:type '(choice (const nil) regexp))
+(defcustom efs-bsd-unix-host-regexp nil
"Regexp to match the names of bsd unix hosts.
These are defined to be unix hosts which do not mark symlinks
-with a @ in an ls -lF listing.")
-(defvar efs-next-unix-host-regexp nil
+with a @ in an ls -lF listing."
+:group 'efs-parameters
+:type '(choice (const nil) regexp))
+(defcustom efs-next-unix-host-regexp nil
"Regexp to match names of NeXT unix hosts.
These are defined to be unix hosts which put a @ after the
-destination of a symlink when doing ls -lF listing.")
-(defvar efs-unix-host-regexp nil
+destination of a symlink when doing ls -lF listing."
+:group 'efs-parameters
+:type '(choice (const nil) regexp))
+(defcustom efs-unix-host-regexp nil
"Regexp to match names of unix hosts.
-I you know which type of unix, it is much better to set that regexp instead.")
-(defvar efs-dumb-unix-host-regexp nil
+I you know which type of unix, it is much better to set that regexp instead."
+:group 'efs-parameters
+:type '(choice (const nil) regexp))
+(defcustom efs-dumb-unix-host-regexp nil
"Regexp to match names of unix hosts which do not take ls switches.
-For these hosts we use the \"dir\" command.")
-(defvar efs-super-dumb-unix-host-regexp nil
+For these hosts we use the \"dir\" command."
+:group 'efs-parameters
+:type '(choice (const nil) regexp))
+(defcustom efs-super-dumb-unix-host-regexp nil
"Regexp to match names of unix hosts with FTP servers that cannot do a PWD.
It is also assumed that these hosts do not accept ls switches, whether
-or not this is actually true.")
-(defvar efs-dos-host-regexp nil
- "Regexp to match names of hosts running DOS.")
+or not this is actually true."
+:group 'efs-parameters
+:type '(choice (const nil) regexp))
+(defcustom efs-dos-host-regexp nil
+ "Regexp to match names of hosts running DOS."
+:group 'efs-parameters
+:type '(choice (const nil) regexp))
;; In principal there is apollo unix support -- at least efs
;; should do the right thing. However, apollo ftp servers can be
;; very flakey, especially about accessing files by fullpaths.
;; Good luck.
-(defvar efs-apollo-unix-host-regexp nil
+(defcustom efs-apollo-unix-host-regexp nil
"Regexp to match names of apollo unix hosts running Apollo's Domain.
For these hosts we don't short-circuit //'s immediately following
-\"/user at host:\"")
-(defvar efs-mvs-host-regexp nil
- "Regexp to match names of hosts running MVS.")
-(defvar efs-tops-20-host-regexp nil
- "Regexp to match names of hosts runninf TOPS-20.")
-(defvar efs-mpe-host-regexp nil
- "Regexp to match hosts running the MPE operating system.")
-(defvar efs-ka9q-host-regexp nil
+\"/user at host:\""
+:group 'efs-parameters
+:type '(choice (const nil) regexp))
+(defcustom efs-mvs-host-regexp nil
+ "Regexp to match names of hosts running MVS."
+:group 'efs-parameters
+:type '(choice (const nil) regexp))
+(defcustom efs-tops-20-host-regexp nil
+ "Regexp to match names of hosts runninf TOPS-20."
+:group 'efs-parameters
+:type '(choice (const nil) regexp))
+(defcustom efs-mpe-host-regexp nil
+ "Regexp to match hosts running the MPE operating system."
+:group 'efs-parameters
+:type '(choice (const nil) regexp))
+(defcustom efs-ka9q-host-regexp nil
"Regexp to match hosts using the ka9q ftp server.
-These may actually be running one of DOS, LINUX, or unix.")
-(defvar efs-dos-distinct-host-regexp nil
+These may actually be running one of DOS, LINUX, or unix."
+:group 'efs-parameters
+:type '(choice (const nil) regexp))
+(defcustom efs-dos-distinct-host-regexp nil
"Regexp to match DOS hosts using the Distinct FTP server.
These are not treated as DOS hosts with a special listing format, because
-the Distinct FTP server uses unix-style path syntax.")
-(defvar efs-os2-host-regexp nil
- "Regexp to match names of hosts running OS/2.")
-(defvar efs-vos-host-regexp nil
- "Regexp to match hosts running the VOS operating system.")
-(defvar efs-hell-host-regexp nil
+the Distinct FTP server uses unix-style path syntax."
+:group 'efs-parameters
+:type '(choice (const nil) regexp))
+(defcustom efs-os2-host-regexp nil
+ "Regexp to match names of hosts running OS/2."
+:group 'efs-parameters
+:type '(choice (const nil) regexp))
+(defcustom efs-vos-host-regexp nil
+ "Regexp to match hosts running the VOS operating system."
+:group 'efs-parameters
+:type '(choice (const nil) regexp))
+(defcustom efs-hell-host-regexp nil
"Regexp to match hosts using the hellsoft ftp server.
-These map be either DOS PC's or Macs.")
+These map be either DOS PC's or Macs."
+:group 'efs-parameters
+:type '(choice (const nil) regexp))
;; The way that we implement the hellsoft support, it probably won't
;; work with Macs. This could probably be fixed, if enough people scream.
-(defvar efs-guardian-host-regexp nil
- "Regexp to match hosts running Tandem's guardian operating system.")
+(defcustom efs-guardian-host-regexp nil
+ "Regexp to match hosts running Tandem's guardian operating system."
+:group 'efs-parameters
+:type '(choice (const nil) regexp))
;; Note that ms-unix is really an FTP server running under DOS.
;; It's not a type of unix.
-(defvar efs-ms-unix-host-regexp nil
- "Regexp to match hosts using the Microsoft FTP server in unix mode.")
-(defvar efs-plan9-host-regexp nil
- "Regexp to match hosts running ATT's Plan 9 operating system.")
-(defvar efs-cms-knet-host-regexp nil
- "Regexp to match hosts running the CMS KNET FTP server.")
-(defvar efs-nos-ve-host-regexp nil
- "Regexp to match hosts running NOS/VE.")
-(defvar efs-netware-host-regexp nil
- "Regexp to match hosts running Novell Netware.")
-(defvar efs-dumb-apollo-unix-regexp nil
+(defcustom efs-ms-unix-host-regexp nil
+ "Regexp to match hosts using the Microsoft FTP server in unix mode."
+:group 'efs-parameters
+:type '(choice (const nil) regexp))
+(defcustom efs-plan9-host-regexp nil
+ "Regexp to match hosts running ATT's Plan 9 operating system."
+:group 'efs-parameters
+:type '(choice (const nil) regexp))
+(defcustom efs-cms-knet-host-regexp nil
+ "Regexp to match hosts running the CMS KNET FTP server."
+:group 'efs-parameters
+:type '(choice (const nil) regexp))
+(defcustom efs-nos-ve-host-regexp nil
+ "Regexp to match hosts running NOS/VE."
+:group 'efs-parameters
+:type '(choice (const nil) regexp))
+(defcustom efs-netware-host-regexp nil
+ "Regexp to match hosts running Novell Netware."
+:group 'efs-parameters
+:type '(choice (const nil) regexp))
+(defcustom efs-dumb-apollo-unix-regexp nil
"Regexp to match dumb hosts running Apollo's Domain.
-These are hosts which do not accept switches to ls over FTP.")
+These are hosts which do not accept switches to ls over FTP."
+:group 'efs-parameters
+:type '(choice (const nil) regexp))
;;; Further host types:
;;
1.13 +2 -2 XEmacs/packages/xemacs-packages/efs/efs-defun.el
Index: efs-defun.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/efs/efs-defun.el,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -p -r1.12 -r1.13
--- efs-defun.el 2004/10/02 14:05:58 1.12
+++ efs-defun.el 2007/10/12 15:16:30 1.13
@@ -2,7 +2,7 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; File: efs-defun.el
-;; Release: $efs release: 1.23 $
+;; Release: $efs release: 1.24 $
;; Version: #Revision: 1.1 $
;; RCS:
;; Description: efs-defun allows for OS-dependent coding of functions
@@ -134,7 +134,7 @@
;;; Variables
(defconst efs-defun-version
- (concat (substring "$efs release: 1.23 $" 14 -2)
+ (concat (substring "$efs release: 1.24 $" 14 -2)
"/"
(substring "#Revision: 1.1 $" 11 -2)))
1.13 +2 -2 XEmacs/packages/xemacs-packages/efs/efs-dired-mule.el
Index: efs-dired-mule.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/efs/efs-dired-mule.el,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -p -r1.12 -r1.13
--- efs-dired-mule.el 2004/10/02 14:05:59 1.12
+++ efs-dired-mule.el 2007/10/12 15:16:30 1.13
@@ -2,7 +2,7 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; File: efs-dired.el
-;; Release: $efs release: 1.23 $
+;; Release: $efs release: 1.24 $
;; Version: #Revision: 1.2 $
;; RCS:
;; Description: Makes efs-dired.el work with MULE.
@@ -14,7 +14,7 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defconst efs-dired-mule-version
- (concat (substring "$efs release: 1.23 $" 14 -2)
+ (concat (substring "$efs release: 1.24 $" 14 -2)
"/"
(substring "#Revision: 1.2 $" 11 -2)))
1.12 +13 -6 XEmacs/packages/xemacs-packages/efs/efs-dired.el
Index: efs-dired.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/efs/efs-dired.el,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -p -r1.11 -r1.12
--- efs-dired.el 2004/10/02 14:05:59 1.11
+++ efs-dired.el 2007/10/12 15:16:31 1.12
@@ -2,8 +2,8 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; File: efs-dired.el
-;; Release: $efs release: 1.23 $
-;; Version: #Revision: 1.32 $
+;; Release: $efs release: 1.24 $
+;; Version: #Revision: 1.33 $
;; RCS:
;; Description: Extends much of Dired to work under efs.
;; Authors: Sebastian Kremer <sk at thp.uni-koeln.de>,
@@ -22,7 +22,7 @@
(autoload 'dired-shell-call-process "dired-shell")
(defconst efs-dired-version
- (concat (substring "$efs release: 1.23 $" 14 -2)
+ (concat (substring "$efs release: 1.24 $" 14 -2)
"/"
(substring "#Revision: 1.32 $" 11 -2)))
@@ -555,9 +555,16 @@ and most of efs's cached data to be wipe
;; Version of dired-copy-file for remote files.
;; Assumes that filenames are already expanded.
(dired-handle-overwrite to)
- (efs-copy-file-internal from (efs-ftp-path from) to (efs-ftp-path to)
- ok-flag dired-copy-preserve-time 0 cont nowait))
-
+ (let ((efs-dired-copy-file-cont
+ (efs-cont (from to ok-flag preserve-time) (cont nowait)
+ (efs-copy-file-internal from (efs-ftp-path from) to (efs-ftp-path to)
+ ok-flag dired-copy-preserve-time 0 cont nowait))))
+ (dired-copy-file-recursive
+ (function
+ (lambda (from to ok-flag preserve-time)
+ (efs-call-cont efs-dired-copy-file-cont from to ok-flag preserve-time)))
+ from to ok-flag dired-copy-preserve-time t)))
+
(defun efs-dired-rename-file (from to ok-flag &optional cont nowait
insert-subdir)
;; Version of dired-rename-file for remote files.
1.13 +2 -2 XEmacs/packages/xemacs-packages/efs/efs-dl.el
Index: efs-dl.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/efs/efs-dl.el,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -p -r1.12 -r1.13
--- efs-dl.el 2004/10/02 14:05:59 1.12
+++ efs-dl.el 2007/10/12 15:16:31 1.13
@@ -2,7 +2,7 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; File: efs-dl.el
-;; Release: $efs release: 1.23 $
+;; Release: $efs release: 1.24 $
;; Version: #Revision: 1.3 $
;; RCS:
;; Description: Unix descriptive listing support for efs
@@ -19,7 +19,7 @@
(require 'efs)
(defconst efs-dl-version
- (concat (substring "$efs release: 1.23 $" 14 -2)
+ (concat (substring "$efs release: 1.24 $" 14 -2)
"/"
(substring "#Revision: 1.3 $" 11 -2)))
1.13 +2 -2 XEmacs/packages/xemacs-packages/efs/efs-dos-distinct.el
Index: efs-dos-distinct.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/efs/efs-dos-distinct.el,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -p -r1.12 -r1.13
--- efs-dos-distinct.el 2004/10/02 14:05:59 1.12
+++ efs-dos-distinct.el 2007/10/12 15:16:31 1.13
@@ -2,7 +2,7 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; File: efs-dos-distinct.el
-;; Release: $efs release: 1.23 $
+;; Release: $efs release: 1.24 $
;; Version: #Revision: 1.1 $
;; RCS:
;; Description: Distinct's DOS FTP server support for efs
@@ -21,7 +21,7 @@
(require 'efs)
(defconst efs-dos-distinct-version
- (concat (substring "$efs release: 1.23 $" 14 -2)
+ (concat (substring "$efs release: 1.24 $" 14 -2)
"/"
(substring "#Revision: 1.1 $" 11 -2)))
1.13 +2 -2 XEmacs/packages/xemacs-packages/efs/efs-dump.el
Index: efs-dump.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/efs/efs-dump.el,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -p -r1.12 -r1.13
--- efs-dump.el 2004/10/02 14:05:59 1.12
+++ efs-dump.el 2007/10/12 15:16:31 1.13
@@ -2,7 +2,7 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; File: efs-dump.el
-;; Release: $efs release: 1.23 $
+;; Release: $efs release: 1.24 $
;; Version: #Revision: 1.2 $
;; RCS:
;; Description: Install a bare-bones EFS hook into file-name-handler-alist
@@ -14,7 +14,7 @@
(provide 'efs-dump)
(defconst efs-dump-version
- (concat (substring "$efs release: 1.23 $" 14 -2)
+ (concat (substring "$efs release: 1.24 $" 14 -2)
"/"
(substring "#Revision: 1.2 $" 11 -2)))
1.14 +14 -12 XEmacs/packages/xemacs-packages/efs/efs-fnh.el
Index: efs-fnh.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/efs/efs-fnh.el,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -p -r1.13 -r1.14
--- efs-fnh.el 2004/10/02 14:06:00 1.13
+++ efs-fnh.el 2007/10/12 15:16:31 1.14
@@ -2,8 +2,8 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; File: efs-fnh.el
-;; Release: $efs release: 1.23 $
-;; Version: #Revision: 1.4 $
+;; Release: $efs release: 1.24 $
+;; Version: #Revision: 1.5 $
;; RCS:
;; Description: Look for the emacs version, and install into
;; the file-name-handler-alist
@@ -18,7 +18,7 @@
(provide 'efs-fnh)
(defconst efs-fnh-version
- (concat (substring "$efs release: 1.23 $" 14 -2)
+ (concat (substring "$efs release: 1.24 $" 14 -2)
"/"
(substring "#Revision: 1.4 $" 11 -2)))
@@ -36,15 +36,17 @@ remote files.")
(let ((ehev-match-data (match-data)))
(unwind-protect
(let ((xemacsp (string-match "XEmacs" emacs-version))
- ver subver)
- (or (string-match "^\\([0-9]+\\)\\.\\([0-9]+\\)" emacs-version)
- (error "efs does not work with emacs version %s" emacs-version))
- (setq ver (string-to-int (substring emacs-version
- (match-beginning 1)
- (match-end 1)))
- subver (string-to-int (substring emacs-version
- (match-beginning 2)
- (match-end 2))))
+ (ver emacs-major-version)
+ (subver emacs-minor-version))
+ (unless ver
+ (or (string-match "^\\([0-9]+\\)\\.\\([0-9]+\\)" emacs-version)
+ (error "efs does not work with emacs version %s" emacs-version))
+ (setq ver (string-to-int (substring emacs-version
+ (match-beginning 1)
+ (match-end 1)))
+ subver (string-to-int (substring emacs-version
+ (match-beginning 2)
+ (match-end 2)))))
(cond
;; XEmacs (emacs-version looks like \"19.xx XEmacs\")
1.13 +2 -2 XEmacs/packages/xemacs-packages/efs/efs-guardian.el
Index: efs-guardian.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/efs/efs-guardian.el,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -p -r1.12 -r1.13
--- efs-guardian.el 2004/10/02 14:06:00 1.12
+++ efs-guardian.el 2007/10/12 15:16:31 1.13
@@ -2,7 +2,7 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; File: efs-guardian.el
-;; Release: $efs release: 1.23 $
+;; Release: $efs release: 1.24 $
;; Version: #Revision: 1.10 $
;; Description: Guardian support for efs
;; Author: Sandy Rutherford <sandy at math.ubc.ca>
@@ -20,7 +20,7 @@
;;; questions and debugging. Thanks.
(defconst efs-guardian-version
- (concat (substring "$efs release: 1.23 $" 14 -2)
+ (concat (substring "$efs release: 1.24 $" 14 -2)
"/"
(substring "#Revision: 1.9 $" 11 -2)))
1.13 +2 -2 XEmacs/packages/xemacs-packages/efs/efs-gwp.el
Index: efs-gwp.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/efs/efs-gwp.el,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -p -r1.12 -r1.13
--- efs-gwp.el 2004/10/02 14:06:00 1.12
+++ efs-gwp.el 2007/10/12 15:16:31 1.13
@@ -2,7 +2,7 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; File: efs-gwp.el
-;; Release: $efs release: 1.23 $
+;; Release: $efs release: 1.24 $
;; Version: #Revision: 1.1 $
;; RCS:
;; Description: Support for efs to use an interactive gateway.
@@ -75,7 +75,7 @@ since it matches the login banner.")
;;; Internal Variables
(defconst efs-gwp-version
- (concat (substring "$efs release: 1.23 $" 14 -2)
+ (concat (substring "$efs release: 1.24 $" 14 -2)
"/"
(substring "#Revision: 1.1 $" 11 -2)))
1.13 +2 -2 XEmacs/packages/xemacs-packages/efs/efs-hell.el
Index: efs-hell.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/efs/efs-hell.el,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -p -r1.12 -r1.13
--- efs-hell.el 2004/10/02 14:06:00 1.12
+++ efs-hell.el 2007/10/12 15:16:31 1.13
@@ -2,7 +2,7 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; File: efs-hell.el
-;; Release: $efs release: 1.23 $
+;; Release: $efs release: 1.24 $
;; Version: #Revision: 1.1 $
;; RCS:
;; Description: Hellsoft FTP server support for efs
@@ -20,7 +20,7 @@
(require 'efs)
(defconst efs-hell-version
- (concat (substring "$efs release: 1.23 $" 14 -2)
+ (concat (substring "$efs release: 1.24 $" 14 -2)
"/"
(substring "#Revision: 1.1 $" 11 -2)))
1.13 +2 -2 XEmacs/packages/xemacs-packages/efs/efs-ka9q.el
Index: efs-ka9q.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/efs/efs-ka9q.el,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -p -r1.12 -r1.13
--- efs-ka9q.el 2004/10/02 14:06:00 1.12
+++ efs-ka9q.el 2007/10/12 15:16:31 1.13
@@ -2,7 +2,7 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; File: efs-ka9q.el
-;; Release: $efs release: 1.23 $
+;; Release: $efs release: 1.24 $
;; Version: #Revision: 1.2 $
;; RCS:
;; Description: KA9Q support for efs
@@ -21,7 +21,7 @@
(require 'efs)
(defconst efs-ka9q-version
- (concat (substring "$efs release: 1.23 $" 14 -2)
+ (concat (substring "$efs release: 1.24 $" 14 -2)
"/"
(substring "#Revision: 1.2 $" 11 -2)))
1.12 +2 -2 XEmacs/packages/xemacs-packages/efs/efs-kerberos.el
Index: efs-kerberos.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/efs/efs-kerberos.el,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -p -r1.11 -r1.12
--- efs-kerberos.el 2004/10/02 14:06:01 1.11
+++ efs-kerberos.el 2007/10/12 15:16:31 1.12
@@ -2,7 +2,7 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; File: efs-kerberos.el
-;; Release: $efs release: 1.23 $
+;; Release: $efs release: 1.24 $
;; Version: #Revision: 1.1 $
;; RCS:
;; Description: Support for Kerberos gateways.
@@ -19,7 +19,7 @@
(require 'efs)
(defconst efs-kerberos-version
- (concat (substring "$efs release: 1.23 $" 14 -2)
+ (concat (substring "$efs release: 1.24 $" 14 -2)
"/"
(substring "#Revision: 1.1 $" 11 -2)))
1.13 +2 -2 XEmacs/packages/xemacs-packages/efs/efs-mpe.el
Index: efs-mpe.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/efs/efs-mpe.el,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -p -r1.12 -r1.13
--- efs-mpe.el 2004/10/02 14:06:01 1.12
+++ efs-mpe.el 2007/10/12 15:16:31 1.13
@@ -2,7 +2,7 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; File: efs-mpe.el
-;; Release: $efs release: 1.23 $
+;; Release: $efs release: 1.24 $
;; Version: #Revision: 1.8 $
;; RCS:
;; Description: MPE (HP3000) support for efs.
@@ -123,7 +123,7 @@ This can take a very long time on large
;;; Internal Variables
(defconst efs-mpe-version
- (concat (substring "$efs release: 1.23 $" 14 -2)
+ (concat (substring "$efs release: 1.24 $" 14 -2)
"/"
(substring "#Revision: 1.8 $" 11 -2)))
1.12 +2 -2 XEmacs/packages/xemacs-packages/efs/efs-ms-unix.el
Index: efs-ms-unix.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/efs/efs-ms-unix.el,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -p -r1.11 -r1.12
--- efs-ms-unix.el 2004/10/02 14:06:01 1.11
+++ efs-ms-unix.el 2007/10/12 15:16:31 1.12
@@ -2,7 +2,7 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; File: efs-ms-unix.el
-;; Release: $efs release: 1.23 $
+;; Release: $efs release: 1.24 $
;; Version: #Revision: 1.1 $
;; RCS:
;; Description: efs support for the Microsoft PC FTP server in unix mode.
@@ -17,7 +17,7 @@
(require 'efs)
(defconst efs-ms-unix-version
- (concat (substring "$efs release: 1.23 $" 14 -2)
+ (concat (substring "$efs release: 1.24 $" 14 -2)
"/"
(substring "#Revision: 1.1 $" 11 -2)))
1.13 +2 -2 XEmacs/packages/xemacs-packages/efs/efs-mts.el
Index: efs-mts.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/efs/efs-mts.el,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -p -r1.12 -r1.13
--- efs-mts.el 2004/10/02 14:06:01 1.12
+++ efs-mts.el 2007/10/12 15:16:31 1.13
@@ -2,7 +2,7 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; File: efs-mts.el
-;; Release: $efs release: 1.23 $
+;; Release: $efs release: 1.24 $
;; Version: #Revision: 1.1 $
;; RCS:
;; Description: MTS support for efs
@@ -20,7 +20,7 @@
(require 'efs)
(defconst efs-mts-version
- (concat (substring "$efs release: 1.23 $" 14 -2)
+ (concat (substring "$efs release: 1.24 $" 14 -2)
"/"
(substring "#Revision: 1.1 $" 11 -2)))
1.13 +2 -2 XEmacs/packages/xemacs-packages/efs/efs-mvs.el
Index: efs-mvs.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/efs/efs-mvs.el,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -p -r1.12 -r1.13
--- efs-mvs.el 2004/10/02 14:06:01 1.12
+++ efs-mvs.el 2007/10/12 15:16:32 1.13
@@ -2,7 +2,7 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; File: efs-mvs.el
-;; Release: $efs release: 1.23 $
+;; Release: $efs release: 1.24 $
;; Version: #Revision: 1.4 $
;; RCS:
;; Description: MVS support for efs
@@ -24,7 +24,7 @@
(require 'efs)
(defconst efs-mvs-version
- (concat (substring "$efs release: 1.23 $" 14 -2)
+ (concat (substring "$efs release: 1.24 $" 14 -2)
"/"
(substring "#Revision: 1.4 $" 11 -2)))
1.15 +9 -8 XEmacs/packages/xemacs-packages/efs/efs-netrc.el
Index: efs-netrc.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/efs/efs-netrc.el,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -p -r1.14 -r1.15
--- efs-netrc.el 2004/10/02 14:06:02 1.14
+++ efs-netrc.el 2007/10/12 15:16:32 1.15
@@ -2,9 +2,9 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; File: efs-netrc.el
-;; Release: $efs release: 1.23 $
-;; Version: #Revision: 1.4 $
-;; RCS:
+;; Release: $efs release: 1.24 $
+;; Version: #Revision: 1.5 $
+;; RCS:
;; Description: Parses ~/.netrc file, and does completion in /.
;; Author: Sandy Rutherford <sandy at ibm550.sissa.it>
;; Created: Fri Jan 28 19:32:47 1994 by sandy on ibm550
@@ -35,7 +35,7 @@
;;;; ------------------------------------------------------------
(defconst efs-netrc-version
- (concat (substring "$efs release: 1.23 $" 14 -2)
+ (concat (substring "$efs release: 1.24 $" 14 -2)
"/"
(substring "#Revision: 1.4 $" 11 -2)))
@@ -187,7 +187,7 @@ give the null string for it. In lisp pro
(defun efs-parse-netrc-group (&optional machine)
;; Extract the values for the tokens "machine", "login", "password",
- ;; "account" and "minidisk" in the current buffer. If successful,
+ ;; "account" and "minidisk" in the current buffer. If successful,
;; record the information found.
(let (data login)
;; Get a machine token.
@@ -383,14 +383,15 @@ Used when completion is done in the root
;;;###autoload
-(defun efs-root-file-name-completion (file dir)
+(defun efs-root-file-name-completion (file dir &optional predicate)
;; Calculates completions in the root directory to include remote hosts.
(let ((file-name-handler-alist (efs-file-name-handler-alist-sans-fn
'efs-root-handler-function)))
(try-completion
file
(nconc (efs-generate-root-prefixes)
- (mapcar 'list (file-name-all-completions file "/"))))))
-
+ (mapcar 'list (if predicate
+ (file-name-all-completions file "/" predicate)
+ (file-name-all-completions file "/")))))))
;;; end of efs-netrc.el
1.13 +2 -2 XEmacs/packages/xemacs-packages/efs/efs-netware.el
Index: efs-netware.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/efs/efs-netware.el,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -p -r1.12 -r1.13
--- efs-netware.el 2004/10/02 14:06:02 1.12
+++ efs-netware.el 2007/10/12 15:16:32 1.13
@@ -2,7 +2,7 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; File: efs-netware.el
-;; Release: $efs release: 1.23 $
+;; Release: $efs release: 1.24 $
;; Version: #Revision: 1.5 $
;; RCS:
;; Description: efs support for the Novell Netware FTP server
@@ -22,7 +22,7 @@
(require 'efs)
(defconst efs-netware-version
- (concat (substring "$efs release: 1.23 $" 14 -2)
+ (concat (substring "$efs release: 1.24 $" 14 -2)
"/"
(substring "#Revision: 1.5 $" 11 -2)))
1.13 +2 -2 XEmacs/packages/xemacs-packages/efs/efs-nos-ve.el
Index: efs-nos-ve.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/efs/efs-nos-ve.el,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -p -r1.12 -r1.13
--- efs-nos-ve.el 2004/10/02 14:06:02 1.12
+++ efs-nos-ve.el 2007/10/12 15:16:32 1.13
@@ -2,7 +2,7 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; File: efs-nos-ve.el
-;; Release: $efs release: 1.23 $
+;; Release: $efs release: 1.24 $
;; Version: #Revision: 1.2 $
;; RCS:
;; Description: efs support for NOS/VE
@@ -24,7 +24,7 @@
;;; providing imformation and testing.
(defconst efs-nos-ve-version
- (concat (substring "$efs release: 1.23 $" 14 -2)
+ (concat (substring "$efs release: 1.24 $" 14 -2)
"/"
(substring "#Revision: 1.2 $" 11 -2)))
1.14 +2 -2 XEmacs/packages/xemacs-packages/efs/efs-ovwrt.el
Index: efs-ovwrt.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/efs/efs-ovwrt.el,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -p -r1.13 -r1.14
--- efs-ovwrt.el 2004/10/02 14:06:02 1.13
+++ efs-ovwrt.el 2007/10/12 15:16:32 1.14
@@ -2,7 +2,7 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; File: efs-ovwrt.el
-;; Release: $efs release: 1.23 $
+;; Release: $efs release: 1.24 $
;; Version: #Revision: 1.3 $
;; RCS:
;; Description: Utilities for overwriting functions with new definitions.
@@ -21,7 +21,7 @@
(error)))
(defconst efs-ovwrt-version
- (concat (substring "$efs release: 1.23 $" 14 -2)
+ (concat (substring "$efs release: 1.24 $" 14 -2)
"/"
(substring "#Revision: 1.3 $" 11 -2)))
1.13 +2 -2 XEmacs/packages/xemacs-packages/efs/efs-pc.el
Index: efs-pc.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/efs/efs-pc.el,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -p -r1.12 -r1.13
--- efs-pc.el 2004/10/02 14:06:02 1.12
+++ efs-pc.el 2007/10/12 15:16:32 1.13
@@ -2,7 +2,7 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; File: efs-pc.el
-;; Release: $efs release: 1.23 $
+;; Release: $efs release: 1.24 $
;; Version: #Revision: 1.1 $
;; RCS:
;; Description: PC support for efs
@@ -29,7 +29,7 @@
(require 'efs)
(defconst efs-pc-version
- (concat (substring "$efs release: 1.23 $" 14 -2)
+ (concat (substring "$efs release: 1.24 $" 14 -2)
"/"
(substring "#Revision: 1.1 $" 11 -2)))
1.13 +2 -2 XEmacs/packages/xemacs-packages/efs/efs-plan9.el
Index: efs-plan9.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/efs/efs-plan9.el,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -p -r1.12 -r1.13
--- efs-plan9.el 2004/10/02 14:06:02 1.12
+++ efs-plan9.el 2007/10/12 15:16:32 1.13
@@ -2,7 +2,7 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; File: efs-plan9.el
-;; Release: $efs release: 1.23 $
+;; Release: $efs release: 1.24 $
;; Version: #Revision: 1.1 $
;; RCS:
;; Description: efs support for the Plan 9 FTP Server
@@ -22,7 +22,7 @@
(require 'efs)
(defconst efs-plan9-version
- (concat (substring "$efs release: 1.23 $" 14 -2)
+ (concat (substring "$efs release: 1.24 $" 14 -2)
"/"
(substring "#Revision: 1.1 $" 11 -2)))
1.14 +4 -4 XEmacs/packages/xemacs-packages/efs/efs-report.el
Index: efs-report.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/efs/efs-report.el,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -p -r1.13 -r1.14
--- efs-report.el 2004/10/02 14:06:03 1.13
+++ efs-report.el 2007/10/12 15:16:32 1.14
@@ -2,8 +2,8 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; File: efs-report.el
-;; Release: $efs release: 1.23 $
-;; Version: #Revision: 1.10 $
+;; Release: $efs release: 1.24 $
+;; Version: #Revision: 1.11 $
;; RCS:
;; Description: Function to report efs bugs in a usable way.
;; Author: Andy Norman, Dawn
@@ -20,7 +20,7 @@
;;; Variables
(defconst efs-report-version
- (concat (substring "$efs release: 1.23 $" 14 -2)
+ (concat (substring "$efs release: 1.24 $" 14 -2)
"/"
(substring "#Revision: 1.10 $" 11 -2)))
@@ -33,7 +33,7 @@
"Fellow efs'ers:"
"Greetings earthlings:"])
-(defvar efs-bug-address "efs-bugs at hplb.hpl.hp.com")
+(defvar efs-bug-address "elisp-code-efs at nongnu.org")
(defconst efs-report-other-vars
;; List of variables needed for efs-report, that aren't generated below.
1.14 +2 -2 XEmacs/packages/xemacs-packages/efs/efs-ti-explorer.el
Index: efs-ti-explorer.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/efs/efs-ti-explorer.el,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -p -r1.13 -r1.14
--- efs-ti-explorer.el 2004/10/02 14:06:03 1.13
+++ efs-ti-explorer.el 2007/10/12 15:16:32 1.14
@@ -2,7 +2,7 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; File: efs-ti-explorer.el
-;; Release: $efs release: 1.23 $
+;; Release: $efs release: 1.24 $
;; Version: #Revision: 1.1 $
;; RCS:
;; Description: Explorer support for efs
@@ -20,7 +20,7 @@
(require 'efs)
(defconst efs-ti-explorer-version
- (concat (substring "$efs release: 1.23 $" 14 -2)
+ (concat (substring "$efs release: 1.24 $" 14 -2)
"/"
(substring "#Revision: 1.1 $" 11 -2)))
1.13 +2 -2 XEmacs/packages/xemacs-packages/efs/efs-ti-twenex.el
Index: efs-ti-twenex.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/efs/efs-ti-twenex.el,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -p -r1.12 -r1.13
--- efs-ti-twenex.el 2004/10/02 14:06:03 1.12
+++ efs-ti-twenex.el 2007/10/12 15:16:32 1.13
@@ -2,7 +2,7 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; File: efs-ti-twenex.el
-;; Release: $efs release: 1.23 $
+;; Release: $efs release: 1.24 $
;; Version: #Revision: 1.1 $
;; RCS:
;; Description: Support for a TI lisp machine in Twenex emulation mode.
@@ -20,7 +20,7 @@
(require 'efs)
(defconst efs-ti-twenex-version
- (concat (substring "$efs release: 1.23 $" 14 -2)
+ (concat (substring "$efs release: 1.24 $" 14 -2)
"/"
(substring "#Revision: 1.1 $" 11 -2)))
1.13 +2 -2 XEmacs/packages/xemacs-packages/efs/efs-tops-20.el
Index: efs-tops-20.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/efs/efs-tops-20.el,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -p -r1.12 -r1.13
--- efs-tops-20.el 2004/10/02 14:06:03 1.12
+++ efs-tops-20.el 2007/10/12 15:16:33 1.13
@@ -2,7 +2,7 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; File: efs-tops-20.el
-;; Release: $efs release: 1.23 $
+;; Release: $efs release: 1.24 $
;; Version: #Revision: 1.1 $
;; RCS:
;; Description: TOPS-20 support for efs
@@ -20,7 +20,7 @@
(provide 'efs-tops-20)
(defconst efs-tops-20-version
- (concat (substring "$efs release: 1.23 $" 14 -2)
+ (concat (substring "$efs release: 1.24 $" 14 -2)
"/"
(substring "#Revision: 1.1 $" 11 -2)))
1.13 +15 -14 XEmacs/packages/xemacs-packages/efs/efs-vms.el
Index: efs-vms.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/efs/efs-vms.el,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -p -r1.12 -r1.13
--- efs-vms.el 2004/10/02 14:06:03 1.12
+++ efs-vms.el 2007/10/12 15:16:33 1.13
@@ -2,8 +2,8 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; File: efs-vms.el
-;; Release: $efs release: 1.23 $
-;; Version: #Revision: 1.13 $
+;; Release: $efs release: 1.24 $
+;; Version: #Revision: 1.14 $
;; RCS:
;; Description: VMS support for efs
;; Authors: Andy Norman, Joe Wells, Sandy Rutherford <sandy at itp.ethz.ch>
@@ -18,7 +18,7 @@
(require 'efs)
(defconst efs-vms-version
- (concat (substring "$efs release: 1.23 $" 14 -2)
+ (concat (substring "$efs release: 1.24 $" 14 -2)
"/"
(substring "#Revision: 1.13 $" 11 -2)))
@@ -146,7 +146,9 @@
(if (<= len 0)
(setq dir nil)
(while (<= n len)
- (and (char-equal (aref dir n) ?/)
+ (and (or (char-equal (aref dir n) ?/)
+ (char-equal (aref dir n) ?\\)
+ )
(cond
((zerop n) (aset dir n ?\[))
((= n len) (aset dir n ?\]))
@@ -154,12 +156,10 @@
(setq n (1+ n))))))
(concat drive dir file)))))
-;; It is important that this function barf for directories for which we know
-;; that we cannot possibly get a directory listing, such as "/" and "/DEV:/".
-;; This is because it saves an unnecessary FTP error, or possibly the listing
-;; might succeed, but give erroneous info. This last case is particularly
-;; likely for OS's (like MTS) for which we need to use a wildcard in order
-;; to list a directory.
+;; in vms the paths "/" and "/DEV:/" correspond to [000000] and dev:[000000]
+;; though you may not have permissions for these directories, if you do,
+;; then it mans you can explore the directory tree, rather than guess
+;; subdirectory names
(efs-defun efs-fix-dir-path vms (dir-path)
;; Convert path from UNIX-ish to VMS ready for a DIRectory listing.
@@ -167,11 +167,12 @@
;; think so, because expand-filename should have already short-circuited
;; them.
(cond ((string-equal dir-path "/")
- (error "Cannot get listing for fictitious \"/\" directory."))
- ((string-match "^/[-A-Z0-9_$]+:/$" dir-path)
- (error "Cannot get listing for device."))
+ (efs-fix-path 'vms "/000000/"))
+ ((string-match "^\\(/[-A-Z0-9_$]+:/\\)$" dir-path)
+ (efs-fix-path 'vms (concat dir-path "000000/")))
((efs-fix-path 'vms dir-path))))
-
+;
+
;; These parsing functions are as general as possible because the syntax
;; of ftp listings from VMS hosts is a bit erratic. What saves us is that
;; the VMS filename syntax is so rigid. If they bomb on a listing in the
1.13 +2 -2 XEmacs/packages/xemacs-packages/efs/efs-vos.el
Index: efs-vos.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/efs/efs-vos.el,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -p -r1.12 -r1.13
--- efs-vos.el 2004/10/02 14:06:03 1.12
+++ efs-vos.el 2007/10/12 15:16:33 1.13
@@ -3,7 +3,7 @@
;;
;; File: efs-vos.el
;; Description: VOS support for efs
-;; Release: $efs release: 1.23 $
+;; Release: $efs release: 1.24 $
;; Version: #Revision: 1.1 $
;; RCS:
;; Author: Sandy Rutherford <sandy at ibm550.sissa.it>
@@ -25,7 +25,7 @@
(require 'efs)
(defconst efs-vos-version
- (concat (substring "$efs release: 1.23 $" 14 -2)
+ (concat (substring "$efs release: 1.24 $" 14 -2)
"/"
(substring "#Revision: 1.1 $" 11 -2)))
1.12 +2 -2 XEmacs/packages/xemacs-packages/efs/efs-x19.15.el
Index: efs-x19.15.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/efs/efs-x19.15.el,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -p -r1.11 -r1.12
--- efs-x19.15.el 2004/10/02 14:06:03 1.11
+++ efs-x19.15.el 2007/10/12 15:16:33 1.12
@@ -2,7 +2,7 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; File: efs-x19.15.el
-;; Release: $efs release: 1.23 $
+;; Release: $efs release: 1.24 $
;; Version: #Revision: 1.2 $
;; RCS:
;; Description: efs support for XEmacs, versions 19.15, and later.
@@ -16,7 +16,7 @@
(require 'efs-ovwrt)
(defconst efs-x19\.15-version
- (concat (substring "$efs release: 1.23 $" 14 -2)
+ (concat (substring "$efs release: 1.24 $" 14 -2)
"/"
(substring "#Revision: 1.2 $" 11 -2)))
1.23 +235 -256 XEmacs/packages/xemacs-packages/efs/efs.el
Index: efs.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/efs/efs.el,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -p -r1.22 -r1.23
--- efs.el 2004/10/02 14:06:04 1.22
+++ efs.el 2007/10/12 15:16:33 1.23
@@ -2,28 +2,28 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; File: efs.el
-;; Release: $efs release: 1.23 $
-;; Version: #Revision: 1.92 $
-;; RCS:
+;; Release: $efs release: 1.24 $
+;; Version: #Revision: 1.93 $
+;; RCS:
;; Description: Transparent FTP support for the original GNU Emacs
;; from FSF and XEmacs
;; Authors: Andy Norman <ange at hplb.hpl.hp.com>,
;; Sandy Rutherford <sandy at ibm550.sissa.it>
-;; Mike Sperber <sperber at informatik.uni-tuebingen.de>
+;; Mike Sperber <sperber at informatik.uni-tuebingen.de>
;; Created: Thu Oct 12 14:00:05 1989 (as ange-ftp)
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; The following restrictions apply to all of the files in the efs
;;; distribution.
-;;;
+;;;
;;; Copyright (C) 1993 Andy Norman / Sandy Rutherford
;;; Copyright (C) 2003 Mike Sperber
;;;
;;; Authors:
;;; Andy Norman (ange at hplb.hpl.hp.com)
;;; Sandy Rutherford (sandy at ibm550.sissa.it)
-;;;
+;;;
;;; The authors of some of the sub-files of efs are different
;;; from the above. We are very grateful to people who have
;;; contributed code to efs.
@@ -99,7 +99,7 @@
;;; substitute-in-file-name
;;; verify-visited-file-modtime
;;; write-region
-;;;
+;;;
;;; The following functions are overloaded in efs.el, because they cannot
;;; be handled via the file-name-handler-alist.
;;;
@@ -107,10 +107,10 @@
;;; load
;;; read-file-name-internal (Emacs 18, only)
;;; require
-;;;
+;;;
;;; The following dired functions are handled by hooking them into the
;;; the file-name-handler-alist. This is done in efs-dired.el.
-;;;
+;;;
;;; efs-dired-compress-file
;;; eds-dired-print-file
;;; efs-dired-make-compressed-filename
@@ -120,7 +120,7 @@
;;; efs-dired-recursive-delete-directory
;;; efs-dired-uncache
;;; efs-dired-call-process
-;;;
+;;;
;;; In efs-dired.el, the following dired functions are overloaded.
;;;
;;; dired-collect-file-versions
@@ -140,12 +140,12 @@
;;; dired-grep-load-hook
;;; LISPDIR ENTRY for the Elisp Archive:
-;;;
+;;;
;;; LCD Archive Entry:
;;; efs|Andy Norman and Sandy Rutherford
;;; |ange at hplb.hpl.hp.com and sandy at ibm550.sissa.it
;;; |transparent FTP Support for GNU Emacs
-;;; |$Date: 2004/10/02 14:06:04 $|$efs release: 1.23 $|
+;;; |$Date: 2007/10/12 15:16:33 $|$efs release: 1.24 $|
;;; Host and listing type notation:
;;;
@@ -180,7 +180,7 @@
;;; Host and listing type hierarchy:
;;;
;;; unknown: unix, dumb-unix, sysV-unix, bsd-unix, next-unix, apollo-unix,
-;;; ka9q, dos-distinct, unix:dl, hell,
+;;; ka9q, dos-distinct, unix:dl, hell,
;;; super-dumb-unix, dumb-apollo-unix
;;; unix: sysV-unix, bsd-unix, next-unix, apollo-unix, unix:dl
;;; dos: dos:ftp, dos:novell, dos:ncsa, dos:microsoft, dos:winsock
@@ -219,7 +219,7 @@
;;; plan9:
;;; nos-ve:
;;; coke:
-;;;
+;;;
;;;; ================================================================
@@ -264,7 +264,7 @@
;; When bootstapping XEmacs, comint is not available
(condition-case nil
(require 'comint)
- (error
+ (error
(defun comint-mode ()
(fundamental-mode))
(defun comint-output-filter (process string)
@@ -300,7 +300,7 @@
;;;; ------------------------------------------------------------
(defconst efs-version
- (concat (substring "$efs release: 1.23 $" 14 -2)
+ (concat (substring "$efs release: 1.24 $" 14 -2)
"/"
(substring "#Revision: 1.91 $" 11 -2)))
@@ -322,7 +322,7 @@
(defconst efs-version-host-types '(vms tops-20 ti-twenex ti-explorer)
"List of host-types which associated a version number to all files.
This is not the same as associating version numbers to only backup files.")
-;; Note that on these systems,
+;; Note that on these systems,
;; (file-name-sans-versions EXISTING-FILE) does not exist as a file.
(defconst efs-single-extension-host-types
@@ -366,41 +366,7 @@ to indicate compressed files.")
;;;; User customization variables. Please read through these carefully.
;;;; ------------------------------------------------------------------
-(defgroup efs nil
- "Transparent ftp access."
-:group 'files)
-
-(defgroup efs-behavior nil
- "User-visible aspects of EFS."
-:prefix "efs-"
-:group 'efs)
-
-(defgroup efs-auto-save nil
- "EFS interaction with auto-save."
-:prefix "efs-"
-:group 'efs)
-
-(defgroup efs-gateways nil
- "Using EFS via an ftp gateway."
-:prefix "efs-"
-:group 'efs)
-
-(defgroup efs-programs nil
- "External programs used by EFS."
-:prefix "efs-"
-:group 'efs)
-
-(defgroup efs-parameters nil
- "Behind-the-scenes parameters of EFS."
-:prefix "efs-"
-:group 'efs)
-
-(defgroup efs-hooks nil
- "Hooks for EFS."
-:prefix "efs-"
-:group 'efs)
-
-;;;>>>> If you are not fully connected to the internet, <<<<
+;;;>>>> If you are not fully connected to the internet, <<<<
;;;>>>> and need to use a gateway (no matter how transparent) <<<<
;;;>>>> you will need to set some of the following variables. <<<<
;;;>>>> Read the documentation carefully. <<<<
@@ -411,7 +377,7 @@ These are hosts to which it is possible
connection. Even if the host is accessible by a very transparent FTP gateway,
it does not qualify as a local host. The test to determine if machine A is
local to your machine is if it is possible to ftp from A _back_ to your
-local machine. Also, open-network-stream must be able to reach the host
+local machine. Also, open-network-stream must be able to reach the host
in question."
:type 'regexp
:group 'efs-gateways)
@@ -453,10 +419,10 @@ The following possibilities are supporte
This indicates that your gateway works by first FTP'ing to it, and
then giving a USER command of the form \"USER <username>@<host>\".
FTP-PROGRAM is the FTP program to use to connect to the gateway; this
- is most likely \"ftp\". FTP-PROGRAM-ARGS is a list of arguments to
+ is most likely \"ftp\". FTP-PROGRAM-ARGS is a list of arguments to
pass to it. You likely want this to be set to the value of
efs-ftp-program-args <V>. If the connection to the gateway FTP server
- is to be on a port different from 21, set efs-gateway-host to
+ is to be on a port different from 21, set efs-gateway-host to
\"<host>#<port>\".
'(sidewinder FTP-PROGRAM FTP-PROGRAM-ARGS)
@@ -467,7 +433,7 @@ The following possibilities are supporte
'(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
- as <user> on <host>, where USER is an authentication username for the
+ as <user> on <host>, where USER is an authentication username for the
gateway. After issuing the password for the remote host, efs will
send the password for USER on efs-gateway-host <V> as an account command.
@@ -497,11 +463,11 @@ The following possibilities are supporte
this remote shell. Likely values are \"remsh\" or \"rsh\".
GATEWAY-PROGRAM-ARGS is a list of arguments to pass to GATEWAY-PROGRAM.
FTP-PROGRAM is the name of the FTP program on the gateway. A likely setting
- of this is \"ftp\". FTP-PROGRAM-ARGS is a list of arguments to pass to
+ of this is \"ftp\". FTP-PROGRAM-ARGS is a list of arguments to pass to
FTP-PROGRAM. Most likely these should be set to the value of
efs-ftp-program-args <V>.
- '(interactive GATEWAY-PROGRAM GATEWAY-PROGRAM-ARGS FTP-PROGRAM
+ '(interactive GATEWAY-PROGRAM GATEWAY-PROGRAM-ARGS FTP-PROGRAM
FTP-PROGRAM-ARGS)
This indicates that you need to start an interactive login on your gatway,
using rlogin, telnet, or something similar. GATEWAY-PROGRAM is the name
@@ -511,7 +477,7 @@ The following possibilities are supporte
\"exec ftp\". FTP-PROGRAM-ARGS is a list of arguments to pass
to FTP-PROGRAM. You probably want to set these to the same value as
efs-ftp-program-args <V>. If you are using this option, read the
- documentation at the top of efs-gwp.el, and see
+ documentation at the top of efs-gwp.el, and see
efs-gwp-setup-term-command <V>."
:type '(choice (const nil)
(list :tag "Local"
@@ -729,7 +695,7 @@ transferred, and the number hashes outpu
transfer.
The variable `efs-gateway-hash-mark-size' defines the corresponding value
-for the FTP client on the gateway, if you are using a gateway.
+for the FTP client on the gateway, if you are using a gateway.
Some client-server combinations do not correctly compute the number of hash
marks for incoming binary transfers. In this case, a separate variable
@@ -741,7 +707,7 @@ hash mark size for incoming binary trans
(defcustom efs-incoming-binary-hm-size nil
"*Default hash mark size for incoming binary transfers.
-If this is nil, incoming binary transfers will use `efs-hash-mark-size' as
+If this is nil, incoming binary transfers will use `efs-hash-mark-size' as
the default. See the documentation of this variable for more details."
:type '(choice integer
(const nil))
@@ -786,7 +752,7 @@ sessions as an integer."
:group 'efs-behavior)
(defcustom efs-ftp-activity-function nil
- "Function called to indicate FTP activity.
+ "Function called to indicate FTP activity.
It must have exactly one argument, the number of active FTP sessions as an
integer."
:type '(choice function
@@ -822,6 +788,16 @@ This works around a common bug in many B
:type 'boolean
:group 'efs-programs)
+(defcustom efs-ftp-explicit-empty-file-name
+ (if (eq system-type 'berkeley-unix) ; lukemftp has this problem
+ "\" \""
+ "")
+ "Quoted version of the empty file, if it needs to be specified explicitly.
+Some ftp clients can't handle an empty file, but will accept a filename
+consisting of a single space."
+:type 'string
+:group 'efs-programs)
+
(defcustom efs-nslookup-program
(and (not (eq system-type 'windows-nt)) "nslookup")
"*If non-NIL then a string naming the nslookup program."
@@ -888,7 +864,7 @@ For example:
(defcustom efs-backup-by-copying nil
"*Version of `backup by copying' for remote files.
If non-nil, remote files will be backed up by copying, instead of by renaming.
-Note the copying will be done by moving the file through the local host -- a
+Note the copying will be done by moving the file through the local host -- a
very time consuming operation."
:type 'boolean
:group 'efs-behavior)
@@ -912,7 +888,7 @@ or `auto-save-directory-fallback' if thi
If non-nil, causes the auto-save file for an efs file to be written in
the remote directory containing the file, rather than in a local directory.
For remote files, this overrides a non-nil `auto-save-directory'. Local files
-are unaffected. If you want to use this feature, you probably only want to
+are unaffected. If you want to use this feature, you probably only want to
set this true in a few buffers, rather than globally. You might want to give
each buffer its own value using `make-variable-buffer-local'. It is usually
a good idea to auto-save remote files locally, because it is not only faster,
@@ -937,7 +913,7 @@ See also variable `efs-auto-save'."
(defcustom efs-local-apollo-unix
(eq 0 (string-match "//" (or (getenv "HOME") (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
+This variable has nothing to do with efs, and should be basic to all
of emacs."
:type 'boolean
:group 'efs-parameters)
@@ -987,7 +963,7 @@ to nil."
"nlist")
;; Blind guess
("ls"))
- "*FTP client command for getting a brief listing (NLST) from the FTP server.
+ "*FTP client command for getting a brief listing (NLST) from the FTP server.
We try to guess this based on the local system-type, but obviously if you
are using a gateway, you'll have to set it yourself."
:type 'string
@@ -1030,8 +1006,8 @@ very time-consuming over FTP, this varia
Case-insensitive file names are files on hosts whose host type is in
`efs-case-insensitive-host-types'.
-If this is 'up upper case is used, if it is 'down lower case is used.
-If this has any other value, the case is inherited from the name used
+If this is 'up upper case is used, if it is 'down lower case is used.
+If this has any other value, the case is inherited from the name used
to access the file."
:type '(choice (const nil)
(const up)
@@ -1055,7 +1031,7 @@ be used for the buffer."
(defcustom efs-verify-anonymous-modtime nil
"*Determines if efs checks modtimes for remote files on anonymous logins.
-If non-nil, efs runs `verify-visited-file-modtime' for remote files on
+If non-nil, efs runs `verify-visited-file-modtime' for remote files on
anonymous ftp logins. Since verify-visited-file-modtime slows things down,
and most people aren't editing files on anonymous ftp logins, this is nil
by default."
@@ -1183,7 +1159,7 @@ match in the alist is run."
(defcustom efs-load-hook nil
"Hook to run immediately after loading efs.el.
-You can use it to alter definitions in efs.el, but why would you want
+You can use it to alter definitions in efs.el, but why would you want
to do such a thing?"
:type 'hook
:group 'efs-hooks)
@@ -1212,15 +1188,18 @@ to do such a thing?"
(cons "^ls \\|^put \\|^get \\|^append \\|passive"
;; Some ftp clients try this first by default and do not
;; filter out the reply.
- "^500 .*\\(EPSV\\|EPRT\\).* not understood")))
-
+ "^500 .*\\(EPSV\\|EPRT\\).* not understood")
+ ;; Regexp to match failed IPv6 connection attempts
+ (cons "^open "
+ "^ftp: .*`?[0-9a-zA-Z]+:[0-9a-zA-Z:]+'?: No route to host")))
+
(defvar efs-cmd-ok-msgs
;; RFC959 and RFC2428 compliant
"^200 \\|^227 \\|^229")
;; Regexp to match the server command OK response.
;; Because PORT commands return this we usually ignore it. However, it is
;; a valid response for TYPE, SITE, and a few other commands (cf. RFC 959).
-;; If we are explicitly sending a PORT, or one of these other commands,
+;; If we are explicitly sending a PORT, or one of these other commands,
;; then we don't want to ignore this response code. Also use this to match
;; the return code for PASV, as some clients burp these things out at odd
;; times.
@@ -1259,7 +1238,7 @@ to do such a thing?"
;; then does send a second completion code for the command. This does
;; *not* conform to RFC959.
"^100 Warning: type is ")
-;; Regexp to match non-standard response from the FTP server. This can
+;; Regexp to match non-standard response from the FTP server. This can
;; sometimes be the result of an incorrectly set transfer mode. In this case
;; we do not rely on the server to tell us when the data transfer is complete,
;; but check with the client.
@@ -1347,7 +1326,7 @@ to do such a thing?"
(defvar efs-idle-msgs
"^200 [^0-9]+ \\([0-9]+\\)[^0-9]* max \\([0-9]+\\)")
;; Regexp to match the output of a SITE IDLE command.
-;; Match 1 should refer to the current idle time, and match 2 the maximum
+;; Match 1 should refer to the current idle time, and match 2 the maximum
;; idle time.
(defvar efs-write-protect-msgs "^532 ") ; RFC959
@@ -1715,8 +1694,12 @@ See completion-ignored-extensions, inste
;; and they can be padded on the right with spaces.
;; weiand: changed: month ends potentially with . or , or .,
;;old (month (concat l l "+ *"))
- (month (concat l l "+[.]?,? *"))
- (date "[ 0-3][0-9]")
+ (l-or-quote "\\([A-Za-z']\\|[^\0-\177]\\)")
+ ;; In some locales, month abbreviations are as short as 2 letters,
+ ;; and they can be followed by ".".
+ ;; In Breton, a month name can include a quote character.
+ (month (concat l-or-quote l-or-quote "+\\.?"))
+ (date "[ 0-3][0-9]\\.?")
(time "[ 012][0-9]:[0-6][0-9]")
(year (concat
"\\("
@@ -1762,7 +1745,7 @@ See completion-ignored-extensions, inste
(concat
"\\([^ ][-r][-w][^ ][-r][-w][^ ][-r][-w][^ ]\\)[-+]? *\\([0-9]+\\)"
" +\\([^ ]+\\) "))
-
+
;;;; ---------------------------------------------------------------
;;;; efs-dired variables
;;;; ---------------------------------------------------------------
@@ -2153,7 +2136,7 @@ args will be taken from CONT if a list w
(efs-define-fun efs-relativize-filename (file &optional dir new)
"Abbreviate the given filename relative to DIR .
If DIR is nil, use the value of `default-directory' for the currently selected
-window. If the optional parameter NEW is given and the
+window. If the optional parameter NEW is given and the
non-directory parts match, only return the directory part of the file."
(let* ((dir (or dir (save-excursion
(set-buffer (window-buffer (selected-window)))
@@ -2292,7 +2275,7 @@ for the local host to send as an anonymo
The function `system-name' is not returning a fully qualified
domain name. An attempt to obtain a fully qualified domain name
with `efs-nslookup-program' (currently set to \"%s\") has
-elicited no response from that program. Consider setting
+elicited no response from that program. Consider setting
`efs-generate-anonymous-password' to an email address for anonymous
ftp passwords.
@@ -2315,7 +2298,7 @@ variables `efs-nslookup-program' and `ef
sys))))))
(defun efs-passwd-unique-list (alist)
- ;; Preserving the relative order of ALIST, remove all entries with duplicate
+ ;; Preserving the relative order of ALIST, remove all entries with duplicate
;; cars.
(let (result)
(while alist
@@ -2363,7 +2346,7 @@ variables `efs-nslookup-program' and `ef
tertiaries))))))
efs-host-user-hashtable 'passwd))
(efs-passwd-unique-list (nconc primaries secondaries tertiaries))))
-
+
(defun efs-get-passwd (host user)
"Given a HOST and USER, return the FTP password, prompting if it was not
previously set."
@@ -2372,13 +2355,13 @@ previously set."
;; look up password in the hash table first; user might have overriden the
;; defaults.
(cond ((efs-lookup-passwd host user))
-
+
;; see if default user and password set from the .netrc file.
((and (stringp efs-default-user)
efs-default-password
(string-equal user efs-default-user))
(copy-sequence efs-default-password))
-
+
;; anonymous ftp password is handled specially since there is an
;; unwritten rule about how that is used on the Internet.
((and (efs-anonymous-p user)
@@ -2386,7 +2369,7 @@ previously set."
(if (stringp efs-generate-anonymous-password)
(copy-sequence efs-generate-anonymous-password)
(concat (user-login-name) "@" (efs-system-fqdn))))
-
+
;; see if same user has logged in to other hosts; if so then prompt
;; with the password that was used there.
(t
@@ -2502,7 +2485,7 @@ Does nothing if there is no process buff
"efs is unable to identify the following reply code
from the ftp server " host ":\n\n" line "
-Please send a bug report to efs-bugs at hplb.hpl.hp.com.
+Please send a bug report to elisp-code-efs at nongnu.org.
In your report include a transcript of your\n"
buff " buffer."))))
(error "Unable to identify server code."))
@@ -2537,11 +2520,11 @@ is popped up in another window."
(match-beginning n)
(match-end n)))
-10))))
-
+
((string-match efs-multi-msgs line)
(setq efs-process-result-cont-lines
(concat efs-process-result-cont-lines line "\n")))
-
+
((efs-skip-cmd-msg-p efs-process-cmd line))
((string-match efs-cmd-ok-msgs line)
@@ -2555,13 +2538,13 @@ is popped up in another window."
(setq efs-process-busy nil
efs-process-result nil
efs-process-result-line line)))
-
+
((string-match efs-bytes-received-msgs line)
(if efs-process-server-confused
(setq efs-process-busy nil
efs-process-result nil
efs-process-result-line line)))
-
+
((string-match efs-server-confused-msgs line)
(setq efs-process-server-confused t))
@@ -2576,12 +2559,12 @@ is popped up in another window."
(setq efs-process-busy nil
efs-process-result 'fatal
efs-process-result-line line))
-
+
((string-match efs-failed-msgs line)
(setq efs-process-busy nil
efs-process-result 'failed
efs-process-result-line line))
-
+
((string-match efs-unknown-response-msgs line)
(setq efs-process-busy nil
efs-process-result 'weird
@@ -2648,7 +2631,7 @@ If yes, return element. Return NIL othe
(while (string-match efs-process-prompt-regexp line)
(setq line (substring line (match-end 0))))
(efs-process-handle-line line proc)))
-
+
;; has the ftp client finished? if so then do some clean-up
;; actions.
(if (not efs-process-busy)
@@ -2664,10 +2647,10 @@ If yes, return element. Return NIL othe
(efs-message "%s...done" efs-process-msg)
(setq efs-process-msg nil)))
-
+
(if (and efs-process-nowait
(null efs-process-cmd-waiting))
-
+
(progn
;; Is there a continuation we should be calling?
;; If so, we'd better call it, making sure we
@@ -2701,7 +2684,7 @@ If yes, return element. Return NIL othe
efs-process-host
efs-process-user
next))))
-
+
(if efs-process-continue
(let ((cont efs-process-continue))
(setq efs-process-continue nil)
@@ -2710,7 +2693,7 @@ If yes, return element. Return NIL othe
efs-process-result
efs-process-result-line
efs-process-result-cont-lines))))
-
+
;; Update the mode line
;; We can't test nowait to see if we changed the
;; modeline in the first place, because conts
@@ -3305,23 +3288,23 @@ Create a new process if needed."
(let ((proc (efs-get-process-internal host user)))
(if (and proc (memq (process-status proc) '(run open)))
proc
-
+
;; Make sure that the process isn't around in some strange state.
(setq host (downcase host))
(let ((name (concat "*ftp " user "@" host "*")))
(if proc (condition-case nil (delete-process proc) (error nil)))
-
+
;; grab a suitable process.
(setq proc (efs-start-process host user name))
-
+
(efs-save-match-data
(efs-save-buffer-excursion
(set-buffer (process-buffer proc))
-
+
;; Run any user-specified hooks.
(run-hooks 'efs-ftp-startup-hook)
-
+
;; login to FTP server.
(efs-login host user proc)
@@ -3335,7 +3318,7 @@ Create a new process if needed."
(if efs-use-passive-mode
(efs-passive-mode host user))
-
+
;; Run any user startup functions
(let ((alist efs-ftp-startup-function-alist)
(case-fold-search t))
@@ -3345,10 +3328,10 @@ Create a new process if needed."
(funcall (cdr (car alist)) host user)
(setq alist nil))
(setq alist (cdr alist)))))
-
+
;; Guess at the host type.
(efs-guess-host-type host user)
-
+
;; Check the idle time.
(efs-check-idle host user)
@@ -3432,12 +3415,12 @@ Key map:
;; If PRE-CONT is non-nil, it is called immediately after execution
;; of the command starts, but without waiting for it to finish.
;; If CONT is non-NIL then it is either a function or a list of function and
-;; some arguments. The function will be called when the ftp command has
+;; some arguments. The function will be called when the ftp command has
;; completed.
;; If CONT is NIL then this routine will return \( RESULT . LINE \) where
;; RESULT is whether the command was successful, and LINE is the line from
;; the FTP process that caused the command to complete.
-;; If NOWAIT is nil then we will wait for the command to complete before
+;; If NOWAIT is nil then we will wait for the command to complete before
;; returning. If NOWAIT is 0, then we will wait until the command starts,
;; executing before returning. NOWAIT of 1 is like 0, except that the modeline
;; will indicate an asynch FTP command.
@@ -3447,7 +3430,7 @@ Key map:
(if (memq (process-status proc) '(run open))
(efs-save-buffer-excursion
(set-buffer (process-buffer proc))
-
+
(if efs-process-busy
;; This function will always wait on a busy process.
;; Queueing is done by efs-send-cmd.
@@ -3498,7 +3481,7 @@ Key map:
(save-excursion
(apply (car pre-cont) (cdr pre-cont)))))
(prog1
- (if nowait
+ (if nowait
nil
;; hang around for command to complete
;; Some clients die after the command is sent, if the server
@@ -3510,7 +3493,7 @@ Key map:
(null efs-process-nowait)
(memq (process-status proc) '(run open)))
(accept-process-output proc)))
-
+
;; cont is called by the process filter
(if cont
;; Return nil if a cont was called.
@@ -3522,10 +3505,10 @@ Key map:
(list efs-process-result
efs-process-result-line
efs-process-result-cont-lines)))
-
+
;; If the process died, the filter would have never got the chance
;; to call the cont. Try to jump start things.
-
+
(if (and (not (memq (process-status proc) '(run open)))
(string-equal efs-process-result-line "")
cont
@@ -3536,7 +3519,7 @@ Key map:
;; The process may be in some strange state. Get rid of it.
(condition-case nil (delete-process proc) (error nil))
(efs-call-cont cont 'fatal "" "")))))
-
+
(error "FTP process %s has died." (process-name proc))))
(defun efs-quote-percents (string)
@@ -3612,14 +3595,14 @@ non-nil, this is not done."
;; capability. Also, sends umask if nec.
(let ((proc (efs-get-process host user)))
-
+
(if (and
(eq nowait t)
(save-excursion
(set-buffer (process-buffer proc))
(or efs-process-busy
efs-process-cmd-waiting)))
-
+
(progn
(efs-add-to-queue
host user
@@ -3631,7 +3614,7 @@ non-nil, this is not done."
;; side, store nowait as 1.
(list cmd msg pre-cont cont 1 noretry))
nil)
-
+
;; Send a command.
(let (cmd-string afsc-result afsc-line afsc-cont-lines)
@@ -3641,13 +3624,13 @@ non-nil, this is not done."
(cmd1 (nth 1 cmd))
(cmd2 (nth 2 cmd))
(cmd3 (nth 3 cmd)))
-
+
(cond
-
+
((eq cmd0 'quote)
;; QUOTEd commands
(cond
-
+
((eq cmd1 'site)
;; SITE commands
(cond
@@ -3667,10 +3650,10 @@ non-nil, this is not done."
cmd4))))
(t (error "efs: Don't know how to send %s %s %s %s"
cmd0 cmd1 cmd2 cmd3))))
-
+
((memq cmd1 '(pwd xpwd syst pasv noop))
(setq cmd-string (concat "quote " (symbol-name cmd1))))
-
+
;; PORT command (cmd2 is IP + port address)
((eq cmd1 'port)
(setq cmd-string (concat "quote port " cmd2)))
@@ -3683,7 +3666,7 @@ non-nil, this is not done."
(efs-fix-path host-type cmd2))
cmd-string (concat "quote " (symbol-name cmd1) " "
cmd2))))
-
+
((eq cmd1 'stor)
(let ((host-type (efs-host-type host user)))
(if (memq host-type efs-unix-host-types)
@@ -3693,7 +3676,7 @@ non-nil, this is not done."
(setq cmd2 (efs-quote-string host-type
(efs-fix-path host-type cmd2))
cmd-string (concat "quote stor " cmd2))))
-
+
((memq cmd1 '(size mdtm rnfr))
(let ((host-type (efs-host-type host user)))
(setq cmd2 (efs-quote-string host-type
@@ -3703,15 +3686,15 @@ non-nil, this is not done."
((memq cmd1 '(pass user))
(setq cmd-string (concat "quote " (symbol-name cmd1) " " cmd2)))
-
+
(t
(error "efs: Don't know how to send %s %s %s %s"
cmd0 cmd1 cmd2 cmd3))))
-
+
;; TYPE command
((eq cmd0 'type)
(setq cmd-string (concat "type " (symbol-name cmd1))))
-
+
;; CWD command
((eq cmd0 'cwd)
(let ((host-type (efs-host-type host user)))
@@ -3737,16 +3720,11 @@ non-nil, this is not done."
(if (eq cmd0 'nlist)
efs-nlist-cmd
"dir")
- ;; KLUDGE ALERT:
- ;; some ftp clients
- ;; (FreeBSD's, notably)
- ;; will not handle a null directory
- ;; arg correctly. This will
- ;; hopefully work in all
- ;; circumstances.
- (if (string-equal cmd1 "")
- "\" \""
+ (cond
+ ((not (string-equal cmd1 ""))
(efs-quote-string host-type cmd1))
+ ((eq host-type 'vms) "\[\]")
+ (t efs-ftp-explicit-empty-file-name))
(efs-adjust-local-path cmd2))))
((setq cmd-string
(format "%s \"%s%s%s\" %s"
@@ -3757,14 +3735,14 @@ non-nil, this is not done."
(if (string-equal cmd1 "") "" " ")
(efs-quote-string host-type cmd1 t)
(efs-adjust-local-path cmd2)))))))
-
+
;; First argument is the remote pathname
((memq cmd0 '(delete mkdir rmdir cd))
(let ((host-type (efs-host-type host user)))
(setq cmd1 (efs-quote-string host-type
(efs-fix-path host-type cmd1))
cmd-string (concat (symbol-name cmd0) " " cmd1))))
-
+
;; GET command
((eq cmd0 'get)
(let ((host-type (efs-host-type host user)))
@@ -3776,7 +3754,7 @@ non-nil, this is not done."
cmd1
" "
(efs-adjust-local-path cmd2)))))
-
+
;; PUT command
((eq cmd0 'put)
(let ((host-type (efs-host-type host user)))
@@ -3801,14 +3779,14 @@ non-nil, this is not done."
(efs-adjust-local-path cmd1)
" "
cmd2))))
-
+
;; CHMOD command
((eq cmd0 'chmod)
(let ((host-type (efs-host-type host user)))
(setq cmd2 (efs-quote-string host-type
(efs-fix-path host-type cmd2))
cmd-string (concat "chmod " cmd1 " " cmd2))))
-
+
;; Both arguments are remote pathnames
((eq cmd0 'rename)
(let ((host-type (efs-host-type host user)))
@@ -3817,15 +3795,15 @@ non-nil, this is not done."
cmd2 (efs-quote-string host-type
(efs-fix-path host-type cmd2))
cmd-string (concat "rename " cmd1 " " cmd2))))
-
+
;; passive command
((eq cmd0 'passive)
(setq cmd-string "passive"))
-
+
(t
(error "efs: Don't know how to send %s %s %s %s"
cmd0 cmd1 cmd2 cmd3))))
-
+
;; Actually send the resulting command.
;; Why do we use this complicated binding of afsc-{result,line},
;; rather then use the fact that efs-raw-send-cmd returns?
@@ -3840,7 +3818,7 @@ non-nil, this is not done."
;; Beware, if some of the above FTP commands had to restart
;; the process, PROC won't be set to the right process object.
(setq proc (efs-get-process host user))
-
+
(efs-raw-send-cmd
proc
cmd-string
@@ -3871,7 +3849,7 @@ non-nil, this is not done."
(setq afsc-result (car retry)
afsc-line (nth 1 retry)
afsc-cont-lines (nth 2 retry)))))
-
+
(t (if cont
(efs-call-cont cont result line cont-lines)
(or nowait
@@ -3879,12 +3857,12 @@ non-nil, this is not done."
afsc-line line
afsc-cont-lines cont-lines))))))
nowait)
-
+
(prog1
(if (or nowait cont)
nil
(list afsc-result afsc-line afsc-cont-lines))
-
+
;; Check the queue
(or nowait
efs-nested-cmd
@@ -3967,15 +3945,15 @@ You must do that yourself."
(setq to (efs-nslookup-host to)))
(setq cmd (concat "open " to))
(if port (setq cmd (concat cmd " " port)))
-
+
;; Send OPEN command.
(setq result (efs-raw-send-cmd proc cmd nil))
-
+
(and (eq gate 'interlock) (string-match "^331 " (nth 1 result))
(setq result (efs-login-send-pass
efs-gateway-host
(efs-get-user efs-gateway-host) proc)))
-
+
;; Analyze result of OPEN.
(if (car result)
(progn
@@ -4018,19 +3996,19 @@ RETRY argument specifies to try twice if
(format "quote user \"%s\"" user))))
(msg (format "Logging in as user %s%s..." user
(if (memq gate '(proxy sidewinder raptor kerberos))
- (concat "@" host) "")))
- result code)
-
+ (concat "@" host) "")))
+ result code)
+
;; Send the message by hand so that we can report on the size
;; of the MOTD.
(message msg)
-
+
;; 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)
(progn
@@ -4040,15 +4018,15 @@ RETRY argument specifies to try twice if
(setq code (substring (nth 1 result) 0 4))
(cond
-
+
((string-equal "331 " code)
;; Need password
(setq result (efs-login-send-pass host user proc gate)))
-
+
((string-equal "332 " code)
;; Need an account, but no password
(setq result (efs-login-send-acct host user proc gate)))
-
+
((null (car result))
;; logged in proceed
nil)
@@ -4072,11 +4050,11 @@ RETRY argument specifies to try twice if
(efs-login-send-user host user proc gate t)
(efs-get-process host user)))
(signal 'quit nil)))
-
+
((and retry (string-equal code "421 "))
(setq result nil)
(efs-get-process host user))
-
+
(t ; bombed
(condition-case nil (delete-process proc) (error nil))
;; Wrong username?
@@ -4321,7 +4299,7 @@ optional arg XPWD is given, uses this se
(defun efs-send-size (host user file)
"For HOST and USER, get the size of FILE in bytes.
This returns a list \( SIZE . LINE \), where SIZE is the file size in bytes,
-or nil if this couldn't be determined, and LINE is the output line of the
+or nil if this couldn't be determined, and LINE is the output line of the
FTP server."
(efs-save-match-data
(let ((result (efs-send-cmd host user (list 'quote 'size file))))
@@ -4430,7 +4408,7 @@ Returns t for success, nil for failure."
(progn
(efs-send-umask host user umask)
t)))))) ; Tell the caller that we did something.
-
+
(defun efs-modes-from-umask (umask)
;; Given the 3 digit octal integer umask, returns the decimal integer
;; according to chmod that a file would be written with.
@@ -4511,7 +4489,7 @@ Returns the system type as a string if t
(and (null (car result))
(string-match efs-syst-msgs line)
(substring line (match-end 0))))))
-
+
;;;; ------------------------------------------------------------
;;;; File transfer representation type support
;;;; ------------------------------------------------------------
@@ -4728,7 +4706,7 @@ prompting off."
(efs-defun efs-ls-dumb-check unknown (line host file path lsargs
msg noparse noerror nowait cont)
- ;; Checks to see if the host type might be dumb unix. If so, returns the
+ ;; Checks to see if the host type might be dumb unix. If so, returns the
;; listing otherwise nil.
(and
lsargs
@@ -4760,10 +4738,10 @@ prompting off."
;; With no-error nil, this function returns:
;; an error if file is not an efs-path
-;; (This should never happen.)
+;; (This should never happen.)
;; an error if either the listing is unreadable or there is an ftp error.
;; the listing (a string), if everything works.
-;;
+;;
;; With no-error t, it returns:
;; an error if not an efs-path
;; error if listing is unreable (most likely caused by a slow connection)
@@ -4805,7 +4783,7 @@ argument the listing string."
(t nil)))
(switches lsargs)
cache)
-
+
(if (memq host-type efs-dumb-host-types)
(setq lsargs nil))
(if (and (null efs-ls-uncache)
@@ -4837,7 +4815,7 @@ argument the listing string."
(setcar (cdr cache) t))))
(if cont (efs-call-cont cont listing))
listing)
-
+
(if cache
(efs-del-from-ls-cache file nil nil))
;; Need to get the listing via FTP.
@@ -4901,7 +4879,7 @@ argument the listing string."
(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)
@@ -4994,7 +4972,7 @@ argument the listing string."
(lambda (x)
(let ((f-ent (car x)))
(and (not (string-equal file f-ent))
- (not (string-equal parent-p f-ent))
+ (not (string-equal parent-p f-ent))
x))))
(function
(lambda (x)
@@ -5199,7 +5177,7 @@ Returns pair of month index (1-based) an
;; Need to measure wrto the current month
;; There is a bug here if because of time-zone shifts, the
;; local machine and the remote one are on different months.
- (let* ((month-date (efs-parse-month-date
+ (let* ((month-date (efs-parse-month-date
(buffer-substring
(match-beginning efs-month-date-submatch)
(match-end efs-month-date-submatch))))
@@ -5207,7 +5185,7 @@ Returns pair of month index (1-based) an
(car month-date))
12))
(day (cdr month-date))
- (year-or-time (buffer-substring
+ (year-or-time (buffer-substring
(match-beginning efs-time-or-year-submatch)
(match-end efs-time-or-year-submatch)))
year hour minutes)
@@ -5456,7 +5434,7 @@ Returns pair of month index (1-based) an
(if across (setq list (cdr list))))
(setcar widths (- (car widths) 2))
(nreverse widths)))))
-
+
(defun efs-calculate-columns (list &optional across)
;; Returns a list of integers which are the column widths that best pack
;; LIST, a list of strings, onto the screen.
@@ -5581,7 +5559,7 @@ Returns pair of month index (1-based) an
(efs-add-ls-converter "-AltF" "-AlF" 'efs-t-converter)
(efs-add-ls-converter "-ltF" "-lF" 'efs-t-converter)
(efs-add-ls-converter "-alt" nil 'efs-t-converter)
-(efs-add-ls-converter "-altF" nil 'efs-t-converter)
+(efs-add-ls-converter "-altF" nil 'efs-t-converter)
(efs-add-ls-converter "-Alt" nil 'efs-t-converter) ; cheating a bit
(efs-add-ls-converter "-AltF" nil 'efs-t-converter) ; cheating a bit
@@ -5800,7 +5778,7 @@ Returns pair of month index (1-based) an
(buffer-substring (match-beginning efs-file-size-submatch)
(match-end efs-file-size-submatch))))
(list name size modes nlinks owner)))))
-
+
(defun efs-relist-symlink (host user symlink path switches)
;; Does a re-list of a single symlink in efs-data-buffer-name-2,
;; HOST = remote host
@@ -6232,7 +6210,7 @@ SWITCHES are the switches passed to ls.
dumb \(with dir\) listing has been done."
(efs-save-match-data
(cond
-
+
;; look for total line
((looking-at "^total [0-9]+$")
(efs-add-host 'unix host)
@@ -6265,13 +6243,13 @@ dumb \(with dir\) listing has been done.
;; Don't know, give unix a try.
(efs-add-host 'unix host)
nil))
-
+
;; look for ls errors
((looking-at "[^\n]+\\( not found\\|: Not a directory\\)\n\\'")
;; It's an ls error message.
(efs-add-host 'unix host)
nil)
-
+
((eobp) ; i.e. (zerop (buffer-size))
;; This could be one of:
;; (1) An Ultrix ls error message
@@ -6326,17 +6304,17 @@ dumb \(with dir\) listing has been done.
;; Assume (1), an Ultrix error message.
(efs-add-host 'unix host)
nil)))
-
+
;; unix without a total line
((re-search-forward efs-month-and-time-regexp nil t)
(efs-add-host 'unix host)
(beginning-of-line)
(efs-ls-parser 'unix host user dir path switches))
-
+
;; Now we look for host-types, or listing-types which are auto-rec
;; by the listing parser, because it's not possible to pick them out
;; from a pwd.
-
+
;; check for dumb-unix
;; (Guessing of dumb-unix hosts which return an ftp error message is
;; done in efs-ls.)
@@ -6353,7 +6331,7 @@ dumb \(with dir\) listing has been done.
((re-search-forward efs-dos:microsoft-file-line-regexp nil t)
(efs-add-host 'dos host)
(efs-parse-listing 'dos host user dir path))
-
+
;; check for Distinct's DOS ftp server
((re-search-forward efs-dos-distinct-date-and-time-regexp nil t)
(efs-add-host 'dos-distinct host)
@@ -6372,7 +6350,7 @@ dumb \(with dir\) listing has been done.
(efs-relativize-filename path))
t))
(efs-parse-listing 'ka9q host user dir path))
-
+
;; Check for a unix descriptive (dl) listing
;; Do this last, because it's hard to guess.
((re-search-forward efs-unix:dl-listing-regexp nil t)
@@ -6410,7 +6388,7 @@ dumb \(with dir\) listing has been done.
;; short-term cache only, as emacs often has sequences of functions
;; doing modtime lookup. If you really want to be sure of the modtime,
;; use efs-get-file-mdtm, which asks the remote server.
-
+
(and (eq type t)
(setq path (directory-file-name path)))
(let ((files (efs-get-files-hashtable-entry (file-name-directory path))))
@@ -6431,12 +6409,12 @@ dumb \(with dir\) listing has been done.
(efs-defun efs-delete-file-entry nil (path &optional dir-p)
"Delete the file entry for PATH, if its directory info exists."
(if dir-p
- (progn
+ (progn
(setq path (file-name-as-directory path))
(efs-del-hash-entry (efs-canonize-file-name path)
efs-files-hashtable)
;; Note that file-name-as-directory followed by
- ;; (substring path 0 -1)
+ ;; (substring path 0 -1)
;; serves to canonicalize directory file names to their unix form.
;; i.e. in VMS, FOO.DIR -> FOO/ -> FOO
;; PATH is supposed to be s fully expanded efs-style path.
@@ -6540,9 +6518,9 @@ NO-ERROR, if a listing for DIRECTORY can
(defun efs-get-file-entry (path)
"Return the given file entry for PATH.
-This is a list of the form \(type size owner modes nlinks modtm\),
+This is a list of the form \(type size owner modes nlinks modtm\),
where type is nil for a normal file, t for a directory, and a string for a
-symlink, size is the size of the file in bytes, if known, and modes are
+symlink, size is the size of the file in bytes, if known, and modes are
the permission modes of the file as a string. modtm is short-term the
cache of the file modtime. It is not used by `verify-visited-file-modtime'.
If the file isn't in the hashtable, this returns nil."
@@ -6605,7 +6583,7 @@ doesn't have any entries for the given H
;; functions and macros. Since these are internal, they do NOT
;; call efs-save-match-data. This is done by their calling
;; function.
-;;
+;;
;; efs-expand-tilde
;; - expands all ~ constructs, both local and remote.
;; efs-short-circuit-file-name
@@ -6616,7 +6594,7 @@ doesn't have any entries for the given H
;; The following two functions overload existing emacs functions.
;; They are the entry points to this filename expansion code, and as such
;; call efs-save-match-data.
-;;
+;;
;; efs-expand-file-name
;; efs-substitute-in-file-name
@@ -6638,18 +6616,18 @@ doesn't have any entries for the given H
lbackskip 2)
(setq lregexp "//+"
lbackskip 1))
-
+
;; Short circuit /user at mach: roots. It is important to do this
;; now to avoid unnecessary ftp connections.
-
+
(if efs-short-circuit
(while (string-match efs-path-root-short-circuit-regexp string start)
(setq start (1+ (match-beginning 0)))))
(or (zerop start) (setq string (substring string start)
start 0))
-
+
;; identify remote root
-
+
(if (setq parsed (efs-ftp-path-macro string))
(if (memq (setq string (nth 2 parsed)
host-type
@@ -6662,15 +6640,15 @@ doesn't have any entries for the given H
backskip 1))
(setq regexp lregexp
backskip lbackskip))
-
+
;; Now short-circuit in an apollo and efs sensitive way.
-
+
(if efs-short-circuit
(while (cond ((string-match regexp string start)
(setq start (- (match-end 0) backskip)))
((string-match "/~" string start)
(setq start (1- (match-end 0)))))
-
+
(and host-type
(null efs-short-circuit-to-remote-root)
(setq host-type nil
@@ -6705,7 +6683,7 @@ doesn't have any entries for the given H
(format "expanding %s" tilde)))))
(setq res
(and (string-match efs-expand-dir-msgs line)
- (substring line
+ (substring line
(match-beginning 1)
(match-end 1))))
(if res
@@ -6786,20 +6764,20 @@ doesn't have any entries for the given H
(substring string
start (match-beginning 0)))
start (1- (match-end 0))))
-
+
(if new (setq string (concat new (substring string start))))
-
+
(while (string-match "/[^/]+/\\.\\./" string)
;; Is there a way to avoid all this concating and copying?
(setq string (concat (substring string 0 (1+ (match-beginning 0)))
(substring string (match-end 0)))))
-
+
;; Do /../ and //../ special cases. They should expand to
;; / and //, respectively.
(if (string-match "^\\(/+\\)\\.\\./" string)
(setq string (concat (substring string 0 (match-end 1))
(substring string (match-end 0)))))
-
+
(if (and make-dir
(not (string-match "^/+$" string)))
(substring string 0 -1)
@@ -6814,13 +6792,13 @@ doesn't have any entries for the given H
(let ((start 0)
var new root backskip regexp lbackskip
lregexp parsed fudge-host-type rstart error)
-
+
(if efs-local-apollo-unix
(setq lregexp ".//+"
lbackskip 2)
(setq lregexp "//+"
lbackskip 1))
-
+
;; Subst. existing env variables
(while (string-match "\\$" string start)
(setq new (concat new (substring string start (match-beginning 0)))
@@ -6848,7 +6826,7 @@ doesn't have any entries for the given H
;; Short circuit /user at mach: roots. It is important to do this
;; now to avoid unnecessary ftp connections.
-
+
(if efs-short-circuit
(while (string-match efs-path-root-short-circuit-regexp
string start)
@@ -6903,26 +6881,26 @@ doesn't have any entries for the given H
;; no root, we're local
(setq regexp lregexp
backskip lbackskip))
-
+
;; Now short-circuit in an apollo and efs sensitive way.
-
+
(if efs-short-circuit
(while (cond ((string-match regexp string start)
(setq start (- (match-end 0) backskip)))
((string-match "/~" string start)
(setq start (1- (match-end 0)))))
-
+
(and root
(null efs-short-circuit-to-remote-root)
(setq root nil
regexp lregexp
backskip lbackskip))))
-
+
;; If we still have a bad root, barf.
(if (and root error) (error error))
;; look for non-existent evironment variables in the path
-
+
(if (string-match
"\\([^$]\\|^\\)\\(\\$\\$\\)*\\$\\([^$]\\|$\\)" string start)
(progn
@@ -6955,7 +6933,7 @@ doesn't have any entries for the given H
(if (zerop start)
string
(substring string start)))))))
-
+
(defun efs-expand-file-name (name &optional default)
"Documented as original."
(let (s-c-res path host user host-type)
@@ -6986,7 +6964,7 @@ doesn't have any entries for the given H
(if (string-equal tilde "/")
(setq path (concat "/" path))
(setq path (concat tilde "/" path))))))
-
+
(setq path (efs-de-dot-file-name path))
(if host-type
(format efs-path-format-string user host path)
@@ -7027,7 +7005,7 @@ doesn't have any entries for the given H
name)
(t
(concat name "/"))))
-
+
(defun efs-file-name-directory (name)
;; file-name-directory for remote files. Takes care not to
;; turn /user at host: into /.
@@ -7288,7 +7266,7 @@ of the directory in efs's internal cache
filename args))
(defun efs-insert-file-contents-general
- (handled-func filename &optional visit &rest args)
+ (handled-func filename &optional visit &rest args)
(barf-if-buffer-read-only)
(unwind-protect
(let* ((filename (expand-file-name filename))
@@ -7298,7 +7276,7 @@ of the directory in efs's internal cache
(user (nth 1 parsed))
(path (nth 2 parsed))
(buffer (current-buffer)))
-
+
(if (or (file-exists-p filename)
(let* ((res (and
(not (efs-get-host-property host 'rnfr-failed))
@@ -7317,14 +7295,14 @@ of the directory in efs's internal cache
(efs-canonize-file-name (file-name-directory filename))
efs-files-hashtable)
(file-exists-p filename))))
-
+
(let ((temp (concat
(car (efs-make-tmp-name nil host))
(efs-internal-file-name-extension filename)))
(type (efs-xfer-type host-type filename nil nil))
(abbr (efs-relativize-filename filename))
(i-f-c-size 0))
-
+
(unwind-protect
(efs-copy-file-internal
filename parsed temp nil t nil
@@ -7347,7 +7325,7 @@ of the directory in efs's internal cache
(sleep-for efs-retry-time)
;; Wait for file to hopefully appear.
(file-readable-p temp))
-
+
(setq i-f-c-size
(nth 1 (apply handled-func
temp visit args)))
@@ -7853,7 +7831,7 @@ of the directory in efs's internal cache
((eq efs-buffer-name-case 'up)
(setq buff (upcase buff)))))
(get-buffer-create (generate-new-buffer-name buff))))
-
+
(defun efs-set-buffer-mode ()
"Set correct modes for the current buffer if it is visiting a remote file."
(if (and (stringp buffer-file-name)
@@ -7990,7 +7968,7 @@ of the directory in efs's internal cache
(cond (suid-p "s") (sticky-p "t") ("x"))
(cond (suid-p "S") (sticky-p "T") ("-")))))
(concat read-bit write-bit x-bit))))
-
+
(defun efs-mode-string (int)
;; Takes an octal integer between 0 and 7777, and returns the 9 character
;; mode string.
@@ -8006,7 +7984,7 @@ of the directory in efs's internal cache
(concat (efs-build-mode-string-element owner-int suid nil)
(efs-build-mode-string-element group-int sgid nil)
(efs-build-mode-string-element other-int nil sticky))))
-
+
(defun efs-shell-call-process (command dir &optional in-background)
;; Runs shell process on remote hosts.
(if (not efs-use-remote-shell-internally)
@@ -8526,7 +8504,7 @@ faster user access to newly visited file
;; Verifies the modtime for buffers visiting remote files.
;; Won't get called for buffer not visiting any file.
(let ((buff (get-buffer buff)))
- (null
+ (null
(and buff ; return t if no buffer? Need to beware of multi-threading.
(buffer-file-name buff) ; t if no file
(let ((mdtm (save-excursion
@@ -8751,7 +8729,7 @@ faster user access to newly visited file
(error))))
(efs-real-load file noerror nomessage nosuffix))))))
-(defun efs-require (feature &optional filename)
+(defun efs-require (feature &optional filename &rest extra)
"Documented as original."
(if (eq feature 'ange-ftp) (efs-require-scream-and-yell))
(if (featurep feature)
@@ -8779,9 +8757,9 @@ faster user access to newly visited file
(signal 'file-error
(list "efs-require: temp file %s is unreadable" temp)))
(if filename
- (efs-real-require feature temp)
+ (apply 'efs-real-require feature temp extra)
(let ((load-path (cons temp-directory load-path)))
- (efs-real-require feature))))
+ (apply 'efs-real-require feature nil extra))))
(condition-case nil
(let (efs-verbose)
(delete-file temp))
@@ -8793,8 +8771,9 @@ faster user access to newly visited file
(let (efs-verbose)
(delete-directory temp-directory))
(error))))
- (efs-real-require feature (if filename
- fullpath))))))))
+ (apply 'efs-real-require feature (if filename
+ fullpath)
+ extra)))))))
(defun efs-require-scream-and-yell ()
;; Complain if something attempts to load ange-ftp.
@@ -8807,7 +8786,7 @@ If the culprit package does need to acce
then it should be adequate to simply remove the \(require 'ange-ftp\)
line and let efs handle remote file access. Otherwise, it will need to
be ported to efs. This may already have been done, and you can find out
-by sending an enquiry to efs-help at hplb.hpl.hp.com.
+by sending an enquiry to elisp-code-efs at nongnu.org.
Signalling an error with backtrace will allow you to determine which
package was requiring ange-ftp.\n"))
@@ -8958,7 +8937,7 @@ minibuffer."
;; Non-unix machines will probably always insist
;; that rmdir takes a directory-name as an arg
;; (as the ftp man page says it should).
- (path
+ (path
(if (or (memq host-type efs-unix-host-types)
(memq host-type '(os2 dos)))
(efs-internal-directory-file-name (nth 2 parsed))
@@ -8992,7 +8971,7 @@ minibuffer."
;; if TEMP is nil, does nothing.
(and temp
(efs-del-tmp-name temp)))
-
+
;;;; ------------------------------------------------------------
;;;; File copying support...
;;;; ------------------------------------------------------------
@@ -9042,7 +9021,7 @@ minibuffer."
(if (null ent)
(efs-add-file-entry host-type newname nil nil nil))))
(efs-add-file-entry host-type newname nil size user)))
-
+
(defun efs-copy-remote-to-remote (f-host-type f-host f-user f-path filename
t-host-type t-host t-user
t-path newname append msg cont
@@ -9279,9 +9258,9 @@ minibuffer."
(if (and (eq keep-date t) (null newname-parsed))
;; f-host must be remote now.
(setq keep-date filename))
-
+
(cond
-
+
;; Check to see if we can do a PUT
((or
(and (null f-host)
@@ -9352,7 +9331,7 @@ minibuffer."
(if cont
(efs-call-cont cont result line cont-lines))))
nowait)))
-
+
;; Check to see if we can do a GET
((and
;; I think that giving the append arg, will cause this function
@@ -9500,7 +9479,7 @@ minibuffer."
(if cont
(efs-call-cont cont result line cont-lines))))
nowait xfer-type))
-
+
;; Can't do anything direct. Divide and conquer.
(t
(efs-copy-via-temp filename filename-parsed newname newname-parsed
@@ -9677,7 +9656,7 @@ minibuffer."
'(dos os2)))
(efs-internal-directory-file-name f)
(efs-internal-file-name-as-directory nil f))))
-
+
(efs-send-cmd
host user (list 'rmdir rf)
(concat "Deleting directory " (efs-relativize-filename f))
@@ -9933,7 +9912,7 @@ minibuffer."
(efs-rename-from-remote filename f-parsed newname t-parsed
msg cont nowait)))
;; local to remote
- (efs-rename-local-to-remote
+ (efs-rename-local-to-remote
filename newname t-parsed msg cont nowait)))))))
(defun efs-rename-file (filename newname &optional ok-if-already-exists nowait)
@@ -10267,7 +10246,7 @@ to the listing type cache."
Please report this as a bug. It would be very helpful
if your bug report contained at least the PWD command
within the *ftp %s@%s* buffer.
-If you know them, also send the operating system
+If you know them, also send the operating system
and ftp server types of the remote host." host user host)))
(if (y-or-n-p "Would you like to submit a bug report now? ")
(efs-report-bug host user
@@ -10296,7 +10275,7 @@ and ftp server types of the remote host.
"[-A-Z0-9$*]?[-A-Z0-9$*]?[-A-Z0-9$*]?\\.[0-9][0-9][0-9A-Z]$\\|"
;; For the SFS version of CMS
"^[-A-Z0-9]+:[-A-Z0-9$*]+\\.$"))
-
+
(defconst efs-mvs-path-template "^'?[A-Z][0-9][0-9]?[0-9]?[0-9]?[0-9]?\\.'?")
(defconst efs-guardian-path-template
@@ -10403,10 +10382,10 @@ in file name expansion."
(dir (car result))
(line (cdr result)))
(cond
-
+
;; First sift through process lines to see if we recognize
;; any pwd errors, or full line messages.
-
+
;; CMS
((string-match efs-cms-pwd-line-template line)
(setq host-type (efs-add-host 'cms host)
@@ -10418,12 +10397,12 @@ in file name expansion."
"Unable to determine a \"home\" CMS minidisk. Assuming %s"
dir)
(sit-for 1))
-
+
;; TOPS-20
((string-match efs-tops-20-pwd-line-template line)
(setq host-type (efs-add-host 'tops-20 host)
dir (car (efs-send-pwd 'tops-20 host user))))
-
+
;; TI-EXPLORER lisp machine. pwd works here, but the output
;; needs to be specially parsed since spaces separate
;; hostnames from dirs from filenames.
@@ -10447,7 +10426,7 @@ in file name expansion."
((string-match efs-coke-pwd-line-template line)
(setq host-type (efs-add-host 'coke host)
dir "/"))
-
+
;; Try to get tilde.
((null dir)
(let ((tilde (nth 1 (efs-send-cmd
@@ -10463,12 +10442,12 @@ in file name expansion."
((string-match efs-cms-knet-tilde-regexp tilde)
(setq dir (car (efs-send-pwd 'cms-knet host user))
host-type (efs-add-host 'cms-knet host)))
-
+
;; We don't know. Scream and yell.
(efs-scream-and-yell host user))))
-
+
;; Now look at dir to determine host type
-
+
;; try for UN*X-y type stuff
((string-match efs-unix-path-template dir)
(if
@@ -10489,15 +10468,15 @@ in file name expansion."
((string-match "^UNIX" syst)
(setq host-type (efs-add-host 'unix host))
(efs-add-listing-type 'unix:unknown host user)))))))
-
+
;; try for VMS
((string-match efs-vms-path-template dir)
(setq host-type (efs-add-host 'vms host)))
-
+
;; try for MTS
((string-match efs-mts-path-template dir)
(setq host-type (efs-add-host 'mts host)))
-
+
;; try for CMS
((string-match efs-cms-path-template dir)
(setq host-type (efs-add-host 'cms host)))
@@ -10505,12 +10484,12 @@ in file name expansion."
;; try for Tandem's guardian OS
((string-match efs-guardian-path-template dir)
(setq host-type (efs-add-host 'guardian host)))
-
+
;; Try for TOPS-20. pwd doesn't usually work for tops-20
;; But who knows???
((string-match efs-tops-20-path-template dir)
(setq host-type (efs-add-host 'tops-20 host)))
-
+
;; Try for DOS or OS/2.
((string-match efs-pc-path-template dir)
(let ((syst (efs-get-syst host user))
@@ -10518,7 +10497,7 @@ in file name expansion."
(if (and syst (string-match "^OS/2 " syst))
(setq host-type (efs-add-host 'os2 host))
(setq host-type (efs-add-host 'dos host)))))
-
+
;; try for TI-TWENEX lisp machine
((string-match efs-ti-twenex-path-template dir)
(setq host-type (efs-add-host 'ti-twenex host)))
@@ -10549,11 +10528,11 @@ in file name expansion."
;; Try for NOS/VE
((string-match efs-nos-ve-path-template dir)
(setq host-type (efs-add-host 'nos-ve host)))
-
+
;; We don't know. Scream and yell.
(t
(efs-scream-and-yell host user)))
-
+
;; Now that we have done