Bit the bullet and added a private GUSISIOUX for Python. This makes the delayconsole and keepopen code neater. Also tells Sioux to behave better with events, and handles cmd-. during print better. The pythonpreferences have also changed due to this.
diff --git a/Mac/Python/macmain.c b/Mac/Python/macmain.c
index 8dfbdaf..09d8648 100644
--- a/Mac/Python/macmain.c
+++ b/Mac/Python/macmain.c
@@ -53,9 +53,9 @@
#ifdef USE_MAC_SHARED_LIBRARY
extern PyMac_AddLibResources(void);
#endif
-#ifdef USE_GUSI
-#include "GUSISIOUX.h"
-#endif
+//#ifdef USE_GUSI
+//#include "GUSISIOUX.h"
+//#endif
#define STARTUP "PythonStartup"
@@ -71,6 +71,14 @@
static char **orig_argv;
static int orig_argc;
+/* A flag which remembers whether the user has acknowledged all the console
+** output (by typing something)
+*/
+#define STATE_UNKNOWN 0
+#define STATE_LASTREAD 1
+#define STATE_LASTWRITE 2
+int console_output_state = STATE_UNKNOWN;
+
PyMac_PrefRecord PyMac_options;
static void Py_Main(int, char **); /* Forward */
@@ -544,12 +552,20 @@
void
PyMac_OutputSeen()
{
-#ifdef GUSISIOUX_STATE_UNKNOWN
- gusisioux_state = GUSISIOUX_STATE_LASTREAD;
-#endif
+ console_output_state = STATE_LASTREAD;
}
/*
+** Set the "unseen output" flag
+*/
+void
+PyMac_OutputNotSeen()
+{
+ console_output_state = STATE_LASTWRITE;
+}
+
+
+/*
** Terminate application
*/
void
@@ -569,15 +585,11 @@
keep = 0;
break;
case POPT_KEEPCONSOLE_OUTPUT:
-#ifdef GUSISIOUX_STATE_UNKNOWN
- if (gusisioux_state == GUSISIOUX_STATE_LASTWRITE ||
- gusisioux_state == GUSISIOUX_STATE_UNKNOWN )
+ if (console_output_state == STATE_LASTWRITE ||
+ console_output_state == STATE_UNKNOWN )
keep = 1;
else
keep = 0;
-#else
- keep = 1;
-#endif
break;
case POPT_KEEPCONSOLE_ERROR:
keep = (status != 0);
@@ -636,3 +648,9 @@
{
return PyMac_GetPythonDir();
}
+
+int
+PyMac_GetDelayConsoleFlag()
+{
+ return (int)PyMac_options.delayconsole;
+}
\ No newline at end of file