Mercurial > cpython-lru_cache-weakref
annotate Mac/Python/macmain.c @ 18386:8cdff545cbde legacy-trunk
Set the default 8-bit encoding based on the system script and language.
| author | unknown <tools@python.org> |
|---|---|
| date | Wed, 04 Jul 2001 22:37:19 +0000 |
| parents | a9485d404f05 |
| children | d7590122f9a2 |
| rev | line source |
|---|---|
|
1811
ea5b13d11a13
Added macmain.c (separate Mac specific main prog); bump version to 1.1
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1 /*********************************************************** |
|
5079
d6b292a33cfe
Added/updated copyright notices
Jack Jansen <jack.jansen@cwi.nl>
parents:
4962
diff
changeset
|
2 Copyright 1991-1997 by Stichting Mathematisch Centrum, Amsterdam, |
| 2091 | 3 The Netherlands. |
|
1811
ea5b13d11a13
Added macmain.c (separate Mac specific main prog); bump version to 1.1
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
4 |
|
ea5b13d11a13
Added macmain.c (separate Mac specific main prog); bump version to 1.1
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
5 All Rights Reserved |
|
ea5b13d11a13
Added macmain.c (separate Mac specific main prog); bump version to 1.1
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
6 |
|
ea5b13d11a13
Added macmain.c (separate Mac specific main prog); bump version to 1.1
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
7 Permission to use, copy, modify, and distribute this software and its |
|
ea5b13d11a13
Added macmain.c (separate Mac specific main prog); bump version to 1.1
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
8 documentation for any purpose and without fee is hereby granted, |
|
ea5b13d11a13
Added macmain.c (separate Mac specific main prog); bump version to 1.1
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
9 provided that the above copyright notice appear in all copies and that |
|
ea5b13d11a13
Added macmain.c (separate Mac specific main prog); bump version to 1.1
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
10 both that copyright notice and this permission notice appear in |
|
ea5b13d11a13
Added macmain.c (separate Mac specific main prog); bump version to 1.1
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
11 supporting documentation, and that the names of Stichting Mathematisch |
|
ea5b13d11a13
Added macmain.c (separate Mac specific main prog); bump version to 1.1
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
12 Centrum or CWI not be used in advertising or publicity pertaining to |
|
ea5b13d11a13
Added macmain.c (separate Mac specific main prog); bump version to 1.1
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
13 distribution of the software without specific, written prior permission. |
|
ea5b13d11a13
Added macmain.c (separate Mac specific main prog); bump version to 1.1
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
14 |
|
ea5b13d11a13
Added macmain.c (separate Mac specific main prog); bump version to 1.1
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
15 STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO |
|
ea5b13d11a13
Added macmain.c (separate Mac specific main prog); bump version to 1.1
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
16 THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND |
|
ea5b13d11a13
Added macmain.c (separate Mac specific main prog); bump version to 1.1
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
17 FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE |
|
ea5b13d11a13
Added macmain.c (separate Mac specific main prog); bump version to 1.1
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
18 FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
|
ea5b13d11a13
Added macmain.c (separate Mac specific main prog); bump version to 1.1
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
19 WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
|
ea5b13d11a13
Added macmain.c (separate Mac specific main prog); bump version to 1.1
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
20 ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT |
|
ea5b13d11a13
Added macmain.c (separate Mac specific main prog); bump version to 1.1
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
21 OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
|
ea5b13d11a13
Added macmain.c (separate Mac specific main prog); bump version to 1.1
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
22 |
|
ea5b13d11a13
Added macmain.c (separate Mac specific main prog); bump version to 1.1
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
23 ******************************************************************/ |
|
ea5b13d11a13
Added macmain.c (separate Mac specific main prog); bump version to 1.1
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
24 |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
25 /* Python interpreter main program */ |
|
1811
ea5b13d11a13
Added macmain.c (separate Mac specific main prog); bump version to 1.1
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
26 |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
27 #include "Python.h" |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
28 #include "pythonresources.h" |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
29 #include "import.h" |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
30 #include "marshal.h" |
| 4197 | 31 #include "macglue.h" |
|
2144
0e60cd207adb
must include rename2.h
Guido van Rossum <guido@python.org>
parents:
2091
diff
changeset
|
32 |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
33 #include <Memory.h> |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
34 #include <Resources.h> |
|
1811
ea5b13d11a13
Added macmain.c (separate Mac specific main prog); bump version to 1.1
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
35 #include <stdio.h> |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
36 #include <Events.h> |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
37 #include <Windows.h> |
|
3442
066a8ae4d406
Added missing include of Fonts.h
Jack Jansen <jack.jansen@cwi.nl>
parents:
3433
diff
changeset
|
38 #include <Fonts.h> |
|
6293
6c0a2658a156
Added old-exception and no-site-python options and balloon help
Jack Jansen <jack.jansen@cwi.nl>
parents:
6277
diff
changeset
|
39 #include <Balloons.h> |
|
11529
f83b74273da2
First bits and pieces of appearance support: an init routine, a global flag PyMac_AppearanceCompliant (exported thru MacOS). If USE_APPEARANCE
Jack Jansen <jack.jansen@cwi.nl>
parents:
11350
diff
changeset
|
40 #ifdef USE_APPEARANCE |
|
f83b74273da2
First bits and pieces of appearance support: an init routine, a global flag PyMac_AppearanceCompliant (exported thru MacOS). If USE_APPEARANCE
Jack Jansen <jack.jansen@cwi.nl>
parents:
11350
diff
changeset
|
41 #include <Gestalt.h> |
|
f83b74273da2
First bits and pieces of appearance support: an init routine, a global flag PyMac_AppearanceCompliant (exported thru MacOS). If USE_APPEARANCE
Jack Jansen <jack.jansen@cwi.nl>
parents:
11350
diff
changeset
|
42 #include <Appearance.h> |
|
f83b74273da2
First bits and pieces of appearance support: an init routine, a global flag PyMac_AppearanceCompliant (exported thru MacOS). If USE_APPEARANCE
Jack Jansen <jack.jansen@cwi.nl>
parents:
11350
diff
changeset
|
43 #endif /* USE_APPEARANCE */ |
|
2277
df7e26b5c918
Added stuff so CodeWarrior isn't so verbose about its stdio windows
Jack Jansen <jack.jansen@cwi.nl>
parents:
2226
diff
changeset
|
44 #ifdef __MWERKS__ |
|
df7e26b5c918
Added stuff so CodeWarrior isn't so verbose about its stdio windows
Jack Jansen <jack.jansen@cwi.nl>
parents:
2226
diff
changeset
|
45 #include <SIOUX.h> |
|
3247
20d74fa3b50b
For MW Python, update titlebar of window when python exits.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3236
diff
changeset
|
46 #define USE_SIOUX |
|
13547
db963a615bc9
ANSIfication step 2: make sure all needed prototypes are available, and all needed
Jack Jansen <jack.jansen@cwi.nl>
parents:
13542
diff
changeset
|
47 extern int ccommand(char ***); |
|
4911
21878c849626
Added profiler initialization/finalization code (if __profile__ is defined)
Jack Jansen <jack.jansen@cwi.nl>
parents:
4249
diff
changeset
|
48 #if __profile__ == 1 |
|
21878c849626
Added profiler initialization/finalization code (if __profile__ is defined)
Jack Jansen <jack.jansen@cwi.nl>
parents:
4249
diff
changeset
|
49 #include <profiler.h> |
|
21878c849626
Added profiler initialization/finalization code (if __profile__ is defined)
Jack Jansen <jack.jansen@cwi.nl>
parents:
4249
diff
changeset
|
50 #endif |
|
2277
df7e26b5c918
Added stuff so CodeWarrior isn't so verbose about its stdio windows
Jack Jansen <jack.jansen@cwi.nl>
parents:
2226
diff
changeset
|
51 #endif |
|
12834
c2a0f2a81fa8
Removed (within an #ifdef) Carbon-incompatabilities:
Jack Jansen <jack.jansen@cwi.nl>
parents:
12593
diff
changeset
|
52 #include <unistd.h> |
| 13702 | 53 #ifdef USE_MAC_SHARED_LIBRARY |
| 54 extern PyMac_AddLibResources(void); | |
| 55 #endif | |
|
16557
9ce9e0342cc1
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.
Jack Jansen <jack.jansen@cwi.nl>
parents:
15921
diff
changeset
|
56 //#ifdef USE_GUSI |
|
9ce9e0342cc1
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.
Jack Jansen <jack.jansen@cwi.nl>
parents:
15921
diff
changeset
|
57 //#include "GUSISIOUX.h" |
|
9ce9e0342cc1
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.
Jack Jansen <jack.jansen@cwi.nl>
parents:
15921
diff
changeset
|
58 //#endif |
|
2277
df7e26b5c918
Added stuff so CodeWarrior isn't so verbose about its stdio windows
Jack Jansen <jack.jansen@cwi.nl>
parents:
2226
diff
changeset
|
59 |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
60 #define STARTUP "PythonStartup" |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
61 |
|
14464
17cec96f75bc
Use same short banner message as unix/win Python.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14198
diff
changeset
|
62 #define COPYRIGHT \ |
|
17cec96f75bc
Use same short banner message as unix/win Python.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14198
diff
changeset
|
63 "Type \"copyright\", \"credits\" or \"license\" for more information." |
|
17cec96f75bc
Use same short banner message as unix/win Python.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14198
diff
changeset
|
64 |
|
17cec96f75bc
Use same short banner message as unix/win Python.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14198
diff
changeset
|
65 |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
66 extern int Py_DebugFlag; /* For parser.c, declared in pythonrun.c */ |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
67 extern int Py_VerboseFlag; /* For import.c, declared in pythonrun.c */ |
|
4228
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4215
diff
changeset
|
68 short PyMac_AppRefNum; /* RefNum of application resource fork */ |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
69 |
|
3930
52c19ee83a6b
Guido's 1.4b2 fixes: Py_GetProgramName, Py_GetPrefix and Py_GetExecPrefix.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3750
diff
changeset
|
70 /* For Py_GetArgcArgv(); set by main() */ |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
71 static char **orig_argv; |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
72 static int orig_argc; |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
73 |
|
16557
9ce9e0342cc1
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.
Jack Jansen <jack.jansen@cwi.nl>
parents:
15921
diff
changeset
|
74 /* A flag which remembers whether the user has acknowledged all the console |
|
9ce9e0342cc1
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.
Jack Jansen <jack.jansen@cwi.nl>
parents:
15921
diff
changeset
|
75 ** output (by typing something) |
|
9ce9e0342cc1
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.
Jack Jansen <jack.jansen@cwi.nl>
parents:
15921
diff
changeset
|
76 */ |
|
9ce9e0342cc1
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.
Jack Jansen <jack.jansen@cwi.nl>
parents:
15921
diff
changeset
|
77 #define STATE_UNKNOWN 0 |
|
9ce9e0342cc1
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.
Jack Jansen <jack.jansen@cwi.nl>
parents:
15921
diff
changeset
|
78 #define STATE_LASTREAD 1 |
|
9ce9e0342cc1
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.
Jack Jansen <jack.jansen@cwi.nl>
parents:
15921
diff
changeset
|
79 #define STATE_LASTWRITE 2 |
|
9ce9e0342cc1
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.
Jack Jansen <jack.jansen@cwi.nl>
parents:
15921
diff
changeset
|
80 int console_output_state = STATE_UNKNOWN; |
|
9ce9e0342cc1
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.
Jack Jansen <jack.jansen@cwi.nl>
parents:
15921
diff
changeset
|
81 |
|
15192
1c63e224f616
Made options global (as PyMac_options) so macosmodule can access it.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14773
diff
changeset
|
82 PyMac_PrefRecord PyMac_options; |
|
3236
463b26fa4d7b
Added options for keeping window open on normal/error termination
Jack Jansen <jack.jansen@cwi.nl>
parents:
3228
diff
changeset
|
83 |
|
13542
ddd6138c9e6f
ANSIfication step 1: get rid of Py_PROTO and Py_FPROTO.
Jack Jansen <jack.jansen@cwi.nl>
parents:
12855
diff
changeset
|
84 static void Py_Main(int, char **); /* Forward */ |
|
ddd6138c9e6f
ANSIfication step 1: get rid of Py_PROTO and Py_FPROTO.
Jack Jansen <jack.jansen@cwi.nl>
parents:
12855
diff
changeset
|
85 void PyMac_Exit(int); /* Forward */ |
|
4017
5dc8c042905b
Guido: added some void's to declarations
Jack Jansen <jack.jansen@cwi.nl>
parents:
3930
diff
changeset
|
86 |
|
11529
f83b74273da2
First bits and pieces of appearance support: an init routine, a global flag PyMac_AppearanceCompliant (exported thru MacOS). If USE_APPEARANCE
Jack Jansen <jack.jansen@cwi.nl>
parents:
11350
diff
changeset
|
87 static void init_appearance() |
|
f83b74273da2
First bits and pieces of appearance support: an init routine, a global flag PyMac_AppearanceCompliant (exported thru MacOS). If USE_APPEARANCE
Jack Jansen <jack.jansen@cwi.nl>
parents:
11350
diff
changeset
|
88 { |
|
f83b74273da2
First bits and pieces of appearance support: an init routine, a global flag PyMac_AppearanceCompliant (exported thru MacOS). If USE_APPEARANCE
Jack Jansen <jack.jansen@cwi.nl>
parents:
11350
diff
changeset
|
89 #ifdef USE_APPEARANCE |
|
f83b74273da2
First bits and pieces of appearance support: an init routine, a global flag PyMac_AppearanceCompliant (exported thru MacOS). If USE_APPEARANCE
Jack Jansen <jack.jansen@cwi.nl>
parents:
11350
diff
changeset
|
90 OSErr err; |
|
f83b74273da2
First bits and pieces of appearance support: an init routine, a global flag PyMac_AppearanceCompliant (exported thru MacOS). If USE_APPEARANCE
Jack Jansen <jack.jansen@cwi.nl>
parents:
11350
diff
changeset
|
91 SInt32 response; |
|
f83b74273da2
First bits and pieces of appearance support: an init routine, a global flag PyMac_AppearanceCompliant (exported thru MacOS). If USE_APPEARANCE
Jack Jansen <jack.jansen@cwi.nl>
parents:
11350
diff
changeset
|
92 |
|
f83b74273da2
First bits and pieces of appearance support: an init routine, a global flag PyMac_AppearanceCompliant (exported thru MacOS). If USE_APPEARANCE
Jack Jansen <jack.jansen@cwi.nl>
parents:
11350
diff
changeset
|
93 err = Gestalt(gestaltAppearanceAttr,&response); |
|
f83b74273da2
First bits and pieces of appearance support: an init routine, a global flag PyMac_AppearanceCompliant (exported thru MacOS). If USE_APPEARANCE
Jack Jansen <jack.jansen@cwi.nl>
parents:
11350
diff
changeset
|
94 if ( err ) goto no_appearance; |
|
f83b74273da2
First bits and pieces of appearance support: an init routine, a global flag PyMac_AppearanceCompliant (exported thru MacOS). If USE_APPEARANCE
Jack Jansen <jack.jansen@cwi.nl>
parents:
11350
diff
changeset
|
95 if ( !(response&(1<<gestaltAppearanceExists)) ) goto no_appearance; |
|
f83b74273da2
First bits and pieces of appearance support: an init routine, a global flag PyMac_AppearanceCompliant (exported thru MacOS). If USE_APPEARANCE
Jack Jansen <jack.jansen@cwi.nl>
parents:
11350
diff
changeset
|
96 /* XXXX Should we check the version? Compat-mode? */ |
|
f83b74273da2
First bits and pieces of appearance support: an init routine, a global flag PyMac_AppearanceCompliant (exported thru MacOS). If USE_APPEARANCE
Jack Jansen <jack.jansen@cwi.nl>
parents:
11350
diff
changeset
|
97 PyMac_AppearanceCompliant = 1; |
|
f83b74273da2
First bits and pieces of appearance support: an init routine, a global flag PyMac_AppearanceCompliant (exported thru MacOS). If USE_APPEARANCE
Jack Jansen <jack.jansen@cwi.nl>
parents:
11350
diff
changeset
|
98 no_appearance: |
|
f83b74273da2
First bits and pieces of appearance support: an init routine, a global flag PyMac_AppearanceCompliant (exported thru MacOS). If USE_APPEARANCE
Jack Jansen <jack.jansen@cwi.nl>
parents:
11350
diff
changeset
|
99 return; |
|
f83b74273da2
First bits and pieces of appearance support: an init routine, a global flag PyMac_AppearanceCompliant (exported thru MacOS). If USE_APPEARANCE
Jack Jansen <jack.jansen@cwi.nl>
parents:
11350
diff
changeset
|
100 #endif /* USE_APPEARANCE */ |
|
f83b74273da2
First bits and pieces of appearance support: an init routine, a global flag PyMac_AppearanceCompliant (exported thru MacOS). If USE_APPEARANCE
Jack Jansen <jack.jansen@cwi.nl>
parents:
11350
diff
changeset
|
101 } |
| 3422 | 102 /* Initialize the Mac toolbox world */ |
| 103 | |
| 104 static void | |
| 105 init_mac_world() | |
| 106 { | |
|
13608
a901c2c0166b
Test for TARGET_API_MAC_CARBON with #if in stead of #ifdef.
Jack Jansen <jack.jansen@cwi.nl>
parents:
13547
diff
changeset
|
107 #if !TARGET_API_MAC_CARBON |
|
12834
c2a0f2a81fa8
Removed (within an #ifdef) Carbon-incompatabilities:
Jack Jansen <jack.jansen@cwi.nl>
parents:
12593
diff
changeset
|
108 /* These aren't needed for carbon */ |
| 3422 | 109 MaxApplZone(); |
| 110 InitGraf(&qd.thePort); | |
| 111 InitFonts(); | |
| 112 InitWindows(); | |
| 113 TEInit(); | |
| 114 InitDialogs((long)0); | |
| 115 InitMenus(); | |
|
12834
c2a0f2a81fa8
Removed (within an #ifdef) Carbon-incompatabilities:
Jack Jansen <jack.jansen@cwi.nl>
parents:
12593
diff
changeset
|
116 #endif |
| 3422 | 117 InitCursor(); |
|
11529
f83b74273da2
First bits and pieces of appearance support: an init routine, a global flag PyMac_AppearanceCompliant (exported thru MacOS). If USE_APPEARANCE
Jack Jansen <jack.jansen@cwi.nl>
parents:
11350
diff
changeset
|
118 init_appearance(); |
| 3422 | 119 } |
| 120 | |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
121 /* |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
122 ** PyMac_InteractiveOptions - Allow user to set options if option key is pressed |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
123 */ |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
124 static void |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
125 PyMac_InteractiveOptions(PyMac_PrefRecord *p, int *argcp, char ***argvp) |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
126 { |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
127 KeyMap rmap; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
128 unsigned char *map; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
129 short item, type; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
130 ControlHandle handle; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
131 DialogPtr dialog; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
132 Rect rect; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
133 int old_argc = *argcp; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
134 int i; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
135 |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
136 /* |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
137 ** If the preferences disallows interactive options we return, |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
138 ** similarly of <option> isn't pressed. |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
139 */ |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
140 if (p->nointopt) return; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
141 |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
142 GetKeys(rmap); |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
143 map = (unsigned char *)rmap; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
144 if ( ( map[0x3a>>3] & (1<<(0x3a&7)) ) == 0 ) /* option key is 3a */ |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
145 return; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
146 |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
147 dialog = GetNewDialog(OPT_DIALOG, NULL, (WindowPtr)-1); |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
148 if ( dialog == NULL ) { |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
149 printf("Option dialog not found - cannot set options\n"); |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
150 return; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
151 } |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
152 SetDialogDefaultItem(dialog, OPT_OK); |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
153 SetDialogCancelItem(dialog, OPT_CANCEL); |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
154 |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
155 /* Set default values */ |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
156 #define SET_OPT_ITEM(num, var) \ |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
157 GetDialogItem(dialog, (num), &type, (Handle *)&handle, &rect); \ |
|
5270
de9d0c5249b0
Changed the few old routine names still used to the new ones
Jack Jansen <jack.jansen@cwi.nl>
parents:
5153
diff
changeset
|
158 SetControlValue(handle, (short)p->var); |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
159 |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
160 SET_OPT_ITEM(OPT_INSPECT, inspect); |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
161 SET_OPT_ITEM(OPT_VERBOSE, verbose); |
|
6293
6c0a2658a156
Added old-exception and no-site-python options and balloon help
Jack Jansen <jack.jansen@cwi.nl>
parents:
6277
diff
changeset
|
162 SET_OPT_ITEM(OPT_OPTIMIZE, optimize); |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
163 SET_OPT_ITEM(OPT_UNBUFFERED, unbuffered); |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
164 SET_OPT_ITEM(OPT_DEBUGGING, debugging); |
|
14773
c5ec0b11f8c9
Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14464
diff
changeset
|
165 GetDialogItem(dialog, OPT_KEEPALWAYS, &type, (Handle *)&handle, &rect); |
|
c5ec0b11f8c9
Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14464
diff
changeset
|
166 SetControlValue(handle, (short)(p->keep_console == POPT_KEEPCONSOLE_ALWAYS)); |
|
c5ec0b11f8c9
Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14464
diff
changeset
|
167 GetDialogItem(dialog, OPT_KEEPOUTPUT, &type, (Handle *)&handle, &rect); |
|
c5ec0b11f8c9
Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14464
diff
changeset
|
168 SetControlValue(handle, (short)(p->keep_console == POPT_KEEPCONSOLE_OUTPUT)); |
|
c5ec0b11f8c9
Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14464
diff
changeset
|
169 GetDialogItem(dialog, OPT_KEEPERROR, &type, (Handle *)&handle, &rect); |
|
c5ec0b11f8c9
Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14464
diff
changeset
|
170 SetControlValue(handle, (short)(p->keep_console == POPT_KEEPCONSOLE_ERROR)); |
|
c5ec0b11f8c9
Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14464
diff
changeset
|
171 GetDialogItem(dialog, OPT_KEEPNEVER, &type, (Handle *)&handle, &rect); |
|
c5ec0b11f8c9
Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14464
diff
changeset
|
172 SetControlValue(handle, (short)(p->keep_console == POPT_KEEPCONSOLE_NEVER)); |
|
c5ec0b11f8c9
Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14464
diff
changeset
|
173 /* SET_OPT_ITEM(OPT_KEEPCONSOLE, keep_console); */ |
|
12593
eaee924efb19
Removed string-exception preference, added tabcheck and NavService preference, upped version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
12281
diff
changeset
|
174 SET_OPT_ITEM(OPT_TABWARN, tabwarn); |
|
6293
6c0a2658a156
Added old-exception and no-site-python options and balloon help
Jack Jansen <jack.jansen@cwi.nl>
parents:
6277
diff
changeset
|
175 SET_OPT_ITEM(OPT_NOSITE, nosite); |
|
12593
eaee924efb19
Removed string-exception preference, added tabcheck and NavService preference, upped version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
12281
diff
changeset
|
176 SET_OPT_ITEM(OPT_NONAVSERV, nonavservice); |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
177 /* The rest are not settable interactively */ |
| 3422 | 178 |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
179 #undef SET_OPT_ITEM |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
180 |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
181 while (1) { |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
182 handle = NULL; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
183 ModalDialog(NULL, &item); |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
184 if ( item == OPT_OK ) |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
185 break; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
186 if ( item == OPT_CANCEL ) { |
|
5270
de9d0c5249b0
Changed the few old routine names still used to the new ones
Jack Jansen <jack.jansen@cwi.nl>
parents:
5153
diff
changeset
|
187 DisposeDialog(dialog); |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
188 exit(0); |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
189 } |
|
13608
a901c2c0166b
Test for TARGET_API_MAC_CARBON with #if in stead of #ifdef.
Jack Jansen <jack.jansen@cwi.nl>
parents:
13547
diff
changeset
|
190 #if !TARGET_API_MAC_CARBON |
|
6293
6c0a2658a156
Added old-exception and no-site-python options and balloon help
Jack Jansen <jack.jansen@cwi.nl>
parents:
6277
diff
changeset
|
191 if ( item == OPT_HELP ) { |
|
6c0a2658a156
Added old-exception and no-site-python options and balloon help
Jack Jansen <jack.jansen@cwi.nl>
parents:
6277
diff
changeset
|
192 HMSetBalloons(!HMGetBalloons()); |
|
6c0a2658a156
Added old-exception and no-site-python options and balloon help
Jack Jansen <jack.jansen@cwi.nl>
parents:
6277
diff
changeset
|
193 } |
|
12834
c2a0f2a81fa8
Removed (within an #ifdef) Carbon-incompatabilities:
Jack Jansen <jack.jansen@cwi.nl>
parents:
12593
diff
changeset
|
194 #endif |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
195 if ( item == OPT_CMDLINE ) { |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
196 int new_argc, newer_argc; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
197 char **new_argv, **newer_argv; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
198 |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
199 new_argc = ccommand(&new_argv); |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
200 newer_argc = (new_argc-1) + old_argc; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
201 newer_argv = malloc((newer_argc+1)*sizeof(char *)); |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
202 if( !newer_argv ) |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
203 Py_FatalError("Cannot malloc argv\n"); |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
204 for(i=0; i<old_argc; i++) |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
205 newer_argv[i] = (*argvp)[i]; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
206 for(i=old_argc; i<=newer_argc; i++) /* Copy the NULL too */ |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
207 newer_argv[i] = new_argv[i-old_argc+1]; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
208 *argvp = newer_argv; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
209 *argcp = newer_argc; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
210 |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
211 /* XXXX Is it not safe to use free() here, apparently */ |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
212 } |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
213 #define OPT_ITEM(num, var) \ |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
214 if ( item == (num) ) { \ |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
215 p->var = !p->var; \ |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
216 GetDialogItem(dialog, (num), &type, (Handle *)&handle, &rect); \ |
|
5270
de9d0c5249b0
Changed the few old routine names still used to the new ones
Jack Jansen <jack.jansen@cwi.nl>
parents:
5153
diff
changeset
|
217 SetControlValue(handle, (short)p->var); \ |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
218 } |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
219 |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
220 OPT_ITEM(OPT_INSPECT, inspect); |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
221 OPT_ITEM(OPT_VERBOSE, verbose); |
|
6293
6c0a2658a156
Added old-exception and no-site-python options and balloon help
Jack Jansen <jack.jansen@cwi.nl>
parents:
6277
diff
changeset
|
222 OPT_ITEM(OPT_OPTIMIZE, optimize); |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
223 OPT_ITEM(OPT_UNBUFFERED, unbuffered); |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
224 OPT_ITEM(OPT_DEBUGGING, debugging); |
|
14773
c5ec0b11f8c9
Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14464
diff
changeset
|
225 if ( item == OPT_KEEPALWAYS ) p->keep_console = POPT_KEEPCONSOLE_ALWAYS; |
|
c5ec0b11f8c9
Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14464
diff
changeset
|
226 if ( item == OPT_KEEPOUTPUT ) p->keep_console = POPT_KEEPCONSOLE_OUTPUT; |
|
c5ec0b11f8c9
Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14464
diff
changeset
|
227 if ( item == OPT_KEEPERROR ) p->keep_console = POPT_KEEPCONSOLE_ERROR; |
|
c5ec0b11f8c9
Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14464
diff
changeset
|
228 if ( item == OPT_KEEPNEVER ) p->keep_console = POPT_KEEPCONSOLE_NEVER; |
|
c5ec0b11f8c9
Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14464
diff
changeset
|
229 GetDialogItem(dialog, OPT_KEEPALWAYS, &type, (Handle *)&handle, &rect); |
|
c5ec0b11f8c9
Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14464
diff
changeset
|
230 SetControlValue(handle, (short)(p->keep_console == POPT_KEEPCONSOLE_ALWAYS)); |
|
c5ec0b11f8c9
Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14464
diff
changeset
|
231 GetDialogItem(dialog, OPT_KEEPOUTPUT, &type, (Handle *)&handle, &rect); |
|
c5ec0b11f8c9
Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14464
diff
changeset
|
232 SetControlValue(handle, (short)(p->keep_console == POPT_KEEPCONSOLE_OUTPUT)); |
|
c5ec0b11f8c9
Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14464
diff
changeset
|
233 GetDialogItem(dialog, OPT_KEEPERROR, &type, (Handle *)&handle, &rect); |
|
c5ec0b11f8c9
Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14464
diff
changeset
|
234 SetControlValue(handle, (short)(p->keep_console == POPT_KEEPCONSOLE_ERROR)); |
|
c5ec0b11f8c9
Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14464
diff
changeset
|
235 GetDialogItem(dialog, OPT_KEEPNEVER, &type, (Handle *)&handle, &rect); |
|
c5ec0b11f8c9
Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14464
diff
changeset
|
236 SetControlValue(handle, (short)(p->keep_console == POPT_KEEPCONSOLE_NEVER)); |
|
12593
eaee924efb19
Removed string-exception preference, added tabcheck and NavService preference, upped version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
12281
diff
changeset
|
237 OPT_ITEM(OPT_TABWARN, tabwarn); |
|
6293
6c0a2658a156
Added old-exception and no-site-python options and balloon help
Jack Jansen <jack.jansen@cwi.nl>
parents:
6277
diff
changeset
|
238 OPT_ITEM(OPT_NOSITE, nosite); |
|
12593
eaee924efb19
Removed string-exception preference, added tabcheck and NavService preference, upped version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
12281
diff
changeset
|
239 OPT_ITEM(OPT_NONAVSERV, nonavservice); |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
240 |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
241 #undef OPT_ITEM |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
242 } |
|
5270
de9d0c5249b0
Changed the few old routine names still used to the new ones
Jack Jansen <jack.jansen@cwi.nl>
parents:
5153
diff
changeset
|
243 DisposeDialog(dialog); |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
244 } |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
245 |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
246 /* |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
247 ** Initialization code, shared by interpreter and applets |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
248 */ |
| 3422 | 249 static void |
|
4962
765d962f4449
Added PyMac_Initialize() routine, to be used by embedding programs (in
Jack Jansen <jack.jansen@cwi.nl>
parents:
4911
diff
changeset
|
250 init_common(int *argcp, char ***argvp, int embedded) |
| 3422 | 251 { |
|
4228
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4215
diff
changeset
|
252 /* Remember resource fork refnum, for later */ |
|
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4215
diff
changeset
|
253 PyMac_AppRefNum = CurResFile(); |
|
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4215
diff
changeset
|
254 |
| 3422 | 255 /* Initialize toolboxes */ |
| 256 init_mac_world(); | |
| 257 | |
| 258 #ifdef USE_MAC_SHARED_LIBRARY | |
| 259 /* Add the shared library to the stack of resource files */ | |
|
8792
0f5e0b405bc2
Initialize the program name before adding shared library resources (Just).
Jack Jansen <jack.jansen@cwi.nl>
parents:
6444
diff
changeset
|
260 (void)PyMac_init_process_location(); |
| 3422 | 261 PyMac_AddLibResources(); |
| 262 #endif | |
| 263 | |
|
12281
51c0c3b6d919
Started on GUSI2 and threading support.
Jack Jansen <jack.jansen@cwi.nl>
parents:
11529
diff
changeset
|
264 #if defined(USE_GUSI1) |
| 3422 | 265 /* Setup GUSI */ |
| 266 GUSIDefaultSetup(); | |
| 4197 | 267 PyMac_SetGUSISpin(); |
|
4228
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4215
diff
changeset
|
268 PyMac_SetGUSIOptions(); |
|
12281
51c0c3b6d919
Started on GUSI2 and threading support.
Jack Jansen <jack.jansen@cwi.nl>
parents:
11529
diff
changeset
|
269 #endif |
|
51c0c3b6d919
Started on GUSI2 and threading support.
Jack Jansen <jack.jansen@cwi.nl>
parents:
11529
diff
changeset
|
270 #if defined(USE_GUSI) |
|
5617
70855574516b
- Added Py_GetProgramFullPath
Jack Jansen <jack.jansen@cwi.nl>
parents:
5431
diff
changeset
|
271 atexit(PyMac_StopGUSISpin); |
|
12281
51c0c3b6d919
Started on GUSI2 and threading support.
Jack Jansen <jack.jansen@cwi.nl>
parents:
11529
diff
changeset
|
272 #endif |
| 3422 | 273 |
| 274 #ifdef USE_SIOUX | |
| 275 /* Set various SIOUX flags. Some are changed later based on options */ | |
|
5732
f027dd0a85e4
- Restore SIOUX menubar just before exiting, if the console window is kept
Jack Jansen <jack.jansen@cwi.nl>
parents:
5711
diff
changeset
|
276 /* SIOUXSettings.standalone = 0; /* XXXX Attempting to keep sioux from eating events */ |
| 3422 | 277 SIOUXSettings.asktosaveonclose = 0; |
| 278 SIOUXSettings.showstatusline = 0; | |
| 279 SIOUXSettings.tabspaces = 4; | |
| 280 #endif | |
| 281 | |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
282 /* Get options from preference file (or from applet resource fork) */ |
|
15192
1c63e224f616
Made options global (as PyMac_options) so macosmodule can access it.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14773
diff
changeset
|
283 PyMac_options.keep_console = POPT_KEEPCONSOLE_OUTPUT; /* default-default */ |
|
1c63e224f616
Made options global (as PyMac_options) so macosmodule can access it.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14773
diff
changeset
|
284 PyMac_PreferenceOptions(&PyMac_options); |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
285 |
|
4962
765d962f4449
Added PyMac_Initialize() routine, to be used by embedding programs (in
Jack Jansen <jack.jansen@cwi.nl>
parents:
4911
diff
changeset
|
286 if ( embedded ) { |
|
765d962f4449
Added PyMac_Initialize() routine, to be used by embedding programs (in
Jack Jansen <jack.jansen@cwi.nl>
parents:
4911
diff
changeset
|
287 static char *emb_argv[] = {"embedded-python", 0}; |
|
765d962f4449
Added PyMac_Initialize() routine, to be used by embedding programs (in
Jack Jansen <jack.jansen@cwi.nl>
parents:
4911
diff
changeset
|
288 |
|
765d962f4449
Added PyMac_Initialize() routine, to be used by embedding programs (in
Jack Jansen <jack.jansen@cwi.nl>
parents:
4911
diff
changeset
|
289 *argcp = 1; |
|
765d962f4449
Added PyMac_Initialize() routine, to be used by embedding programs (in
Jack Jansen <jack.jansen@cwi.nl>
parents:
4911
diff
changeset
|
290 *argvp = emb_argv; |
|
765d962f4449
Added PyMac_Initialize() routine, to be used by embedding programs (in
Jack Jansen <jack.jansen@cwi.nl>
parents:
4911
diff
changeset
|
291 } else { |
|
765d962f4449
Added PyMac_Initialize() routine, to be used by embedding programs (in
Jack Jansen <jack.jansen@cwi.nl>
parents:
4911
diff
changeset
|
292 /* Create argc/argv. Do it before we go into the options event loop. */ |
|
15192
1c63e224f616
Made options global (as PyMac_options) so macosmodule can access it.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14773
diff
changeset
|
293 *argcp = PyMac_GetArgv(argvp, PyMac_options.noargs); |
|
15921
489692e79151
Trigger keep-console-open on GUSISIOUX_STATE_UNKNOWN. Better than the previous complicated expression.
Jack Jansen <jack.jansen@cwi.nl>
parents:
15826
diff
changeset
|
294 #ifndef NO_ARGV0_CHDIR |
|
13638
58398c0f948b
MacPython on MacOSX DP4 gets started in the wrong directory. The workaround (ifdeffed by USE_ARGV0_CHDIR) is to do a chdir() to the folder part of our executable name.
Jack Jansen <jack.jansen@cwi.nl>
parents:
13608
diff
changeset
|
295 if (*argcp >= 1 && (*argvp)[0] && (*argvp)[0][0]) { |
|
58398c0f948b
MacPython on MacOSX DP4 gets started in the wrong directory. The workaround (ifdeffed by USE_ARGV0_CHDIR) is to do a chdir() to the folder part of our executable name.
Jack Jansen <jack.jansen@cwi.nl>
parents:
13608
diff
changeset
|
296 /* Workaround for MacOS X, which currently (DP4) doesn't set |
|
58398c0f948b
MacPython on MacOSX DP4 gets started in the wrong directory. The workaround (ifdeffed by USE_ARGV0_CHDIR) is to do a chdir() to the folder part of our executable name.
Jack Jansen <jack.jansen@cwi.nl>
parents:
13608
diff
changeset
|
297 ** the working folder correctly |
|
58398c0f948b
MacPython on MacOSX DP4 gets started in the wrong directory. The workaround (ifdeffed by USE_ARGV0_CHDIR) is to do a chdir() to the folder part of our executable name.
Jack Jansen <jack.jansen@cwi.nl>
parents:
13608
diff
changeset
|
298 */ |
|
58398c0f948b
MacPython on MacOSX DP4 gets started in the wrong directory. The workaround (ifdeffed by USE_ARGV0_CHDIR) is to do a chdir() to the folder part of our executable name.
Jack Jansen <jack.jansen@cwi.nl>
parents:
13608
diff
changeset
|
299 char app_wd[256], *p; |
|
58398c0f948b
MacPython on MacOSX DP4 gets started in the wrong directory. The workaround (ifdeffed by USE_ARGV0_CHDIR) is to do a chdir() to the folder part of our executable name.
Jack Jansen <jack.jansen@cwi.nl>
parents:
13608
diff
changeset
|
300 |
|
58398c0f948b
MacPython on MacOSX DP4 gets started in the wrong directory. The workaround (ifdeffed by USE_ARGV0_CHDIR) is to do a chdir() to the folder part of our executable name.
Jack Jansen <jack.jansen@cwi.nl>
parents:
13608
diff
changeset
|
301 strncpy(app_wd, (*argvp)[0], 256); |
|
58398c0f948b
MacPython on MacOSX DP4 gets started in the wrong directory. The workaround (ifdeffed by USE_ARGV0_CHDIR) is to do a chdir() to the folder part of our executable name.
Jack Jansen <jack.jansen@cwi.nl>
parents:
13608
diff
changeset
|
302 p = strrchr(app_wd, ':'); |
|
58398c0f948b
MacPython on MacOSX DP4 gets started in the wrong directory. The workaround (ifdeffed by USE_ARGV0_CHDIR) is to do a chdir() to the folder part of our executable name.
Jack Jansen <jack.jansen@cwi.nl>
parents:
13608
diff
changeset
|
303 if ( p ) *p = 0; |
|
58398c0f948b
MacPython on MacOSX DP4 gets started in the wrong directory. The workaround (ifdeffed by USE_ARGV0_CHDIR) is to do a chdir() to the folder part of our executable name.
Jack Jansen <jack.jansen@cwi.nl>
parents:
13608
diff
changeset
|
304 chdir(app_wd); |
|
58398c0f948b
MacPython on MacOSX DP4 gets started in the wrong directory. The workaround (ifdeffed by USE_ARGV0_CHDIR) is to do a chdir() to the folder part of our executable name.
Jack Jansen <jack.jansen@cwi.nl>
parents:
13608
diff
changeset
|
305 } |
|
58398c0f948b
MacPython on MacOSX DP4 gets started in the wrong directory. The workaround (ifdeffed by USE_ARGV0_CHDIR) is to do a chdir() to the folder part of our executable name.
Jack Jansen <jack.jansen@cwi.nl>
parents:
13608
diff
changeset
|
306 #endif |
|
4962
765d962f4449
Added PyMac_Initialize() routine, to be used by embedding programs (in
Jack Jansen <jack.jansen@cwi.nl>
parents:
4911
diff
changeset
|
307 /* Do interactive option setting, if allowed and <option> depressed */ |
|
15192
1c63e224f616
Made options global (as PyMac_options) so macosmodule can access it.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14773
diff
changeset
|
308 PyMac_InteractiveOptions(&PyMac_options, argcp, argvp); |
|
4962
765d962f4449
Added PyMac_Initialize() routine, to be used by embedding programs (in
Jack Jansen <jack.jansen@cwi.nl>
parents:
4911
diff
changeset
|
309 } |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
310 |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
311 /* Copy selected options to where the machine-independent stuff wants it */ |
|
15192
1c63e224f616
Made options global (as PyMac_options) so macosmodule can access it.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14773
diff
changeset
|
312 Py_VerboseFlag = PyMac_options.verbose; |
|
1c63e224f616
Made options global (as PyMac_options) so macosmodule can access it.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14773
diff
changeset
|
313 /* Py_SuppressPrintingFlag = PyMac_options.suppress_print; */ |
|
1c63e224f616
Made options global (as PyMac_options) so macosmodule can access it.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14773
diff
changeset
|
314 Py_OptimizeFlag = PyMac_options.optimize; |
|
1c63e224f616
Made options global (as PyMac_options) so macosmodule can access it.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14773
diff
changeset
|
315 Py_DebugFlag = PyMac_options.debugging; |
|
1c63e224f616
Made options global (as PyMac_options) so macosmodule can access it.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14773
diff
changeset
|
316 Py_NoSiteFlag = PyMac_options.nosite; |
|
1c63e224f616
Made options global (as PyMac_options) so macosmodule can access it.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14773
diff
changeset
|
317 Py_TabcheckFlag = PyMac_options.tabwarn; |
|
1c63e224f616
Made options global (as PyMac_options) so macosmodule can access it.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14773
diff
changeset
|
318 if ( PyMac_options.noargs ) { |
|
5711
fb170ce82951
Removed old scheduler parameterizing calls and replaced with something
Jack Jansen <jack.jansen@cwi.nl>
parents:
5617
diff
changeset
|
319 /* don't process events at all without the scripts permission */ |
|
fb170ce82951
Removed old scheduler parameterizing calls and replaced with something
Jack Jansen <jack.jansen@cwi.nl>
parents:
5617
diff
changeset
|
320 PyMacSchedParams scp; |
|
fb170ce82951
Removed old scheduler parameterizing calls and replaced with something
Jack Jansen <jack.jansen@cwi.nl>
parents:
5617
diff
changeset
|
321 |
|
fb170ce82951
Removed old scheduler parameterizing calls and replaced with something
Jack Jansen <jack.jansen@cwi.nl>
parents:
5617
diff
changeset
|
322 PyMac_GetSchedParams(&scp); |
|
fb170ce82951
Removed old scheduler parameterizing calls and replaced with something
Jack Jansen <jack.jansen@cwi.nl>
parents:
5617
diff
changeset
|
323 scp.process_events = 0; |
|
fb170ce82951
Removed old scheduler parameterizing calls and replaced with something
Jack Jansen <jack.jansen@cwi.nl>
parents:
5617
diff
changeset
|
324 /* Should we disable command-dot as well? */ |
|
fb170ce82951
Removed old scheduler parameterizing calls and replaced with something
Jack Jansen <jack.jansen@cwi.nl>
parents:
5617
diff
changeset
|
325 PyMac_SetSchedParams(&scp); |
|
fb170ce82951
Removed old scheduler parameterizing calls and replaced with something
Jack Jansen <jack.jansen@cwi.nl>
parents:
5617
diff
changeset
|
326 } |
|
6293
6c0a2658a156
Added old-exception and no-site-python options and balloon help
Jack Jansen <jack.jansen@cwi.nl>
parents:
6277
diff
changeset
|
327 /* XXXX dispatch oldexc and nosite */ |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
328 |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
329 /* Set buffering */ |
|
15192
1c63e224f616
Made options global (as PyMac_options) so macosmodule can access it.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14773
diff
changeset
|
330 if (PyMac_options.unbuffered) { |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
331 #ifndef MPW |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
332 setbuf(stdout, (char *)NULL); |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
333 setbuf(stderr, (char *)NULL); |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
334 #else |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
335 /* On MPW (3.2) unbuffered seems to hang */ |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
336 setvbuf(stdout, (char *)NULL, _IOLBF, BUFSIZ); |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
337 setvbuf(stderr, (char *)NULL, _IOLBF, BUFSIZ); |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
338 #endif |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
339 } |
|
4911
21878c849626
Added profiler initialization/finalization code (if __profile__ is defined)
Jack Jansen <jack.jansen@cwi.nl>
parents:
4249
diff
changeset
|
340 #if __profile__ == 1 |
|
21878c849626
Added profiler initialization/finalization code (if __profile__ is defined)
Jack Jansen <jack.jansen@cwi.nl>
parents:
4249
diff
changeset
|
341 /* collectSummary or collectDetailed, timebase, #routines, max stack depth */ |
|
11350
678a9a79c7e8
Bigger buffer size for C profiler (if profiling is enabled).
Jack Jansen <jack.jansen@cwi.nl>
parents:
8792
diff
changeset
|
342 ProfilerInit(collectSummary, bestTimeBase, 8000, 250); |
|
4911
21878c849626
Added profiler initialization/finalization code (if __profile__ is defined)
Jack Jansen <jack.jansen@cwi.nl>
parents:
4249
diff
changeset
|
343 #endif |
|
5961
35e5acc6532c
Adapted for 1.5a3: Py_SupressPrintingFlag is gone, and
Jack Jansen <jack.jansen@cwi.nl>
parents:
5732
diff
changeset
|
344 |
|
35e5acc6532c
Adapted for 1.5a3: Py_SupressPrintingFlag is gone, and
Jack Jansen <jack.jansen@cwi.nl>
parents:
5732
diff
changeset
|
345 /* Tell the rest of python about our argc/argv */ |
|
35e5acc6532c
Adapted for 1.5a3: Py_SupressPrintingFlag is gone, and
Jack Jansen <jack.jansen@cwi.nl>
parents:
5732
diff
changeset
|
346 orig_argc = *argcp; /* For Py_GetArgcArgv() */ |
|
35e5acc6532c
Adapted for 1.5a3: Py_SupressPrintingFlag is gone, and
Jack Jansen <jack.jansen@cwi.nl>
parents:
5732
diff
changeset
|
347 orig_argv = *argvp; |
|
35e5acc6532c
Adapted for 1.5a3: Py_SupressPrintingFlag is gone, and
Jack Jansen <jack.jansen@cwi.nl>
parents:
5732
diff
changeset
|
348 Py_SetProgramName((*argvp)[0]); |
| 3422 | 349 } |
| 350 | |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
351 /* |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
352 ** Inspection mode after script/applet termination |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
353 */ |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
354 static int |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
355 run_inspect() |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
356 { |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
357 int sts = 0; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
358 |
|
15192
1c63e224f616
Made options global (as PyMac_options) so macosmodule can access it.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14773
diff
changeset
|
359 if (PyMac_options.inspect && isatty((int)fileno(stdin))) |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
360 sts = PyRun_AnyFile(stdin, "<stdin>") != 0; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
361 return sts; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
362 } |
| 3422 | 363 |
|
12593
eaee924efb19
Removed string-exception preference, added tabcheck and NavService preference, upped version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
12281
diff
changeset
|
364 /* |
|
eaee924efb19
Removed string-exception preference, added tabcheck and NavService preference, upped version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
12281
diff
changeset
|
365 ** Import the macfsn module, which will override the Standard File |
|
eaee924efb19
Removed string-exception preference, added tabcheck and NavService preference, upped version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
12281
diff
changeset
|
366 ** calls in the macfs builtin module by Navigation Services versions, |
|
eaee924efb19
Removed string-exception preference, added tabcheck and NavService preference, upped version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
12281
diff
changeset
|
367 ** if available on this machine. |
|
eaee924efb19
Removed string-exception preference, added tabcheck and NavService preference, upped version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
12281
diff
changeset
|
368 */ |
|
eaee924efb19
Removed string-exception preference, added tabcheck and NavService preference, upped version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
12281
diff
changeset
|
369 static void |
|
eaee924efb19
Removed string-exception preference, added tabcheck and NavService preference, upped version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
12281
diff
changeset
|
370 PyMac_InstallNavServicesForSF() |
|
eaee924efb19
Removed string-exception preference, added tabcheck and NavService preference, upped version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
12281
diff
changeset
|
371 { |
|
15192
1c63e224f616
Made options global (as PyMac_options) so macosmodule can access it.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14773
diff
changeset
|
372 if ( !PyMac_options.nonavservice ) { |
|
12593
eaee924efb19
Removed string-exception preference, added tabcheck and NavService preference, upped version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
12281
diff
changeset
|
373 PyObject *m = PyImport_ImportModule("macfsn"); |
|
eaee924efb19
Removed string-exception preference, added tabcheck and NavService preference, upped version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
12281
diff
changeset
|
374 |
|
eaee924efb19
Removed string-exception preference, added tabcheck and NavService preference, upped version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
12281
diff
changeset
|
375 if ( m == NULL ) { |
|
eaee924efb19
Removed string-exception preference, added tabcheck and NavService preference, upped version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
12281
diff
changeset
|
376 PySys_WriteStderr("'import macfsn' failed; "); |
|
eaee924efb19
Removed string-exception preference, added tabcheck and NavService preference, upped version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
12281
diff
changeset
|
377 if (Py_VerboseFlag) { |
|
eaee924efb19
Removed string-exception preference, added tabcheck and NavService preference, upped version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
12281
diff
changeset
|
378 PySys_WriteStderr("traceback:\n"); |
|
eaee924efb19
Removed string-exception preference, added tabcheck and NavService preference, upped version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
12281
diff
changeset
|
379 PyErr_Print(); |
|
eaee924efb19
Removed string-exception preference, added tabcheck and NavService preference, upped version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
12281
diff
changeset
|
380 } |
|
eaee924efb19
Removed string-exception preference, added tabcheck and NavService preference, upped version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
12281
diff
changeset
|
381 else { |
|
eaee924efb19
Removed string-exception preference, added tabcheck and NavService preference, upped version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
12281
diff
changeset
|
382 PySys_WriteStderr("use -v for traceback\n"); |
|
eaee924efb19
Removed string-exception preference, added tabcheck and NavService preference, upped version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
12281
diff
changeset
|
383 } |
|
eaee924efb19
Removed string-exception preference, added tabcheck and NavService preference, upped version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
12281
diff
changeset
|
384 } |
|
eaee924efb19
Removed string-exception preference, added tabcheck and NavService preference, upped version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
12281
diff
changeset
|
385 } |
|
eaee924efb19
Removed string-exception preference, added tabcheck and NavService preference, upped version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
12281
diff
changeset
|
386 } |
|
eaee924efb19
Removed string-exception preference, added tabcheck and NavService preference, upped version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
12281
diff
changeset
|
387 |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
388 #ifdef USE_MAC_APPLET_SUPPORT |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
389 /* Applet support */ |
|
2031
1739f00ffc86
Enlarged version buffer (nobody expects the spanish inquisition:-)
Jack Jansen <jack.jansen@cwi.nl>
parents:
1821
diff
changeset
|
390 |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
391 /* Run a compiled Python Python script from 'PYC ' resource __main__ */ |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
392 static int |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
393 run_main_resource() |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
394 { |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
395 Handle h; |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
396 long size; |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
397 PyObject *code; |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
398 PyObject *result; |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
399 |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
400 h = GetNamedResource('PYC ', "\p__main__"); |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
401 if (h == NULL) { |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
402 Alert(NOPYC_ALERT, NULL); |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
403 return 1; |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
404 } |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
405 size = GetResourceSizeOnDisk(h); |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
406 HLock(h); |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
407 code = PyMarshal_ReadObjectFromString(*h + 8, (int)(size - 8)); |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
408 HUnlock(h); |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
409 ReleaseResource(h); |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
410 if (code == NULL) { |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
411 PyErr_Print(); |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
412 return 1; |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
413 } |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
414 result = PyImport_ExecCodeModule("__main__", code); |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
415 Py_DECREF(code); |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
416 if (result == NULL) { |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
417 PyErr_Print(); |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
418 return 1; |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
419 } |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
420 Py_DECREF(result); |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
421 return 0; |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
422 } |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
423 |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
424 /* Initialization sequence for applets */ |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
425 void |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
426 PyMac_InitApplet() |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
427 { |
|
1811
ea5b13d11a13
Added macmain.c (separate Mac specific main prog); bump version to 1.1
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
428 int argc; |
|
ea5b13d11a13
Added macmain.c (separate Mac specific main prog); bump version to 1.1
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
429 char **argv; |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
430 int err; |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
431 |
|
4962
765d962f4449
Added PyMac_Initialize() routine, to be used by embedding programs (in
Jack Jansen <jack.jansen@cwi.nl>
parents:
4911
diff
changeset
|
432 init_common(&argc, &argv, 0); |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
433 |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
434 Py_Initialize(); |
|
12593
eaee924efb19
Removed string-exception preference, added tabcheck and NavService preference, upped version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
12281
diff
changeset
|
435 PyMac_InstallNavServicesForSF(); |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
436 PySys_SetArgv(argc, argv); |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
437 |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
438 err = run_main_resource(); |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
439 |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
440 err = (run_inspect() || err); |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
441 |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
442 fflush(stderr); |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
443 fflush(stdout); |
|
3236
463b26fa4d7b
Added options for keeping window open on normal/error termination
Jack Jansen <jack.jansen@cwi.nl>
parents:
3228
diff
changeset
|
444 PyMac_Exit(err); |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
445 /* XXX Should we bother to Py_Exit(sts)? */ |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
446 } |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
447 |
|
4962
765d962f4449
Added PyMac_Initialize() routine, to be used by embedding programs (in
Jack Jansen <jack.jansen@cwi.nl>
parents:
4911
diff
changeset
|
448 /* |
|
765d962f4449
Added PyMac_Initialize() routine, to be used by embedding programs (in
Jack Jansen <jack.jansen@cwi.nl>
parents:
4911
diff
changeset
|
449 ** Hook for embedding python. |
|
765d962f4449
Added PyMac_Initialize() routine, to be used by embedding programs (in
Jack Jansen <jack.jansen@cwi.nl>
parents:
4911
diff
changeset
|
450 */ |
|
765d962f4449
Added PyMac_Initialize() routine, to be used by embedding programs (in
Jack Jansen <jack.jansen@cwi.nl>
parents:
4911
diff
changeset
|
451 void |
|
765d962f4449
Added PyMac_Initialize() routine, to be used by embedding programs (in
Jack Jansen <jack.jansen@cwi.nl>
parents:
4911
diff
changeset
|
452 PyMac_Initialize() |
|
765d962f4449
Added PyMac_Initialize() routine, to be used by embedding programs (in
Jack Jansen <jack.jansen@cwi.nl>
parents:
4911
diff
changeset
|
453 { |
|
765d962f4449
Added PyMac_Initialize() routine, to be used by embedding programs (in
Jack Jansen <jack.jansen@cwi.nl>
parents:
4911
diff
changeset
|
454 int argc; |
|
765d962f4449
Added PyMac_Initialize() routine, to be used by embedding programs (in
Jack Jansen <jack.jansen@cwi.nl>
parents:
4911
diff
changeset
|
455 char **argv; |
|
765d962f4449
Added PyMac_Initialize() routine, to be used by embedding programs (in
Jack Jansen <jack.jansen@cwi.nl>
parents:
4911
diff
changeset
|
456 |
|
765d962f4449
Added PyMac_Initialize() routine, to be used by embedding programs (in
Jack Jansen <jack.jansen@cwi.nl>
parents:
4911
diff
changeset
|
457 init_common(&argc, &argv, 1); |
|
765d962f4449
Added PyMac_Initialize() routine, to be used by embedding programs (in
Jack Jansen <jack.jansen@cwi.nl>
parents:
4911
diff
changeset
|
458 Py_Initialize(); |
|
12593
eaee924efb19
Removed string-exception preference, added tabcheck and NavService preference, upped version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
12281
diff
changeset
|
459 PyMac_InstallNavServicesForSF(); |
|
4962
765d962f4449
Added PyMac_Initialize() routine, to be used by embedding programs (in
Jack Jansen <jack.jansen@cwi.nl>
parents:
4911
diff
changeset
|
460 PySys_SetArgv(argc, argv); |
|
765d962f4449
Added PyMac_Initialize() routine, to be used by embedding programs (in
Jack Jansen <jack.jansen@cwi.nl>
parents:
4911
diff
changeset
|
461 } |
|
765d962f4449
Added PyMac_Initialize() routine, to be used by embedding programs (in
Jack Jansen <jack.jansen@cwi.nl>
parents:
4911
diff
changeset
|
462 |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
463 #endif /* USE_MAC_APPLET_SUPPORT */ |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
464 |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
465 /* For normal application */ |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
466 void |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
467 PyMac_InitApplication() |
|
1811
ea5b13d11a13
Added macmain.c (separate Mac specific main prog); bump version to 1.1
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
468 { |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
469 int argc; |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
470 char **argv; |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
471 |
|
4962
765d962f4449
Added PyMac_Initialize() routine, to be used by embedding programs (in
Jack Jansen <jack.jansen@cwi.nl>
parents:
4911
diff
changeset
|
472 init_common(&argc, &argv, 0); |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
473 |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
474 if ( argc > 1 ) { |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
475 /* We're running a script. Attempt to change current directory */ |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
476 char curwd[256], *endp; |
|
2313
ff72a5f9a4ee
Various changes wrt shared-library python:
Jack Jansen <jack.jansen@cwi.nl>
parents:
2277
diff
changeset
|
477 |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
478 strcpy(curwd, argv[1]); |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
479 endp = strrchr(curwd, ':'); |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
480 if ( endp && endp > curwd ) { |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
481 *endp = '\0'; |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
482 |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
483 chdir(curwd); |
|
12281
51c0c3b6d919
Started on GUSI2 and threading support.
Jack Jansen <jack.jansen@cwi.nl>
parents:
11529
diff
changeset
|
484 #ifdef USE_GUSI1 |
|
3433
578ca302a598
Replaced previous gusi-chdir() fix by a call to PyMac_FixGUSIcd()
Jack Jansen <jack.jansen@cwi.nl>
parents:
3422
diff
changeset
|
485 /* Change MacOS's idea of wd too */ |
|
578ca302a598
Replaced previous gusi-chdir() fix by a call to PyMac_FixGUSIcd()
Jack Jansen <jack.jansen@cwi.nl>
parents:
3422
diff
changeset
|
486 PyMac_FixGUSIcd(); |
|
578ca302a598
Replaced previous gusi-chdir() fix by a call to PyMac_FixGUSIcd()
Jack Jansen <jack.jansen@cwi.nl>
parents:
3422
diff
changeset
|
487 #endif |
|
2313
ff72a5f9a4ee
Various changes wrt shared-library python:
Jack Jansen <jack.jansen@cwi.nl>
parents:
2277
diff
changeset
|
488 } |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
489 } |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
490 Py_Main(argc, argv); |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
491 } |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
492 |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
493 /* Main program */ |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
494 |
|
4017
5dc8c042905b
Guido: added some void's to declarations
Jack Jansen <jack.jansen@cwi.nl>
parents:
3930
diff
changeset
|
495 static void |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
496 Py_Main(argc, argv) |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
497 int argc; |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
498 char **argv; |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
499 { |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
500 int sts; |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
501 char *command = NULL; |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
502 char *filename = NULL; |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
503 FILE *fp = stdin; |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
504 |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
505 filename = argv[1]; |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
506 |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
507 if (Py_VerboseFlag || |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
508 command == NULL && filename == NULL && isatty((int)fileno(fp))) |
|
14464
17cec96f75bc
Use same short banner message as unix/win Python.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14198
diff
changeset
|
509 fprintf(stderr, "Python %s on %s\n%s\n", |
|
17cec96f75bc
Use same short banner message as unix/win Python.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14198
diff
changeset
|
510 Py_GetVersion(), Py_GetPlatform(), COPYRIGHT); |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
511 |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
512 if (filename != NULL) { |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
513 if ((fp = fopen(filename, "r")) == NULL) { |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
514 fprintf(stderr, "%s: can't open file '%s'\n", |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
515 argv[0], filename); |
|
3236
463b26fa4d7b
Added options for keeping window open on normal/error termination
Jack Jansen <jack.jansen@cwi.nl>
parents:
3228
diff
changeset
|
516 PyMac_Exit(2); |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
517 } |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
518 } |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
519 |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
520 /* We initialize the menubar here, hoping SIOUX is initialized by now */ |
|
4215
0410ed3808ee
Python about box implemented. Slightly convoluted, since (a) we have
Jack Jansen <jack.jansen@cwi.nl>
parents:
4197
diff
changeset
|
521 PyMac_InitMenuBar(); |
|
0410ed3808ee
Python about box implemented. Slightly convoluted, since (a) we have
Jack Jansen <jack.jansen@cwi.nl>
parents:
4197
diff
changeset
|
522 |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
523 Py_Initialize(); |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
524 |
|
18386
8cdff545cbde
Set the default 8-bit encoding based on the system script and language.
unknown <tools@python.org>
parents:
17629
diff
changeset
|
525 PyUnicode_SetDefaultEncoding(PyMac_getscript()); |
|
8cdff545cbde
Set the default 8-bit encoding based on the system script and language.
unknown <tools@python.org>
parents:
17629
diff
changeset
|
526 |
|
12593
eaee924efb19
Removed string-exception preference, added tabcheck and NavService preference, upped version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
12281
diff
changeset
|
527 PyMac_InstallNavServicesForSF(); |
|
eaee924efb19
Removed string-exception preference, added tabcheck and NavService preference, upped version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
12281
diff
changeset
|
528 |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
529 PySys_SetArgv(argc-1, argv+1); |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
530 |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
531 if (filename == NULL && isatty((int)fileno(fp))) { |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
532 FILE *fp = fopen(STARTUP, "r"); |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
533 if (fp != NULL) { |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
534 (void) PyRun_SimpleFile(fp, STARTUP); |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
535 PyErr_Clear(); |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
536 fclose(fp); |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
537 } |
|
1811
ea5b13d11a13
Added macmain.c (separate Mac specific main prog); bump version to 1.1
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
538 } |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
539 sts = PyRun_AnyFile( |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
540 fp, filename == NULL ? "<stdin>" : filename) != 0; |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
541 if (filename != NULL) |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
542 fclose(fp); |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
543 |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
544 if ( filename != NULL || command != NULL ) |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
545 sts = (run_inspect() || sts); |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
546 |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
547 Py_Exit(sts); |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
548 /*NOTREACHED*/ |
|
1811
ea5b13d11a13
Added macmain.c (separate Mac specific main prog); bump version to 1.1
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
549 } |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
550 |
|
3236
463b26fa4d7b
Added options for keeping window open on normal/error termination
Jack Jansen <jack.jansen@cwi.nl>
parents:
3228
diff
changeset
|
551 /* |
|
15280
a5ca54969a3f
Added PyMac_OutputSeen(), which acknowledges all current output in the stdio window, i.e. it acts like input has been read insofar as the keep-console-open option is interested.
Jack Jansen <jack.jansen@cwi.nl>
parents:
15192
diff
changeset
|
552 ** Reset the "unseen output" flag |
|
a5ca54969a3f
Added PyMac_OutputSeen(), which acknowledges all current output in the stdio window, i.e. it acts like input has been read insofar as the keep-console-open option is interested.
Jack Jansen <jack.jansen@cwi.nl>
parents:
15192
diff
changeset
|
553 */ |
|
a5ca54969a3f
Added PyMac_OutputSeen(), which acknowledges all current output in the stdio window, i.e. it acts like input has been read insofar as the keep-console-open option is interested.
Jack Jansen <jack.jansen@cwi.nl>
parents:
15192
diff
changeset
|
554 void |
|
a5ca54969a3f
Added PyMac_OutputSeen(), which acknowledges all current output in the stdio window, i.e. it acts like input has been read insofar as the keep-console-open option is interested.
Jack Jansen <jack.jansen@cwi.nl>
parents:
15192
diff
changeset
|
555 PyMac_OutputSeen() |
|
a5ca54969a3f
Added PyMac_OutputSeen(), which acknowledges all current output in the stdio window, i.e. it acts like input has been read insofar as the keep-console-open option is interested.
Jack Jansen <jack.jansen@cwi.nl>
parents:
15192
diff
changeset
|
556 { |
|
16647
728c11562187
More changes to attempt to get the menubar back on exit. Without success:-(
Jack Jansen <jack.jansen@cwi.nl>
parents:
16557
diff
changeset
|
557 if ( console_output_state == STATE_UNKNOWN ) |
|
728c11562187
More changes to attempt to get the menubar back on exit. Without success:-(
Jack Jansen <jack.jansen@cwi.nl>
parents:
16557
diff
changeset
|
558 PyMac_InitMenuBar(); |
|
16557
9ce9e0342cc1
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.
Jack Jansen <jack.jansen@cwi.nl>
parents:
15921
diff
changeset
|
559 console_output_state = STATE_LASTREAD; |
|
15280
a5ca54969a3f
Added PyMac_OutputSeen(), which acknowledges all current output in the stdio window, i.e. it acts like input has been read insofar as the keep-console-open option is interested.
Jack Jansen <jack.jansen@cwi.nl>
parents:
15192
diff
changeset
|
560 } |
|
a5ca54969a3f
Added PyMac_OutputSeen(), which acknowledges all current output in the stdio window, i.e. it acts like input has been read insofar as the keep-console-open option is interested.
Jack Jansen <jack.jansen@cwi.nl>
parents:
15192
diff
changeset
|
561 |
|
a5ca54969a3f
Added PyMac_OutputSeen(), which acknowledges all current output in the stdio window, i.e. it acts like input has been read insofar as the keep-console-open option is interested.
Jack Jansen <jack.jansen@cwi.nl>
parents:
15192
diff
changeset
|
562 /* |
|
16557
9ce9e0342cc1
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.
Jack Jansen <jack.jansen@cwi.nl>
parents:
15921
diff
changeset
|
563 ** Set the "unseen output" flag |
|
9ce9e0342cc1
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.
Jack Jansen <jack.jansen@cwi.nl>
parents:
15921
diff
changeset
|
564 */ |
|
9ce9e0342cc1
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.
Jack Jansen <jack.jansen@cwi.nl>
parents:
15921
diff
changeset
|
565 void |
|
9ce9e0342cc1
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.
Jack Jansen <jack.jansen@cwi.nl>
parents:
15921
diff
changeset
|
566 PyMac_OutputNotSeen() |
|
9ce9e0342cc1
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.
Jack Jansen <jack.jansen@cwi.nl>
parents:
15921
diff
changeset
|
567 { |
|
16647
728c11562187
More changes to attempt to get the menubar back on exit. Without success:-(
Jack Jansen <jack.jansen@cwi.nl>
parents:
16557
diff
changeset
|
568 if ( console_output_state == STATE_UNKNOWN ) |
|
728c11562187
More changes to attempt to get the menubar back on exit. Without success:-(
Jack Jansen <jack.jansen@cwi.nl>
parents:
16557
diff
changeset
|
569 PyMac_InitMenuBar(); |
|
16557
9ce9e0342cc1
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.
Jack Jansen <jack.jansen@cwi.nl>
parents:
15921
diff
changeset
|
570 console_output_state = STATE_LASTWRITE; |
|
9ce9e0342cc1
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.
Jack Jansen <jack.jansen@cwi.nl>
parents:
15921
diff
changeset
|
571 } |
|
17629
a9485d404f05
- Raise console window on input. Fixes Carbon hang.
Jack Jansen <jack.jansen@cwi.nl>
parents:
16647
diff
changeset
|
572 |
|
a9485d404f05
- Raise console window on input. Fixes Carbon hang.
Jack Jansen <jack.jansen@cwi.nl>
parents:
16647
diff
changeset
|
573 /* |
|
a9485d404f05
- Raise console window on input. Fixes Carbon hang.
Jack Jansen <jack.jansen@cwi.nl>
parents:
16647
diff
changeset
|
574 ** Override abort() - The default one is not what we want. |
|
a9485d404f05
- Raise console window on input. Fixes Carbon hang.
Jack Jansen <jack.jansen@cwi.nl>
parents:
16647
diff
changeset
|
575 */ |
|
a9485d404f05
- Raise console window on input. Fixes Carbon hang.
Jack Jansen <jack.jansen@cwi.nl>
parents:
16647
diff
changeset
|
576 void |
|
a9485d404f05
- Raise console window on input. Fixes Carbon hang.
Jack Jansen <jack.jansen@cwi.nl>
parents:
16647
diff
changeset
|
577 abort() |
|
a9485d404f05
- Raise console window on input. Fixes Carbon hang.
Jack Jansen <jack.jansen@cwi.nl>
parents:
16647
diff
changeset
|
578 { |
|
a9485d404f05
- Raise console window on input. Fixes Carbon hang.
Jack Jansen <jack.jansen@cwi.nl>
parents:
16647
diff
changeset
|
579 console_output_state = STATE_LASTWRITE; |
|
a9485d404f05
- Raise console window on input. Fixes Carbon hang.
Jack Jansen <jack.jansen@cwi.nl>
parents:
16647
diff
changeset
|
580 PyMac_Exit(1); |
|
a9485d404f05
- Raise console window on input. Fixes Carbon hang.
Jack Jansen <jack.jansen@cwi.nl>
parents:
16647
diff
changeset
|
581 } |
|
16557
9ce9e0342cc1
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.
Jack Jansen <jack.jansen@cwi.nl>
parents:
15921
diff
changeset
|
582 |
|
9ce9e0342cc1
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.
Jack Jansen <jack.jansen@cwi.nl>
parents:
15921
diff
changeset
|
583 /* |
|
3236
463b26fa4d7b
Added options for keeping window open on normal/error termination
Jack Jansen <jack.jansen@cwi.nl>
parents:
3228
diff
changeset
|
584 ** Terminate application |
|
463b26fa4d7b
Added options for keeping window open on normal/error termination
Jack Jansen <jack.jansen@cwi.nl>
parents:
3228
diff
changeset
|
585 */ |
|
4017
5dc8c042905b
Guido: added some void's to declarations
Jack Jansen <jack.jansen@cwi.nl>
parents:
3930
diff
changeset
|
586 void |
|
3236
463b26fa4d7b
Added options for keeping window open on normal/error termination
Jack Jansen <jack.jansen@cwi.nl>
parents:
3228
diff
changeset
|
587 PyMac_Exit(status) |
|
463b26fa4d7b
Added options for keeping window open on normal/error termination
Jack Jansen <jack.jansen@cwi.nl>
parents:
3228
diff
changeset
|
588 int status; |
|
463b26fa4d7b
Added options for keeping window open on normal/error termination
Jack Jansen <jack.jansen@cwi.nl>
parents:
3228
diff
changeset
|
589 { |
|
14773
c5ec0b11f8c9
Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14464
diff
changeset
|
590 int keep = 0; |
|
4911
21878c849626
Added profiler initialization/finalization code (if __profile__ is defined)
Jack Jansen <jack.jansen@cwi.nl>
parents:
4249
diff
changeset
|
591 |
|
21878c849626
Added profiler initialization/finalization code (if __profile__ is defined)
Jack Jansen <jack.jansen@cwi.nl>
parents:
4249
diff
changeset
|
592 #if __profile__ == 1 |
|
21878c849626
Added profiler initialization/finalization code (if __profile__ is defined)
Jack Jansen <jack.jansen@cwi.nl>
parents:
4249
diff
changeset
|
593 ProfilerDump("\pPython Profiler Results"); |
|
21878c849626
Added profiler initialization/finalization code (if __profile__ is defined)
Jack Jansen <jack.jansen@cwi.nl>
parents:
4249
diff
changeset
|
594 ProfilerTerm(); |
|
21878c849626
Added profiler initialization/finalization code (if __profile__ is defined)
Jack Jansen <jack.jansen@cwi.nl>
parents:
4249
diff
changeset
|
595 #endif |
|
3236
463b26fa4d7b
Added options for keeping window open on normal/error termination
Jack Jansen <jack.jansen@cwi.nl>
parents:
3228
diff
changeset
|
596 |
|
3247
20d74fa3b50b
For MW Python, update titlebar of window when python exits.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3236
diff
changeset
|
597 #ifdef USE_SIOUX |
|
15192
1c63e224f616
Made options global (as PyMac_options) so macosmodule can access it.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14773
diff
changeset
|
598 switch (PyMac_options.keep_console) { |
|
14773
c5ec0b11f8c9
Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14464
diff
changeset
|
599 case POPT_KEEPCONSOLE_NEVER: |
|
c5ec0b11f8c9
Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14464
diff
changeset
|
600 keep = 0; |
|
c5ec0b11f8c9
Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14464
diff
changeset
|
601 break; |
|
c5ec0b11f8c9
Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14464
diff
changeset
|
602 case POPT_KEEPCONSOLE_OUTPUT: |
|
16557
9ce9e0342cc1
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.
Jack Jansen <jack.jansen@cwi.nl>
parents:
15921
diff
changeset
|
603 if (console_output_state == STATE_LASTWRITE || |
|
9ce9e0342cc1
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.
Jack Jansen <jack.jansen@cwi.nl>
parents:
15921
diff
changeset
|
604 console_output_state == STATE_UNKNOWN ) |
|
14773
c5ec0b11f8c9
Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14464
diff
changeset
|
605 keep = 1; |
|
c5ec0b11f8c9
Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14464
diff
changeset
|
606 else |
|
c5ec0b11f8c9
Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14464
diff
changeset
|
607 keep = 0; |
|
c5ec0b11f8c9
Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14464
diff
changeset
|
608 break; |
|
c5ec0b11f8c9
Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14464
diff
changeset
|
609 case POPT_KEEPCONSOLE_ERROR: |
|
c5ec0b11f8c9
Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14464
diff
changeset
|
610 keep = (status != 0); |
|
c5ec0b11f8c9
Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14464
diff
changeset
|
611 break; |
|
c5ec0b11f8c9
Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14464
diff
changeset
|
612 default: |
|
c5ec0b11f8c9
Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14464
diff
changeset
|
613 keep = 1; |
|
c5ec0b11f8c9
Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14464
diff
changeset
|
614 } |
|
3247
20d74fa3b50b
For MW Python, update titlebar of window when python exits.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3236
diff
changeset
|
615 if (keep) { |
|
20d74fa3b50b
For MW Python, update titlebar of window when python exits.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3236
diff
changeset
|
616 SIOUXSettings.standalone = 1; |
|
20d74fa3b50b
For MW Python, update titlebar of window when python exits.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3236
diff
changeset
|
617 SIOUXSettings.autocloseonquit = 0; |
|
3477
a4f01d43dad6
Replaced non-ascii chars by backslash escapes
Jack Jansen <jack.jansen@cwi.nl>
parents:
3465
diff
changeset
|
618 SIOUXSetTitle("\p\307terminated\310"); |
|
17629
a9485d404f05
- Raise console window on input. Fixes Carbon hang.
Jack Jansen <jack.jansen@cwi.nl>
parents:
16647
diff
changeset
|
619 PyMac_RaiseConsoleWindow(); |
|
5732
f027dd0a85e4
- Restore SIOUX menubar just before exiting, if the console window is kept
Jack Jansen <jack.jansen@cwi.nl>
parents:
5711
diff
changeset
|
620 PyMac_RestoreMenuBar(); |
|
5431
a56b44b35505
Workaround for bug in MSL and CWGUSI interaction that stopped the
Jack Jansen <jack.jansen@cwi.nl>
parents:
5270
diff
changeset
|
621 #ifdef USE_MSL |
|
a56b44b35505
Workaround for bug in MSL and CWGUSI interaction that stopped the
Jack Jansen <jack.jansen@cwi.nl>
parents:
5270
diff
changeset
|
622 /* |
|
a56b44b35505
Workaround for bug in MSL and CWGUSI interaction that stopped the
Jack Jansen <jack.jansen@cwi.nl>
parents:
5270
diff
changeset
|
623 ** Temporary workaround: autocloseonquit clearing does not |
|
a56b44b35505
Workaround for bug in MSL and CWGUSI interaction that stopped the
Jack Jansen <jack.jansen@cwi.nl>
parents:
5270
diff
changeset
|
624 ** currently work for the MSL/GUSI combo. |
|
a56b44b35505
Workaround for bug in MSL and CWGUSI interaction that stopped the
Jack Jansen <jack.jansen@cwi.nl>
parents:
5270
diff
changeset
|
625 */ |
|
a56b44b35505
Workaround for bug in MSL and CWGUSI interaction that stopped the
Jack Jansen <jack.jansen@cwi.nl>
parents:
5270
diff
changeset
|
626 while(getchar() > 0); |
|
a56b44b35505
Workaround for bug in MSL and CWGUSI interaction that stopped the
Jack Jansen <jack.jansen@cwi.nl>
parents:
5270
diff
changeset
|
627 #endif |
|
3247
20d74fa3b50b
For MW Python, update titlebar of window when python exits.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3236
diff
changeset
|
628 } |
|
3236
463b26fa4d7b
Added options for keeping window open on normal/error termination
Jack Jansen <jack.jansen@cwi.nl>
parents:
3228
diff
changeset
|
629 else |
|
463b26fa4d7b
Added options for keeping window open on normal/error termination
Jack Jansen <jack.jansen@cwi.nl>
parents:
3228
diff
changeset
|
630 SIOUXSettings.autocloseonquit = 1; |
| 4197 | 631 #endif /* USE_SIOUX */ |
|
3236
463b26fa4d7b
Added options for keeping window open on normal/error termination
Jack Jansen <jack.jansen@cwi.nl>
parents:
3228
diff
changeset
|
632 |
|
463b26fa4d7b
Added options for keeping window open on normal/error termination
Jack Jansen <jack.jansen@cwi.nl>
parents:
3228
diff
changeset
|
633 exit(status); |
|
463b26fa4d7b
Added options for keeping window open on normal/error termination
Jack Jansen <jack.jansen@cwi.nl>
parents:
3228
diff
changeset
|
634 } |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
635 |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
636 /* Return the program name -- some code out there needs this. */ |
|
5617
70855574516b
- Added Py_GetProgramFullPath
Jack Jansen <jack.jansen@cwi.nl>
parents:
5431
diff
changeset
|
637 char * |
|
70855574516b
- Added Py_GetProgramFullPath
Jack Jansen <jack.jansen@cwi.nl>
parents:
5431
diff
changeset
|
638 Py_GetProgramFullPath() |
|
70855574516b
- Added Py_GetProgramFullPath
Jack Jansen <jack.jansen@cwi.nl>
parents:
5431
diff
changeset
|
639 { |
|
5961
35e5acc6532c
Adapted for 1.5a3: Py_SupressPrintingFlag is gone, and
Jack Jansen <jack.jansen@cwi.nl>
parents:
5732
diff
changeset
|
640 return orig_argv[0]; |
|
5617
70855574516b
- Added Py_GetProgramFullPath
Jack Jansen <jack.jansen@cwi.nl>
parents:
5431
diff
changeset
|
641 } |
|
70855574516b
- Added Py_GetProgramFullPath
Jack Jansen <jack.jansen@cwi.nl>
parents:
5431
diff
changeset
|
642 |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
643 |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
644 /* Make the *original* argc/argv available to other modules. |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
645 This is rare, but it is needed by the secureware extension. */ |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
646 |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
647 void |
|
13547
db963a615bc9
ANSIfication step 2: make sure all needed prototypes are available, and all needed
Jack Jansen <jack.jansen@cwi.nl>
parents:
13542
diff
changeset
|
648 Py_GetArgcArgv(int *argc,char ***argv) |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
649 { |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
650 *argc = orig_argc; |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
651 *argv = orig_argv; |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
652 } |
|
3930
52c19ee83a6b
Guido's 1.4b2 fixes: Py_GetProgramName, Py_GetPrefix and Py_GetExecPrefix.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3750
diff
changeset
|
653 |
|
52c19ee83a6b
Guido's 1.4b2 fixes: Py_GetProgramName, Py_GetPrefix and Py_GetExecPrefix.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3750
diff
changeset
|
654 /* More cruft that shouldn't really be here, used in sysmodule.c */ |
|
52c19ee83a6b
Guido's 1.4b2 fixes: Py_GetProgramName, Py_GetPrefix and Py_GetExecPrefix.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3750
diff
changeset
|
655 |
|
52c19ee83a6b
Guido's 1.4b2 fixes: Py_GetProgramName, Py_GetPrefix and Py_GetExecPrefix.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3750
diff
changeset
|
656 char * |
|
52c19ee83a6b
Guido's 1.4b2 fixes: Py_GetProgramName, Py_GetPrefix and Py_GetExecPrefix.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3750
diff
changeset
|
657 Py_GetPrefix() |
|
52c19ee83a6b
Guido's 1.4b2 fixes: Py_GetProgramName, Py_GetPrefix and Py_GetExecPrefix.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3750
diff
changeset
|
658 { |
|
6277
bb5472fb4885
sys.prefix and sys.exec_prefix are now set correctly.
Jack Jansen <jack.jansen@cwi.nl>
parents:
5961
diff
changeset
|
659 return PyMac_GetPythonDir(); |
|
3930
52c19ee83a6b
Guido's 1.4b2 fixes: Py_GetProgramName, Py_GetPrefix and Py_GetExecPrefix.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3750
diff
changeset
|
660 } |
|
52c19ee83a6b
Guido's 1.4b2 fixes: Py_GetProgramName, Py_GetPrefix and Py_GetExecPrefix.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3750
diff
changeset
|
661 |
|
52c19ee83a6b
Guido's 1.4b2 fixes: Py_GetProgramName, Py_GetPrefix and Py_GetExecPrefix.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3750
diff
changeset
|
662 char * |
|
52c19ee83a6b
Guido's 1.4b2 fixes: Py_GetProgramName, Py_GetPrefix and Py_GetExecPrefix.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3750
diff
changeset
|
663 Py_GetExecPrefix() |
|
52c19ee83a6b
Guido's 1.4b2 fixes: Py_GetProgramName, Py_GetPrefix and Py_GetExecPrefix.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3750
diff
changeset
|
664 { |
|
6277
bb5472fb4885
sys.prefix and sys.exec_prefix are now set correctly.
Jack Jansen <jack.jansen@cwi.nl>
parents:
5961
diff
changeset
|
665 return PyMac_GetPythonDir(); |
|
3930
52c19ee83a6b
Guido's 1.4b2 fixes: Py_GetProgramName, Py_GetPrefix and Py_GetExecPrefix.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3750
diff
changeset
|
666 } |
|
16557
9ce9e0342cc1
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.
Jack Jansen <jack.jansen@cwi.nl>
parents:
15921
diff
changeset
|
667 |
|
9ce9e0342cc1
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.
Jack Jansen <jack.jansen@cwi.nl>
parents:
15921
diff
changeset
|
668 int |
|
9ce9e0342cc1
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.
Jack Jansen <jack.jansen@cwi.nl>
parents:
15921
diff
changeset
|
669 PyMac_GetDelayConsoleFlag() |
|
9ce9e0342cc1
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.
Jack Jansen <jack.jansen@cwi.nl>
parents:
15921
diff
changeset
|
670 { |
|
9ce9e0342cc1
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.
Jack Jansen <jack.jansen@cwi.nl>
parents:
15921
diff
changeset
|
671 return (int)PyMac_options.delayconsole; |
|
9ce9e0342cc1
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.
Jack Jansen <jack.jansen@cwi.nl>
parents:
15921
diff
changeset
|
672 } |
