Using efs-1.6 and Lucid Emacs 19.10

hamish (hamish@bnr.ca)
Tue, 31 May 1994 13:01:00 -0400


There are a couple of problems when trying to do this.

The first (and most serious) is that Lucid Emacs 19.10 has a bug in
the find-file-name-handler function.  The misplaced parenthesis below
causes find-file-name-handler to erroneously conclude that a filename
matches a pattern in file-name-handler-alist even if it doesn't match.

The following patch to Lucid Emacs 19.10 solves the problem:

-----------------------------------------------------------------
*** src/fileio.c~	Sun May 15 03:05:30 1994
--- src/fileio.c	Tue May 31 11:50:08 1994
***************
*** 261,267 ****
  	  if (STRINGP (string)
  	      && fast_string_match (string,
                                      (char *) XSTRING (filename)->data,
!                                     string_length (XSTRING (filename)) >= 0))
  	    {
  	      Lisp_Object handler = XCONS (elt)->cdr;
  	      if (NILP (Fmemq (handler, inhibited_handlers)))
--- 261,267 ----
  	  if (STRINGP (string)
  	      && fast_string_match (string,
                                      (char *) XSTRING (filename)->data,
!                                     string_length (XSTRING (filename))) >= 0)
  	    {
  	      Lisp_Object handler = XCONS (elt)->cdr;
  	      if (NILP (Fmemq (handler, inhibited_handlers)))
-----------------------------------------------------------------

The second problem (I reported this earlier) is that efs-1.6 sets the
file-name-handler-alist before it has defined the functions contained
within it.  If some file-related action (such as loading a file)
occurs between these two actions, an error results.

With the above patch (and a rebuilt lemacs) and the following patch,
I'm happily using efs 1.6 with Lucid Emacs 19.10.

diff --exclude=*.elc --exclude=Makefile --new-file -cr efs-1.6/efs.el efs/efs.el
*** efs-1.6/efs.el	Mon Feb 21 12:13:36 1994
--- efs/efs.el	Tue May 31 12:44:28 1994
***************
*** 903,909 ****
  (require 'backquote)
  (require 'comint)
  (require 'efs-defun)
- (require 'efs-ovwrt)
  (require 'efs-netrc)
  (require 'efs-cu)
  (autoload 'efs-report-bug "efs-report" "Submit a bug report for efs." t)
--- 903,908 ----
***************
*** 912,917 ****
--- 911,917 ----
  	  "Login to the gateway machine and fire up an FTP client.")
  (autoload 'efs-insert-directory "efs-dired" "Insert a directory listing.")
  (autoload 'efs-set-mdtm-of "efs-cp-p")
+ (require 'efs-ovwrt)
  
  
  ;;;; ============================================================