changeset 108888:c2ac5cece5ea

Turn `directory-sep-char' into a noop. * lisp/subr.el (directory-sep-char): Move from fileio.c and make a defconst. * src/emacs.c (decode_env_path): Don't check DIRECTORY_SEP, call dostounix_filename directly. * src/fileio.c (CORRECT_DIR_SEPS): Remove. (Ffile_name_directory, directory_file_name, Fexpand_file_name) (Fsubstitute_in_file_name): Use dostounix_filename instead. (file_name_as_directory): Use dostounix_filename, DIRECTORY_SEP. (syms_of_fileio) <directory-sep-char>: Move to subr.el. * src/lisp.h [WINDOWSNT] (Vdirectory_sep_char): Don't declare. (DIRECTORY_SEP): Define unconditionally. * src/w32proc.c (CORRECT_DIR_SEPS): Remove. (Fw32_short_file_name, Fw32_long_file_name): Use dostounix_filename. * src/s/ms-w32.h (DIRECTORY_SEP): Remove.
author Juanma Barranquero <lekktu@gmail.com>
date Fri, 04 Jun 2010 16:13:35 +0200
parents 2c20a51413cb
children e7c6230ab85d
files lisp/ChangeLog lisp/subr.el src/ChangeLog src/emacs.c src/fileio.c src/lisp.h src/s/ms-w32.h src/w32proc.c
diffstat 8 files changed, 44 insertions(+), 44 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Fri Jun 04 13:26:54 2010 +0200
+++ b/lisp/ChangeLog	Fri Jun 04 16:13:35 2010 +0200
@@ -1,3 +1,7 @@
+2010-06-04  Juanma Barranquero  <lekktu@gmail.com>
+
+	* subr.el (directory-sep-char): Move from fileio.c and make a defconst.
+
 2010-06-04  Michael Albinus  <michael.albinus@gmx.de>
 
 	* net/tramp-gvfs.el (tramp-gvfs-handle-expand-file-name): Expand "~/".
--- a/lisp/subr.el	Fri Jun 04 13:26:54 2010 +0200
+++ b/lisp/subr.el	Fri Jun 04 16:13:35 2010 +0200
@@ -1089,7 +1089,11 @@
 (make-obsolete 'process-filter-multibyte-p nil "23.1")
 (make-obsolete 'set-process-filter-multibyte nil "23.1")
 
-(make-obsolete-variable 'directory-sep-char "do not use it." "21.1")
+(defconst directory-sep-char ?/
+  "Directory separator character for built-in functions that return file names.
+The value is always ?/.")
+(make-obsolete-variable 'directory-sep-char "do not use it, just use `/'." "21.1")
+
 (make-obsolete-variable
  'mode-line-inverse-video
  "use the appropriate faces instead."
--- a/src/ChangeLog	Fri Jun 04 13:26:54 2010 +0200
+++ b/src/ChangeLog	Fri Jun 04 16:13:35 2010 +0200
@@ -1,3 +1,24 @@
+2010-06-04  Juanma Barranquero  <lekktu@gmail.com>
+
+	Turn `directory-sep-char' into a noop.
+
+	* lisp.h [WINDOWSNT] (Vdirectory_sep_char): Don't declare.
+	(DIRECTORY_SEP): Define unconditionally.
+
+	* s/ms-w32.h (DIRECTORY_SEP): Remove.
+
+	* emacs.c (decode_env_path): Don't check DIRECTORY_SEP,
+	call dostounix_filename directly.
+
+	* fileio.c (CORRECT_DIR_SEPS): Remove.
+	(Ffile_name_directory, directory_file_name, Fexpand_file_name)
+	(Fsubstitute_in_file_name): Use dostounix_filename instead.
+	(file_name_as_directory): Use dostounix_filename, DIRECTORY_SEP.
+	(syms_of_fileio) <directory-sep-char>: Move to subr.el.
+
+	* w32proc.c (CORRECT_DIR_SEPS): Remove.
+	(Fw32_short_file_name, Fw32_long_file_name): Use dostounix_filename.
+
 2010-06-03  Dan Nicolaescu  <dann@ics.uci.edu>
 
 	Move UNEXEC definition to autoconf.
--- a/src/emacs.c	Fri Jun 04 13:26:54 2010 +0200
+++ b/src/emacs.c	Fri Jun 04 16:13:35 2010 +0200
@@ -1723,7 +1723,7 @@
 #endif
   init_window ();
   init_font ();
-  
+
   if (!initialized)
     {
       char *file;
@@ -2384,10 +2384,7 @@
       strcpy (p, path);
       path = p;
 
-      if ('/' == DIRECTORY_SEP)
-	dostounix_filename (path);
-      else
-	unixtodos_filename (path);
+      dostounix_filename (path);
     }
 #endif
   lpath = Qnil;
--- a/src/fileio.c	Fri Jun 04 13:26:54 2010 +0200
+++ b/src/fileio.c	Fri Jun 04 16:13:35 2010 +0200
@@ -83,10 +83,6 @@
 #endif
 
 #ifdef DOS_NT
-#define CORRECT_DIR_SEPS(s) \
-  do { if ('/' == DIRECTORY_SEP) dostounix_filename (s); \
-       else unixtodos_filename (s); \
-  } while (0)
 /* On Windows, drive letters must be alphabetic - on DOS, the Netware
    redirector allows the six letters between 'Z' and 'a' as well. */
 #ifdef MSDOS
@@ -474,7 +470,7 @@
 	  p = beg + strlen (beg);
 	}
     }
-  CORRECT_DIR_SEPS (beg);
+  dostounix_filename (beg);
 #endif /* DOS_NT */
 
   return make_specified_string (beg, -1, p - beg, STRING_MULTIBYTE (filename));
@@ -561,12 +557,11 @@
   /* For Unix syntax, Append a slash if necessary */
   if (!IS_DIRECTORY_SEP (out[size]))
     {
-      /* Cannot use DIRECTORY_SEP, which could have any value */
-      out[size + 1] = '/';
+      out[size + 1] = DIRECTORY_SEP;
       out[size + 2] = '\0';
     }
 #ifdef DOS_NT
-  CORRECT_DIR_SEPS (out);
+  dostounix_filename (out);
 #endif
   return out;
 }
@@ -627,7 +622,7 @@
       )
     dst[slen - 1] = 0;
 #ifdef DOS_NT
-  CORRECT_DIR_SEPS (dst);
+  dostounix_filename (dst);
 #endif
   return 1;
 }
@@ -1032,10 +1027,9 @@
       if (!lose)
 	{
 #ifdef DOS_NT
-	  /* Make sure directories are all separated with / or \ as
-	     desired, but avoid allocation of a new string when not
-	     required. */
-	  CORRECT_DIR_SEPS (nm);
+	  /* Make sure directories are all separated with /, but
+	     avoid allocation of a new string when not required. */
+	  dostounix_filename (nm);
 #ifdef WINDOWSNT
 	  if (IS_DIRECTORY_SEP (nm[1]))
 	    {
@@ -1381,7 +1375,7 @@
 	target[0] = '/';
 	target[1] = ':';
       }
-    CORRECT_DIR_SEPS (target);
+    dostounix_filename (target);
 #endif /* DOS_NT */
 
     result = make_specified_string (target, -1, o - target, multibyte);
@@ -1659,7 +1653,7 @@
   bcopy (SDATA (filename), nm, SBYTES (filename) + 1);
 
 #ifdef DOS_NT
-  CORRECT_DIR_SEPS (nm);
+  dostounix_filename (nm);
   substituted = (strcmp (nm, SDATA (filename)) != 0);
 #endif
   endp = nm + SBYTES (filename);
@@ -5787,11 +5781,6 @@
   Fput (Qfile_date_error, Qerror_message,
 	make_pure_c_string ("Cannot set file date"));
 
-  DEFVAR_LISP ("directory-sep-char", &Vdirectory_sep_char,
-	       doc: /* Directory separator character for built-in functions that return file names.
-The value is always ?/.  Don't use this variable, just use `/'.  */);
-  XSETFASTINT (Vdirectory_sep_char, '/');
-
   DEFVAR_LISP ("file-name-handler-alist", &Vfile_name_handler_alist,
 	       doc: /* *Alist of elements (REGEXP . HANDLER) for file names handled specially.
 If a file name matches REGEXP, then all I/O on that file is done by calling
--- a/src/lisp.h	Fri Jun 04 13:26:54 2010 +0200
+++ b/src/lisp.h	Fri Jun 04 16:13:35 2010 +0200
@@ -3509,16 +3509,10 @@
 extern void init_system_name P_ ((void));
 
 /* Some systems (e.g., NT) use a different path separator than Unix,
-   in addition to a device separator.  Default the path separator
+   in addition to a device separator.  Set the path separator
    to '/', and don't test for a device separator in IS_ANY_SEP.  */
 
-#ifdef WINDOWSNT
-extern Lisp_Object Vdirectory_sep_char;
-#endif
-
-#ifndef DIRECTORY_SEP
 #define DIRECTORY_SEP '/'
-#endif
 #ifndef IS_DIRECTORY_SEP
 #define IS_DIRECTORY_SEP(_c_) ((_c_) == DIRECTORY_SEP)
 #endif
--- a/src/s/ms-w32.h	Fri Jun 04 13:26:54 2010 +0200
+++ b/src/s/ms-w32.h	Fri Jun 04 16:13:35 2010 +0200
@@ -95,9 +95,6 @@
    your system and must be used only through an encapsulation (which
    you should place, by convention, in sysdep.c).  */
 
-/* Define this to be the separator between path elements.  */
-#define DIRECTORY_SEP XINT (Vdirectory_sep_char)
-
 /* Define this to be the separator between devices and paths.  */
 #define DEVICE_SEP ':'
 
--- a/src/w32proc.c	Fri Jun 04 13:26:54 2010 +0200
+++ b/src/w32proc.c	Fri Jun 04 16:13:35 2010 +0200
@@ -1762,12 +1762,6 @@
 /* Some miscellaneous functions that are Windows specific, but not GUI
    specific (ie. are applicable in terminal or batch mode as well).  */
 
-/* lifted from fileio.c  */
-#define CORRECT_DIR_SEPS(s) \
-  do { if ('/' == DIRECTORY_SEP) dostounix_filename (s); \
-       else unixtodos_filename (s); \
-  } while (0)
-
 DEFUN ("w32-short-file-name", Fw32_short_file_name, Sw32_short_file_name, 1, 1, 0,
        doc: /* Return the short file name version (8.3) of the full path of FILENAME.
 If FILENAME does not exist, return nil.
@@ -1786,7 +1780,7 @@
   if (GetShortPathName (SDATA (ENCODE_FILE (filename)), shortname, MAX_PATH) == 0)
     return Qnil;
 
-  CORRECT_DIR_SEPS (shortname);
+  dostounix_filename (shortname);
 
   return build_string (shortname);
 }
@@ -1815,7 +1809,7 @@
   if (!w32_get_long_filename (SDATA (ENCODE_FILE (filename)), longname, MAX_PATH))
     return Qnil;
 
-  CORRECT_DIR_SEPS (longname);
+  dostounix_filename (longname);
 
   /* If we were passed only a drive, make sure that a slash is not appended
      for consistency with directories.  Allow for drive mapping via SUBST