* doc.c (get_doc_string): Encode file name.

Fixes: debbugs:9735
This commit is contained in:
Stefan Monnier 2011-10-12 15:08:04 -04:00
parent 28dbc92f2c
commit 8fe012c4e6
2 changed files with 9 additions and 3 deletions

View file

@ -1,3 +1,7 @@
2011-10-12 Stefan Monnier <monnier@iro.umontreal.ca>
* doc.c (get_doc_string): Encode file name (bug#9735).
2011-10-12 Eli Zaretskii <eliz@gnu.org>
* bidi.c (bidi_level_of_next_char):

View file

@ -116,14 +116,16 @@ get_doc_string (Lisp_Object filepos, int unibyte, int definition)
If it is relative, combine it with Vdoc_directory. */
tem = Ffile_name_absolute_p (file);
file = ENCODE_FILE (file);
if (NILP (tem))
{
minsize = SCHARS (Vdoc_directory);
Lisp_Object docdir = ENCODE_FILE (Vdoc_directory);
minsize = SCHARS (docdir);
/* sizeof ("../etc/") == 8 */
if (minsize < 8)
minsize = 8;
name = (char *) alloca (minsize + SCHARS (file) + 8);
strcpy (name, SSDATA (Vdoc_directory));
strcpy (name, SSDATA (docdir));
strcat (name, SSDATA (file));
}
else
@ -138,7 +140,7 @@ get_doc_string (Lisp_Object filepos, int unibyte, int definition)
if (!NILP (Vpurify_flag))
{
/* Preparing to dump; DOC file is probably not installed.
So check in ../etc. */
So check in ../etc. */
strcpy (name, "../etc/");
strcat (name, SSDATA (file));