Mercurial > cpython-lru_cache-weakref
annotate Mac/Python/macmain.c @ 15921:489692e79151 legacy-trunk
Trigger keep-console-open on GUSISIOUX_STATE_UNKNOWN. Better than the previous complicated expression.
| author | Jack Jansen <jack.jansen@cwi.nl> |
|---|---|
| date | Tue, 16 Jan 2001 15:54:58 +0000 |
| parents | 174490e924d4 |
| children | 9ce9e0342cc1 |
| 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 | |
|
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
|
56 #ifdef USE_GUSI |
|
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
|
57 #include "GUSISIOUX.h" |
|
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
|
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 |
|
15192
1c63e224f616
Made options global (as PyMac_options) so macosmodule can access it.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14773
diff
changeset
|
74 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
|
75 |
|
13542
ddd6138c9e6f
ANSIfication step 1: get rid of Py_PROTO and Py_FPROTO.
Jack Jansen <jack.jansen@cwi.nl>
parents:
12855
diff
changeset
|
76 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
|
77 void PyMac_Exit(int); /* Forward */ |
|
4017
5dc8c042905b
Guido: added some void's to declarations
Jack Jansen <jack.jansen@cwi.nl>
parents:
3930
diff
changeset
|
78 |
|
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
|
79 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
|
80 { |
|
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
|
81 #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
|
82 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
|
83 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
|
84 |
|
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
|
85 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
|
86 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
|
87 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
|
88 /* 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
|
89 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
|
90 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
|
91 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
|
92 #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
|
93 } |
| 3422 | 94 /* Initialize the Mac toolbox world */ |
| 95 | |
| 96 static void | |
| 97 init_mac_world() | |
| 98 { | |
|
13608
a901c2c0166b
Test for TARGET_API_MAC_CARBON with #if in stead of #ifdef.
Jack Jansen <jack.jansen@cwi.nl>
parents:
13547
diff
changeset
|
99 #if !TARGET_API_MAC_CARBON |
|
12834
c2a0f2a81fa8
Removed (within an #ifdef) Carbon-incompatabilities:
Jack Jansen <jack.jansen@cwi.nl>
parents:
12593
diff
changeset
|
100 /* These aren't needed for carbon */ |
| 3422 | 101 MaxApplZone(); |
| 102 InitGraf(&qd.thePort); | |
| 103 InitFonts(); | |
| 104 InitWindows(); | |
| 105 TEInit(); | |
| 106 InitDialogs((long)0); | |
| 107 InitMenus(); | |
|
12834
c2a0f2a81fa8
Removed (within an #ifdef) Carbon-incompatabilities:
Jack Jansen <jack.jansen@cwi.nl>
parents:
12593
diff
changeset
|
108 #endif |
| 3422 | 109 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
|
110 init_appearance(); |
| 3422 | 111 } |
| 112 | |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
113 /* |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
114 ** 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
|
115 */ |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
116 static void |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
117 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
|
118 { |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
119 KeyMap rmap; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
120 unsigned char *map; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
121 short item, type; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
122 ControlHandle handle; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
123 DialogPtr dialog; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
124 Rect rect; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
125 int old_argc = *argcp; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
126 int i; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
127 |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
128 /* |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
129 ** 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
|
130 ** similarly of <option> isn't pressed. |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
131 */ |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
132 if (p->nointopt) return; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
133 |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
134 GetKeys(rmap); |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
135 map = (unsigned char *)rmap; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
136 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
|
137 return; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
138 |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
139 dialog = GetNewDialog(OPT_DIALOG, NULL, (WindowPtr)-1); |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
140 if ( dialog == NULL ) { |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
141 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
|
142 return; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
143 } |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
144 SetDialogDefaultItem(dialog, OPT_OK); |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
145 SetDialogCancelItem(dialog, OPT_CANCEL); |
|
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 /* Set default values */ |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
148 #define SET_OPT_ITEM(num, var) \ |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
149 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
|
150 SetControlValue(handle, (short)p->var); |
|
4238
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 SET_OPT_ITEM(OPT_INSPECT, inspect); |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
153 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
|
154 SET_OPT_ITEM(OPT_OPTIMIZE, optimize); |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
155 SET_OPT_ITEM(OPT_UNBUFFERED, unbuffered); |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
156 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
|
157 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
|
158 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
|
159 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
|
160 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
|
161 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
|
162 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
|
163 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
|
164 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
|
165 /* 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
|
166 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
|
167 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
|
168 SET_OPT_ITEM(OPT_NONAVSERV, nonavservice); |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
169 /* The rest are not settable interactively */ |
| 3422 | 170 |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
171 #undef SET_OPT_ITEM |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
172 |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
173 while (1) { |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
174 handle = NULL; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
175 ModalDialog(NULL, &item); |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
176 if ( item == OPT_OK ) |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
177 break; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
178 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
|
179 DisposeDialog(dialog); |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
180 exit(0); |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
181 } |
|
13608
a901c2c0166b
Test for TARGET_API_MAC_CARBON with #if in stead of #ifdef.
Jack Jansen <jack.jansen@cwi.nl>
parents:
13547
diff
changeset
|
182 #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
|
183 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
|
184 HMSetBalloons(!HMGetBalloons()); |
|
6c0a2658a156
Added old-exception and no-site-python options and balloon help
Jack Jansen <jack.jansen@cwi.nl>
parents:
6277
diff
changeset
|
185 } |
|
12834
c2a0f2a81fa8
Removed (within an #ifdef) Carbon-incompatabilities:
Jack Jansen <jack.jansen@cwi.nl>
parents:
12593
diff
changeset
|
186 #endif |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
187 if ( item == OPT_CMDLINE ) { |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
188 int new_argc, newer_argc; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
189 char **new_argv, **newer_argv; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
190 |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
191 new_argc = ccommand(&new_argv); |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
192 newer_argc = (new_argc-1) + old_argc; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
193 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
|
194 if( !newer_argv ) |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
195 Py_FatalError("Cannot malloc argv\n"); |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
196 for(i=0; i<old_argc; i++) |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
197 newer_argv[i] = (*argvp)[i]; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
198 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
|
199 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
|
200 *argvp = newer_argv; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
201 *argcp = newer_argc; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
202 |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
203 /* 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
|
204 } |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
205 #define OPT_ITEM(num, var) \ |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
206 if ( item == (num) ) { \ |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
207 p->var = !p->var; \ |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
208 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
|
209 SetControlValue(handle, (short)p->var); \ |
|
4238
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 |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
212 OPT_ITEM(OPT_INSPECT, inspect); |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
213 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
|
214 OPT_ITEM(OPT_OPTIMIZE, optimize); |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
215 OPT_ITEM(OPT_UNBUFFERED, unbuffered); |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
216 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
|
217 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
|
218 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
|
219 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
|
220 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
|
221 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
|
222 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
|
223 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
|
224 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
|
225 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
|
226 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
|
227 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
|
228 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
|
229 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
|
230 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
|
231 OPT_ITEM(OPT_NONAVSERV, nonavservice); |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
232 |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
233 #undef OPT_ITEM |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
234 } |
|
5270
de9d0c5249b0
Changed the few old routine names still used to the new ones
Jack Jansen <jack.jansen@cwi.nl>
parents:
5153
diff
changeset
|
235 DisposeDialog(dialog); |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
236 } |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
237 |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
238 /* |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
239 ** Initialization code, shared by interpreter and applets |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
240 */ |
| 3422 | 241 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
|
242 init_common(int *argcp, char ***argvp, int embedded) |
| 3422 | 243 { |
|
4228
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4215
diff
changeset
|
244 /* Remember resource fork refnum, for later */ |
|
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4215
diff
changeset
|
245 PyMac_AppRefNum = CurResFile(); |
|
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4215
diff
changeset
|
246 |
| 3422 | 247 /* Initialize toolboxes */ |
| 248 init_mac_world(); | |
| 249 | |
| 250 #ifdef USE_MAC_SHARED_LIBRARY | |
| 251 /* 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
|
252 (void)PyMac_init_process_location(); |
| 3422 | 253 PyMac_AddLibResources(); |
| 254 #endif | |
| 255 | |
|
12281
51c0c3b6d919
Started on GUSI2 and threading support.
Jack Jansen <jack.jansen@cwi.nl>
parents:
11529
diff
changeset
|
256 #if defined(USE_GUSI1) |
| 3422 | 257 /* Setup GUSI */ |
| 258 GUSIDefaultSetup(); | |
| 4197 | 259 PyMac_SetGUSISpin(); |
|
4228
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4215
diff
changeset
|
260 PyMac_SetGUSIOptions(); |
|
12281
51c0c3b6d919
Started on GUSI2 and threading support.
Jack Jansen <jack.jansen@cwi.nl>
parents:
11529
diff
changeset
|
261 #endif |
|
51c0c3b6d919
Started on GUSI2 and threading support.
Jack Jansen <jack.jansen@cwi.nl>
parents:
11529
diff
changeset
|
262 #if defined(USE_GUSI) |
|
5617
70855574516b
- Added Py_GetProgramFullPath
Jack Jansen <jack.jansen@cwi.nl>
parents:
5431
diff
changeset
|
263 atexit(PyMac_StopGUSISpin); |
|
12281
51c0c3b6d919
Started on GUSI2 and threading support.
Jack Jansen <jack.jansen@cwi.nl>
parents:
11529
diff
changeset
|
264 #endif |
| 3422 | 265 |
| 266 #ifdef USE_SIOUX | |
| 267 /* 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
|
268 /* SIOUXSettings.standalone = 0; /* XXXX Attempting to keep sioux from eating events */ |
| 3422 | 269 SIOUXSettings.asktosaveonclose = 0; |
| 270 SIOUXSettings.showstatusline = 0; | |
| 271 SIOUXSettings.tabspaces = 4; | |
| 272 #endif | |
| 273 | |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
274 /* 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
|
275 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
|
276 PyMac_PreferenceOptions(&PyMac_options); |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
277 |
|
4962
765d962f4449
Added PyMac_Initialize() routine, to be used by embedding programs (in
Jack Jansen <jack.jansen@cwi.nl>
parents:
4911
diff
changeset
|
278 if ( embedded ) { |
|
765d962f4449
Added PyMac_Initialize() routine, to be used by embedding programs (in
Jack Jansen <jack.jansen@cwi.nl>
parents:
4911
diff
changeset
|
279 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
|
280 |
|
765d962f4449
Added PyMac_Initialize() routine, to be used by embedding programs (in
Jack Jansen <jack.jansen@cwi.nl>
parents:
4911
diff
changeset
|
281 *argcp = 1; |
|
765d962f4449
Added PyMac_Initialize() routine, to be used by embedding programs (in
Jack Jansen <jack.jansen@cwi.nl>
parents:
4911
diff
changeset
|
282 *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
|
283 } else { |
|
765d962f4449
Added PyMac_Initialize() routine, to be used by embedding programs (in
Jack Jansen <jack.jansen@cwi.nl>
parents:
4911
diff
changeset
|
284 /* 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
|
285 *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
|
286 #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
|
287 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
|
288 /* 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
|
289 ** 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
|
290 */ |
|
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
|
291 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
|
292 |
|
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
|
293 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
|
294 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
|
295 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
|
296 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
|
297 } |
|
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 #endif |
|
4962
765d962f4449
Added PyMac_Initialize() routine, to be used by embedding programs (in
Jack Jansen <jack.jansen@cwi.nl>
parents:
4911
diff
changeset
|
299 /* 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
|
300 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
|
301 } |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
302 |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
303 /* 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
|
304 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
|
305 /* 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
|
306 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
|
307 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
|
308 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
|
309 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
|
310 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
|
311 /* 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
|
312 PyMacSchedParams scp; |
|
fb170ce82951
Removed old scheduler parameterizing calls and replaced with something
Jack Jansen <jack.jansen@cwi.nl>
parents:
5617
diff
changeset
|
313 |
|
fb170ce82951
Removed old scheduler parameterizing calls and replaced with something
Jack Jansen <jack.jansen@cwi.nl>
parents:
5617
diff
changeset
|
314 PyMac_GetSchedParams(&scp); |
|
fb170ce82951
Removed old scheduler parameterizing calls and replaced with something
Jack Jansen <jack.jansen@cwi.nl>
parents:
5617
diff
changeset
|
315 scp.process_events = 0; |
|
fb170ce82951
Removed old scheduler parameterizing calls and replaced with something
Jack Jansen <jack.jansen@cwi.nl>
parents:
5617
diff
changeset
|
316 /* 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
|
317 PyMac_SetSchedParams(&scp); |
|
fb170ce82951
Removed old scheduler parameterizing calls and replaced with something
Jack Jansen <jack.jansen@cwi.nl>
parents:
5617
diff
changeset
|
318 } |
|
6293
6c0a2658a156
Added old-exception and no-site-python options and balloon help
Jack Jansen <jack.jansen@cwi.nl>
parents:
6277
diff
changeset
|
319 /* XXXX dispatch oldexc and nosite */ |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
320 |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
321 /* 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
|
322 if (PyMac_options.unbuffered) { |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
323 #ifndef MPW |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
324 setbuf(stdout, (char *)NULL); |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
325 setbuf(stderr, (char *)NULL); |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
326 #else |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
327 /* 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
|
328 setvbuf(stdout, (char *)NULL, _IOLBF, BUFSIZ); |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
329 setvbuf(stderr, (char *)NULL, _IOLBF, BUFSIZ); |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
330 #endif |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
331 } |
|
4911
21878c849626
Added profiler initialization/finalization code (if __profile__ is defined)
Jack Jansen <jack.jansen@cwi.nl>
parents:
4249
diff
changeset
|
332 #if __profile__ == 1 |
|
21878c849626
Added profiler initialization/finalization code (if __profile__ is defined)
Jack Jansen <jack.jansen@cwi.nl>
parents:
4249
diff
changeset
|
333 /* 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
|
334 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
|
335 #endif |
|
5961
35e5acc6532c
Adapted for 1.5a3: Py_SupressPrintingFlag is gone, and
Jack Jansen <jack.jansen@cwi.nl>
parents:
5732
diff
changeset
|
336 |
|
35e5acc6532c
Adapted for 1.5a3: Py_SupressPrintingFlag is gone, and
Jack Jansen <jack.jansen@cwi.nl>
parents:
5732
diff
changeset
|
337 /* 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
|
338 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
|
339 orig_argv = *argvp; |
|
35e5acc6532c
Adapted for 1.5a3: Py_SupressPrintingFlag is gone, and
Jack Jansen <jack.jansen@cwi.nl>
parents:
5732
diff
changeset
|
340 Py_SetProgramName((*argvp)[0]); |
| 3422 | 341 } |
| 342 | |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
343 /* |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
344 ** Inspection mode after script/applet termination |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
345 */ |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
346 static int |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
347 run_inspect() |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
348 { |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
349 int sts = 0; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
350 |
|
15192
1c63e224f616
Made options global (as PyMac_options) so macosmodule can access it.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14773
diff
changeset
|
351 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
|
352 sts = PyRun_AnyFile(stdin, "<stdin>") != 0; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
353 return sts; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
354 } |
| 3422 | 355 |
|
12593
eaee924efb19
Removed string-exception preference, added tabcheck and NavService preference, upped version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
12281
diff
changeset
|
356 /* |
|
eaee924efb19
Removed string-exception preference, added tabcheck and NavService preference, upped version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
12281
diff
changeset
|
357 ** 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
|
358 ** 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
|
359 ** 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
|
360 */ |
|
eaee924efb19
Removed string-exception preference, added tabcheck and NavService preference, upped version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
12281
diff
changeset
|
361 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
|
362 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
|
363 { |
|
15192
1c63e224f616
Made options global (as PyMac_options) so macosmodule can access it.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14773
diff
changeset
|
364 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
|
365 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
|
366 |
|
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 ( 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
|
368 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
|
369 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
|
370 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
|
371 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
|
372 } |
|
eaee924efb19
Removed string-exception preference, added tabcheck and NavService preference, upped version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
12281
diff
changeset
|
373 else { |
|
eaee924efb19
Removed string-exception preference, added tabcheck and NavService preference, upped version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
12281
diff
changeset
|
374 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
|
375 } |
|
eaee924efb19
Removed string-exception preference, added tabcheck and NavService preference, upped version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
12281
diff
changeset
|
376 } |
|
eaee924efb19
Removed string-exception preference, added tabcheck and NavService preference, upped version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
12281
diff
changeset
|
377 } |
|
eaee924efb19
Removed string-exception preference, added tabcheck and NavService preference, upped version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
12281
diff
changeset
|
378 } |
|
eaee924efb19
Removed string-exception preference, added tabcheck and NavService preference, upped version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
12281
diff
changeset
|
379 |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
380 #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
|
381 /* Applet support */ |
|
2031
1739f00ffc86
Enlarged version buffer (nobody expects the spanish inquisition:-)
Jack Jansen <jack.jansen@cwi.nl>
parents:
1821
diff
changeset
|
382 |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
383 /* 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
|
384 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
|
385 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
|
386 { |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
387 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
|
388 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
|
389 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
|
390 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
|
391 |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
392 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
|
393 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
|
394 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
|
395 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
|
396 } |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
397 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
|
398 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
|
399 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
|
400 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
|
401 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
|
402 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
|
403 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
|
404 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
|
405 } |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
406 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
|
407 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
|
408 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
|
409 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
|
410 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
|
411 } |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
412 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
|
413 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
|
414 } |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
415 |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
416 /* 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
|
417 void |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
418 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
|
419 { |
|
1811
ea5b13d11a13
Added macmain.c (separate Mac specific main prog); bump version to 1.1
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
420 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
|
421 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
|
422 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
|
423 |
|
4962
765d962f4449
Added PyMac_Initialize() routine, to be used by embedding programs (in
Jack Jansen <jack.jansen@cwi.nl>
parents:
4911
diff
changeset
|
424 init_common(&argc, &argv, 0); |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
425 |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
426 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
|
427 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
|
428 PySys_SetArgv(argc, argv); |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
429 |
|
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 err = run_main_resource(); |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
431 |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
432 err = (run_inspect() || err); |
|
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 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
|
435 fflush(stdout); |
|
3236
463b26fa4d7b
Added options for keeping window open on normal/error termination
Jack Jansen <jack.jansen@cwi.nl>
parents:
3228
diff
changeset
|
436 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
|
437 /* 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
|
438 } |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
439 |
|
4962
765d962f4449
Added PyMac_Initialize() routine, to be used by embedding programs (in
Jack Jansen <jack.jansen@cwi.nl>
parents:
4911
diff
changeset
|
440 /* |
|
765d962f4449
Added PyMac_Initialize() routine, to be used by embedding programs (in
Jack Jansen <jack.jansen@cwi.nl>
parents:
4911
diff
changeset
|
441 ** 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
|
442 */ |
|
765d962f4449
Added PyMac_Initialize() routine, to be used by embedding programs (in
Jack Jansen <jack.jansen@cwi.nl>
parents:
4911
diff
changeset
|
443 void |
|
765d962f4449
Added PyMac_Initialize() routine, to be used by embedding programs (in
Jack Jansen <jack.jansen@cwi.nl>
parents:
4911
diff
changeset
|
444 PyMac_Initialize() |
|
765d962f4449
Added PyMac_Initialize() routine, to be used by embedding programs (in
Jack Jansen <jack.jansen@cwi.nl>
parents:
4911
diff
changeset
|
445 { |
|
765d962f4449
Added PyMac_Initialize() routine, to be used by embedding programs (in
Jack Jansen <jack.jansen@cwi.nl>
parents:
4911
diff
changeset
|
446 int argc; |
|
765d962f4449
Added PyMac_Initialize() routine, to be used by embedding programs (in
Jack Jansen <jack.jansen@cwi.nl>
parents:
4911
diff
changeset
|
447 char **argv; |
|
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 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
|
450 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
|
451 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
|
452 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
|
453 } |
|
765d962f4449
Added PyMac_Initialize() routine, to be used by embedding programs (in
Jack Jansen <jack.jansen@cwi.nl>
parents:
4911
diff
changeset
|
454 |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
455 #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
|
456 |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
457 /* 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
|
458 void |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
459 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
|
460 { |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
461 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
|
462 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
|
463 |
|
4962
765d962f4449
Added PyMac_Initialize() routine, to be used by embedding programs (in
Jack Jansen <jack.jansen@cwi.nl>
parents:
4911
diff
changeset
|
464 init_common(&argc, &argv, 0); |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
465 |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
466 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
|
467 /* 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
|
468 char curwd[256], *endp; |
|
2313
ff72a5f9a4ee
Various changes wrt shared-library python:
Jack Jansen <jack.jansen@cwi.nl>
parents:
2277
diff
changeset
|
469 |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
470 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
|
471 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
|
472 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
|
473 *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
|
474 |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
475 chdir(curwd); |
|
12281
51c0c3b6d919
Started on GUSI2 and threading support.
Jack Jansen <jack.jansen@cwi.nl>
parents:
11529
diff
changeset
|
476 #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
|
477 /* 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
|
478 PyMac_FixGUSIcd(); |
|
578ca302a598
Replaced previous gusi-chdir() fix by a call to PyMac_FixGUSIcd()
Jack Jansen <jack.jansen@cwi.nl>
parents:
3422
diff
changeset
|
479 #endif |
|
2313
ff72a5f9a4ee
Various changes wrt shared-library python:
Jack Jansen <jack.jansen@cwi.nl>
parents:
2277
diff
changeset
|
480 } |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
481 } |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
482 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
|
483 } |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
484 |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
485 /* 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
|
486 |
|
4017
5dc8c042905b
Guido: added some void's to declarations
Jack Jansen <jack.jansen@cwi.nl>
parents:
3930
diff
changeset
|
487 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
|
488 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
|
489 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
|
490 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
|
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 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
|
493 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
|
494 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
|
495 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
|
496 |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
497 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
|
498 |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
499 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
|
500 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
|
501 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
|
502 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
|
503 |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
504 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
|
505 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
|
506 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
|
507 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
|
508 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
|
509 } |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
510 } |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
511 |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
512 /* 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
|
513 PyMac_InitMenuBar(); |
|
0410ed3808ee
Python about box implemented. Slightly convoluted, since (a) we have
Jack Jansen <jack.jansen@cwi.nl>
parents:
4197
diff
changeset
|
514 |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
515 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
|
516 |
|
12593
eaee924efb19
Removed string-exception preference, added tabcheck and NavService preference, upped version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
12281
diff
changeset
|
517 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
|
518 |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
519 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
|
520 |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
521 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
|
522 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
|
523 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
|
524 (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
|
525 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
|
526 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
|
527 } |
|
1811
ea5b13d11a13
Added macmain.c (separate Mac specific main prog); bump version to 1.1
Guido van Rossum <guido@python.org>
parents:
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 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
|
530 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
|
531 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
|
532 fclose(fp); |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
533 |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
534 if ( filename != NULL || command != NULL ) |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
535 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
|
536 |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
537 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
|
538 /*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
|
539 } |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
540 |
|
3236
463b26fa4d7b
Added options for keeping window open on normal/error termination
Jack Jansen <jack.jansen@cwi.nl>
parents:
3228
diff
changeset
|
541 /* |
|
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
|
542 ** 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
|
543 */ |
|
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
|
544 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
|
545 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
|
546 { |
|
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
|
547 #ifdef GUSISIOUX_STATE_UNKNOWN |
|
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
|
548 gusisioux_state = GUSISIOUX_STATE_LASTREAD; |
|
15785
eff11fac5f36
If we're not using GUSI the "keep open on unseen output" becomes the same as "always keep open".
Jack Jansen <jack.jansen@cwi.nl>
parents:
15280
diff
changeset
|
549 #endif |
|
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
|
550 } |
|
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
|
551 |
|
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 /* |
|
3236
463b26fa4d7b
Added options for keeping window open on normal/error termination
Jack Jansen <jack.jansen@cwi.nl>
parents:
3228
diff
changeset
|
553 ** Terminate application |
|
463b26fa4d7b
Added options for keeping window open on normal/error termination
Jack Jansen <jack.jansen@cwi.nl>
parents:
3228
diff
changeset
|
554 */ |
|
4017
5dc8c042905b
Guido: added some void's to declarations
Jack Jansen <jack.jansen@cwi.nl>
parents:
3930
diff
changeset
|
555 void |
|
3236
463b26fa4d7b
Added options for keeping window open on normal/error termination
Jack Jansen <jack.jansen@cwi.nl>
parents:
3228
diff
changeset
|
556 PyMac_Exit(status) |
|
463b26fa4d7b
Added options for keeping window open on normal/error termination
Jack Jansen <jack.jansen@cwi.nl>
parents:
3228
diff
changeset
|
557 int status; |
|
463b26fa4d7b
Added options for keeping window open on normal/error termination
Jack Jansen <jack.jansen@cwi.nl>
parents:
3228
diff
changeset
|
558 { |
|
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
|
559 int keep = 0; |
|
4911
21878c849626
Added profiler initialization/finalization code (if __profile__ is defined)
Jack Jansen <jack.jansen@cwi.nl>
parents:
4249
diff
changeset
|
560 |
|
21878c849626
Added profiler initialization/finalization code (if __profile__ is defined)
Jack Jansen <jack.jansen@cwi.nl>
parents:
4249
diff
changeset
|
561 #if __profile__ == 1 |
|
21878c849626
Added profiler initialization/finalization code (if __profile__ is defined)
Jack Jansen <jack.jansen@cwi.nl>
parents:
4249
diff
changeset
|
562 ProfilerDump("\pPython Profiler Results"); |
|
21878c849626
Added profiler initialization/finalization code (if __profile__ is defined)
Jack Jansen <jack.jansen@cwi.nl>
parents:
4249
diff
changeset
|
563 ProfilerTerm(); |
|
21878c849626
Added profiler initialization/finalization code (if __profile__ is defined)
Jack Jansen <jack.jansen@cwi.nl>
parents:
4249
diff
changeset
|
564 #endif |
|
3236
463b26fa4d7b
Added options for keeping window open on normal/error termination
Jack Jansen <jack.jansen@cwi.nl>
parents:
3228
diff
changeset
|
565 |
|
3247
20d74fa3b50b
For MW Python, update titlebar of window when python exits.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3236
diff
changeset
|
566 #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
|
567 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
|
568 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
|
569 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
|
570 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
|
571 case POPT_KEEPCONSOLE_OUTPUT: |
|
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
|
572 #ifdef GUSISIOUX_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
|
573 if (gusisioux_state == GUSISIOUX_STATE_LASTWRITE || |
|
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
|
574 gusisioux_state == GUSISIOUX_STATE_UNKNOWN ) |
|
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
|
575 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
|
576 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
|
577 keep = 0; |
|
15785
eff11fac5f36
If we're not using GUSI the "keep open on unseen output" becomes the same as "always keep open".
Jack Jansen <jack.jansen@cwi.nl>
parents:
15280
diff
changeset
|
578 #else |
|
eff11fac5f36
If we're not using GUSI the "keep open on unseen output" becomes the same as "always keep open".
Jack Jansen <jack.jansen@cwi.nl>
parents:
15280
diff
changeset
|
579 keep = 1; |
|
eff11fac5f36
If we're not using GUSI the "keep open on unseen output" becomes the same as "always keep open".
Jack Jansen <jack.jansen@cwi.nl>
parents:
15280
diff
changeset
|
580 #endif |
|
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
|
581 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
|
582 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
|
583 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
|
584 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
|
585 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
|
586 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
|
587 } |
|
3247
20d74fa3b50b
For MW Python, update titlebar of window when python exits.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3236
diff
changeset
|
588 if (keep) { |
|
20d74fa3b50b
For MW Python, update titlebar of window when python exits.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3236
diff
changeset
|
589 SIOUXSettings.standalone = 1; |
|
20d74fa3b50b
For MW Python, update titlebar of window when python exits.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3236
diff
changeset
|
590 SIOUXSettings.autocloseonquit = 0; |
|
3477
a4f01d43dad6
Replaced non-ascii chars by backslash escapes
Jack Jansen <jack.jansen@cwi.nl>
parents:
3465
diff
changeset
|
591 SIOUXSetTitle("\p\307terminated\310"); |
|
5732
f027dd0a85e4
- Restore SIOUX menubar just before exiting, if the console window is kept
Jack Jansen <jack.jansen@cwi.nl>
parents:
5711
diff
changeset
|
592 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
|
593 #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
|
594 /* |
|
a56b44b35505
Workaround for bug in MSL and CWGUSI interaction that stopped the
Jack Jansen <jack.jansen@cwi.nl>
parents:
5270
diff
changeset
|
595 ** 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
|
596 ** 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
|
597 */ |
|
a56b44b35505
Workaround for bug in MSL and CWGUSI interaction that stopped the
Jack Jansen <jack.jansen@cwi.nl>
parents:
5270
diff
changeset
|
598 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
|
599 #endif |
|
3247
20d74fa3b50b
For MW Python, update titlebar of window when python exits.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3236
diff
changeset
|
600 } |
|
3236
463b26fa4d7b
Added options for keeping window open on normal/error termination
Jack Jansen <jack.jansen@cwi.nl>
parents:
3228
diff
changeset
|
601 else |
|
463b26fa4d7b
Added options for keeping window open on normal/error termination
Jack Jansen <jack.jansen@cwi.nl>
parents:
3228
diff
changeset
|
602 SIOUXSettings.autocloseonquit = 1; |
| 4197 | 603 #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
|
604 |
|
463b26fa4d7b
Added options for keeping window open on normal/error termination
Jack Jansen <jack.jansen@cwi.nl>
parents:
3228
diff
changeset
|
605 exit(status); |
|
463b26fa4d7b
Added options for keeping window open on normal/error termination
Jack Jansen <jack.jansen@cwi.nl>
parents:
3228
diff
changeset
|
606 } |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
607 |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
608 /* 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
|
609 char * |
|
70855574516b
- Added Py_GetProgramFullPath
Jack Jansen <jack.jansen@cwi.nl>
parents:
5431
diff
changeset
|
610 Py_GetProgramFullPath() |
|
70855574516b
- Added Py_GetProgramFullPath
Jack Jansen <jack.jansen@cwi.nl>
parents:
5431
diff
changeset
|
611 { |
|
5961
35e5acc6532c
Adapted for 1.5a3: Py_SupressPrintingFlag is gone, and
Jack Jansen <jack.jansen@cwi.nl>
parents:
5732
diff
changeset
|
612 return orig_argv[0]; |
|
5617
70855574516b
- Added Py_GetProgramFullPath
Jack Jansen <jack.jansen@cwi.nl>
parents:
5431
diff
changeset
|
613 } |
|
70855574516b
- Added Py_GetProgramFullPath
Jack Jansen <jack.jansen@cwi.nl>
parents:
5431
diff
changeset
|
614 |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
615 |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
616 /* 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
|
617 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
|
618 |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
619 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
|
620 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
|
621 { |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
622 *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
|
623 *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
|
624 } |
|
3930
52c19ee83a6b
Guido's 1.4b2 fixes: Py_GetProgramName, Py_GetPrefix and Py_GetExecPrefix.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3750
diff
changeset
|
625 |
|
52c19ee83a6b
Guido's 1.4b2 fixes: Py_GetProgramName, Py_GetPrefix and Py_GetExecPrefix.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3750
diff
changeset
|
626 /* 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
|
627 |
|
52c19ee83a6b
Guido's 1.4b2 fixes: Py_GetProgramName, Py_GetPrefix and Py_GetExecPrefix.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3750
diff
changeset
|
628 char * |
|
52c19ee83a6b
Guido's 1.4b2 fixes: Py_GetProgramName, Py_GetPrefix and Py_GetExecPrefix.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3750
diff
changeset
|
629 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
|
630 { |
|
6277
bb5472fb4885
sys.prefix and sys.exec_prefix are now set correctly.
Jack Jansen <jack.jansen@cwi.nl>
parents:
5961
diff
changeset
|
631 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
|
632 } |
|
52c19ee83a6b
Guido's 1.4b2 fixes: Py_GetProgramName, Py_GetPrefix and Py_GetExecPrefix.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3750
diff
changeset
|
633 |
|
52c19ee83a6b
Guido's 1.4b2 fixes: Py_GetProgramName, Py_GetPrefix and Py_GetExecPrefix.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3750
diff
changeset
|
634 char * |
|
52c19ee83a6b
Guido's 1.4b2 fixes: Py_GetProgramName, Py_GetPrefix and Py_GetExecPrefix.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3750
diff
changeset
|
635 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
|
636 { |
|
6277
bb5472fb4885
sys.prefix and sys.exec_prefix are now set correctly.
Jack Jansen <jack.jansen@cwi.nl>
parents:
5961
diff
changeset
|
637 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
|
638 } |
