The --quick command line option now ignores X resources and Registry settings.
authorJuanma Barranquero <lekktu@gmail.com>
Thu, 17 Sep 2009 23:04:41 +0000 (23:04 +0000)
committerJuanma Barranquero <lekktu@gmail.com>
Thu, 17 Sep 2009 23:04:41 +0000 (23:04 +0000)
* 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.

etc/ChangeLog
etc/NEWS
lisp/ChangeLog
lisp/startup.el
src/ChangeLog
src/emacs.c
src/lisp.h
src/w32reg.c
src/xrdb.c

index 54f1510..68fcba4 100644 (file)
@@ -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
index c0aa482..ee497b4 100644 (file)
--- 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.
index d7882fc..d728490 100644 (file)
@@ -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,
index 8ce63b3..c3cfcdc 100644 (file)
@@ -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.
index d7d69ef..a431e5b 100644 (file)
@@ -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
index 2c14be5..9538e3c 100644 (file)
@@ -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;
 }
index 820c258..f837708 100644 (file)
@@ -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];
index d2330e7..2b5b352 100644 (file)
@@ -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));
 }
 
index 0a74c08..fac97e4 100644 (file)
@@ -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;