summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>1996-05-12 17:45:36 +0000
committerRichard M. Stallman <rms@gnu.org>1996-05-12 17:45:36 +0000
commitc627ebb9144142b71ab1d125114863e6e48d0edc (patch)
tree4e222b1228cdfcddbba104a8dcad950fdd2afa2c /src
parent259d9c935017d7264d06e9ae36e7f7945e8e73d6 (diff)
downloademacs-c627ebb9144142b71ab1d125114863e6e48d0edc.tar.gz
(Fmsdos_downcase_filename): Don't change the argument, return a copy.
Diffstat (limited to 'src')
-rw-r--r--src/msdos.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/msdos.c b/src/msdos.c
index d71787feb4c..cd136bd0ec4 100644
--- a/src/msdos.c
+++ b/src/msdos.c
@@ -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;
}
/* The Emacs root directory as determined by init_environment. */