emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] master f425099: Revert "file-truename now uses realpath fo


From: Eli Zaretskii
Subject: [Emacs-diffs] master f425099: Revert "file-truename now uses realpath for local files"
Date: Sat, 7 Sep 2019 03:17:51 -0400 (EDT)

branch: master
commit f42509955901bbc81284b5141cf272a1f6c6ad4c
Author: Eli Zaretskii <address@hidden>
Commit: Eli Zaretskii <address@hidden>

    Revert "file-truename now uses realpath for local files"
    
    This reverts commit a59839d7556ef85058e09b005f0ff32e59b20ec3.
    This commit broke the MS-Windows build (because there's no
    realpath on MS-Windows).  Even if I change the implementation
    to always signal an error on MS-Windows, the build fails.
---
 lisp/files.el | 11 +++--------
 src/fileio.c  | 42 ------------------------------------------
 2 files changed, 3 insertions(+), 50 deletions(-)

diff --git a/lisp/files.el b/lisp/files.el
index d32c6ac..ce4dd99 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -1307,14 +1307,9 @@ containing it, until no links are left at any level.
       (let ((handler (find-file-name-handler filename 'file-truename)))
        ;; For file name that has a special handler, call handler.
        ;; This is so that ange-ftp can save time by doing a no-op.
-       (or
-        (if handler
-            (setq filename (funcall handler 'file-truename filename)
-                  done t)
-          (condition-case nil
-              (setq filename (fileio--truename filename)
-                    done t)
-            (file-missing nil)))
+       (if handler
+           (setq filename (funcall handler 'file-truename filename)
+                 done t)
          (let ((dir (or (file-name-directory filename) default-directory))
                target dirfile)
            ;; Get the truename of the directory.
diff --git a/src/fileio.c b/src/fileio.c
index adf2f3d..968a55e 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -20,7 +20,6 @@ along with GNU Emacs.  If not, see 
<https://www.gnu.org/licenses/>.  */
 #include <config.h>
 #include <limits.h>
 #include <fcntl.h>
-#include <stdlib.h>
 #include "sysstdio.h"
 #include <sys/types.h>
 #include <sys/stat.h>
@@ -2694,46 +2693,6 @@ file_name_absolute_p (char const *filename)
              && (!filename[1] || IS_DIRECTORY_SEP (filename[1])
                  || user_homedir (&filename[1]))));
 }
-
-DEFUN ("fileio--truename", Ffileio__truename, Sfileio__truename, 1, 1, 0,
-       doc: /* Return the true name of FILENAME, without file name handlers.
-
-The returned string is an absolute file name that does not involve
-\".\", \"..\", or symbolic links.  Signal an error if FILENAME does
-not exist or if its true name cannot be determined.  */)
-     (Lisp_Object filename)
-{
-  CHECK_STRING (filename);
-  Lisp_Object absname = Fexpand_file_name (filename, Qnil);
-  Lisp_Object encoded_absname = ENCODE_FILE (absname);
-  ptrdiff_t encoded_len = SBYTES (encoded_absname);
-  char *encoded = SSDATA (encoded_absname);
-  bool append_slash = (1 < encoded_len
-                      && IS_DIRECTORY_SEP (encoded[encoded_len - 1])
-                      && !IS_DIRECTORY_SEP (encoded[encoded_len - 2]));
-  char *truename = realpath (encoded, NULL);
-  if (!truename)
-    report_file_error ("Deriving truename", filename);
-  ptrdiff_t truename_len = strlen (truename);
-  if (truename_len == encoded_len - append_slash
-      && memcmp (truename, encoded, truename_len) == 0)
-    {
-      /* ABSNAME is already the true name.  */
-      xfree (truename);
-      return absname;
-    }
-  else
-    {
-      if (append_slash)
-       {
-         truename = xrealloc (truename, truename_len + 2);
-         strcpy (truename + truename_len, "/");
-       }
-      Lisp_Object unibyte_truename = build_unibyte_string (truename);
-      xfree (truename);
-      return DECODE_FILE (unibyte_truename);
-    }
-}
 
 DEFUN ("file-exists-p", Ffile_exists_p, Sfile_exists_p, 1, 1, 0,
        doc: /* Return t if file FILENAME exists (whether or not you can read 
it).
@@ -6469,7 +6428,6 @@ This includes interactive calls to `delete-file' and
   defsubr (&Sadd_name_to_file);
   defsubr (&Smake_symbolic_link);
   defsubr (&Sfile_name_absolute_p);
-  defsubr (&Sfileio__truename);
   defsubr (&Sfile_exists_p);
   defsubr (&Sfile_executable_p);
   defsubr (&Sfile_readable_p);



reply via email to

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