# HG changeset patch # User Juanma Barranquero # Date 1275660815 -7200 # Node ID c2ac5cece5ea352c925648fc8f5100c959ba4572 # Parent 2c20a51413cb381b64b1ea37e0929e12c39a74eb 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) : 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. diff -r 2c20a51413cb -r c2ac5cece5ea lisp/ChangeLog --- 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 + + * subr.el (directory-sep-char): Move from fileio.c and make a defconst. + 2010-06-04 Michael Albinus * net/tramp-gvfs.el (tramp-gvfs-handle-expand-file-name): Expand "~/". diff -r 2c20a51413cb -r c2ac5cece5ea lisp/subr.el --- 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." diff -r 2c20a51413cb -r c2ac5cece5ea src/ChangeLog --- 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 + + 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) : 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 Move UNEXEC definition to autoconf. diff -r 2c20a51413cb -r c2ac5cece5ea src/emacs.c --- 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; diff -r 2c20a51413cb -r c2ac5cece5ea src/fileio.c --- 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 diff -r 2c20a51413cb -r c2ac5cece5ea src/lisp.h --- 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 diff -r 2c20a51413cb -r c2ac5cece5ea src/s/ms-w32.h --- 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 ':' diff -r 2c20a51413cb -r c2ac5cece5ea src/w32proc.c --- 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