XEmacs 21.4.9 "Informed Management".
[chise/xemacs-chise.git.1] / src / fileio.c
index 578da72..ff19f3e 100644 (file)
@@ -364,6 +364,8 @@ If OPERATION equals `inhibit-file-name-operation', then we ignore
 any handlers that are members of `inhibit-file-name-handlers',
 but we still do run any other handlers.  This lets handlers
 use the standard functions without calling themselves recursively.
+
+Otherwise, OPERATION is the name of a funcall'able function.
 */
        (filename, operation))
 {
@@ -952,7 +954,7 @@ See also the function `substitute-in-file-name'.
              if (IS_DIRECTORY_SEP (nm[1]))
                {
                  if (strcmp ((char *) nm, (char *) XSTRING_DATA (name)) != 0)
-                   name = build_string ((CBufbyte *) nm);
+                   name = build_string ((Bufbyte *) nm);
                }
              /* drive must be set, so this is okay */
              else if (strcmp ((char *) nm - 2,
@@ -1333,7 +1335,23 @@ No component of the resulting pathname will be a symbolic link, as
     TO_EXTERNAL_FORMAT (LISP_STRING, expanded_name,
                        ALLOCA, (path, elen),
                        Qfile_name);
+
+#if defined(WIN32_FILENAMES) && defined(CYGWIN)
+    /* When using win32 filenames in cygwin we want file-truename to
+       detect that c:/windows == /windows for example. */
+    if ((IS_DIRECTORY_SEP (path[0]) 
+        && (elen == 1 || !IS_DIRECTORY_SEP (path[1])))
+       || (isalpha (path[0])
+           && (elen == 1 || !IS_DEVICE_SEP (path[1])))) {
+      int ltwff2 =
+       cygwin_posix_to_win32_path_list_buf_size (path);
+      p = (Bufbyte *) alloca (ltwff2);
+      cygwin_posix_to_win32_path_list (path, p);
+      path = p;
+    }
+#endif
     p = path;
+
     if (elen > MAXPATHLEN)
       goto toolong;
 
@@ -3858,8 +3876,8 @@ auto_save_1 (Lisp_Object ignored)
   return
     /* !!#### need to deal with this 'escape-quoted everywhere */
     Fwrite_region_internal (Qnil, Qnil, a, Qnil, Qlambda, Qnil,
-#ifdef MULE
-                           Qescape_quoted
+#ifdef FILE_CODING
+                           current_buffer->buffer_file_coding_system
 #else
                            Qnil
 #endif