]> git.eshelyaron.com Git - emacs.git/commitdiff
(Fmsdos_downcase_filename): Don't change the argument, return a copy.
authorRichard M. Stallman <rms@gnu.org>
Sun, 12 May 1996 17:45:36 +0000 (17:45 +0000)
committerRichard M. Stallman <rms@gnu.org>
Sun, 12 May 1996 17:45:36 +0000 (17:45 +0000)
src/msdos.c

index d71787feb4c3e87eb47251a519f27afdbdd363f7..cd136bd0ec4cefa32e63281ca29154dcea73de57 100644 (file)
@@ -2246,14 +2246,21 @@ msdos_downcase_filename (p)
 DEFUN ("msdos-downcase-filename", Fmsdos_downcase_filename, Smsdos_downcase_filename,
        1, 1, 0,
   "Convert alphabetic characters in FILENAME to lower case and return that.\n\
-When long filenames are supported, doesn't change FILENAME.")
+When long filenames are supported, doesn't change FILENAME.\n\
+If FILENAME is not a string, returns nil.\n\
+The argument object is never altered--the value is a copy.")
   (filename)
      Lisp_Object filename;
 {
-  char *fname = XSTRING (filename)->data;
+  char *fname;
+  Lisp_Object tem;
 
-  msdos_downcase_filename (fname);
-  return make_string (fname, XSTRING (filename)->size);
+  if (! STRINGP (filename))
+    return Qnil;
+
+  tem = Fcopy_sequence (filename);
+  msdos_downcase_filename (XSTRING (tem)->data);
+  return tem;
 }
 \f
 /* The Emacs root directory as determined by init_environment.  */