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,v


From: Stefan Monnier
Subject: [Emacs-diffs] Changes to emacs/src/fileio.c,v
Date: Thu, 10 Apr 2008 03:12:52 +0000

CVSROOT:        /sources/emacs
Module name:    emacs
Changes by:     Stefan Monnier <monnier>        08/04/10 03:12:52

Index: src/fileio.c
===================================================================
RCS file: /sources/emacs/emacs/src/fileio.c,v
retrieving revision 1.609
retrieving revision 1.610
diff -u -b -r1.609 -r1.610
--- src/fileio.c        29 Mar 2008 15:28:57 -0000      1.609
+++ src/fileio.c        10 Apr 2008 03:12:47 -0000      1.610
@@ -6119,135 +6119,6 @@
   return val;
 }
 
-static Lisp_Object
-read_file_name_cleanup (arg)
-     Lisp_Object arg;
-{
-  return (current_buffer->directory = arg);
-}
-
-DEFUN ("read-file-name-internal", Fread_file_name_internal, 
Sread_file_name_internal,
-       3, 3, 0,
-       doc: /* Internal subroutine for read-file-name.  Do not call this.  */)
-     (string, dir, action)
-     Lisp_Object string, dir, action;
-  /* action is nil for complete, t for return list of completions,
-     lambda for verify final value */
-{
-  Lisp_Object name, specdir, realdir, val, orig_string;
-  int changed;
-  struct gcpro gcpro1, gcpro2, gcpro3, gcpro4, gcpro5;
-
-  CHECK_STRING (string);
-
-  realdir = dir;
-  name = string;
-  orig_string = Qnil;
-  specdir = Qnil;
-  changed = 0;
-  /* No need to protect ACTION--we only compare it with t and nil.  */
-  GCPRO5 (string, realdir, name, specdir, orig_string);
-
-  if (SCHARS (string) == 0)
-    {
-      if (EQ (action, Qlambda))
-       {
-         UNGCPRO;
-         return Qnil;
-       }
-    }
-  else
-    {
-      orig_string = string;
-      string = Fsubstitute_in_file_name (string);
-      changed = NILP (Fstring_equal (string, orig_string));
-      name = Ffile_name_nondirectory (string);
-      val = Ffile_name_directory (string);
-      if (! NILP (val))
-       realdir = Fexpand_file_name (val, realdir);
-    }
-
-  if (NILP (action))
-    {
-      specdir = Ffile_name_directory (string);
-      val = Ffile_name_completion (name, realdir, Vread_file_name_predicate);
-      UNGCPRO;
-      if (!STRINGP (val))
-       {
-         if (changed)
-           return double_dollars (string);
-         return val;
-       }
-
-      if (!NILP (specdir))
-       val = concat2 (specdir, val);
-#ifndef VMS
-      return double_dollars (val);
-#else /* not VMS */
-      return val;
-#endif /* not VMS */
-    }
-  UNGCPRO;
-
-  if (EQ (action, Qt))
-    {
-      Lisp_Object all = Ffile_name_all_completions (name, realdir);
-      Lisp_Object comp;
-      int count;
-
-      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 = SBYTES (tem), len > 0) &&
-                 IS_DIRECTORY_SEP (SREF (tem, len-1)))
-               comp = Fcons (tem, comp);
-           }
-       }
-      else
-#endif
-       {
-         /* Must do it the hard (and slow) way.  */
-         Lisp_Object tem;
-         GCPRO3 (all, comp, specdir);
-         count = SPECPDL_INDEX ();
-         record_unwind_protect (read_file_name_cleanup, 
current_buffer->directory);
-         current_buffer->directory = realdir;
-         for (comp = Qnil; CONSP (all); all = XCDR (all))
-           {
-             tem = call1 (Vread_file_name_predicate, XCAR (all));
-             if (!NILP (tem))
-               comp = Fcons (XCAR (all), comp);
-           }
-         unbind_to (count, Qnil);
-         UNGCPRO;
-       }
-      return Fnreverse (comp);
-    }
-
-  /* Only other case actually used is ACTION = lambda */
-#ifdef VMS
-  /* Supposedly this helps commands such as `cd' that read directory names,
-     but can someone explain how it helps them? -- RMS */
-  if (SCHARS (name) == 0)
-    return Qt;
-#endif /* VMS */
-  string = Fexpand_file_name (string, dir);
-  if (!NILP (Vread_file_name_predicate))
-    return call1 (Vread_file_name_predicate, string);
-  return Ffile_exists_p (string);
-}
-
 DEFUN ("next-read-file-uses-dialog-p", Fnext_read_file_uses_dialog_p,
        Snext_read_file_uses_dialog_p, 0, 0, 0,
        doc: /* Return t if a call to `read-file-name' will use a dialog.
@@ -6803,7 +6674,6 @@
   defsubr (&Sclear_buffer_auto_save_failure);
   defsubr (&Srecent_auto_save_p);
 
-  defsubr (&Sread_file_name_internal);
   defsubr (&Sread_file_name);
   defsubr (&Snext_read_file_uses_dialog_p);
 




reply via email to

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