[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Not loading the Registry settings
From: |
Juanma Barranquero |
Subject: |
Re: Not loading the Registry settings |
Date: |
Mon, 14 Sep 2009 02:34:29 +0200 |
This a sample patch, not nearly ready (no docs, for example), just to
check whether I'm going in the right direction. It is the simplest
patch that works on Windows.
Comments:
- It piggybacks on -Q, as Stefan suggested. Personally I think (but
not very strongly) that a new option would be clearer.
- It basically turns w32reg:x_get_string_resource() into a no-op.
Would the same approach for xrdb:x_get_string_resource() work? In
particular, in the ~/.Xdefaults case mentioned by Miles?
- As defined, it is an irreversible operation. Once -Q is used,
x_get_string_resource is a no-op for the duration of the Emacs
instance. I've assumed that is the intended effect.
Thoughts?
Juanma
diff --git a/src/emacs.c b/src/emacs.c
index 2c14be5..2f25248 100644
--- a/src/emacs.c
+++ b/src/emacs.c
@@ -239,6 +239,9 @@ int noninteractive;
int noninteractive1;
+/* Nonzero means Emacs was started with --quick. */
+int emacs_quick_startup;
+
/* Name for the server started by the daemon.*/
static char *daemon_name;
@@ -1472,6 +1475,16 @@ main (int argc, char **argv)
no_loadup
= argmatch (argv, argc, "-nl", "--no-loadup", 6, NULL, &skip_args);
+ /* Check the -quick switch, which means don't load init or site files, nor X
+ settings or Windows registry, and no splash; but pass it back
for startup.el. */
+ if (argmatch (argv, argc, "-Q", "--quick", 5, NULL, &skip_args))
+ {
+ emacs_quick_startup = 1;
+ skip_args--;
+ }
+ else
+ emacs_quick_startup = 0;
+
#ifdef HAVE_NS
ns_alloc_autorelease_pool();
if (!noninteractive)
diff --git a/src/lisp.h b/src/lisp.h
index 820c258..38e4854 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -3128,6 +3128,7 @@ extern Lisp_Object Vinvocation_name,
Vinvocation_directory;
extern Lisp_Object Vbefore_init_time, Vafter_init_time;
extern Lisp_Object Vinstallation_directory;
extern Lisp_Object empty_unibyte_string, empty_multibyte_string;
+extern int emacs_quick_startup;
EXFUN (Fkill_emacs, 1);
#if HAVE_SETLOCALE
void fixup_locale P_ ((void));
diff --git a/src/w32reg.c b/src/w32reg.c
index d2330e7..89294f8 100644
--- a/src/w32reg.c
+++ b/src/w32reg.c
@@ -150,6 +150,9 @@ x_get_string_resource (rdb, name, class)
XrmDatabase rdb;
char *name, *class;
{
+ /* --quick was passed, so this is a no-op. */
+ if (emacs_quick_startup) return NULL;
+
if (rdb)
{
char *resource;
- Not loading the Registry settings, Juanma Barranquero, 2009/09/12
- Re: Not loading the Registry settings, David De La Harpe Golden, 2009/09/12
- Re: Not loading the Registry settings, Juanma Barranquero, 2009/09/12
- Re: Not loading the Registry settings, Stefan Monnier, 2009/09/12
- Re: Not loading the Registry settings, Miles Bader, 2009/09/12
- Re: Not loading the Registry settings,
Juanma Barranquero <=
- Re: Not loading the Registry settings, Stefan Monnier, 2009/09/14
- Re: Not loading the Registry settings, Juanma Barranquero, 2009/09/14
- Re: Not loading the Registry settings, Juanma Barranquero, 2009/09/14
- Re: Not loading the Registry settings, Stefan Monnier, 2009/09/14
- Re: Not loading the Registry settings, Juanma Barranquero, 2009/09/14
- Re: Not loading the Registry settings, Stefan Monnier, 2009/09/14
- Re: Not loading the Registry settings, Juanma Barranquero, 2009/09/15
- Re: Not loading the Registry settings, Stefan Monnier, 2009/09/15
- Re: Not loading the Registry settings, Juanma Barranquero, 2009/09/15
- Message not available
- Re: Not loading the Registry settings, Adrian Robert, 2009/09/14