GNU bug report logs -
#9735
win32 emacs cannot load doc string from files which has non-ascii characters in path
Previous Next
Reported by: sssslang <sssslang <at> gmail.com>
Date: Wed, 12 Oct 2011 12:34:03 UTC
Severity: normal
Done: Stefan Monnier <monnier <at> IRO.UMontreal.CA>
Bug is archived. No further changes may be made.
Full log
Message #16 received at 9735-done <at> debbugs.gnu.org (full text, mbox):
> I use emacs-23.2 and codepage936 on my Windows box. And the "xxxxx" in the
> error message should be the non-latin characters but is something like
> "\301\226" now. Except "cl" and "calendar", other elisp sources seems can be
> loaded without problem. I don't know what makes the difference, but the
> error maybe caused by incorrect path encoding. The attached patch works on
> my machine, but it didn't have enough test. Hopes somebody could improve it.
The patch is doing the right thing, thank you. I installed
a slightly different one to call ENCODE_FILE fewer times.
Stefan
> --- emacs-23.2/src/doc.c 2010-04-04 06:26:07.000000000 +0800
> +++ emacs-23.2/src/doc.c 2011-10-12 17:19:54.000000000 +0800
> @@ -142,17 +142,17 @@
> tem = Ffile_name_absolute_p (file);
> if (NILP (tem))
> {
> - minsize = SCHARS (Vdoc_directory);
> + minsize = SCHARS (ENCODE_FILE (Vdoc_directory));
> /* sizeof ("../etc/") == 8 */
> if (minsize < 8)
> minsize = 8;
> - name = (char *) alloca (minsize + SCHARS (file) + 8);
> - strcpy (name, SDATA (Vdoc_directory));
> - strcat (name, SDATA (file));
> + name = (char *) alloca (minsize + SCHARS (ENCODE_FILE (file)) + 8);
> + strcpy (name, SDATA (ENCODE_FILE (Vdoc_directory)));
> + strcat (name, SDATA (ENCODE_FILE (file)));
> }
> else
> {
> - name = (char *) SDATA (file);
> + name = (char *) SDATA (ENCODE_FILE(file));
> }
> fd = emacs_open (name, O_RDONLY, 0);
> @@ -164,7 +164,7 @@
> /* Preparing to dump; DOC file is probably not installed.
> So check in ../etc. */
> strcpy (name, "../etc/");
> - strcat (name, SDATA (file));
> + strcat (name, SDATA (ENCODE_FILE (file)));
> fd = emacs_open (name, O_RDONLY, 0);
> }
This bug report was last modified 13 years and 280 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.