emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/src/fileio.c


From: Kim F. Storm
Subject: [Emacs-diffs] Changes to emacs/src/fileio.c
Date: Tue, 28 May 2002 05:03:22 -0400

Index: emacs/src/fileio.c
diff -c emacs/src/fileio.c:1.445 emacs/src/fileio.c:1.446
*** emacs/src/fileio.c:1.445    Mon May 27 18:05:00 2002
--- emacs/src/fileio.c  Tue May 28 05:03:22 2002
***************
*** 5911,5925 ****
        if (NILP (Vread_file_name_predicate)
          || EQ (Vread_file_name_predicate, Qfile_exists_p))
        return all;
!       GCPRO3 (all, comp, specdir);
!       count = specpdl_ptr - specpdl;
!       record_unwind_protect (read_file_name_cleanup, 
current_buffer->directory);
!       current_buffer->directory = realdir;
!       for (comp = Qnil; CONSP (all); all = XCDR (all))
!       if (!NILP (call1 (Vread_file_name_predicate, XCAR (all))))
!         comp = Fcons (XCAR (all), comp);
!       unbind_to (count, Qnil);
!       UNGCPRO;
        return Fnreverse (comp);
      }
  
--- 5911,5946 ----
        if (NILP (Vread_file_name_predicate)
          || EQ (Vread_file_name_predicate, Qfile_exists_p))
        return all;
! 
! #ifndef VMS
!       if (EQ (Vread_file_name_predicate, Qfile_directory_p))
!       {
!         /* Brute-force speed up for directory checking: 
!            Discard strings which don't end in a slash.  */
!         for (comp = Qnil; CONSP (all); all = XCDR (all))
!           {
!             Lisp_Object tem = XCAR (all);
!             int len;
!             if (STRINGP (tem) &&
!                 (len = XSTRING (tem)->size, len > 0) &&
!                 IS_DIRECTORY_SEP (XSTRING (tem)->data[len-1]))
!               comp = Fcons (tem, comp);
!           }
!       }
!       else
! #endif
!       {
!         /* Must do it the hard (and slow) way.  */
!         GCPRO3 (all, comp, specdir);
!         count = specpdl_ptr - specpdl;
!         record_unwind_protect (read_file_name_cleanup, 
current_buffer->directory);
!         current_buffer->directory = realdir;
!         for (comp = Qnil; CONSP (all); all = XCDR (all))
!           if (!NILP (call1 (Vread_file_name_predicate, XCAR (all))))
!             comp = Fcons (XCAR (all), comp);
!         unbind_to (count, Qnil);
!         UNGCPRO;
!       }
        return Fnreverse (comp);
      }
  



reply via email to

[Prev in Thread] Current Thread [Next in Thread]