Apply patch from Eric Christopherson to allow calling mit-scheme.app/Contents/Resourc...
authorChris Hanson <org/chris-hanson/cph>
Thu, 30 Sep 2010 09:20:15 +0000 (02:20 -0700)
committerChris Hanson <org/chris-hanson/cph>
Thu, 30 Sep 2010 09:20:15 +0000 (02:20 -0700)
src/microcode/macosx-starter.c
src/microcode/option.c
src/microcode/option.h
src/microcode/uxtop.c

index 3df6ae8b5e26a804332e144f61594257e55638de..e96c1617f76587355e65782eb6ba2147953b0d91 100644 (file)
@@ -57,7 +57,7 @@ main (int argc, const char ** argv)
   pid = (vfork ());
   if (pid == 0)
     {
-      execl (bp, bp, "--edit", ((char *) 0));
+      execl (bp, bp, "--macosx-application", "--edit", ((char *) 0));
       _exit (1);
     }
   return ((pid > 0) ? 0 : 3);
index ad9045fc2fd47f53925ec2bb6209fa0beb27326b..5b79b8e897a650b165a6df6902cfa4bd4011319a 100644 (file)
@@ -104,6 +104,9 @@ bool option_disable_core_dump;
 bool option_batch_mode;
 bool option_show_version;
 bool option_show_help;
+#ifdef __APPLE__
+  bool option_macosx_application;
+#endif
 
 /* String options */
 const char ** option_library_path = 0;
@@ -186,7 +189,17 @@ for the band.\n\
 --nocore\n\
   Specifies that Scheme should not generate a core dump under any\n\
   circumstances.\n\
-\n\
+"
+#ifdef __APPLE__
+"\n\
+--macosx-application\n\
+  Specifies that Scheme is running as a Mac OS X application.\n\
+  This option is automatically supplied when the application is\n\
+  launched from an icon, and should not be given under other\n\
+  circumstances.\n\
+"
+#endif /* __APPLE__ */
+"\n\
 Please report bugs to %s.\n\
 \n\
 Additional options may be supported by the band (and described below).\n\
@@ -479,6 +492,9 @@ parse_standard_options (int argc, const char ** argv)
   option_argument ("help", false, (&option_show_help));
   option_argument ("interactive", false, (&option_force_interactive));
   option_argument ("library", true, (&option_raw_library));
+#ifdef __APPLE__
+  option_argument ("macosx-application", false, (&option_macosx_application));
+#endif
   option_argument ("nocore", false, (&option_disable_core_dump));
   option_argument ("option-summary", false, (&option_summary));
   option_argument ("quiet", false, (&option_batch_mode));
index 9fa346294df3bdbc6c3ea3bde8eb57a28a5eb182..12993868fa30db5393ec86384d17ae40325d197b 100644 (file)
@@ -40,6 +40,9 @@ extern bool option_disable_core_dump;
 extern bool option_batch_mode;
 extern bool option_show_help;
 extern bool option_show_version;
+#ifdef __APPLE__
+  extern bool option_macosx_application;
+#endif
 
 /* String options */
 extern const char ** option_library_path;
index 37ac880e4294c42f5f6c11411928e6f23b8245cc..86eb805c49d370fa6c5e04d91a6635cf80bbe19f 100644 (file)
@@ -232,6 +232,8 @@ macosx_main_bundle_dir (void)
 bool
 macosx_in_app_p (void)
 {
+  if (!option_macosx_application)
+    return (false);
   CFURLRef url = (macosx_default_band_url ());
   if (url == 0)
     return (false);