From 8686ac7162bb6ba995e1c66c08c8815315c1bd60 Mon Sep 17 00:00:00 2001 From: Juanma Barranquero Date: Thu, 17 Sep 2009 23:04:41 +0000 Subject: [PATCH] The --quick command line option now ignores X resources and Registry settings. * etc/NEWS: Mention new behavior of -Q and new variable `inhibit-x-resources'. * lisp/startup.el (emacs-quick-startup): Remove variable and all uses. (command-line): Set `inhibit-x-resources' instead. (command-line-1): Use `inhibit-x-resources' instead. * src/emacs.c (inhibit_x_resources): New variable. (main) [HAVE_NS]: Don't process --quick command line option. (syms_of_emacs) : DEFVAR_BOOL it. * src/lisp.h (inhibit_x_resources): Declare it extern. * src/w32reg.c (x_get_string_resource): * src/xrdb.c (x_get_string_resource): Obey inhibit_x_resources. --- etc/ChangeLog | 5 +++++ etc/NEWS | 5 +++++ lisp/ChangeLog | 6 ++++++ lisp/startup.el | 6 ++---- src/ChangeLog | 11 +++++++++++ src/emacs.c | 12 +++++++----- src/lisp.h | 3 +++ src/w32reg.c | 6 +++++- src/xrdb.c | 4 ++++ 9 files changed, 48 insertions(+), 10 deletions(-) diff --git a/etc/ChangeLog b/etc/ChangeLog index 54f15101485..68fcba4ee06 100644 --- a/etc/ChangeLog +++ b/etc/ChangeLog @@ -1,3 +1,8 @@ +2009-09-15 Juanma Barranquero + + * NEWS: Mention new behavior of -Q and new variable + `inhibit-x-resources'. + 2009-09-13 Chong Yidong * PROBLEMS: Document Athena/Lucid internationalization diff --git a/etc/NEWS b/etc/NEWS index c0aa482dc60..ee497b4431b 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -38,6 +38,11 @@ world-readable install. * Changes in Emacs 23.2 +** Command-line option -Q (--quick) now also disables loading X resources. +On Windows, Registry settings are ignored, though environment variables set +on the Registry are still honored. The new variable `inhibit-x-resources' +shows whether X resources were loaded or not. + ** New completion-style `initials' to complete M-x lch to list-command-history. ** Unibyte sessions are declared obsolete. diff --git a/lisp/ChangeLog b/lisp/ChangeLog index d7882fc348a..d728490a72d 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2009-09-17 Juanma Barranquero + + * startup.el (emacs-quick-startup): Remove variable and all uses. + (command-line): Set `inhibit-x-resources' instead. + (command-line-1): Use `inhibit-x-resources' instead. + 2009-09-17 Chong Yidong * subr.el: Fix last change to avoid using the `unless' macro, diff --git a/lisp/startup.el b/lisp/startup.el index 8ce63b3f037..c3cfcdcc56a 100644 --- a/lisp/startup.el +++ b/lisp/startup.el @@ -366,8 +366,6 @@ from being initialized." string) :group 'auto-save) -(defvar emacs-quick-startup nil) - (defvar emacs-basic-display nil) (defvar init-file-debug nil) @@ -799,7 +797,7 @@ opening the first frame (e.g. open a connection to an X server).") ((member argi '("-Q" "-quick")) (setq init-file-user nil site-run-file nil - emacs-quick-startup t)) + inhibit-x-resources t)) ((member argi '("-D" "-basic-display")) (setq no-blinking-cursor t emacs-basic-display t) @@ -2274,7 +2272,7 @@ A fancy display is used on graphic displays, normal otherwise." (if (or inhibit-startup-screen initial-buffer-choice noninteractive - emacs-quick-startup) + inhibit-x-resources) ;; Not displaying a startup screen. If 3 or more files ;; visited, and not all visible, show user what they all are. diff --git a/src/ChangeLog b/src/ChangeLog index d7d69efac12..a431e5b94f0 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,14 @@ +2009-09-17 Juanma Barranquero + + * emacs.c (inhibit_x_resources): New variable. + (main) [HAVE_NS]: Don't process --quick command line option. + (syms_of_emacs) : DEFVAR_BOOL it. + + * lisp.h (inhibit_x_resources): Declare it extern. + + * w32reg.c (x_get_string_resource): + * xrdb.c (x_get_string_resource): Obey inhibit_x_resources. + 2009-09-17 Eli Zaretskii * Makefile.in (MSDOS_SUPPORT, SOME_MACHINE_LISP): Add diff --git a/src/emacs.c b/src/emacs.c index 2c14be5208e..9538e3cf059 100644 --- a/src/emacs.c +++ b/src/emacs.c @@ -239,6 +239,9 @@ int noninteractive; int noninteractive1; +/* Nonzero means Emacs was run in --quick mode. */ +int inhibit_x_resources; + /* Name for the server started by the daemon.*/ static char *daemon_name; @@ -1483,11 +1486,6 @@ main (int argc, char **argv) ns_no_defaults = 1; skip_args--; } - if (argmatch (argv, argc, "-Q", "--quick", 5, NULL, &skip_args)) - { - ns_no_defaults = 1; - skip_args--; - } #ifdef NS_IMPL_COCOA if (skip_args < argc) { @@ -2680,6 +2678,10 @@ was found. */); This is nil during initialization. */); Vafter_init_time = Qnil; + DEFVAR_BOOL ("inhibit-x-resources", &inhibit_x_resources, + doc: /* If non-nil, X resources and Windows Registry settings are not used. */); + inhibit_x_resources = 0; + /* Make sure IS_DAEMON starts up as false. */ daemon_pipe[1] = 0; } diff --git a/src/lisp.h b/src/lisp.h index 820c2585976..f837708fea5 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -3143,6 +3143,9 @@ void shut_down_emacs P_ ((int, int, Lisp_Object)); /* Nonzero means don't do interactive redisplay and don't change tty modes */ extern int noninteractive; +/* Nonzero means don't load X resources or Windows Registry settings. */ +extern int inhibit_x_resources; + /* Pipe used to send exit notification to the daemon parent at startup. */ extern int daemon_pipe[2]; diff --git a/src/w32reg.c b/src/w32reg.c index d2330e77a1a..2b5b352c583 100644 --- a/src/w32reg.c +++ b/src/w32reg.c @@ -76,7 +76,7 @@ w32_get_rdb_resource (rdb, resource) return NULL; } -LPBYTE +static LPBYTE w32_get_string_resource (name, class, dwexptype) char *name, *class; DWORD dwexptype; @@ -160,6 +160,10 @@ x_get_string_resource (rdb, name, class) return resource; } + if (inhibit_x_resources) + /* --quick was passed, so this is a no-op. */ + return NULL; + return (w32_get_string_resource (name, class, REG_SZ)); } diff --git a/src/xrdb.c b/src/xrdb.c index 0a74c089f75..fac97e4350f 100644 --- a/src/xrdb.c +++ b/src/xrdb.c @@ -693,6 +693,10 @@ x_get_string_resource (rdb, name, class) { XrmValue value; + if (inhibit_x_resources) + /* --quick was passed, so this is a no-op. */ + return NULL; + if (x_get_resource (rdb, name, class, x_rm_string, &value)) return (char *) value.addr; -- 2.39.2