]> git.eshelyaron.com Git - emacs.git/commitdiff
* emacs.c (ns_no_defaults): New declaration. (main): Use it. * nsterm.h (ns_no_defa...
authorAdrian Robert <Adrian.B.Robert@gmail.com>
Fri, 23 Jan 2009 09:58:02 +0000 (09:58 +0000)
committerAdrian Robert <Adrian.B.Robert@gmail.com>
Fri, 23 Jan 2009 09:58:02 +0000 (09:58 +0000)
src/emacs.c
src/nsfns.m
src/nsterm.h
src/nsterm.m

index df5e4cdeeb492bf10188e0c8ded22e03eafff177..1b4872bf4c989eaea38815234b986ae02ab59070 100644 (file)
@@ -202,6 +202,10 @@ extern int inherited_pgroup;
 int display_arg;
 #endif
 
+#ifdef HAVE_NS
+extern char ns_no_defaults;
+#endif
+
 /* An address near the bottom of the stack.
    Tells GC how to save a copy of the stack.  */
 char *stack_bottom;
@@ -1473,6 +1477,16 @@ main (int argc, char **argv)
     {
       char *tmp;
       display_arg = 4;
+      if (argmatch (argv, argc, "-q", "--no-init-file", 6, NULL, &skip_args))
+        {
+          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)
         {
index 218674d864bda5bb507c7031746cc1826f5df283..f3b80c11622ae94f6b4ecb7d3212af58ecf36f8e 100644 (file)
@@ -2184,9 +2184,10 @@ x_get_string_resource (XrmDatabase rdb, char *name, char *class)
     toCheck = name + (!strncmp (name, "emacs.", 6) ? 6 : 0);
 
 /*fprintf (stderr, "Checking '%s'\n", toCheck); */
-  
-  res = [[[NSUserDefaults standardUserDefaults] objectForKey:
-                   [NSString stringWithUTF8String: toCheck]] UTF8String];
+
+  res = ns_no_defaults ? NULL :
+    [[[NSUserDefaults standardUserDefaults] objectForKey:
+                     [NSString stringWithUTF8String: toCheck]] UTF8String];
   return !res ? NULL :
       (!strncasecmp (res, "YES", 3) ? "true" :
           (!strncasecmp (res, "NO", 2) ? "false" : res));
index d1e4843adb36186b97bd0c4155ea9dc1db77e3bd..781d312bafcddd018ad606c2d7f7617a96efe584 100644 (file)
@@ -726,6 +726,7 @@ extern void nxatoms_of_nsselect ();
 extern int ns_lisp_to_cursor_type ();
 extern Lisp_Object ns_cursor_type_to_lisp (int arg);
 extern Lisp_Object Qnone;
+extern char ns_no_defaults;
 
 /* XColor defined in dispextern.h (we use color_def->pixel = NSColor id), but
    this causes an #include snafu, so we can't declare it.  */
index 37322b11adc93d5e0f41696a2245595a94da57af..2f8eccbe7e9c1457e08ff22fc59f14c77f795ef0 100644 (file)
@@ -151,9 +151,17 @@ extern Lisp_Object Qcursor_color, Qcursor_type, Qns;
 
 EmacsPrefsController *prefsController;
 
-/* Defaults managed through the OpenStep defaults system.  These pertain to
-   the NS interface specifically.  Although a customization group could be
-   created, it's more natural to manage them via defaults. */
+/* Preferences equivalent to those set by X resources under X are managed
+   through the OpenStep defaults system.  These pertain to behavior of the
+   graphical interface components.  The one difference from X is that the
+   values below are SET when the user chooses save-options. This makes
+   things easier for users, but sometimes violates expectations when some
+   user-set options appear when running under -q/Q.  Therefore we depart
+   from X behavior and refuse to read defaults when started under these
+   options. */
+
+/* Set in emacs.c. */
+char ns_no_defaults;
 
 /* Specifies which emacs modifier should be generated when NS receives
    the Alternate modifer.  May be Qnone or any of the modifier lisp symbols. */
@@ -3801,9 +3809,6 @@ ns_term_init (Lisp_Object display_name)
   /* Put it on ns_display_name_list */
   ns_display_name_list = Fcons (Fcons (display_name, Qnil),
                                 ns_display_name_list);
-/*      ns_display_name_list = Fcons (Fcons (display_name,
-                                           Fcons (Qnil, dpyinfo->xrdb)),
-                                    ns_display_name_list); */
   dpyinfo->name_list_element = XCAR (ns_display_name_list);
 
   /* Set the name of the terminal. */
@@ -3815,34 +3820,38 @@ ns_term_init (Lisp_Object display_name)
 
   /* Read various user defaults. */
   ns_set_default_prefs ();
-  ns_default ("AlternateModifier", &ns_alternate_modifier,
-             Qnil, Qnil, NO, YES);
-  if (NILP (ns_alternate_modifier))
-    ns_alternate_modifier = Qmeta;
-  ns_default ("CommandModifier", &ns_command_modifier,
-             Qnil, Qnil, NO, YES);
-  if (NILP (ns_command_modifier))
-    ns_command_modifier = Qsuper;
-  ns_default ("ControlModifier", &ns_control_modifier,
-             Qnil, Qnil, NO, YES);
-  if (NILP (ns_control_modifier))
-    ns_control_modifier = Qcontrol;
-  ns_default ("FunctionModifier", &ns_function_modifier,
-             Qnil, Qnil, NO, YES);
-  if (NILP (ns_function_modifier))
-    ns_function_modifier = Qnone;
-  ns_default ("ExpandSpace", &ns_expand_space,
-             make_float (0.5), make_float (0.0), YES, NO);
-  ns_default ("GSFontAntiAlias", &ns_antialias_text,
-             Qt, Qnil, NO, NO);
-  tmp = Qnil;
-  ns_default ("AppleAntiAliasingThreshold", &tmp,
-             make_float (10.0), make_float (6.0), YES, NO);
-  ns_antialias_threshold = NILP (tmp) ? 10.0 : XFLOATINT (tmp);
-  ns_default ("UseQuickdrawSmoothing", &ns_use_qd_smoothing,
-             Qt, Qnil, NO, NO);
-  ns_default ("UseSystemHighlightColor", &ns_use_system_highlight_color,
-             Qt, Qnil, NO, NO);
+  if (!ns_no_defaults)
+    {
+      ns_default ("AlternateModifier", &ns_alternate_modifier,
+                 Qnil, Qnil, NO, YES);
+      if (NILP (ns_alternate_modifier))
+        ns_alternate_modifier = Qmeta;
+      ns_default ("CommandModifier", &ns_command_modifier,
+                 Qnil, Qnil, NO, YES);
+      if (NILP (ns_command_modifier))
+        ns_command_modifier = Qsuper;
+      ns_default ("ControlModifier", &ns_control_modifier,
+                 Qnil, Qnil, NO, YES);
+      if (NILP (ns_control_modifier))
+        ns_control_modifier = Qcontrol;
+      ns_default ("FunctionModifier", &ns_function_modifier,
+                 Qnil, Qnil, NO, YES);
+      if (NILP (ns_function_modifier))
+        ns_function_modifier = Qnone;
+      ns_default ("ExpandSpace", &ns_expand_space,
+                 make_float (0.5), make_float (0.0), YES, NO);
+      ns_default ("GSFontAntiAlias", &ns_antialias_text,
+                 Qt, Qnil, NO, NO);
+      tmp = Qnil;
+      ns_default ("AppleAntiAliasingThreshold", &tmp,
+                 make_float (10.0), make_float (6.0), YES, NO);
+      ns_antialias_threshold = NILP (tmp) ? 10.0 : XFLOATINT (tmp);
+      ns_default ("UseQuickdrawSmoothing", &ns_use_qd_smoothing,
+                 Qt, Qnil, NO, NO);
+      ns_default ("UseSystemHighlightColor", &ns_use_system_highlight_color,
+                 Qt, Qnil, NO, NO);
+    }
+
   if (EQ (ns_use_system_highlight_color, Qt))
     {
       ns_selection_color = [[NSUserDefaults standardUserDefaults]