diff options
author | Richard M. Stallman <rms@gnu.org> | 1996-05-12 17:45:36 +0000 |
---|---|---|
committer | Richard M. Stallman <rms@gnu.org> | 1996-05-12 17:45:36 +0000 |
commit | c627ebb9144142b71ab1d125114863e6e48d0edc (patch) | |
tree | 4e222b1228cdfcddbba104a8dcad950fdd2afa2c | |
parent | 259d9c935017d7264d06e9ae36e7f7945e8e73d6 (diff) | |
download | emacs-c627ebb9144142b71ab1d125114863e6e48d0edc.tar.gz |
(Fmsdos_downcase_filename): Don't change the argument, return a copy.
-rw-r--r-- | src/msdos.c | 15 |
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. */ |