annotate Mac/Python/macmain.c @ 15280:a5ca54969a3f legacy-trunk

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.
author Jack Jansen <jack.jansen@cwi.nl>
date Thu, 19 Oct 2000 22:02:16 +0000
parents 1c63e224f616
children eff11fac5f36
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
b4d982c648bb 1995 copyright
Guido van Rossum <guido@python.org>
parents: 2031
diff changeset
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
b70baba1c789 - Fixed PyMac_DoYield:
Jack Jansen <jack.jansen@cwi.nl>
parents: 4017
diff changeset
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
f840bf6a3351 Added more prototypes.
Jack Jansen <jack.jansen@cwi.nl>
parents: 13638
diff changeset
53 #ifdef USE_MAC_SHARED_LIBRARY
f840bf6a3351 Added more prototypes.
Jack Jansen <jack.jansen@cwi.nl>
parents: 13638
diff changeset
54 extern PyMac_AddLibResources(void);
f840bf6a3351 Added more prototypes.
Jack Jansen <jack.jansen@cwi.nl>
parents: 13638
diff changeset
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
67f5d29d405b - Reorganized init code
Jack Jansen <jack.jansen@cwi.nl>
parents: 3411
diff changeset
94 /* Initialize the Mac toolbox world */
67f5d29d405b - Reorganized init code
Jack Jansen <jack.jansen@cwi.nl>
parents: 3411
diff changeset
95
67f5d29d405b - Reorganized init code
Jack Jansen <jack.jansen@cwi.nl>
parents: 3411
diff changeset
96 static void
67f5d29d405b - Reorganized init code
Jack Jansen <jack.jansen@cwi.nl>
parents: 3411
diff changeset
97 init_mac_world()
67f5d29d405b - Reorganized init code
Jack Jansen <jack.jansen@cwi.nl>
parents: 3411
diff changeset
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
67f5d29d405b - Reorganized init code
Jack Jansen <jack.jansen@cwi.nl>
parents: 3411
diff changeset
101 MaxApplZone();
67f5d29d405b - Reorganized init code
Jack Jansen <jack.jansen@cwi.nl>
parents: 3411
diff changeset
102 InitGraf(&qd.thePort);
67f5d29d405b - Reorganized init code
Jack Jansen <jack.jansen@cwi.nl>
parents: 3411
diff changeset
103 InitFonts();
67f5d29d405b - Reorganized init code
Jack Jansen <jack.jansen@cwi.nl>
parents: 3411
diff changeset
104 InitWindows();
67f5d29d405b - Reorganized init code
Jack Jansen <jack.jansen@cwi.nl>
parents: 3411
diff changeset
105 TEInit();
67f5d29d405b - Reorganized init code
Jack Jansen <jack.jansen@cwi.nl>
parents: 3411
diff changeset
106 InitDialogs((long)0);
67f5d29d405b - Reorganized init code
Jack Jansen <jack.jansen@cwi.nl>
parents: 3411
diff changeset
107 InitMenus();
12834
c2a0f2a81fa8 Removed (within an #ifdef) Carbon-incompatabilities:
Jack Jansen <jack.jansen@cwi.nl>
parents: 12593
diff changeset
108 #endif
3422
67f5d29d405b - Reorganized init code
Jack Jansen <jack.jansen@cwi.nl>
parents: 3411
diff changeset
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
67f5d29d405b - Reorganized init code
Jack Jansen <jack.jansen@cwi.nl>
parents: 3411
diff changeset
111 }
67f5d29d405b - Reorganized init code
Jack Jansen <jack.jansen@cwi.nl>
parents: 3411
diff changeset
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
67f5d29d405b - Reorganized init code
Jack Jansen <jack.jansen@cwi.nl>
parents: 3411
diff changeset
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
67f5d29d405b - Reorganized init code
Jack Jansen <jack.jansen@cwi.nl>
parents: 3411
diff changeset
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
67f5d29d405b - Reorganized init code
Jack Jansen <jack.jansen@cwi.nl>
parents: 3411
diff changeset
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
67f5d29d405b - Reorganized init code
Jack Jansen <jack.jansen@cwi.nl>
parents: 3411
diff changeset
247 /* Initialize toolboxes */
67f5d29d405b - Reorganized init code
Jack Jansen <jack.jansen@cwi.nl>
parents: 3411
diff changeset
248 init_mac_world();
67f5d29d405b - Reorganized init code
Jack Jansen <jack.jansen@cwi.nl>
parents: 3411
diff changeset
249
67f5d29d405b - Reorganized init code
Jack Jansen <jack.jansen@cwi.nl>
parents: 3411
diff changeset
250 #ifdef USE_MAC_SHARED_LIBRARY
67f5d29d405b - Reorganized init code
Jack Jansen <jack.jansen@cwi.nl>
parents: 3411
diff changeset
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
67f5d29d405b - Reorganized init code
Jack Jansen <jack.jansen@cwi.nl>
parents: 3411
diff changeset
253 PyMac_AddLibResources();
67f5d29d405b - Reorganized init code
Jack Jansen <jack.jansen@cwi.nl>
parents: 3411
diff changeset
254 #endif
67f5d29d405b - Reorganized init code
Jack Jansen <jack.jansen@cwi.nl>
parents: 3411
diff changeset
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
67f5d29d405b - Reorganized init code
Jack Jansen <jack.jansen@cwi.nl>
parents: 3411
diff changeset
257 /* Setup GUSI */
67f5d29d405b - Reorganized init code
Jack Jansen <jack.jansen@cwi.nl>
parents: 3411
diff changeset
258 GUSIDefaultSetup();
4197
b70baba1c789 - Fixed PyMac_DoYield:
Jack Jansen <jack.jansen@cwi.nl>
parents: 4017
diff changeset
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
67f5d29d405b - Reorganized init code
Jack Jansen <jack.jansen@cwi.nl>
parents: 3411
diff changeset
265
67f5d29d405b - Reorganized init code
Jack Jansen <jack.jansen@cwi.nl>
parents: 3411
diff changeset
266 #ifdef USE_SIOUX
67f5d29d405b - Reorganized init code
Jack Jansen <jack.jansen@cwi.nl>
parents: 3411
diff changeset
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
67f5d29d405b - Reorganized init code
Jack Jansen <jack.jansen@cwi.nl>
parents: 3411
diff changeset
269 SIOUXSettings.asktosaveonclose = 0;
67f5d29d405b - Reorganized init code
Jack Jansen <jack.jansen@cwi.nl>
parents: 3411
diff changeset
270 SIOUXSettings.showstatusline = 0;
67f5d29d405b - Reorganized init code
Jack Jansen <jack.jansen@cwi.nl>
parents: 3411
diff changeset
271 SIOUXSettings.tabspaces = 4;
67f5d29d405b - Reorganized init code
Jack Jansen <jack.jansen@cwi.nl>
parents: 3411
diff changeset
272 #endif
67f5d29d405b - Reorganized init code
Jack Jansen <jack.jansen@cwi.nl>
parents: 3411
diff changeset
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);
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
286 #ifdef USE_ARGV0_CHDIR
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
67f5d29d405b - Reorganized init code
Jack Jansen <jack.jansen@cwi.nl>
parents: 3411
diff changeset
341 }
67f5d29d405b - Reorganized init code
Jack Jansen <jack.jansen@cwi.nl>
parents: 3411
diff changeset
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
67f5d29d405b - Reorganized init code
Jack Jansen <jack.jansen@cwi.nl>
parents: 3411
diff changeset
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 {
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
547 gusisioux_state = GUSISIOUX_STATE_LASTREAD;
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 }
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
549
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 /*
3236
463b26fa4d7b Added options for keeping window open on normal/error termination
Jack Jansen <jack.jansen@cwi.nl>
parents: 3228
diff changeset
551 ** Terminate application
463b26fa4d7b Added options for keeping window open on normal/error termination
Jack Jansen <jack.jansen@cwi.nl>
parents: 3228
diff changeset
552 */
4017
5dc8c042905b Guido: added some void's to declarations
Jack Jansen <jack.jansen@cwi.nl>
parents: 3930
diff changeset
553 void
3236
463b26fa4d7b Added options for keeping window open on normal/error termination
Jack Jansen <jack.jansen@cwi.nl>
parents: 3228
diff changeset
554 PyMac_Exit(status)
463b26fa4d7b Added options for keeping window open on normal/error termination
Jack Jansen <jack.jansen@cwi.nl>
parents: 3228
diff changeset
555 int status;
463b26fa4d7b Added options for keeping window open on normal/error termination
Jack Jansen <jack.jansen@cwi.nl>
parents: 3228
diff changeset
556 {
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
557 int keep = 0;
4911
21878c849626 Added profiler initialization/finalization code (if __profile__ is defined)
Jack Jansen <jack.jansen@cwi.nl>
parents: 4249
diff changeset
558
21878c849626 Added profiler initialization/finalization code (if __profile__ is defined)
Jack Jansen <jack.jansen@cwi.nl>
parents: 4249
diff changeset
559 #if __profile__ == 1
21878c849626 Added profiler initialization/finalization code (if __profile__ is defined)
Jack Jansen <jack.jansen@cwi.nl>
parents: 4249
diff changeset
560 ProfilerDump("\pPython Profiler Results");
21878c849626 Added profiler initialization/finalization code (if __profile__ is defined)
Jack Jansen <jack.jansen@cwi.nl>
parents: 4249
diff changeset
561 ProfilerTerm();
21878c849626 Added profiler initialization/finalization code (if __profile__ is defined)
Jack Jansen <jack.jansen@cwi.nl>
parents: 4249
diff changeset
562 #endif
3236
463b26fa4d7b Added options for keeping window open on normal/error termination
Jack Jansen <jack.jansen@cwi.nl>
parents: 3228
diff changeset
563
3247
20d74fa3b50b For MW Python, update titlebar of window when python exits.
Jack Jansen <jack.jansen@cwi.nl>
parents: 3236
diff changeset
564 #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
565 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
566 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
567 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
568 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
569 case 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
570 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
571 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
572 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
573 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
574 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
575 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
576 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
577 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
578 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
579 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
580 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
581 }
3247
20d74fa3b50b For MW Python, update titlebar of window when python exits.
Jack Jansen <jack.jansen@cwi.nl>
parents: 3236
diff changeset
582 if (keep) {
20d74fa3b50b For MW Python, update titlebar of window when python exits.
Jack Jansen <jack.jansen@cwi.nl>
parents: 3236
diff changeset
583 SIOUXSettings.standalone = 1;
20d74fa3b50b For MW Python, update titlebar of window when python exits.
Jack Jansen <jack.jansen@cwi.nl>
parents: 3236
diff changeset
584 SIOUXSettings.autocloseonquit = 0;
3477
a4f01d43dad6 Replaced non-ascii chars by backslash escapes
Jack Jansen <jack.jansen@cwi.nl>
parents: 3465
diff changeset
585 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
586 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
587 #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
588 /*
a56b44b35505 Workaround for bug in MSL and CWGUSI interaction that stopped the
Jack Jansen <jack.jansen@cwi.nl>
parents: 5270
diff changeset
589 ** 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
590 ** 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
591 */
a56b44b35505 Workaround for bug in MSL and CWGUSI interaction that stopped the
Jack Jansen <jack.jansen@cwi.nl>
parents: 5270
diff changeset
592 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
593 #endif
3247
20d74fa3b50b For MW Python, update titlebar of window when python exits.
Jack Jansen <jack.jansen@cwi.nl>
parents: 3236
diff changeset
594 }
3236
463b26fa4d7b Added options for keeping window open on normal/error termination
Jack Jansen <jack.jansen@cwi.nl>
parents: 3228
diff changeset
595 else
463b26fa4d7b Added options for keeping window open on normal/error termination
Jack Jansen <jack.jansen@cwi.nl>
parents: 3228
diff changeset
596 SIOUXSettings.autocloseonquit = 1;
4197
b70baba1c789 - Fixed PyMac_DoYield:
Jack Jansen <jack.jansen@cwi.nl>
parents: 4017
diff changeset
597 #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
598
463b26fa4d7b Added options for keeping window open on normal/error termination
Jack Jansen <jack.jansen@cwi.nl>
parents: 3228
diff changeset
599 exit(status);
463b26fa4d7b Added options for keeping window open on normal/error termination
Jack Jansen <jack.jansen@cwi.nl>
parents: 3228
diff changeset
600 }
2985
0d7100ffb61a This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents: 2313
diff changeset
601
0d7100ffb61a This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents: 2313
diff changeset
602 /* 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
603 char *
70855574516b - Added Py_GetProgramFullPath
Jack Jansen <jack.jansen@cwi.nl>
parents: 5431
diff changeset
604 Py_GetProgramFullPath()
70855574516b - Added Py_GetProgramFullPath
Jack Jansen <jack.jansen@cwi.nl>
parents: 5431
diff changeset
605 {
5961
35e5acc6532c Adapted for 1.5a3: Py_SupressPrintingFlag is gone, and
Jack Jansen <jack.jansen@cwi.nl>
parents: 5732
diff changeset
606 return orig_argv[0];
5617
70855574516b - Added Py_GetProgramFullPath
Jack Jansen <jack.jansen@cwi.nl>
parents: 5431
diff changeset
607 }
70855574516b - Added Py_GetProgramFullPath
Jack Jansen <jack.jansen@cwi.nl>
parents: 5431
diff changeset
608
2985
0d7100ffb61a This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents: 2313
diff changeset
609
0d7100ffb61a This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents: 2313
diff changeset
610 /* 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
611 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
612
0d7100ffb61a This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents: 2313
diff changeset
613 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
614 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
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 *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
617 *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
618 }
3930
52c19ee83a6b Guido's 1.4b2 fixes: Py_GetProgramName, Py_GetPrefix and Py_GetExecPrefix.
Jack Jansen <jack.jansen@cwi.nl>
parents: 3750
diff changeset
619
52c19ee83a6b Guido's 1.4b2 fixes: Py_GetProgramName, Py_GetPrefix and Py_GetExecPrefix.
Jack Jansen <jack.jansen@cwi.nl>
parents: 3750
diff changeset
620 /* 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
621
52c19ee83a6b Guido's 1.4b2 fixes: Py_GetProgramName, Py_GetPrefix and Py_GetExecPrefix.
Jack Jansen <jack.jansen@cwi.nl>
parents: 3750
diff changeset
622 char *
52c19ee83a6b Guido's 1.4b2 fixes: Py_GetProgramName, Py_GetPrefix and Py_GetExecPrefix.
Jack Jansen <jack.jansen@cwi.nl>
parents: 3750
diff changeset
623 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
624 {
6277
bb5472fb4885 sys.prefix and sys.exec_prefix are now set correctly.
Jack Jansen <jack.jansen@cwi.nl>
parents: 5961
diff changeset
625 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
626 }
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_GetExecPrefix()
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 }