(compile-internal): Add WHEN to obsolescence declaration.
[bpt/emacs.git] / lisp / dos-fns.el
index 4b91cdf..b2ac33c 100644 (file)
@@ -1,6 +1,7 @@
 ;;; dos-fns.el --- MS-Dos specific functions
 
-;; Copyright (C) 1991, 1993, 1995, 1996 Free Software Foundation, Inc.
+;; Copyright (C) 1991, 1993, 1995, 1996, 2001, 2002, 2003, 2004,
+;;   2005, 2006, 2007, 2008 Free Software Foundation, Inc.
 
 ;; Maintainer: Morten Welinder <terra@diku.dk>
 ;; Keywords: internal
@@ -9,7 +10,7 @@
 
 ;; GNU Emacs is free software; you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 2, or (at your option)
+;; the Free Software Foundation; either version 3, or (at your option)
 ;; any later version.
 
 ;; GNU Emacs is distributed in the hope that it will be useful,
@@ -19,8 +20,8 @@
 
 ;; You should have received a copy of the GNU General Public License
 ;; along with GNU Emacs; see the file COPYING.  If not, write to the
-;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
+;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
 
 ;;; Commentary:
 
 
 ;;; Code:
 
+(declare-function int86 "dosfns.c")
+(declare-function msdos-long-file-names "msdos.c")
+
 ;; This overrides a trivial definition in files.el.
 (defun convert-standard-filename (filename)
   "Convert a standard file's name to something suitable for the current OS.
-This function's standard definition is trivial; it just returns the argument.
-However, on some systems, the function is redefined
-with a definition that really does change some file names."
+This means to guarantee valid names and perhaps to canonicalize
+certain patterns.
+
+On Windows and DOS, replace invalid characters.  On DOS, make
+sure to obey the 8.3 limitations.  On Windows, turn Cygwin names
+into native names, and also turn slashes into backslashes if the
+shell requires it (see `w32-shell-dos-semantics')."
   (if (or (not (stringp filename))
          ;; This catches the case where FILENAME is "x:" or "x:/" or
          ;; "/", thus preventing infinite recursion.
@@ -42,7 +50,7 @@ with a definition that really does change some file names."
     (let ((flen (length filename)))
       ;; If FILENAME has a trailing slash, remove it and recurse.
       (if (memq (aref filename (1- flen)) '(?/ ?\\))
-         (concat (convert-standard-filename 
+         (concat (convert-standard-filename
                   (substring filename 0 (1- flen)))
                  "/")
        (let* (;; ange-ftp gets in the way for names like "/foo:bar".
@@ -180,25 +188,6 @@ with a definition that really does change some file names."
                    (dos-8+3-filename dir))
                  string))))))
 
-;; Make sure auto-save file names don't contain characters invalid for
-;; the underlying filesystem.  This is particularly annoying with
-;; `compose-mail's *mail* buffers: `*' is not allowed in file names on
-;; DOS/Windows, so Emacs bitches on you each time it tries to autosave
-;; the message being composed.
-(fset 'original-make-auto-save-file-name
-      (symbol-function 'make-auto-save-file-name))
-
-(defun make-auto-save-file-name ()
-  "Return file name to use for auto-saves of current buffer.
-Does not consider `auto-save-visited-file-name' as that variable is checked
-before calling this function.  You can redefine this for customization.
-See also `auto-save-file-name-p'."
-  (let ((filename (original-make-auto-save-file-name)))
-    ;; Don't modify remote (ange-ftp) filenames
-    (if (string-match "^/\\w+@[-A-Za-z0-9._]+:" filename)
-       filename
-      (convert-standard-filename filename))))
-
 ;; See dos-vars.el for defcustom.
 (defvar msdos-shells)
 
@@ -271,4 +260,5 @@ that your video hardware might not support 50-line mode."
 
 (provide 'dos-fns)
 
+;; arch-tag: 00b03579-8ebb-4a02-8762-5c5a929774ad
 ;;; dos-fns.el ends here