diff options
author | Eli Zaretskii <eliz@gnu.org> | 2013-11-04 19:30:33 +0200 |
---|---|---|
committer | Eli Zaretskii <eliz@gnu.org> | 2013-11-04 19:30:33 +0200 |
commit | d0065ff1244871c9eb40420b88fc89f9f008b587 (patch) | |
tree | a869fa565b559c7b0a9390fd6045d7d827d001ec /src/emacs.c | |
parent | 7397c58760779a3aa83ff58164455761d77cd642 (diff) | |
download | emacs-d0065ff1244871c9eb40420b88fc89f9f008b587.tar.gz |
Fix bug #15260 with building and installing Emacs in non-ASCII directories.
src/xdisp.c (message3_nolog, message_with_string): Encode the string
before writing it to the terminal in a non-interactive session.
src/lread.c (openp): If both FILENAME and SUFFIX are unibyte, make
sure we concatenate them into a unibyte string.
src/fileio.c (make_temp_name): Encode PREFIX, and decode the
resulting temporary name before returning it to the caller.
(Fexpand_file_name): If NAME is pure-ASCII and DEFAULT_DIRECTORY
is a unibyte string, convert NAME to a unibyte string to ensure
that the result is also a unibyte string.
src/emacs.c (init_cmdargs): Use build_unibyte_string to make sure we
create unibyte strings from default paths and directory/file
names.
src/coding.h (ENCODE_FILE): Do not attempt to encode a unibyte
string.
src/callproc.c (init_callproc): Use build_unibyte_string to make
sure we create unibyte strings from default paths and
directory/file names.
src/buffer.c (init_buffer): Don't store default-directory of
*scratch* in multibyte form. The original problem which led to
that is described in
http://lists.gnu.org/archive/html/emacs-pretest-bug/2004-11/msg00532.html,
but it was solved long ago.
lisp/startup.el (normal-top-level): Move setting eol-mnemonic-unix,
eol-mnemonic-mac, eol-mnemonic-dos, and also setup of the locale
environment and decoding all of the default-directory's to here
from command-line.
(command-line): Decode also argv[0].
lisp/loadup.el: Error out if default-directory is a multibyte string
when we are dumping.
lisp/Makefile.in (emacs): Don't set LC_ALL=C.
leim/Makefile.in (RUN_EMACS): Don't set LC_ALL=C.
configure.ac: Don't disallow builds in non-ASCII directories.
Diffstat (limited to 'src/emacs.c')
-rw-r--r-- | src/emacs.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/emacs.c b/src/emacs.c index 928babb417c..52d2e76dc87 100644 --- a/src/emacs.c +++ b/src/emacs.c @@ -393,7 +393,7 @@ init_cmdargs (int argc, char **argv, int skip_args, char *original_pwd) initial_argv = argv; initial_argc = argc; - raw_name = build_string (argv[0]); + raw_name = build_unibyte_string (argv[0]); /* Add /: to the front of the name if it would otherwise be treated as magic. */ @@ -427,7 +427,9 @@ init_cmdargs (int argc, char **argv, int skip_args, char *original_pwd) /* Emacs was started with relative path, like ./emacs. Make it absolute. */ { - Lisp_Object odir = original_pwd ? build_string (original_pwd) : Qnil; + Lisp_Object odir = + original_pwd ? build_unibyte_string (original_pwd) : Qnil; + Vinvocation_directory = Fexpand_file_name (Vinvocation_directory, odir); } @@ -2206,7 +2208,7 @@ decode_env_path (const char *evarname, const char *defalt) p = strchr (path, SEPCHAR); if (!p) p = path + strlen (path); - element = (p - path ? make_string (path, p - path) + element = (p - path ? make_unibyte_string (path, p - path) : build_string (".")); #ifdef WINDOWSNT /* Relative file names in the default path are interpreted as @@ -2216,7 +2218,7 @@ decode_env_path (const char *evarname, const char *defalt) element = Fexpand_file_name (Fsubstring (element, make_number (emacs_dir_len), Qnil), - build_string (emacs_dir)); + build_unibyte_string (emacs_dir)); #endif /* Add /: to the front of the name |