inhibit_window_system = 0;
- /* --unibyte requests that we set up to do everything with single-byte
- buffers and strings. We need to handle this before calling
- init_lread, init_editfns and other places that generate Lisp strings
- from text in the environment. */
- if ((argmatch (argv, argc, "-unibyte", "--unibyte", 4, NULL, &skip_args))
- || getenv ("EMACS_UNIBYTE"))
- {
- Lisp_Object symbol;
- symbol = intern ("default-enable-multibyte-characters");
- Fset (symbol, Qnil);
- Fset_default (symbol, Qnil);
- }
+ {
+ int inhibit_unibyte = 0;
+
+ /* --multibyte overrides EMACS_UNIBYTE. */
+ if (argmatch (argv, argc, "-no-unibyte", "--no-unibyte", 4, NULL, &skip_args)
+ || argmatch (argv, argc, "-multibyte", "--multibyte", 4, NULL, &skip_args))
+ inhibit_unibyte = 1;
+
+ /* --unibyte requests that we set up to do everything with single-byte
+ buffers and strings. We need to handle this before calling
+ init_lread, init_editfns and other places that generate Lisp strings
+ from text in the environment. */
+ if (argmatch (argv, argc, "-unibyte", "--unibyte", 4, NULL, &skip_args)
+ || argmatch (argv, argc, "-no-multibyte", "--no-multibyte", 4, NULL, &skip_args)
+ || (getenv ("EMACS_UNIBYTE") && !inhibit_unibyte))
+ {
+ Lisp_Object symbol;
+ symbol = intern ("default-enable-multibyte-characters");
+ Fset (symbol, Qnil);
+ Fset_default (symbol, Qnil);
+ }
+ }
/* Handle the -t switch, which specifies filename to use as terminal */
{
#ifdef VMS
{ "-map", "--map-data", 100, 0 },
#endif
+ { "-no-unibyte", "--no-unibyte", 96, 0 },
+ { "-multibyte", "--multibyte", 96, 0 },
{ "-unibyte", "--unibyte", 95, 0 },
+ { "-no-multibyte", "--no-multibyte", 95, 0 },
{ "-t", "--terminal", 90, 1 },
{ "-d", "--display", 80, 1 },
{ "-display", 0, 80, 1 },