summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJuanma Barranquero <lekktu@gmail.com>2009-09-17 23:04:41 +0000
committerJuanma Barranquero <lekktu@gmail.com>2009-09-17 23:04:41 +0000
commit8686ac7162bb6ba995e1c66c08c8815315c1bd60 (patch)
treebfa97d92e97e34af73a424e5547decfe030b73ce
parenta69c67e84f2896613eb4e6848ef844e0a312f8c7 (diff)
downloademacs-8686ac7162bb6ba995e1c66c08c8815315c1bd60.tar.gz
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) <inhibit-x-resources>: 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.
-rw-r--r--etc/ChangeLog5
-rw-r--r--etc/NEWS5
-rw-r--r--lisp/ChangeLog6
-rw-r--r--lisp/startup.el6
-rw-r--r--src/ChangeLog11
-rw-r--r--src/emacs.c12
-rw-r--r--src/lisp.h3
-rw-r--r--src/w32reg.c6
-rw-r--r--src/xrdb.c4
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 <lekktu@gmail.com>
+
+ * NEWS: Mention new behavior of -Q and new variable
+ `inhibit-x-resources'.
+
2009-09-13 Chong Yidong <cyd@stupidchicken.com>
* 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 <lekktu@gmail.com>
+
+ * 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 <cyd@stupidchicken.com>
* 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 <lekktu@gmail.com>
+
+ * emacs.c (inhibit_x_resources): New variable.
+ (main) [HAVE_NS]: Don't process --quick command line option.
+ (syms_of_emacs) <inhibit-x-resources>: 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 <eliz@gnu.org>
* 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;