Mercurial > cpython-lru_cache-weakref
annotate Mac/Python/macmain.c @ 22958:5f2dcdd09329 legacy-trunk
Got rid of ifdefs for long-obsolete GUSI versions and other stuff that is now standard (appearance, interned strings)
| author | Jack Jansen <jack.jansen@cwi.nl> |
|---|---|
| date | Thu, 11 Apr 2002 20:48:25 +0000 |
| parents | af71914d8bdf |
| children | 8291473fde3e |
| rev | line source |
|---|---|
|
1811
ea5b13d11a13
Added macmain.c (separate Mac specific main prog); bump version to 1.1
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1 /*********************************************************** |
|
5079
d6b292a33cfe
Added/updated copyright notices
Jack Jansen <jack.jansen@cwi.nl>
parents:
4962
diff
changeset
|
2 Copyright 1991-1997 by Stichting Mathematisch Centrum, Amsterdam, |
| 2091 | 3 The Netherlands. |
|
1811
ea5b13d11a13
Added macmain.c (separate Mac specific main prog); bump version to 1.1
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
4 |
|
ea5b13d11a13
Added macmain.c (separate Mac specific main prog); bump version to 1.1
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
5 All Rights Reserved |
|
ea5b13d11a13
Added macmain.c (separate Mac specific main prog); bump version to 1.1
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
6 |
|
ea5b13d11a13
Added macmain.c (separate Mac specific main prog); bump version to 1.1
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
7 Permission to use, copy, modify, and distribute this software and its |
|
ea5b13d11a13
Added macmain.c (separate Mac specific main prog); bump version to 1.1
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
8 documentation for any purpose and without fee is hereby granted, |
|
ea5b13d11a13
Added macmain.c (separate Mac specific main prog); bump version to 1.1
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
9 provided that the above copyright notice appear in all copies and that |
|
ea5b13d11a13
Added macmain.c (separate Mac specific main prog); bump version to 1.1
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
10 both that copyright notice and this permission notice appear in |
|
ea5b13d11a13
Added macmain.c (separate Mac specific main prog); bump version to 1.1
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
11 supporting documentation, and that the names of Stichting Mathematisch |
|
ea5b13d11a13
Added macmain.c (separate Mac specific main prog); bump version to 1.1
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
12 Centrum or CWI not be used in advertising or publicity pertaining to |
|
ea5b13d11a13
Added macmain.c (separate Mac specific main prog); bump version to 1.1
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
13 distribution of the software without specific, written prior permission. |
|
ea5b13d11a13
Added macmain.c (separate Mac specific main prog); bump version to 1.1
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
14 |
|
ea5b13d11a13
Added macmain.c (separate Mac specific main prog); bump version to 1.1
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
15 STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO |
|
ea5b13d11a13
Added macmain.c (separate Mac specific main prog); bump version to 1.1
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
16 THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND |
|
ea5b13d11a13
Added macmain.c (separate Mac specific main prog); bump version to 1.1
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
17 FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE |
|
ea5b13d11a13
Added macmain.c (separate Mac specific main prog); bump version to 1.1
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
18 FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
|
ea5b13d11a13
Added macmain.c (separate Mac specific main prog); bump version to 1.1
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
19 WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
|
ea5b13d11a13
Added macmain.c (separate Mac specific main prog); bump version to 1.1
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
20 ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT |
|
ea5b13d11a13
Added macmain.c (separate Mac specific main prog); bump version to 1.1
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
21 OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
|
ea5b13d11a13
Added macmain.c (separate Mac specific main prog); bump version to 1.1
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
22 |
|
ea5b13d11a13
Added macmain.c (separate Mac specific main prog); bump version to 1.1
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
23 ******************************************************************/ |
|
ea5b13d11a13
Added macmain.c (separate Mac specific main prog); bump version to 1.1
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
24 |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
25 /* Python interpreter main program */ |
|
1811
ea5b13d11a13
Added macmain.c (separate Mac specific main prog); bump version to 1.1
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
26 |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
27 #include "Python.h" |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
28 #include "pythonresources.h" |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
29 #include "import.h" |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
30 #include "marshal.h" |
| 4197 | 31 #include "macglue.h" |
|
2144
0e60cd207adb
must include rename2.h
Guido van Rossum <guido@python.org>
parents:
2091
diff
changeset
|
32 |
|
19748
c93d7d0857a2
Changes to make these work under OSX as the main program for a
Jack Jansen <jack.jansen@cwi.nl>
parents:
19641
diff
changeset
|
33 #ifdef WITHOUT_FRAMEWORKS |
|
2985
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 <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
|
35 #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
|
36 #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
|
37 #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
|
38 #include <Windows.h> |
|
3442
066a8ae4d406
Added missing include of Fonts.h
Jack Jansen <jack.jansen@cwi.nl>
parents:
3433
diff
changeset
|
39 #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
|
40 #include <Balloons.h> |
|
20779
61123b860b45
Mod by Donovan Preston to allow MacPython to live in a Python.app bundle and understand the __main__.py convention used there for applets. This gives us applets that work on both OS9 and OSX! (Although "applet" may not be the correct word for something that is going to be multimegabyte:-).
Jack Jansen <jack.jansen@cwi.nl>
parents:
19855
diff
changeset
|
41 #if TARGET_API_MAC_CARBON |
|
61123b860b45
Mod by Donovan Preston to allow MacPython to live in a Python.app bundle and understand the __main__.py convention used there for applets. This gives us applets that work on both OS9 and OSX! (Although "applet" may not be the correct word for something that is going to be multimegabyte:-).
Jack Jansen <jack.jansen@cwi.nl>
parents:
19855
diff
changeset
|
42 #include <CFBundle.h> |
|
61123b860b45
Mod by Donovan Preston to allow MacPython to live in a Python.app bundle and understand the __main__.py convention used there for applets. This gives us applets that work on both OS9 and OSX! (Although "applet" may not be the correct word for something that is going to be multimegabyte:-).
Jack Jansen <jack.jansen@cwi.nl>
parents:
19855
diff
changeset
|
43 #include <CFURL.h> |
|
61123b860b45
Mod by Donovan Preston to allow MacPython to live in a Python.app bundle and understand the __main__.py convention used there for applets. This gives us applets that work on both OS9 and OSX! (Although "applet" may not be the correct word for something that is going to be multimegabyte:-).
Jack Jansen <jack.jansen@cwi.nl>
parents:
19855
diff
changeset
|
44 #include <CFString.h> |
|
61123b860b45
Mod by Donovan Preston to allow MacPython to live in a Python.app bundle and understand the __main__.py convention used there for applets. This gives us applets that work on both OS9 and OSX! (Although "applet" may not be the correct word for something that is going to be multimegabyte:-).
Jack Jansen <jack.jansen@cwi.nl>
parents:
19855
diff
changeset
|
45 #include <CFBase.h> |
|
61123b860b45
Mod by Donovan Preston to allow MacPython to live in a Python.app bundle and understand the __main__.py convention used there for applets. This gives us applets that work on both OS9 and OSX! (Although "applet" may not be the correct word for something that is going to be multimegabyte:-).
Jack Jansen <jack.jansen@cwi.nl>
parents:
19855
diff
changeset
|
46 #include <CFArray.h> |
|
61123b860b45
Mod by Donovan Preston to allow MacPython to live in a Python.app bundle and understand the __main__.py convention used there for applets. This gives us applets that work on both OS9 and OSX! (Although "applet" may not be the correct word for something that is going to be multimegabyte:-).
Jack Jansen <jack.jansen@cwi.nl>
parents:
19855
diff
changeset
|
47 #endif /* TARGET_API_MAC_CARBON */ |
|
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
|
48 #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
|
49 #include <Appearance.h> |
|
19748
c93d7d0857a2
Changes to make these work under OSX as the main program for a
Jack Jansen <jack.jansen@cwi.nl>
parents:
19641
diff
changeset
|
50 #else |
|
c93d7d0857a2
Changes to make these work under OSX as the main program for a
Jack Jansen <jack.jansen@cwi.nl>
parents:
19641
diff
changeset
|
51 #include <Carbon/Carbon.h> |
|
c93d7d0857a2
Changes to make these work under OSX as the main program for a
Jack Jansen <jack.jansen@cwi.nl>
parents:
19641
diff
changeset
|
52 #endif /* WITHOUT_FRAMEWORKS */ |
|
c93d7d0857a2
Changes to make these work under OSX as the main program for a
Jack Jansen <jack.jansen@cwi.nl>
parents:
19641
diff
changeset
|
53 |
|
2277
df7e26b5c918
Added stuff so CodeWarrior isn't so verbose about its stdio windows
Jack Jansen <jack.jansen@cwi.nl>
parents:
2226
diff
changeset
|
54 #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
|
55 #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
|
56 #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
|
57 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
|
58 #if __profile__ == 1 |
|
21878c849626
Added profiler initialization/finalization code (if __profile__ is defined)
Jack Jansen <jack.jansen@cwi.nl>
parents:
4249
diff
changeset
|
59 #include <profiler.h> |
|
19748
c93d7d0857a2
Changes to make these work under OSX as the main program for a
Jack Jansen <jack.jansen@cwi.nl>
parents:
19641
diff
changeset
|
60 #endif /* __profile__ */ |
|
c93d7d0857a2
Changes to make these work under OSX as the main program for a
Jack Jansen <jack.jansen@cwi.nl>
parents:
19641
diff
changeset
|
61 #endif /* __MWERKS__ */ |
|
c93d7d0857a2
Changes to make these work under OSX as the main program for a
Jack Jansen <jack.jansen@cwi.nl>
parents:
19641
diff
changeset
|
62 |
|
12834
c2a0f2a81fa8
Removed (within an #ifdef) Carbon-incompatabilities:
Jack Jansen <jack.jansen@cwi.nl>
parents:
12593
diff
changeset
|
63 #include <unistd.h> |
| 13702 | 64 #ifdef USE_MAC_SHARED_LIBRARY |
| 65 extern PyMac_AddLibResources(void); | |
| 66 #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
|
67 |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
68 #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
|
69 |
|
14464
17cec96f75bc
Use same short banner message as unix/win Python.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14198
diff
changeset
|
70 #define COPYRIGHT \ |
|
17cec96f75bc
Use same short banner message as unix/win Python.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14198
diff
changeset
|
71 "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
|
72 |
|
4228
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4215
diff
changeset
|
73 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
|
74 |
|
3930
52c19ee83a6b
Guido's 1.4b2 fixes: Py_GetProgramName, Py_GetPrefix and Py_GetExecPrefix.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3750
diff
changeset
|
75 /* 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
|
76 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
|
77 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
|
78 |
|
16557
9ce9e0342cc1
Bit the bullet and added a private GUSISIOUX for Python. This makes the delayconsole and keepopen code neater. Also tells Sioux to behave better with events, and handles cmd-. during print better. The pythonpreferences have also changed due to this.
Jack Jansen <jack.jansen@cwi.nl>
parents:
15921
diff
changeset
|
79 /* A flag which remembers whether the user has acknowledged all the console |
|
9ce9e0342cc1
Bit the bullet and added a private GUSISIOUX for Python. This makes the delayconsole and keepopen code neater. Also tells Sioux to behave better with events, and handles cmd-. during print better. The pythonpreferences have also changed due to this.
Jack Jansen <jack.jansen@cwi.nl>
parents:
15921
diff
changeset
|
80 ** output (by typing something) |
|
9ce9e0342cc1
Bit the bullet and added a private GUSISIOUX for Python. This makes the delayconsole and keepopen code neater. Also tells Sioux to behave better with events, and handles cmd-. during print better. The pythonpreferences have also changed due to this.
Jack Jansen <jack.jansen@cwi.nl>
parents:
15921
diff
changeset
|
81 */ |
|
9ce9e0342cc1
Bit the bullet and added a private GUSISIOUX for Python. This makes the delayconsole and keepopen code neater. Also tells Sioux to behave better with events, and handles cmd-. during print better. The pythonpreferences have also changed due to this.
Jack Jansen <jack.jansen@cwi.nl>
parents:
15921
diff
changeset
|
82 #define STATE_UNKNOWN 0 |
|
9ce9e0342cc1
Bit the bullet and added a private GUSISIOUX for Python. This makes the delayconsole and keepopen code neater. Also tells Sioux to behave better with events, and handles cmd-. during print better. The pythonpreferences have also changed due to this.
Jack Jansen <jack.jansen@cwi.nl>
parents:
15921
diff
changeset
|
83 #define STATE_LASTREAD 1 |
|
9ce9e0342cc1
Bit the bullet and added a private GUSISIOUX for Python. This makes the delayconsole and keepopen code neater. Also tells Sioux to behave better with events, and handles cmd-. during print better. The pythonpreferences have also changed due to this.
Jack Jansen <jack.jansen@cwi.nl>
parents:
15921
diff
changeset
|
84 #define STATE_LASTWRITE 2 |
|
9ce9e0342cc1
Bit the bullet and added a private GUSISIOUX for Python. This makes the delayconsole and keepopen code neater. Also tells Sioux to behave better with events, and handles cmd-. during print better. The pythonpreferences have also changed due to this.
Jack Jansen <jack.jansen@cwi.nl>
parents:
15921
diff
changeset
|
85 int console_output_state = STATE_UNKNOWN; |
|
9ce9e0342cc1
Bit the bullet and added a private GUSISIOUX for Python. This makes the delayconsole and keepopen code neater. Also tells Sioux to behave better with events, and handles cmd-. during print better. The pythonpreferences have also changed due to this.
Jack Jansen <jack.jansen@cwi.nl>
parents:
15921
diff
changeset
|
86 |
|
15192
1c63e224f616
Made options global (as PyMac_options) so macosmodule can access it.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14773
diff
changeset
|
87 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
|
88 |
|
19855
5568b320914f
Mods by Donovan Preston (with changes by me to make them "go with the flow")
Jack Jansen <jack.jansen@cwi.nl>
parents:
19851
diff
changeset
|
89 static void Py_Main(int, char **, char *); /* Forward */ |
|
13542
ddd6138c9e6f
ANSIfication step 1: get rid of Py_PROTO and Py_FPROTO.
Jack Jansen <jack.jansen@cwi.nl>
parents:
12855
diff
changeset
|
90 void PyMac_Exit(int); /* Forward */ |
|
4017
5dc8c042905b
Guido: added some void's to declarations
Jack Jansen <jack.jansen@cwi.nl>
parents:
3930
diff
changeset
|
91 |
| 3422 | 92 /* Initialize the Mac toolbox world */ |
| 93 | |
| 94 static void | |
|
19748
c93d7d0857a2
Changes to make these work under OSX as the main program for a
Jack Jansen <jack.jansen@cwi.nl>
parents:
19641
diff
changeset
|
95 init_mac_world(void) |
| 3422 | 96 { |
|
13608
a901c2c0166b
Test for TARGET_API_MAC_CARBON with #if in stead of #ifdef.
Jack Jansen <jack.jansen@cwi.nl>
parents:
13547
diff
changeset
|
97 #if !TARGET_API_MAC_CARBON |
|
12834
c2a0f2a81fa8
Removed (within an #ifdef) Carbon-incompatabilities:
Jack Jansen <jack.jansen@cwi.nl>
parents:
12593
diff
changeset
|
98 /* These aren't needed for carbon */ |
| 3422 | 99 MaxApplZone(); |
| 100 InitGraf(&qd.thePort); | |
| 101 InitFonts(); | |
| 102 InitWindows(); | |
| 103 TEInit(); | |
| 104 InitDialogs((long)0); | |
| 105 InitMenus(); | |
|
12834
c2a0f2a81fa8
Removed (within an #ifdef) Carbon-incompatabilities:
Jack Jansen <jack.jansen@cwi.nl>
parents:
12593
diff
changeset
|
106 #endif |
| 3422 | 107 InitCursor(); |
| 108 } | |
| 109 | |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
110 /* |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
111 ** 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
|
112 */ |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
113 static void |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
114 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
|
115 { |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
116 KeyMap rmap; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
117 unsigned char *map; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
118 short item, type; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
119 ControlHandle handle; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
120 DialogPtr dialog; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
121 Rect rect; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
122 |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
123 /* |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
124 ** 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
|
125 ** similarly of <option> isn't pressed. |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
126 */ |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
127 if (p->nointopt) return; |
|
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 GetKeys(rmap); |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
130 map = (unsigned char *)rmap; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
131 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
|
132 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 dialog = GetNewDialog(OPT_DIALOG, NULL, (WindowPtr)-1); |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
135 if ( dialog == NULL ) { |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
136 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
|
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 SetDialogDefaultItem(dialog, OPT_OK); |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
140 SetDialogCancelItem(dialog, OPT_CANCEL); |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
141 |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
142 /* Set default values */ |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
143 #define SET_OPT_ITEM(num, var) \ |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
144 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
|
145 SetControlValue(handle, (short)p->var); |
|
4238
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_OPT_ITEM(OPT_INSPECT, inspect); |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
148 SET_OPT_ITEM(OPT_VERBOSE, verbose); |
|
19641
c9647fa78f05
Added preferences/startup options for division warning
Jack Jansen <jack.jansen@cwi.nl>
parents:
18962
diff
changeset
|
149 /* OPT_VERBOSEVERBOSE is default off */ |
|
6293
6c0a2658a156
Added old-exception and no-site-python options and balloon help
Jack Jansen <jack.jansen@cwi.nl>
parents:
6277
diff
changeset
|
150 SET_OPT_ITEM(OPT_OPTIMIZE, optimize); |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
151 SET_OPT_ITEM(OPT_UNBUFFERED, unbuffered); |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
152 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
|
153 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
|
154 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
|
155 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
|
156 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
|
157 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
|
158 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
|
159 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
|
160 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
|
161 /* 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
|
162 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
|
163 SET_OPT_ITEM(OPT_NOSITE, nosite); |
|
19641
c9647fa78f05
Added preferences/startup options for division warning
Jack Jansen <jack.jansen@cwi.nl>
parents:
18962
diff
changeset
|
164 SET_OPT_ITEM(OPT_DIVISIONWARN, divisionwarn); |
|
c9647fa78f05
Added preferences/startup options for division warning
Jack Jansen <jack.jansen@cwi.nl>
parents:
18962
diff
changeset
|
165 SET_OPT_ITEM(OPT_UNIXNEWLINES, unixnewlines); |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
166 /* The rest are not settable interactively */ |
| 3422 | 167 |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
168 #undef SET_OPT_ITEM |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
169 |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
170 while (1) { |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
171 handle = NULL; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
172 ModalDialog(NULL, &item); |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
173 if ( item == OPT_OK ) |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
174 break; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
175 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
|
176 DisposeDialog(dialog); |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
177 exit(0); |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
178 } |
|
13608
a901c2c0166b
Test for TARGET_API_MAC_CARBON with #if in stead of #ifdef.
Jack Jansen <jack.jansen@cwi.nl>
parents:
13547
diff
changeset
|
179 #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
|
180 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
|
181 HMSetBalloons(!HMGetBalloons()); |
|
6c0a2658a156
Added old-exception and no-site-python options and balloon help
Jack Jansen <jack.jansen@cwi.nl>
parents:
6277
diff
changeset
|
182 } |
|
12834
c2a0f2a81fa8
Removed (within an #ifdef) Carbon-incompatabilities:
Jack Jansen <jack.jansen@cwi.nl>
parents:
12593
diff
changeset
|
183 #endif |
|
19748
c93d7d0857a2
Changes to make these work under OSX as the main program for a
Jack Jansen <jack.jansen@cwi.nl>
parents:
19641
diff
changeset
|
184 #if !TARGET_API_MAC_OSX |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
185 if ( item == OPT_CMDLINE ) { |
|
19748
c93d7d0857a2
Changes to make these work under OSX as the main program for a
Jack Jansen <jack.jansen@cwi.nl>
parents:
19641
diff
changeset
|
186 int old_argc = *argcp; |
|
c93d7d0857a2
Changes to make these work under OSX as the main program for a
Jack Jansen <jack.jansen@cwi.nl>
parents:
19641
diff
changeset
|
187 int i; |
|
4238
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 } |
|
19748
c93d7d0857a2
Changes to make these work under OSX as the main program for a
Jack Jansen <jack.jansen@cwi.nl>
parents:
19641
diff
changeset
|
205 #endif /* !TARGET_API_MAC_OSX */ |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
206 #define OPT_ITEM(num, var) \ |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
207 if ( item == (num) ) { \ |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
208 p->var = !p->var; \ |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
209 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
|
210 SetControlValue(handle, (short)p->var); \ |
|
4238
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 |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
213 OPT_ITEM(OPT_INSPECT, inspect); |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
214 OPT_ITEM(OPT_VERBOSE, verbose); |
|
19641
c9647fa78f05
Added preferences/startup options for division warning
Jack Jansen <jack.jansen@cwi.nl>
parents:
18962
diff
changeset
|
215 if ( item == OPT_VERBOSEVERBOSE ) { |
|
c9647fa78f05
Added preferences/startup options for division warning
Jack Jansen <jack.jansen@cwi.nl>
parents:
18962
diff
changeset
|
216 if ( p->verbose == 2 ) |
|
c9647fa78f05
Added preferences/startup options for division warning
Jack Jansen <jack.jansen@cwi.nl>
parents:
18962
diff
changeset
|
217 p->verbose = 1; |
|
c9647fa78f05
Added preferences/startup options for division warning
Jack Jansen <jack.jansen@cwi.nl>
parents:
18962
diff
changeset
|
218 else |
|
c9647fa78f05
Added preferences/startup options for division warning
Jack Jansen <jack.jansen@cwi.nl>
parents:
18962
diff
changeset
|
219 p->verbose = 2; |
|
c9647fa78f05
Added preferences/startup options for division warning
Jack Jansen <jack.jansen@cwi.nl>
parents:
18962
diff
changeset
|
220 GetDialogItem(dialog, OPT_VERBOSE, &type, (Handle *)&handle, &rect); |
|
c9647fa78f05
Added preferences/startup options for division warning
Jack Jansen <jack.jansen@cwi.nl>
parents:
18962
diff
changeset
|
221 SetControlValue(handle, 1); |
|
c9647fa78f05
Added preferences/startup options for division warning
Jack Jansen <jack.jansen@cwi.nl>
parents:
18962
diff
changeset
|
222 } |
|
c9647fa78f05
Added preferences/startup options for division warning
Jack Jansen <jack.jansen@cwi.nl>
parents:
18962
diff
changeset
|
223 GetDialogItem(dialog, OPT_VERBOSEVERBOSE, &type, (Handle *)&handle, &rect); |
|
c9647fa78f05
Added preferences/startup options for division warning
Jack Jansen <jack.jansen@cwi.nl>
parents:
18962
diff
changeset
|
224 SetControlValue(handle, p->verbose == 2); |
|
6293
6c0a2658a156
Added old-exception and no-site-python options and balloon help
Jack Jansen <jack.jansen@cwi.nl>
parents:
6277
diff
changeset
|
225 OPT_ITEM(OPT_OPTIMIZE, optimize); |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
226 OPT_ITEM(OPT_UNBUFFERED, unbuffered); |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
227 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
|
228 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
|
229 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
|
230 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
|
231 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
|
232 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
|
233 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
|
234 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
|
235 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
|
236 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
|
237 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
|
238 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
|
239 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
|
240 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
|
241 OPT_ITEM(OPT_NOSITE, nosite); |
|
19641
c9647fa78f05
Added preferences/startup options for division warning
Jack Jansen <jack.jansen@cwi.nl>
parents:
18962
diff
changeset
|
242 OPT_ITEM(OPT_DIVISIONWARN, divisionwarn); |
|
c9647fa78f05
Added preferences/startup options for division warning
Jack Jansen <jack.jansen@cwi.nl>
parents:
18962
diff
changeset
|
243 OPT_ITEM(OPT_UNIXNEWLINES, unixnewlines); |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
244 |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
245 #undef OPT_ITEM |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
246 } |
|
5270
de9d0c5249b0
Changed the few old routine names still used to the new ones
Jack Jansen <jack.jansen@cwi.nl>
parents:
5153
diff
changeset
|
247 DisposeDialog(dialog); |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
248 } |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
249 |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
250 /* |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
251 ** Initialization code, shared by interpreter and applets |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
252 */ |
| 3422 | 253 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
|
254 init_common(int *argcp, char ***argvp, int embedded) |
| 3422 | 255 { |
|
4228
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4215
diff
changeset
|
256 /* Remember resource fork refnum, for later */ |
|
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4215
diff
changeset
|
257 PyMac_AppRefNum = CurResFile(); |
|
84444ea3f5f6
- Rationalized override preferences support, by remembering
Jack Jansen <jack.jansen@cwi.nl>
parents:
4215
diff
changeset
|
258 |
| 3422 | 259 /* Initialize toolboxes */ |
| 260 init_mac_world(); | |
| 261 | |
| 262 #ifdef USE_MAC_SHARED_LIBRARY | |
| 263 /* 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
|
264 (void)PyMac_init_process_location(); |
| 3422 | 265 PyMac_AddLibResources(); |
| 266 #endif | |
| 267 | |
|
12281
51c0c3b6d919
Started on GUSI2 and threading support.
Jack Jansen <jack.jansen@cwi.nl>
parents:
11529
diff
changeset
|
268 #if defined(USE_GUSI) |
|
5617
70855574516b
- Added Py_GetProgramFullPath
Jack Jansen <jack.jansen@cwi.nl>
parents:
5431
diff
changeset
|
269 atexit(PyMac_StopGUSISpin); |
|
12281
51c0c3b6d919
Started on GUSI2 and threading support.
Jack Jansen <jack.jansen@cwi.nl>
parents:
11529
diff
changeset
|
270 #endif |
| 3422 | 271 |
| 272 #ifdef USE_SIOUX | |
| 273 /* Set various SIOUX flags. Some are changed later based on options */ | |
| 274 SIOUXSettings.asktosaveonclose = 0; | |
| 275 SIOUXSettings.showstatusline = 0; | |
| 276 SIOUXSettings.tabspaces = 4; | |
| 277 #endif | |
| 278 | |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
279 /* 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
|
280 PyMac_options.keep_console = POPT_KEEPCONSOLE_OUTPUT; /* default-default */ |
|
19748
c93d7d0857a2
Changes to make these work under OSX as the main program for a
Jack Jansen <jack.jansen@cwi.nl>
parents:
19641
diff
changeset
|
281 PyMac_options.unixnewlines = 1; |
|
c93d7d0857a2
Changes to make these work under OSX as the main program for a
Jack Jansen <jack.jansen@cwi.nl>
parents:
19641
diff
changeset
|
282 #if !TARGET_API_MAC_OSX |
|
15192
1c63e224f616
Made options global (as PyMac_options) so macosmodule can access it.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14773
diff
changeset
|
283 PyMac_PreferenceOptions(&PyMac_options); |
|
19748
c93d7d0857a2
Changes to make these work under OSX as the main program for a
Jack Jansen <jack.jansen@cwi.nl>
parents:
19641
diff
changeset
|
284 #endif |
|
c93d7d0857a2
Changes to make these work under OSX as the main program for a
Jack Jansen <jack.jansen@cwi.nl>
parents:
19641
diff
changeset
|
285 |
|
4962
765d962f4449
Added PyMac_Initialize() routine, to be used by embedding programs (in
Jack Jansen <jack.jansen@cwi.nl>
parents:
4911
diff
changeset
|
286 if ( embedded ) { |
|
765d962f4449
Added PyMac_Initialize() routine, to be used by embedding programs (in
Jack Jansen <jack.jansen@cwi.nl>
parents:
4911
diff
changeset
|
287 static char *emb_argv[] = {"embedded-python", 0}; |
|
765d962f4449
Added PyMac_Initialize() routine, to be used by embedding programs (in
Jack Jansen <jack.jansen@cwi.nl>
parents:
4911
diff
changeset
|
288 |
|
765d962f4449
Added PyMac_Initialize() routine, to be used by embedding programs (in
Jack Jansen <jack.jansen@cwi.nl>
parents:
4911
diff
changeset
|
289 *argcp = 1; |
|
765d962f4449
Added PyMac_Initialize() routine, to be used by embedding programs (in
Jack Jansen <jack.jansen@cwi.nl>
parents:
4911
diff
changeset
|
290 *argvp = emb_argv; |
|
765d962f4449
Added PyMac_Initialize() routine, to be used by embedding programs (in
Jack Jansen <jack.jansen@cwi.nl>
parents:
4911
diff
changeset
|
291 } else { |
|
21619
5d009e5e13f7
In MachoPython, don't simulate argc/argv unless we have argc=1 and argv[1]
Jack Jansen <jack.jansen@cwi.nl>
parents:
20794
diff
changeset
|
292 /* Create argc/argv. Do it before we go into the options event loop. |
|
5d009e5e13f7
In MachoPython, don't simulate argc/argv unless we have argc=1 and argv[1]
Jack Jansen <jack.jansen@cwi.nl>
parents:
20794
diff
changeset
|
293 ** In MachoPython we skip this step if we already have plausible |
|
5d009e5e13f7
In MachoPython, don't simulate argc/argv unless we have argc=1 and argv[1]
Jack Jansen <jack.jansen@cwi.nl>
parents:
20794
diff
changeset
|
294 ** command line arguments. |
|
5d009e5e13f7
In MachoPython, don't simulate argc/argv unless we have argc=1 and argv[1]
Jack Jansen <jack.jansen@cwi.nl>
parents:
20794
diff
changeset
|
295 */ |
|
5d009e5e13f7
In MachoPython, don't simulate argc/argv unless we have argc=1 and argv[1]
Jack Jansen <jack.jansen@cwi.nl>
parents:
20794
diff
changeset
|
296 #if TARGET_API_MAC_OSX |
|
5d009e5e13f7
In MachoPython, don't simulate argc/argv unless we have argc=1 and argv[1]
Jack Jansen <jack.jansen@cwi.nl>
parents:
20794
diff
changeset
|
297 if (*argcp == 2 && strncmp((*argvp)[1], "-psn_", 5) == 0) |
|
5d009e5e13f7
In MachoPython, don't simulate argc/argv unless we have argc=1 and argv[1]
Jack Jansen <jack.jansen@cwi.nl>
parents:
20794
diff
changeset
|
298 #endif |
|
5d009e5e13f7
In MachoPython, don't simulate argc/argv unless we have argc=1 and argv[1]
Jack Jansen <jack.jansen@cwi.nl>
parents:
20794
diff
changeset
|
299 *argcp = PyMac_GetArgv(argvp, PyMac_options.noargs); |
|
19748
c93d7d0857a2
Changes to make these work under OSX as the main program for a
Jack Jansen <jack.jansen@cwi.nl>
parents:
19641
diff
changeset
|
300 #if !TARGET_API_MAC_OSX |
|
15921
489692e79151
Trigger keep-console-open on GUSISIOUX_STATE_UNKNOWN. Better than the previous complicated expression.
Jack Jansen <jack.jansen@cwi.nl>
parents:
15826
diff
changeset
|
301 #ifndef NO_ARGV0_CHDIR |
|
13638
58398c0f948b
MacPython on MacOSX DP4 gets started in the wrong directory. The workaround (ifdeffed by USE_ARGV0_CHDIR) is to do a chdir() to the folder part of our executable name.
Jack Jansen <jack.jansen@cwi.nl>
parents:
13608
diff
changeset
|
302 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
|
303 /* 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
|
304 ** 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
|
305 */ |
|
58398c0f948b
MacPython on MacOSX DP4 gets started in the wrong directory. The workaround (ifdeffed by USE_ARGV0_CHDIR) is to do a chdir() to the folder part of our executable name.
Jack Jansen <jack.jansen@cwi.nl>
parents:
13608
diff
changeset
|
306 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
|
307 |
|
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
|
308 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
|
309 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
|
310 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
|
311 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
|
312 } |
|
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
|
313 #endif |
|
19748
c93d7d0857a2
Changes to make these work under OSX as the main program for a
Jack Jansen <jack.jansen@cwi.nl>
parents:
19641
diff
changeset
|
314 #endif |
|
4962
765d962f4449
Added PyMac_Initialize() routine, to be used by embedding programs (in
Jack Jansen <jack.jansen@cwi.nl>
parents:
4911
diff
changeset
|
315 /* 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
|
316 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
|
317 } |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
318 |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
319 /* 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
|
320 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
|
321 /* 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
|
322 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
|
323 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
|
324 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
|
325 Py_TabcheckFlag = PyMac_options.tabwarn; |
|
19641
c9647fa78f05
Added preferences/startup options for division warning
Jack Jansen <jack.jansen@cwi.nl>
parents:
18962
diff
changeset
|
326 Py_DivisionWarningFlag = PyMac_options.divisionwarn; |
|
19748
c93d7d0857a2
Changes to make these work under OSX as the main program for a
Jack Jansen <jack.jansen@cwi.nl>
parents:
19641
diff
changeset
|
327 #if !TARGET_API_MAC_OSX |
|
15192
1c63e224f616
Made options global (as PyMac_options) so macosmodule can access it.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14773
diff
changeset
|
328 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
|
329 /* 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
|
330 PyMacSchedParams scp; |
|
fb170ce82951
Removed old scheduler parameterizing calls and replaced with something
Jack Jansen <jack.jansen@cwi.nl>
parents:
5617
diff
changeset
|
331 |
|
fb170ce82951
Removed old scheduler parameterizing calls and replaced with something
Jack Jansen <jack.jansen@cwi.nl>
parents:
5617
diff
changeset
|
332 PyMac_GetSchedParams(&scp); |
|
fb170ce82951
Removed old scheduler parameterizing calls and replaced with something
Jack Jansen <jack.jansen@cwi.nl>
parents:
5617
diff
changeset
|
333 scp.process_events = 0; |
|
fb170ce82951
Removed old scheduler parameterizing calls and replaced with something
Jack Jansen <jack.jansen@cwi.nl>
parents:
5617
diff
changeset
|
334 /* 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
|
335 PyMac_SetSchedParams(&scp); |
|
fb170ce82951
Removed old scheduler parameterizing calls and replaced with something
Jack Jansen <jack.jansen@cwi.nl>
parents:
5617
diff
changeset
|
336 } |
|
19748
c93d7d0857a2
Changes to make these work under OSX as the main program for a
Jack Jansen <jack.jansen@cwi.nl>
parents:
19641
diff
changeset
|
337 #endif /* !TARGET_API_MAC_OSX */ |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
338 |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
339 /* 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
|
340 if (PyMac_options.unbuffered) { |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
341 #ifndef MPW |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
342 setbuf(stdout, (char *)NULL); |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
343 setbuf(stderr, (char *)NULL); |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
344 #else |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
345 /* 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
|
346 setvbuf(stdout, (char *)NULL, _IOLBF, BUFSIZ); |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
347 setvbuf(stderr, (char *)NULL, _IOLBF, BUFSIZ); |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
348 #endif |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
349 } |
|
4911
21878c849626
Added profiler initialization/finalization code (if __profile__ is defined)
Jack Jansen <jack.jansen@cwi.nl>
parents:
4249
diff
changeset
|
350 #if __profile__ == 1 |
|
21878c849626
Added profiler initialization/finalization code (if __profile__ is defined)
Jack Jansen <jack.jansen@cwi.nl>
parents:
4249
diff
changeset
|
351 /* 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
|
352 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
|
353 #endif |
|
5961
35e5acc6532c
Adapted for 1.5a3: Py_SupressPrintingFlag is gone, and
Jack Jansen <jack.jansen@cwi.nl>
parents:
5732
diff
changeset
|
354 |
|
35e5acc6532c
Adapted for 1.5a3: Py_SupressPrintingFlag is gone, and
Jack Jansen <jack.jansen@cwi.nl>
parents:
5732
diff
changeset
|
355 /* 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
|
356 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
|
357 orig_argv = *argvp; |
|
35e5acc6532c
Adapted for 1.5a3: Py_SupressPrintingFlag is gone, and
Jack Jansen <jack.jansen@cwi.nl>
parents:
5732
diff
changeset
|
358 Py_SetProgramName((*argvp)[0]); |
| 3422 | 359 } |
| 360 | |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
361 /* |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
362 ** Inspection mode after script/applet termination |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
363 */ |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
364 static int |
|
19748
c93d7d0857a2
Changes to make these work under OSX as the main program for a
Jack Jansen <jack.jansen@cwi.nl>
parents:
19641
diff
changeset
|
365 run_inspect(void) |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
366 { |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
367 int sts = 0; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
368 |
|
15192
1c63e224f616
Made options global (as PyMac_options) so macosmodule can access it.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14773
diff
changeset
|
369 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
|
370 sts = PyRun_AnyFile(stdin, "<stdin>") != 0; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
371 return sts; |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
372 } |
|
19851
f3f694111ea0
Failing to import macfsn is not a fatal error.
Jack Jansen <jack.jansen@cwi.nl>
parents:
19748
diff
changeset
|
373 |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
374 #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
|
375 /* Applet support */ |
|
2031
1739f00ffc86
Enlarged version buffer (nobody expects the spanish inquisition:-)
Jack Jansen <jack.jansen@cwi.nl>
parents:
1821
diff
changeset
|
376 |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
377 /* 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
|
378 static int |
|
19748
c93d7d0857a2
Changes to make these work under OSX as the main program for a
Jack Jansen <jack.jansen@cwi.nl>
parents:
19641
diff
changeset
|
379 run_main_resource(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
|
380 { |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
381 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
|
382 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
|
383 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
|
384 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
|
385 |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
386 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
|
387 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
|
388 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
|
389 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
|
390 } |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
391 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
|
392 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
|
393 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
|
394 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
|
395 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
|
396 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
|
397 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
|
398 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
|
399 } |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
400 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
|
401 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
|
402 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
|
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 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
|
407 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
|
408 } |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
409 |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
410 /* 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
|
411 void |
|
19748
c93d7d0857a2
Changes to make these work under OSX as the main program for a
Jack Jansen <jack.jansen@cwi.nl>
parents:
19641
diff
changeset
|
412 PyMac_InitApplet(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
|
413 { |
|
1811
ea5b13d11a13
Added macmain.c (separate Mac specific main prog); bump version to 1.1
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
414 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
|
415 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
|
416 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
|
417 |
|
4962
765d962f4449
Added PyMac_Initialize() routine, to be used by embedding programs (in
Jack Jansen <jack.jansen@cwi.nl>
parents:
4911
diff
changeset
|
418 init_common(&argc, &argv, 0); |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
419 |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
420 Py_Initialize(); |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
421 PySys_SetArgv(argc, argv); |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
422 |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
423 err = run_main_resource(); |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
424 |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
425 err = (run_inspect() || err); |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
426 |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
427 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
|
428 fflush(stdout); |
|
3236
463b26fa4d7b
Added options for keeping window open on normal/error termination
Jack Jansen <jack.jansen@cwi.nl>
parents:
3228
diff
changeset
|
429 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
|
430 /* 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
|
431 } |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
432 |
|
4962
765d962f4449
Added PyMac_Initialize() routine, to be used by embedding programs (in
Jack Jansen <jack.jansen@cwi.nl>
parents:
4911
diff
changeset
|
433 /* |
|
765d962f4449
Added PyMac_Initialize() routine, to be used by embedding programs (in
Jack Jansen <jack.jansen@cwi.nl>
parents:
4911
diff
changeset
|
434 ** 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
|
435 */ |
|
765d962f4449
Added PyMac_Initialize() routine, to be used by embedding programs (in
Jack Jansen <jack.jansen@cwi.nl>
parents:
4911
diff
changeset
|
436 void |
|
19748
c93d7d0857a2
Changes to make these work under OSX as the main program for a
Jack Jansen <jack.jansen@cwi.nl>
parents:
19641
diff
changeset
|
437 PyMac_Initialize(void) |
|
4962
765d962f4449
Added PyMac_Initialize() routine, to be used by embedding programs (in
Jack Jansen <jack.jansen@cwi.nl>
parents:
4911
diff
changeset
|
438 { |
|
765d962f4449
Added PyMac_Initialize() routine, to be used by embedding programs (in
Jack Jansen <jack.jansen@cwi.nl>
parents:
4911
diff
changeset
|
439 int argc; |
|
765d962f4449
Added PyMac_Initialize() routine, to be used by embedding programs (in
Jack Jansen <jack.jansen@cwi.nl>
parents:
4911
diff
changeset
|
440 char **argv; |
|
765d962f4449
Added PyMac_Initialize() routine, to be used by embedding programs (in
Jack Jansen <jack.jansen@cwi.nl>
parents:
4911
diff
changeset
|
441 |
|
765d962f4449
Added PyMac_Initialize() routine, to be used by embedding programs (in
Jack Jansen <jack.jansen@cwi.nl>
parents:
4911
diff
changeset
|
442 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
|
443 Py_Initialize(); |
|
765d962f4449
Added PyMac_Initialize() routine, to be used by embedding programs (in
Jack Jansen <jack.jansen@cwi.nl>
parents:
4911
diff
changeset
|
444 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
|
445 } |
|
765d962f4449
Added PyMac_Initialize() routine, to be used by embedding programs (in
Jack Jansen <jack.jansen@cwi.nl>
parents:
4911
diff
changeset
|
446 |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
447 #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
|
448 |
|
20779
61123b860b45
Mod by Donovan Preston to allow MacPython to live in a Python.app bundle and understand the __main__.py convention used there for applets. This gives us applets that work on both OS9 and OSX! (Although "applet" may not be the correct word for something that is going to be multimegabyte:-).
Jack Jansen <jack.jansen@cwi.nl>
parents:
19855
diff
changeset
|
449 #if TARGET_API_MAC_OSX /* Really: TARGET_API_MAC_CARBON */ |
|
19855
5568b320914f
Mods by Donovan Preston (with changes by me to make them "go with the flow")
Jack Jansen <jack.jansen@cwi.nl>
parents:
19851
diff
changeset
|
450 |
|
5568b320914f
Mods by Donovan Preston (with changes by me to make them "go with the flow")
Jack Jansen <jack.jansen@cwi.nl>
parents:
19851
diff
changeset
|
451 static int |
|
22657
af71914d8bdf
Allow .pyc files as applets as well as .py files. .py files have
Jack Jansen <jack.jansen@cwi.nl>
parents:
22654
diff
changeset
|
452 locateResourcePy(CFStringRef resourceType, char *resourceName, char *resourceURLCStr, int length) |
|
af71914d8bdf
Allow .pyc files as applets as well as .py files. .py files have
Jack Jansen <jack.jansen@cwi.nl>
parents:
22654
diff
changeset
|
453 { |
|
19855
5568b320914f
Mods by Donovan Preston (with changes by me to make them "go with the flow")
Jack Jansen <jack.jansen@cwi.nl>
parents:
19851
diff
changeset
|
454 CFBundleRef mainBundle = NULL; |
|
5568b320914f
Mods by Donovan Preston (with changes by me to make them "go with the flow")
Jack Jansen <jack.jansen@cwi.nl>
parents:
19851
diff
changeset
|
455 CFURLRef URL, absoluteURL; |
|
5568b320914f
Mods by Donovan Preston (with changes by me to make them "go with the flow")
Jack Jansen <jack.jansen@cwi.nl>
parents:
19851
diff
changeset
|
456 CFStringRef filenameString, filepathString, rsrcString; |
|
5568b320914f
Mods by Donovan Preston (with changes by me to make them "go with the flow")
Jack Jansen <jack.jansen@cwi.nl>
parents:
19851
diff
changeset
|
457 CFIndex size, i; |
|
20779
61123b860b45
Mod by Donovan Preston to allow MacPython to live in a Python.app bundle and understand the __main__.py convention used there for applets. This gives us applets that work on both OS9 and OSX! (Although "applet" may not be the correct word for something that is going to be multimegabyte:-).
Jack Jansen <jack.jansen@cwi.nl>
parents:
19855
diff
changeset
|
458 CFArrayRef arrayRef = NULL; |
|
61123b860b45
Mod by Donovan Preston to allow MacPython to live in a Python.app bundle and understand the __main__.py convention used there for applets. This gives us applets that work on both OS9 and OSX! (Although "applet" may not be the correct word for something that is going to be multimegabyte:-).
Jack Jansen <jack.jansen@cwi.nl>
parents:
19855
diff
changeset
|
459 int success = 0; |
|
61123b860b45
Mod by Donovan Preston to allow MacPython to live in a Python.app bundle and understand the __main__.py convention used there for applets. This gives us applets that work on both OS9 and OSX! (Although "applet" may not be the correct word for something that is going to be multimegabyte:-).
Jack Jansen <jack.jansen@cwi.nl>
parents:
19855
diff
changeset
|
460 |
|
61123b860b45
Mod by Donovan Preston to allow MacPython to live in a Python.app bundle and understand the __main__.py convention used there for applets. This gives us applets that work on both OS9 and OSX! (Although "applet" may not be the correct word for something that is going to be multimegabyte:-).
Jack Jansen <jack.jansen@cwi.nl>
parents:
19855
diff
changeset
|
461 #if TARGET_API_MAC_OSX |
|
61123b860b45
Mod by Donovan Preston to allow MacPython to live in a Python.app bundle and understand the __main__.py convention used there for applets. This gives us applets that work on both OS9 and OSX! (Although "applet" may not be the correct word for something that is going to be multimegabyte:-).
Jack Jansen <jack.jansen@cwi.nl>
parents:
19855
diff
changeset
|
462 CFURLPathStyle thePathStyle = kCFURLPOSIXPathStyle; |
|
61123b860b45
Mod by Donovan Preston to allow MacPython to live in a Python.app bundle and understand the __main__.py convention used there for applets. This gives us applets that work on both OS9 and OSX! (Although "applet" may not be the correct word for something that is going to be multimegabyte:-).
Jack Jansen <jack.jansen@cwi.nl>
parents:
19855
diff
changeset
|
463 #else |
|
61123b860b45
Mod by Donovan Preston to allow MacPython to live in a Python.app bundle and understand the __main__.py convention used there for applets. This gives us applets that work on both OS9 and OSX! (Although "applet" may not be the correct word for something that is going to be multimegabyte:-).
Jack Jansen <jack.jansen@cwi.nl>
parents:
19855
diff
changeset
|
464 CFURLPathStyle thePathStyle = kCFURLHFSPathStyle; |
|
61123b860b45
Mod by Donovan Preston to allow MacPython to live in a Python.app bundle and understand the __main__.py convention used there for applets. This gives us applets that work on both OS9 and OSX! (Although "applet" may not be the correct word for something that is going to be multimegabyte:-).
Jack Jansen <jack.jansen@cwi.nl>
parents:
19855
diff
changeset
|
465 #endif |
|
19855
5568b320914f
Mods by Donovan Preston (with changes by me to make them "go with the flow")
Jack Jansen <jack.jansen@cwi.nl>
parents:
19851
diff
changeset
|
466 |
|
5568b320914f
Mods by Donovan Preston (with changes by me to make them "go with the flow")
Jack Jansen <jack.jansen@cwi.nl>
parents:
19851
diff
changeset
|
467 /* Get a reference to our main bundle */ |
|
5568b320914f
Mods by Donovan Preston (with changes by me to make them "go with the flow")
Jack Jansen <jack.jansen@cwi.nl>
parents:
19851
diff
changeset
|
468 mainBundle = CFBundleGetMainBundle(); |
|
5568b320914f
Mods by Donovan Preston (with changes by me to make them "go with the flow")
Jack Jansen <jack.jansen@cwi.nl>
parents:
19851
diff
changeset
|
469 |
|
20779
61123b860b45
Mod by Donovan Preston to allow MacPython to live in a Python.app bundle and understand the __main__.py convention used there for applets. This gives us applets that work on both OS9 and OSX! (Although "applet" may not be the correct word for something that is going to be multimegabyte:-).
Jack Jansen <jack.jansen@cwi.nl>
parents:
19855
diff
changeset
|
470 /* If we are running inside a bundle, look through it. Otherwise, do nothing. */ |
|
61123b860b45
Mod by Donovan Preston to allow MacPython to live in a Python.app bundle and understand the __main__.py convention used there for applets. This gives us applets that work on both OS9 and OSX! (Although "applet" may not be the correct word for something that is going to be multimegabyte:-).
Jack Jansen <jack.jansen@cwi.nl>
parents:
19855
diff
changeset
|
471 if (mainBundle) { |
|
61123b860b45
Mod by Donovan Preston to allow MacPython to live in a Python.app bundle and understand the __main__.py convention used there for applets. This gives us applets that work on both OS9 and OSX! (Although "applet" may not be the correct word for something that is going to be multimegabyte:-).
Jack Jansen <jack.jansen@cwi.nl>
parents:
19855
diff
changeset
|
472 /* Create a CFString with the resource name in it */ |
|
61123b860b45
Mod by Donovan Preston to allow MacPython to live in a Python.app bundle and understand the __main__.py convention used there for applets. This gives us applets that work on both OS9 and OSX! (Although "applet" may not be the correct word for something that is going to be multimegabyte:-).
Jack Jansen <jack.jansen@cwi.nl>
parents:
19855
diff
changeset
|
473 rsrcString = CFStringCreateWithCString(0, resourceName, kCFStringEncodingMacRoman); |
|
61123b860b45
Mod by Donovan Preston to allow MacPython to live in a Python.app bundle and understand the __main__.py convention used there for applets. This gives us applets that work on both OS9 and OSX! (Although "applet" may not be the correct word for something that is going to be multimegabyte:-).
Jack Jansen <jack.jansen@cwi.nl>
parents:
19855
diff
changeset
|
474 |
|
61123b860b45
Mod by Donovan Preston to allow MacPython to live in a Python.app bundle and understand the __main__.py convention used there for applets. This gives us applets that work on both OS9 and OSX! (Although "applet" may not be the correct word for something that is going to be multimegabyte:-).
Jack Jansen <jack.jansen@cwi.nl>
parents:
19855
diff
changeset
|
475 /* Look for py files in the main bundle by type */ |
|
61123b860b45
Mod by Donovan Preston to allow MacPython to live in a Python.app bundle and understand the __main__.py convention used there for applets. This gives us applets that work on both OS9 and OSX! (Although "applet" may not be the correct word for something that is going to be multimegabyte:-).
Jack Jansen <jack.jansen@cwi.nl>
parents:
19855
diff
changeset
|
476 arrayRef = CFBundleCopyResourceURLsOfType( mainBundle, |
|
22657
af71914d8bdf
Allow .pyc files as applets as well as .py files. .py files have
Jack Jansen <jack.jansen@cwi.nl>
parents:
22654
diff
changeset
|
477 resourceType, |
|
20779
61123b860b45
Mod by Donovan Preston to allow MacPython to live in a Python.app bundle and understand the __main__.py convention used there for applets. This gives us applets that work on both OS9 and OSX! (Although "applet" may not be the correct word for something that is going to be multimegabyte:-).
Jack Jansen <jack.jansen@cwi.nl>
parents:
19855
diff
changeset
|
478 NULL ); |
|
19855
5568b320914f
Mods by Donovan Preston (with changes by me to make them "go with the flow")
Jack Jansen <jack.jansen@cwi.nl>
parents:
19851
diff
changeset
|
479 |
|
20779
61123b860b45
Mod by Donovan Preston to allow MacPython to live in a Python.app bundle and understand the __main__.py convention used there for applets. This gives us applets that work on both OS9 and OSX! (Although "applet" may not be the correct word for something that is going to be multimegabyte:-).
Jack Jansen <jack.jansen@cwi.nl>
parents:
19855
diff
changeset
|
480 /* See if there are any filename matches */ |
|
61123b860b45
Mod by Donovan Preston to allow MacPython to live in a Python.app bundle and understand the __main__.py convention used there for applets. This gives us applets that work on both OS9 and OSX! (Although "applet" may not be the correct word for something that is going to be multimegabyte:-).
Jack Jansen <jack.jansen@cwi.nl>
parents:
19855
diff
changeset
|
481 size = CFArrayGetCount(arrayRef); |
|
61123b860b45
Mod by Donovan Preston to allow MacPython to live in a Python.app bundle and understand the __main__.py convention used there for applets. This gives us applets that work on both OS9 and OSX! (Although "applet" may not be the correct word for something that is going to be multimegabyte:-).
Jack Jansen <jack.jansen@cwi.nl>
parents:
19855
diff
changeset
|
482 for (i = 0; i < size; i++) { |
|
61123b860b45
Mod by Donovan Preston to allow MacPython to live in a Python.app bundle and understand the __main__.py convention used there for applets. This gives us applets that work on both OS9 and OSX! (Although "applet" may not be the correct word for something that is going to be multimegabyte:-).
Jack Jansen <jack.jansen@cwi.nl>
parents:
19855
diff
changeset
|
483 URL = CFArrayGetValueAtIndex(arrayRef, i); |
|
61123b860b45
Mod by Donovan Preston to allow MacPython to live in a Python.app bundle and understand the __main__.py convention used there for applets. This gives us applets that work on both OS9 and OSX! (Although "applet" may not be the correct word for something that is going to be multimegabyte:-).
Jack Jansen <jack.jansen@cwi.nl>
parents:
19855
diff
changeset
|
484 filenameString = CFURLCopyLastPathComponent(URL); |
|
61123b860b45
Mod by Donovan Preston to allow MacPython to live in a Python.app bundle and understand the __main__.py convention used there for applets. This gives us applets that work on both OS9 and OSX! (Although "applet" may not be the correct word for something that is going to be multimegabyte:-).
Jack Jansen <jack.jansen@cwi.nl>
parents:
19855
diff
changeset
|
485 if (CFStringCompare(filenameString, rsrcString, 0) == kCFCompareEqualTo) { |
|
61123b860b45
Mod by Donovan Preston to allow MacPython to live in a Python.app bundle and understand the __main__.py convention used there for applets. This gives us applets that work on both OS9 and OSX! (Although "applet" may not be the correct word for something that is going to be multimegabyte:-).
Jack Jansen <jack.jansen@cwi.nl>
parents:
19855
diff
changeset
|
486 /* We found a match, get the file's full path */ |
|
61123b860b45
Mod by Donovan Preston to allow MacPython to live in a Python.app bundle and understand the __main__.py convention used there for applets. This gives us applets that work on both OS9 and OSX! (Although "applet" may not be the correct word for something that is going to be multimegabyte:-).
Jack Jansen <jack.jansen@cwi.nl>
parents:
19855
diff
changeset
|
487 absoluteURL = CFURLCopyAbsoluteURL(URL); |
|
61123b860b45
Mod by Donovan Preston to allow MacPython to live in a Python.app bundle and understand the __main__.py convention used there for applets. This gives us applets that work on both OS9 and OSX! (Although "applet" may not be the correct word for something that is going to be multimegabyte:-).
Jack Jansen <jack.jansen@cwi.nl>
parents:
19855
diff
changeset
|
488 filepathString = CFURLCopyFileSystemPath(absoluteURL, thePathStyle); |
|
61123b860b45
Mod by Donovan Preston to allow MacPython to live in a Python.app bundle and understand the __main__.py convention used there for applets. This gives us applets that work on both OS9 and OSX! (Although "applet" may not be the correct word for something that is going to be multimegabyte:-).
Jack Jansen <jack.jansen@cwi.nl>
parents:
19855
diff
changeset
|
489 CFRelease(absoluteURL); |
|
19855
5568b320914f
Mods by Donovan Preston (with changes by me to make them "go with the flow")
Jack Jansen <jack.jansen@cwi.nl>
parents:
19851
diff
changeset
|
490 |
|
20779
61123b860b45
Mod by Donovan Preston to allow MacPython to live in a Python.app bundle and understand the __main__.py convention used there for applets. This gives us applets that work on both OS9 and OSX! (Although "applet" may not be the correct word for something that is going to be multimegabyte:-).
Jack Jansen <jack.jansen@cwi.nl>
parents:
19855
diff
changeset
|
491 /* Copy the full path into the caller's character buffer */ |
|
61123b860b45
Mod by Donovan Preston to allow MacPython to live in a Python.app bundle and understand the __main__.py convention used there for applets. This gives us applets that work on both OS9 and OSX! (Although "applet" may not be the correct word for something that is going to be multimegabyte:-).
Jack Jansen <jack.jansen@cwi.nl>
parents:
19855
diff
changeset
|
492 success = CFStringGetCString(filepathString, resourceURLCStr, length, |
|
61123b860b45
Mod by Donovan Preston to allow MacPython to live in a Python.app bundle and understand the __main__.py convention used there for applets. This gives us applets that work on both OS9 and OSX! (Although "applet" may not be the correct word for something that is going to be multimegabyte:-).
Jack Jansen <jack.jansen@cwi.nl>
parents:
19855
diff
changeset
|
493 kCFStringEncodingMacRoman); |
|
19855
5568b320914f
Mods by Donovan Preston (with changes by me to make them "go with the flow")
Jack Jansen <jack.jansen@cwi.nl>
parents:
19851
diff
changeset
|
494 |
|
20779
61123b860b45
Mod by Donovan Preston to allow MacPython to live in a Python.app bundle and understand the __main__.py convention used there for applets. This gives us applets that work on both OS9 and OSX! (Although "applet" may not be the correct word for something that is going to be multimegabyte:-).
Jack Jansen <jack.jansen@cwi.nl>
parents:
19855
diff
changeset
|
495 CFRelease(filepathString); |
|
61123b860b45
Mod by Donovan Preston to allow MacPython to live in a Python.app bundle and understand the __main__.py convention used there for applets. This gives us applets that work on both OS9 and OSX! (Although "applet" may not be the correct word for something that is going to be multimegabyte:-).
Jack Jansen <jack.jansen@cwi.nl>
parents:
19855
diff
changeset
|
496 } |
|
61123b860b45
Mod by Donovan Preston to allow MacPython to live in a Python.app bundle and understand the __main__.py convention used there for applets. This gives us applets that work on both OS9 and OSX! (Although "applet" may not be the correct word for something that is going to be multimegabyte:-).
Jack Jansen <jack.jansen@cwi.nl>
parents:
19855
diff
changeset
|
497 CFRelease(filenameString); |
|
61123b860b45
Mod by Donovan Preston to allow MacPython to live in a Python.app bundle and understand the __main__.py convention used there for applets. This gives us applets that work on both OS9 and OSX! (Although "applet" may not be the correct word for something that is going to be multimegabyte:-).
Jack Jansen <jack.jansen@cwi.nl>
parents:
19855
diff
changeset
|
498 } |
|
61123b860b45
Mod by Donovan Preston to allow MacPython to live in a Python.app bundle and understand the __main__.py convention used there for applets. This gives us applets that work on both OS9 and OSX! (Although "applet" may not be the correct word for something that is going to be multimegabyte:-).
Jack Jansen <jack.jansen@cwi.nl>
parents:
19855
diff
changeset
|
499 CFRelease(arrayRef); |
|
61123b860b45
Mod by Donovan Preston to allow MacPython to live in a Python.app bundle and understand the __main__.py convention used there for applets. This gives us applets that work on both OS9 and OSX! (Although "applet" may not be the correct word for something that is going to be multimegabyte:-).
Jack Jansen <jack.jansen@cwi.nl>
parents:
19855
diff
changeset
|
500 CFRelease(rsrcString); |
|
61123b860b45
Mod by Donovan Preston to allow MacPython to live in a Python.app bundle and understand the __main__.py convention used there for applets. This gives us applets that work on both OS9 and OSX! (Although "applet" may not be the correct word for something that is going to be multimegabyte:-).
Jack Jansen <jack.jansen@cwi.nl>
parents:
19855
diff
changeset
|
501 } |
|
19855
5568b320914f
Mods by Donovan Preston (with changes by me to make them "go with the flow")
Jack Jansen <jack.jansen@cwi.nl>
parents:
19851
diff
changeset
|
502 return success; |
|
5568b320914f
Mods by Donovan Preston (with changes by me to make them "go with the flow")
Jack Jansen <jack.jansen@cwi.nl>
parents:
19851
diff
changeset
|
503 } |
|
5568b320914f
Mods by Donovan Preston (with changes by me to make them "go with the flow")
Jack Jansen <jack.jansen@cwi.nl>
parents:
19851
diff
changeset
|
504 |
|
20779
61123b860b45
Mod by Donovan Preston to allow MacPython to live in a Python.app bundle and understand the __main__.py convention used there for applets. This gives us applets that work on both OS9 and OSX! (Although "applet" may not be the correct word for something that is going to be multimegabyte:-).
Jack Jansen <jack.jansen@cwi.nl>
parents:
19855
diff
changeset
|
505 #endif /* TARGET_API_MAC_CARBON */ |
|
61123b860b45
Mod by Donovan Preston to allow MacPython to live in a Python.app bundle and understand the __main__.py convention used there for applets. This gives us applets that work on both OS9 and OSX! (Although "applet" may not be the correct word for something that is going to be multimegabyte:-).
Jack Jansen <jack.jansen@cwi.nl>
parents:
19855
diff
changeset
|
506 |
|
61123b860b45
Mod by Donovan Preston to allow MacPython to live in a Python.app bundle and understand the __main__.py convention used there for applets. This gives us applets that work on both OS9 and OSX! (Although "applet" may not be the correct word for something that is going to be multimegabyte:-).
Jack Jansen <jack.jansen@cwi.nl>
parents:
19855
diff
changeset
|
507 #if TARGET_API_MAC_OSX |
|
61123b860b45
Mod by Donovan Preston to allow MacPython to live in a Python.app bundle and understand the __main__.py convention used there for applets. This gives us applets that work on both OS9 and OSX! (Although "applet" may not be the correct word for something that is going to be multimegabyte:-).
Jack Jansen <jack.jansen@cwi.nl>
parents:
19855
diff
changeset
|
508 |
|
19748
c93d7d0857a2
Changes to make these work under OSX as the main program for a
Jack Jansen <jack.jansen@cwi.nl>
parents:
19641
diff
changeset
|
509 int |
|
c93d7d0857a2
Changes to make these work under OSX as the main program for a
Jack Jansen <jack.jansen@cwi.nl>
parents:
19641
diff
changeset
|
510 main(int argc, char **argv) |
|
c93d7d0857a2
Changes to make these work under OSX as the main program for a
Jack Jansen <jack.jansen@cwi.nl>
parents:
19641
diff
changeset
|
511 { |
|
19855
5568b320914f
Mods by Donovan Preston (with changes by me to make them "go with the flow")
Jack Jansen <jack.jansen@cwi.nl>
parents:
19851
diff
changeset
|
512 static char scriptpath[1024]; |
|
5568b320914f
Mods by Donovan Preston (with changes by me to make them "go with the flow")
Jack Jansen <jack.jansen@cwi.nl>
parents:
19851
diff
changeset
|
513 char *script = NULL; |
|
5568b320914f
Mods by Donovan Preston (with changes by me to make them "go with the flow")
Jack Jansen <jack.jansen@cwi.nl>
parents:
19851
diff
changeset
|
514 |
|
5568b320914f
Mods by Donovan Preston (with changes by me to make them "go with the flow")
Jack Jansen <jack.jansen@cwi.nl>
parents:
19851
diff
changeset
|
515 /* First we see whether we have __rawmain__.py and run that if it |
|
5568b320914f
Mods by Donovan Preston (with changes by me to make them "go with the flow")
Jack Jansen <jack.jansen@cwi.nl>
parents:
19851
diff
changeset
|
516 ** is there |
|
5568b320914f
Mods by Donovan Preston (with changes by me to make them "go with the flow")
Jack Jansen <jack.jansen@cwi.nl>
parents:
19851
diff
changeset
|
517 */ |
|
22657
af71914d8bdf
Allow .pyc files as applets as well as .py files. .py files have
Jack Jansen <jack.jansen@cwi.nl>
parents:
22654
diff
changeset
|
518 if (locateResourcePy(CFSTR("py"), "__rawmain__.py", scriptpath, 1024)) { |
|
19855
5568b320914f
Mods by Donovan Preston (with changes by me to make them "go with the flow")
Jack Jansen <jack.jansen@cwi.nl>
parents:
19851
diff
changeset
|
519 /* If we have a raw main we don't do AppleEvent processing. |
|
5568b320914f
Mods by Donovan Preston (with changes by me to make them "go with the flow")
Jack Jansen <jack.jansen@cwi.nl>
parents:
19851
diff
changeset
|
520 ** Notice that this also means we keep the -psn.... argv[1] |
|
5568b320914f
Mods by Donovan Preston (with changes by me to make them "go with the flow")
Jack Jansen <jack.jansen@cwi.nl>
parents:
19851
diff
changeset
|
521 ** value intact. Not sure whether that is important to someone, |
|
5568b320914f
Mods by Donovan Preston (with changes by me to make them "go with the flow")
Jack Jansen <jack.jansen@cwi.nl>
parents:
19851
diff
changeset
|
522 ** but you never know... |
|
5568b320914f
Mods by Donovan Preston (with changes by me to make them "go with the flow")
Jack Jansen <jack.jansen@cwi.nl>
parents:
19851
diff
changeset
|
523 */ |
|
5568b320914f
Mods by Donovan Preston (with changes by me to make them "go with the flow")
Jack Jansen <jack.jansen@cwi.nl>
parents:
19851
diff
changeset
|
524 script = scriptpath; |
|
22657
af71914d8bdf
Allow .pyc files as applets as well as .py files. .py files have
Jack Jansen <jack.jansen@cwi.nl>
parents:
22654
diff
changeset
|
525 } else if (locateResourcePy(CFSTR("pyc"), "__rawmain__.pyc", scriptpath, 1024)) { |
|
af71914d8bdf
Allow .pyc files as applets as well as .py files. .py files have
Jack Jansen <jack.jansen@cwi.nl>
parents:
22654
diff
changeset
|
526 script = scriptpath; |
|
19855
5568b320914f
Mods by Donovan Preston (with changes by me to make them "go with the flow")
Jack Jansen <jack.jansen@cwi.nl>
parents:
19851
diff
changeset
|
527 } else { |
|
5568b320914f
Mods by Donovan Preston (with changes by me to make them "go with the flow")
Jack Jansen <jack.jansen@cwi.nl>
parents:
19851
diff
changeset
|
528 /* Otherwise we look for __main__.py. Whether that is |
|
5568b320914f
Mods by Donovan Preston (with changes by me to make them "go with the flow")
Jack Jansen <jack.jansen@cwi.nl>
parents:
19851
diff
changeset
|
529 ** found or not we also process AppleEvent arguments. |
|
5568b320914f
Mods by Donovan Preston (with changes by me to make them "go with the flow")
Jack Jansen <jack.jansen@cwi.nl>
parents:
19851
diff
changeset
|
530 */ |
|
22657
af71914d8bdf
Allow .pyc files as applets as well as .py files. .py files have
Jack Jansen <jack.jansen@cwi.nl>
parents:
22654
diff
changeset
|
531 if (locateResourcePy(CFSTR("py"), "__main__.py", scriptpath, 1024)) |
|
af71914d8bdf
Allow .pyc files as applets as well as .py files. .py files have
Jack Jansen <jack.jansen@cwi.nl>
parents:
22654
diff
changeset
|
532 script = scriptpath; |
|
af71914d8bdf
Allow .pyc files as applets as well as .py files. .py files have
Jack Jansen <jack.jansen@cwi.nl>
parents:
22654
diff
changeset
|
533 else if (locateResourcePy(CFSTR("pyc"), "__main__.pyc", scriptpath, 1024)) |
|
19855
5568b320914f
Mods by Donovan Preston (with changes by me to make them "go with the flow")
Jack Jansen <jack.jansen@cwi.nl>
parents:
19851
diff
changeset
|
534 script = scriptpath; |
|
5568b320914f
Mods by Donovan Preston (with changes by me to make them "go with the flow")
Jack Jansen <jack.jansen@cwi.nl>
parents:
19851
diff
changeset
|
535 |
|
5568b320914f
Mods by Donovan Preston (with changes by me to make them "go with the flow")
Jack Jansen <jack.jansen@cwi.nl>
parents:
19851
diff
changeset
|
536 init_common(&argc, &argv, 0); |
|
5568b320914f
Mods by Donovan Preston (with changes by me to make them "go with the flow")
Jack Jansen <jack.jansen@cwi.nl>
parents:
19851
diff
changeset
|
537 |
|
5568b320914f
Mods by Donovan Preston (with changes by me to make them "go with the flow")
Jack Jansen <jack.jansen@cwi.nl>
parents:
19851
diff
changeset
|
538 } |
|
5568b320914f
Mods by Donovan Preston (with changes by me to make them "go with the flow")
Jack Jansen <jack.jansen@cwi.nl>
parents:
19851
diff
changeset
|
539 |
|
5568b320914f
Mods by Donovan Preston (with changes by me to make them "go with the flow")
Jack Jansen <jack.jansen@cwi.nl>
parents:
19851
diff
changeset
|
540 Py_Main(argc, argv, script); |
|
5568b320914f
Mods by Donovan Preston (with changes by me to make them "go with the flow")
Jack Jansen <jack.jansen@cwi.nl>
parents:
19851
diff
changeset
|
541 return 0; |
|
19748
c93d7d0857a2
Changes to make these work under OSX as the main program for a
Jack Jansen <jack.jansen@cwi.nl>
parents:
19641
diff
changeset
|
542 } |
|
c93d7d0857a2
Changes to make these work under OSX as the main program for a
Jack Jansen <jack.jansen@cwi.nl>
parents:
19641
diff
changeset
|
543 |
|
c93d7d0857a2
Changes to make these work under OSX as the main program for a
Jack Jansen <jack.jansen@cwi.nl>
parents:
19641
diff
changeset
|
544 #else |
|
c93d7d0857a2
Changes to make these work under OSX as the main program for a
Jack Jansen <jack.jansen@cwi.nl>
parents:
19641
diff
changeset
|
545 |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
546 /* 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
|
547 void |
|
19748
c93d7d0857a2
Changes to make these work under OSX as the main program for a
Jack Jansen <jack.jansen@cwi.nl>
parents:
19641
diff
changeset
|
548 PyMac_InitApplication(void) |
|
1811
ea5b13d11a13
Added macmain.c (separate Mac specific main prog); bump version to 1.1
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
549 { |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
550 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
|
551 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
|
552 |
|
20779
61123b860b45
Mod by Donovan Preston to allow MacPython to live in a Python.app bundle and understand the __main__.py convention used there for applets. This gives us applets that work on both OS9 and OSX! (Although "applet" may not be the correct word for something that is going to be multimegabyte:-).
Jack Jansen <jack.jansen@cwi.nl>
parents:
19855
diff
changeset
|
553 static char scriptpath[1024]; |
|
61123b860b45
Mod by Donovan Preston to allow MacPython to live in a Python.app bundle and understand the __main__.py convention used there for applets. This gives us applets that work on both OS9 and OSX! (Although "applet" may not be the correct word for something that is going to be multimegabyte:-).
Jack Jansen <jack.jansen@cwi.nl>
parents:
19855
diff
changeset
|
554 char *script = NULL; |
|
61123b860b45
Mod by Donovan Preston to allow MacPython to live in a Python.app bundle and understand the __main__.py convention used there for applets. This gives us applets that work on both OS9 and OSX! (Although "applet" may not be the correct word for something that is going to be multimegabyte:-).
Jack Jansen <jack.jansen@cwi.nl>
parents:
19855
diff
changeset
|
555 |
|
4962
765d962f4449
Added PyMac_Initialize() routine, to be used by embedding programs (in
Jack Jansen <jack.jansen@cwi.nl>
parents:
4911
diff
changeset
|
556 init_common(&argc, &argv, 0); |
|
20779
61123b860b45
Mod by Donovan Preston to allow MacPython to live in a Python.app bundle and understand the __main__.py convention used there for applets. This gives us applets that work on both OS9 and OSX! (Although "applet" may not be the correct word for something that is going to be multimegabyte:-).
Jack Jansen <jack.jansen@cwi.nl>
parents:
19855
diff
changeset
|
557 |
|
61123b860b45
Mod by Donovan Preston to allow MacPython to live in a Python.app bundle and understand the __main__.py convention used there for applets. This gives us applets that work on both OS9 and OSX! (Although "applet" may not be the correct word for something that is going to be multimegabyte:-).
Jack Jansen <jack.jansen@cwi.nl>
parents:
19855
diff
changeset
|
558 #if TARGET_API_MAC_OSX /* Really: TARGET_API_MAC_CARBON */ |
|
61123b860b45
Mod by Donovan Preston to allow MacPython to live in a Python.app bundle and understand the __main__.py convention used there for applets. This gives us applets that work on both OS9 and OSX! (Although "applet" may not be the correct word for something that is going to be multimegabyte:-).
Jack Jansen <jack.jansen@cwi.nl>
parents:
19855
diff
changeset
|
559 /* If we are running inside of a bundle, and a __main__.py is available, use it */ |
|
61123b860b45
Mod by Donovan Preston to allow MacPython to live in a Python.app bundle and understand the __main__.py convention used there for applets. This gives us applets that work on both OS9 and OSX! (Although "applet" may not be the correct word for something that is going to be multimegabyte:-).
Jack Jansen <jack.jansen@cwi.nl>
parents:
19855
diff
changeset
|
560 if (locateResourcePy("__main__.py", scriptpath, 1024)) |
|
61123b860b45
Mod by Donovan Preston to allow MacPython to live in a Python.app bundle and understand the __main__.py convention used there for applets. This gives us applets that work on both OS9 and OSX! (Although "applet" may not be the correct word for something that is going to be multimegabyte:-).
Jack Jansen <jack.jansen@cwi.nl>
parents:
19855
diff
changeset
|
561 script = scriptpath; |
|
61123b860b45
Mod by Donovan Preston to allow MacPython to live in a Python.app bundle and understand the __main__.py convention used there for applets. This gives us applets that work on both OS9 and OSX! (Although "applet" may not be the correct word for something that is going to be multimegabyte:-).
Jack Jansen <jack.jansen@cwi.nl>
parents:
19855
diff
changeset
|
562 #endif |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
563 |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
564 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
|
565 /* 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
|
566 char curwd[256], *endp; |
|
2313
ff72a5f9a4ee
Various changes wrt shared-library python:
Jack Jansen <jack.jansen@cwi.nl>
parents:
2277
diff
changeset
|
567 |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
568 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
|
569 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
|
570 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
|
571 *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
|
572 |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
573 chdir(curwd); |
|
2313
ff72a5f9a4ee
Various changes wrt shared-library python:
Jack Jansen <jack.jansen@cwi.nl>
parents:
2277
diff
changeset
|
574 } |
|
18962
d7590122f9a2
Merging appropriate 2.1.1 fixes back into the main trunk.
Jack Jansen <jack.jansen@cwi.nl>
parents:
18386
diff
changeset
|
575 /* Check that the first argument is a text file */ |
|
d7590122f9a2
Merging appropriate 2.1.1 fixes back into the main trunk.
Jack Jansen <jack.jansen@cwi.nl>
parents:
18386
diff
changeset
|
576 if ( PyMac_getfiletype(argv[1]) != 'TEXT' ) { |
|
d7590122f9a2
Merging appropriate 2.1.1 fixes back into the main trunk.
Jack Jansen <jack.jansen@cwi.nl>
parents:
18386
diff
changeset
|
577 Alert(NOTASCRIPT_ID, NULL); |
|
d7590122f9a2
Merging appropriate 2.1.1 fixes back into the main trunk.
Jack Jansen <jack.jansen@cwi.nl>
parents:
18386
diff
changeset
|
578 exit(0); |
|
d7590122f9a2
Merging appropriate 2.1.1 fixes back into the main trunk.
Jack Jansen <jack.jansen@cwi.nl>
parents:
18386
diff
changeset
|
579 } |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
580 } |
|
20779
61123b860b45
Mod by Donovan Preston to allow MacPython to live in a Python.app bundle and understand the __main__.py convention used there for applets. This gives us applets that work on both OS9 and OSX! (Although "applet" may not be the correct word for something that is going to be multimegabyte:-).
Jack Jansen <jack.jansen@cwi.nl>
parents:
19855
diff
changeset
|
581 Py_Main(argc, argv, script); |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
582 } |
|
19748
c93d7d0857a2
Changes to make these work under OSX as the main program for a
Jack Jansen <jack.jansen@cwi.nl>
parents:
19641
diff
changeset
|
583 #endif /* TARGET_API_MAC_OSX */ |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
584 |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
585 /* 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
|
586 |
|
4017
5dc8c042905b
Guido: added some void's to declarations
Jack Jansen <jack.jansen@cwi.nl>
parents:
3930
diff
changeset
|
587 static void |
|
19855
5568b320914f
Mods by Donovan Preston (with changes by me to make them "go with the flow")
Jack Jansen <jack.jansen@cwi.nl>
parents:
19851
diff
changeset
|
588 Py_Main(int argc, char **argv, char *filename) |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
589 { |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
590 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
|
591 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
|
592 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
|
593 |
|
19855
5568b320914f
Mods by Donovan Preston (with changes by me to make them "go with the flow")
Jack Jansen <jack.jansen@cwi.nl>
parents:
19851
diff
changeset
|
594 if ( filename ) { |
|
5568b320914f
Mods by Donovan Preston (with changes by me to make them "go with the flow")
Jack Jansen <jack.jansen@cwi.nl>
parents:
19851
diff
changeset
|
595 /* Someone else has found our "script" already */ |
|
5568b320914f
Mods by Donovan Preston (with changes by me to make them "go with the flow")
Jack Jansen <jack.jansen@cwi.nl>
parents:
19851
diff
changeset
|
596 argv[0] = filename; |
|
5568b320914f
Mods by Donovan Preston (with changes by me to make them "go with the flow")
Jack Jansen <jack.jansen@cwi.nl>
parents:
19851
diff
changeset
|
597 } else { |
|
5568b320914f
Mods by Donovan Preston (with changes by me to make them "go with the flow")
Jack Jansen <jack.jansen@cwi.nl>
parents:
19851
diff
changeset
|
598 filename = argv[1]; |
|
5568b320914f
Mods by Donovan Preston (with changes by me to make them "go with the flow")
Jack Jansen <jack.jansen@cwi.nl>
parents:
19851
diff
changeset
|
599 argv++; |
|
5568b320914f
Mods by Donovan Preston (with changes by me to make them "go with the flow")
Jack Jansen <jack.jansen@cwi.nl>
parents:
19851
diff
changeset
|
600 argc--; |
|
5568b320914f
Mods by Donovan Preston (with changes by me to make them "go with the flow")
Jack Jansen <jack.jansen@cwi.nl>
parents:
19851
diff
changeset
|
601 } |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
602 |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
603 if (Py_VerboseFlag || |
|
19748
c93d7d0857a2
Changes to make these work under OSX as the main program for a
Jack Jansen <jack.jansen@cwi.nl>
parents:
19641
diff
changeset
|
604 (command == NULL && filename == NULL && isatty((int)fileno(fp)))) |
|
22654
a82ce198fe69
In MachoPython print "Pythonw" in banner to distinguish from command-line
Jack Jansen <jack.jansen@cwi.nl>
parents:
21619
diff
changeset
|
605 fprintf(stderr, "%s %s on %s\n%s\n", |
|
a82ce198fe69
In MachoPython print "Pythonw" in banner to distinguish from command-line
Jack Jansen <jack.jansen@cwi.nl>
parents:
21619
diff
changeset
|
606 #if !TARGET_API_MAC_OSX |
|
a82ce198fe69
In MachoPython print "Pythonw" in banner to distinguish from command-line
Jack Jansen <jack.jansen@cwi.nl>
parents:
21619
diff
changeset
|
607 "Python", |
|
a82ce198fe69
In MachoPython print "Pythonw" in banner to distinguish from command-line
Jack Jansen <jack.jansen@cwi.nl>
parents:
21619
diff
changeset
|
608 #else |
|
a82ce198fe69
In MachoPython print "Pythonw" in banner to distinguish from command-line
Jack Jansen <jack.jansen@cwi.nl>
parents:
21619
diff
changeset
|
609 "Pythonw", |
|
a82ce198fe69
In MachoPython print "Pythonw" in banner to distinguish from command-line
Jack Jansen <jack.jansen@cwi.nl>
parents:
21619
diff
changeset
|
610 #endif |
|
14464
17cec96f75bc
Use same short banner message as unix/win Python.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14198
diff
changeset
|
611 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
|
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 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
|
614 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
|
615 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
|
616 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
|
617 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
|
618 } |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
619 } |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
620 |
|
19748
c93d7d0857a2
Changes to make these work under OSX as the main program for a
Jack Jansen <jack.jansen@cwi.nl>
parents:
19641
diff
changeset
|
621 #if !TARGET_API_MAC_OSX |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
622 /* 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
|
623 PyMac_InitMenuBar(); |
|
19748
c93d7d0857a2
Changes to make these work under OSX as the main program for a
Jack Jansen <jack.jansen@cwi.nl>
parents:
19641
diff
changeset
|
624 #endif |
|
c93d7d0857a2
Changes to make these work under OSX as the main program for a
Jack Jansen <jack.jansen@cwi.nl>
parents:
19641
diff
changeset
|
625 |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
626 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
|
627 |
|
18386
8cdff545cbde
Set the default 8-bit encoding based on the system script and language.
unknown <tools@python.org>
parents:
17629
diff
changeset
|
628 PyUnicode_SetDefaultEncoding(PyMac_getscript()); |
|
8cdff545cbde
Set the default 8-bit encoding based on the system script and language.
unknown <tools@python.org>
parents:
17629
diff
changeset
|
629 |
|
19855
5568b320914f
Mods by Donovan Preston (with changes by me to make them "go with the flow")
Jack Jansen <jack.jansen@cwi.nl>
parents:
19851
diff
changeset
|
630 PySys_SetArgv(argc, 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
|
631 |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
632 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
|
633 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
|
634 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
|
635 (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
|
636 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
|
637 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
|
638 } |
|
1811
ea5b13d11a13
Added macmain.c (separate Mac specific main prog); bump version to 1.1
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
639 } |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
640 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
|
641 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
|
642 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
|
643 fclose(fp); |
|
4238
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
644 |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
645 if ( filename != NULL || command != NULL ) |
|
6c86d9136c09
- Put all options in a struct
Jack Jansen <jack.jansen@cwi.nl>
parents:
4228
diff
changeset
|
646 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
|
647 |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
648 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
|
649 /*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
|
650 } |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
651 |
|
19748
c93d7d0857a2
Changes to make these work under OSX as the main program for a
Jack Jansen <jack.jansen@cwi.nl>
parents:
19641
diff
changeset
|
652 #if !TARGET_API_MAC_OSX |
|
3236
463b26fa4d7b
Added options for keeping window open on normal/error termination
Jack Jansen <jack.jansen@cwi.nl>
parents:
3228
diff
changeset
|
653 /* |
|
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
|
654 ** 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
|
655 */ |
|
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
|
656 void |
|
19748
c93d7d0857a2
Changes to make these work under OSX as the main program for a
Jack Jansen <jack.jansen@cwi.nl>
parents:
19641
diff
changeset
|
657 PyMac_OutputSeen(void) |
|
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
|
658 { |
|
16647
728c11562187
More changes to attempt to get the menubar back on exit. Without success:-(
Jack Jansen <jack.jansen@cwi.nl>
parents:
16557
diff
changeset
|
659 if ( console_output_state == STATE_UNKNOWN ) |
|
728c11562187
More changes to attempt to get the menubar back on exit. Without success:-(
Jack Jansen <jack.jansen@cwi.nl>
parents:
16557
diff
changeset
|
660 PyMac_InitMenuBar(); |
|
16557
9ce9e0342cc1
Bit the bullet and added a private GUSISIOUX for Python. This makes the delayconsole and keepopen code neater. Also tells Sioux to behave better with events, and handles cmd-. during print better. The pythonpreferences have also changed due to this.
Jack Jansen <jack.jansen@cwi.nl>
parents:
15921
diff
changeset
|
661 console_output_state = STATE_LASTREAD; |
|
15280
a5ca54969a3f
Added PyMac_OutputSeen(), which acknowledges all current output in the stdio window, i.e. it acts like input has been read insofar as the keep-console-open option is interested.
Jack Jansen <jack.jansen@cwi.nl>
parents:
15192
diff
changeset
|
662 } |
|
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
|
663 |
|
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
|
664 /* |
|
16557
9ce9e0342cc1
Bit the bullet and added a private GUSISIOUX for Python. This makes the delayconsole and keepopen code neater. Also tells Sioux to behave better with events, and handles cmd-. during print better. The pythonpreferences have also changed due to this.
Jack Jansen <jack.jansen@cwi.nl>
parents:
15921
diff
changeset
|
665 ** Set the "unseen output" flag |
|
9ce9e0342cc1
Bit the bullet and added a private GUSISIOUX for Python. This makes the delayconsole and keepopen code neater. Also tells Sioux to behave better with events, and handles cmd-. during print better. The pythonpreferences have also changed due to this.
Jack Jansen <jack.jansen@cwi.nl>
parents:
15921
diff
changeset
|
666 */ |
|
9ce9e0342cc1
Bit the bullet and added a private GUSISIOUX for Python. This makes the delayconsole and keepopen code neater. Also tells Sioux to behave better with events, and handles cmd-. during print better. The pythonpreferences have also changed due to this.
Jack Jansen <jack.jansen@cwi.nl>
parents:
15921
diff
changeset
|
667 void |
|
19748
c93d7d0857a2
Changes to make these work under OSX as the main program for a
Jack Jansen <jack.jansen@cwi.nl>
parents:
19641
diff
changeset
|
668 PyMac_OutputNotSeen(void) |
|
16557
9ce9e0342cc1
Bit the bullet and added a private GUSISIOUX for Python. This makes the delayconsole and keepopen code neater. Also tells Sioux to behave better with events, and handles cmd-. during print better. The pythonpreferences have also changed due to this.
Jack Jansen <jack.jansen@cwi.nl>
parents:
15921
diff
changeset
|
669 { |
|
16647
728c11562187
More changes to attempt to get the menubar back on exit. Without success:-(
Jack Jansen <jack.jansen@cwi.nl>
parents:
16557
diff
changeset
|
670 if ( console_output_state == STATE_UNKNOWN ) |
|
728c11562187
More changes to attempt to get the menubar back on exit. Without success:-(
Jack Jansen <jack.jansen@cwi.nl>
parents:
16557
diff
changeset
|
671 PyMac_InitMenuBar(); |
|
16557
9ce9e0342cc1
Bit the bullet and added a private GUSISIOUX for Python. This makes the delayconsole and keepopen code neater. Also tells Sioux to behave better with events, and handles cmd-. during print better. The pythonpreferences have also changed due to this.
Jack Jansen <jack.jansen@cwi.nl>
parents:
15921
diff
changeset
|
672 console_output_state = STATE_LASTWRITE; |
|
9ce9e0342cc1
Bit the bullet and added a private GUSISIOUX for Python. This makes the delayconsole and keepopen code neater. Also tells Sioux to behave better with events, and handles cmd-. during print better. The pythonpreferences have also changed due to this.
Jack Jansen <jack.jansen@cwi.nl>
parents:
15921
diff
changeset
|
673 } |
|
17629
a9485d404f05
- Raise console window on input. Fixes Carbon hang.
Jack Jansen <jack.jansen@cwi.nl>
parents:
16647
diff
changeset
|
674 |
|
a9485d404f05
- Raise console window on input. Fixes Carbon hang.
Jack Jansen <jack.jansen@cwi.nl>
parents:
16647
diff
changeset
|
675 /* |
|
a9485d404f05
- Raise console window on input. Fixes Carbon hang.
Jack Jansen <jack.jansen@cwi.nl>
parents:
16647
diff
changeset
|
676 ** Override abort() - The default one is not what we want. |
|
a9485d404f05
- Raise console window on input. Fixes Carbon hang.
Jack Jansen <jack.jansen@cwi.nl>
parents:
16647
diff
changeset
|
677 */ |
|
a9485d404f05
- Raise console window on input. Fixes Carbon hang.
Jack Jansen <jack.jansen@cwi.nl>
parents:
16647
diff
changeset
|
678 void |
|
19748
c93d7d0857a2
Changes to make these work under OSX as the main program for a
Jack Jansen <jack.jansen@cwi.nl>
parents:
19641
diff
changeset
|
679 abort(void) |
|
17629
a9485d404f05
- Raise console window on input. Fixes Carbon hang.
Jack Jansen <jack.jansen@cwi.nl>
parents:
16647
diff
changeset
|
680 { |
|
a9485d404f05
- Raise console window on input. Fixes Carbon hang.
Jack Jansen <jack.jansen@cwi.nl>
parents:
16647
diff
changeset
|
681 console_output_state = STATE_LASTWRITE; |
|
a9485d404f05
- Raise console window on input. Fixes Carbon hang.
Jack Jansen <jack.jansen@cwi.nl>
parents:
16647
diff
changeset
|
682 PyMac_Exit(1); |
|
a9485d404f05
- Raise console window on input. Fixes Carbon hang.
Jack Jansen <jack.jansen@cwi.nl>
parents:
16647
diff
changeset
|
683 } |
|
19748
c93d7d0857a2
Changes to make these work under OSX as the main program for a
Jack Jansen <jack.jansen@cwi.nl>
parents:
19641
diff
changeset
|
684 #endif /* !TARGET_API_MAC_OSX */ |
|
16557
9ce9e0342cc1
Bit the bullet and added a private GUSISIOUX for Python. This makes the delayconsole and keepopen code neater. Also tells Sioux to behave better with events, and handles cmd-. during print better. The pythonpreferences have also changed due to this.
Jack Jansen <jack.jansen@cwi.nl>
parents:
15921
diff
changeset
|
685 |
|
9ce9e0342cc1
Bit the bullet and added a private GUSISIOUX for Python. This makes the delayconsole and keepopen code neater. Also tells Sioux to behave better with events, and handles cmd-. during print better. The pythonpreferences have also changed due to this.
Jack Jansen <jack.jansen@cwi.nl>
parents:
15921
diff
changeset
|
686 /* |
|
3236
463b26fa4d7b
Added options for keeping window open on normal/error termination
Jack Jansen <jack.jansen@cwi.nl>
parents:
3228
diff
changeset
|
687 ** Terminate application |
|
463b26fa4d7b
Added options for keeping window open on normal/error termination
Jack Jansen <jack.jansen@cwi.nl>
parents:
3228
diff
changeset
|
688 */ |
|
4017
5dc8c042905b
Guido: added some void's to declarations
Jack Jansen <jack.jansen@cwi.nl>
parents:
3930
diff
changeset
|
689 void |
|
19748
c93d7d0857a2
Changes to make these work under OSX as the main program for a
Jack Jansen <jack.jansen@cwi.nl>
parents:
19641
diff
changeset
|
690 PyMac_Exit(int status) |
|
3236
463b26fa4d7b
Added options for keeping window open on normal/error termination
Jack Jansen <jack.jansen@cwi.nl>
parents:
3228
diff
changeset
|
691 { |
|
19748
c93d7d0857a2
Changes to make these work under OSX as the main program for a
Jack Jansen <jack.jansen@cwi.nl>
parents:
19641
diff
changeset
|
692 #ifdef USE_SIOUX |
|
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
|
693 int keep = 0; |
|
19748
c93d7d0857a2
Changes to make these work under OSX as the main program for a
Jack Jansen <jack.jansen@cwi.nl>
parents:
19641
diff
changeset
|
694 #endif |
|
4911
21878c849626
Added profiler initialization/finalization code (if __profile__ is defined)
Jack Jansen <jack.jansen@cwi.nl>
parents:
4249
diff
changeset
|
695 |
|
21878c849626
Added profiler initialization/finalization code (if __profile__ is defined)
Jack Jansen <jack.jansen@cwi.nl>
parents:
4249
diff
changeset
|
696 #if __profile__ == 1 |
|
21878c849626
Added profiler initialization/finalization code (if __profile__ is defined)
Jack Jansen <jack.jansen@cwi.nl>
parents:
4249
diff
changeset
|
697 ProfilerDump("\pPython Profiler Results"); |
|
21878c849626
Added profiler initialization/finalization code (if __profile__ is defined)
Jack Jansen <jack.jansen@cwi.nl>
parents:
4249
diff
changeset
|
698 ProfilerTerm(); |
|
21878c849626
Added profiler initialization/finalization code (if __profile__ is defined)
Jack Jansen <jack.jansen@cwi.nl>
parents:
4249
diff
changeset
|
699 #endif |
|
3236
463b26fa4d7b
Added options for keeping window open on normal/error termination
Jack Jansen <jack.jansen@cwi.nl>
parents:
3228
diff
changeset
|
700 |
|
3247
20d74fa3b50b
For MW Python, update titlebar of window when python exits.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3236
diff
changeset
|
701 #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
|
702 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
|
703 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
|
704 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
|
705 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
|
706 case POPT_KEEPCONSOLE_OUTPUT: |
|
16557
9ce9e0342cc1
Bit the bullet and added a private GUSISIOUX for Python. This makes the delayconsole and keepopen code neater. Also tells Sioux to behave better with events, and handles cmd-. during print better. The pythonpreferences have also changed due to this.
Jack Jansen <jack.jansen@cwi.nl>
parents:
15921
diff
changeset
|
707 if (console_output_state == STATE_LASTWRITE || |
|
9ce9e0342cc1
Bit the bullet and added a private GUSISIOUX for Python. This makes the delayconsole and keepopen code neater. Also tells Sioux to behave better with events, and handles cmd-. during print better. The pythonpreferences have also changed due to this.
Jack Jansen <jack.jansen@cwi.nl>
parents:
15921
diff
changeset
|
708 console_output_state == STATE_UNKNOWN ) |
|
14773
c5ec0b11f8c9
Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents:
14464
diff
changeset
|
709 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
|
710 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
|
711 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
|
712 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
|
713 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
|
714 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
|
715 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
|
716 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
|
717 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
|
718 } |
|
3247
20d74fa3b50b
For MW Python, update titlebar of window when python exits.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3236
diff
changeset
|
719 if (keep) { |
|
20d74fa3b50b
For MW Python, update titlebar of window when python exits.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3236
diff
changeset
|
720 SIOUXSettings.standalone = 1; |
|
20d74fa3b50b
For MW Python, update titlebar of window when python exits.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3236
diff
changeset
|
721 SIOUXSettings.autocloseonquit = 0; |
|
3477
a4f01d43dad6
Replaced non-ascii chars by backslash escapes
Jack Jansen <jack.jansen@cwi.nl>
parents:
3465
diff
changeset
|
722 SIOUXSetTitle("\p\307terminated\310"); |
|
17629
a9485d404f05
- Raise console window on input. Fixes Carbon hang.
Jack Jansen <jack.jansen@cwi.nl>
parents:
16647
diff
changeset
|
723 PyMac_RaiseConsoleWindow(); |
|
5732
f027dd0a85e4
- Restore SIOUX menubar just before exiting, if the console window is kept
Jack Jansen <jack.jansen@cwi.nl>
parents:
5711
diff
changeset
|
724 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
|
725 #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
|
726 /* |
|
a56b44b35505
Workaround for bug in MSL and CWGUSI interaction that stopped the
Jack Jansen <jack.jansen@cwi.nl>
parents:
5270
diff
changeset
|
727 ** 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
|
728 ** 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
|
729 */ |
|
a56b44b35505
Workaround for bug in MSL and CWGUSI interaction that stopped the
Jack Jansen <jack.jansen@cwi.nl>
parents:
5270
diff
changeset
|
730 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
|
731 #endif |
|
3247
20d74fa3b50b
For MW Python, update titlebar of window when python exits.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3236
diff
changeset
|
732 } |
|
3236
463b26fa4d7b
Added options for keeping window open on normal/error termination
Jack Jansen <jack.jansen@cwi.nl>
parents:
3228
diff
changeset
|
733 else |
|
463b26fa4d7b
Added options for keeping window open on normal/error termination
Jack Jansen <jack.jansen@cwi.nl>
parents:
3228
diff
changeset
|
734 SIOUXSettings.autocloseonquit = 1; |
| 4197 | 735 #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
|
736 |
|
463b26fa4d7b
Added options for keeping window open on normal/error termination
Jack Jansen <jack.jansen@cwi.nl>
parents:
3228
diff
changeset
|
737 exit(status); |
|
463b26fa4d7b
Added options for keeping window open on normal/error termination
Jack Jansen <jack.jansen@cwi.nl>
parents:
3228
diff
changeset
|
738 } |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
739 |
|
19748
c93d7d0857a2
Changes to make these work under OSX as the main program for a
Jack Jansen <jack.jansen@cwi.nl>
parents:
19641
diff
changeset
|
740 #if !TARGET_API_MAC_OSX |
|
2985
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
741 /* 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
|
742 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
|
743 |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
744 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
|
745 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
|
746 { |
|
0d7100ffb61a
This is completely different from the old mainmain (which wasn't used
Jack Jansen <jack.jansen@cwi.nl>
parents:
2313
diff
changeset
|
747 *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
|
748 *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
|
749 } |
|
19748
c93d7d0857a2
Changes to make these work under OSX as the main program for a
Jack Jansen <jack.jansen@cwi.nl>
parents:
19641
diff
changeset
|
750 #endif |
|
3930
52c19ee83a6b
Guido's 1.4b2 fixes: Py_GetProgramName, Py_GetPrefix and Py_GetExecPrefix.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3750
diff
changeset
|
751 |
|
52c19ee83a6b
Guido's 1.4b2 fixes: Py_GetProgramName, Py_GetPrefix and Py_GetExecPrefix.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3750
diff
changeset
|
752 /* More cruft that shouldn't really be here, used in sysmodule.c */ |
|
19748
c93d7d0857a2
Changes to make these work under OSX as the main program for a
Jack Jansen <jack.jansen@cwi.nl>
parents:
19641
diff
changeset
|
753 #if !TARGET_API_MAC_OSX |
|
c93d7d0857a2
Changes to make these work under OSX as the main program for a
Jack Jansen <jack.jansen@cwi.nl>
parents:
19641
diff
changeset
|
754 /* Return the program name -- some code out there needs this. */ |
|
c93d7d0857a2
Changes to make these work under OSX as the main program for a
Jack Jansen <jack.jansen@cwi.nl>
parents:
19641
diff
changeset
|
755 char * |
|
c93d7d0857a2
Changes to make these work under OSX as the main program for a
Jack Jansen <jack.jansen@cwi.nl>
parents:
19641
diff
changeset
|
756 Py_GetProgramFullPath(void) |
|
c93d7d0857a2
Changes to make these work under OSX as the main program for a
Jack Jansen <jack.jansen@cwi.nl>
parents:
19641
diff
changeset
|
757 { |
|
c93d7d0857a2
Changes to make these work under OSX as the main program for a
Jack Jansen <jack.jansen@cwi.nl>
parents:
19641
diff
changeset
|
758 return orig_argv[0]; |
|
c93d7d0857a2
Changes to make these work under OSX as the main program for a
Jack Jansen <jack.jansen@cwi.nl>
parents:
19641
diff
changeset
|
759 } |
|
3930
52c19ee83a6b
Guido's 1.4b2 fixes: Py_GetProgramName, Py_GetPrefix and Py_GetExecPrefix.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3750
diff
changeset
|
760 |
|
52c19ee83a6b
Guido's 1.4b2 fixes: Py_GetProgramName, Py_GetPrefix and Py_GetExecPrefix.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3750
diff
changeset
|
761 char * |
|
19748
c93d7d0857a2
Changes to make these work under OSX as the main program for a
Jack Jansen <jack.jansen@cwi.nl>
parents:
19641
diff
changeset
|
762 Py_GetPrefix(void) |
|
3930
52c19ee83a6b
Guido's 1.4b2 fixes: Py_GetProgramName, Py_GetPrefix and Py_GetExecPrefix.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3750
diff
changeset
|
763 { |
|
6277
bb5472fb4885
sys.prefix and sys.exec_prefix are now set correctly.
Jack Jansen <jack.jansen@cwi.nl>
parents:
5961
diff
changeset
|
764 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
|
765 } |
|
52c19ee83a6b
Guido's 1.4b2 fixes: Py_GetProgramName, Py_GetPrefix and Py_GetExecPrefix.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3750
diff
changeset
|
766 |
|
52c19ee83a6b
Guido's 1.4b2 fixes: Py_GetProgramName, Py_GetPrefix and Py_GetExecPrefix.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3750
diff
changeset
|
767 char * |
|
19748
c93d7d0857a2
Changes to make these work under OSX as the main program for a
Jack Jansen <jack.jansen@cwi.nl>
parents:
19641
diff
changeset
|
768 Py_GetExecPrefix(void) |
|
3930
52c19ee83a6b
Guido's 1.4b2 fixes: Py_GetProgramName, Py_GetPrefix and Py_GetExecPrefix.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3750
diff
changeset
|
769 { |
|
6277
bb5472fb4885
sys.prefix and sys.exec_prefix are now set correctly.
Jack Jansen <jack.jansen@cwi.nl>
parents:
5961
diff
changeset
|
770 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
|
771 } |
|
16557
9ce9e0342cc1
Bit the bullet and added a private GUSISIOUX for Python. This makes the delayconsole and keepopen code neater. Also tells Sioux to behave better with events, and handles cmd-. during print better. The pythonpreferences have also changed due to this.
Jack Jansen <jack.jansen@cwi.nl>
parents:
15921
diff
changeset
|
772 |
|
9ce9e0342cc1
Bit the bullet and added a private GUSISIOUX for Python. This makes the delayconsole and keepopen code neater. Also tells Sioux to behave better with events, and handles cmd-. during print better. The pythonpreferences have also changed due to this.
Jack Jansen <jack.jansen@cwi.nl>
parents:
15921
diff
changeset
|
773 int |
|
19748
c93d7d0857a2
Changes to make these work under OSX as the main program for a
Jack Jansen <jack.jansen@cwi.nl>
parents:
19641
diff
changeset
|
774 PyMac_GetDelayConsoleFlag(void) |
|
16557
9ce9e0342cc1
Bit the bullet and added a private GUSISIOUX for Python. This makes the delayconsole and keepopen code neater. Also tells Sioux to behave better with events, and handles cmd-. during print better. The pythonpreferences have also changed due to this.
Jack Jansen <jack.jansen@cwi.nl>
parents:
15921
diff
changeset
|
775 { |
|
9ce9e0342cc1
Bit the bullet and added a private GUSISIOUX for Python. This makes the delayconsole and keepopen code neater. Also tells Sioux to behave better with events, and handles cmd-. during print better. The pythonpreferences have also changed due to this.
Jack Jansen <jack.jansen@cwi.nl>
parents:
15921
diff
changeset
|
776 return (int)PyMac_options.delayconsole; |
|
19641
c9647fa78f05
Added preferences/startup options for division warning
Jack Jansen <jack.jansen@cwi.nl>
parents:
18962
diff
changeset
|
777 } |
|
c9647fa78f05
Added preferences/startup options for division warning
Jack Jansen <jack.jansen@cwi.nl>
parents:
18962
diff
changeset
|
778 |
|
c9647fa78f05
Added preferences/startup options for division warning
Jack Jansen <jack.jansen@cwi.nl>
parents:
18962
diff
changeset
|
779 #ifndef WITHOUT_UNIX_NEWLINES |
|
c9647fa78f05
Added preferences/startup options for division warning
Jack Jansen <jack.jansen@cwi.nl>
parents:
18962
diff
changeset
|
780 /* |
|
c9647fa78f05
Added preferences/startup options for division warning
Jack Jansen <jack.jansen@cwi.nl>
parents:
18962
diff
changeset
|
781 ** Experimental feature (for 2.2a2): optionally allow unix newlines |
|
c9647fa78f05
Added preferences/startup options for division warning
Jack Jansen <jack.jansen@cwi.nl>
parents:
18962
diff
changeset
|
782 ** as well as Mac newlines on input. We replace a lowlevel |
|
c9647fa78f05
Added preferences/startup options for division warning
Jack Jansen <jack.jansen@cwi.nl>
parents:
18962
diff
changeset
|
783 ** MSL routine to accomplish this. |
|
c9647fa78f05
Added preferences/startup options for division warning
Jack Jansen <jack.jansen@cwi.nl>
parents:
18962
diff
changeset
|
784 */ |
|
c9647fa78f05
Added preferences/startup options for division warning
Jack Jansen <jack.jansen@cwi.nl>
parents:
18962
diff
changeset
|
785 void |
|
c9647fa78f05
Added preferences/startup options for division warning
Jack Jansen <jack.jansen@cwi.nl>
parents:
18962
diff
changeset
|
786 __convert_to_newlines(unsigned char * buf, size_t * n_ptr) |
|
c9647fa78f05
Added preferences/startup options for division warning
Jack Jansen <jack.jansen@cwi.nl>
parents:
18962
diff
changeset
|
787 { |
|
c9647fa78f05
Added preferences/startup options for division warning
Jack Jansen <jack.jansen@cwi.nl>
parents:
18962
diff
changeset
|
788 unsigned char *p; |
|
c9647fa78f05
Added preferences/startup options for division warning
Jack Jansen <jack.jansen@cwi.nl>
parents:
18962
diff
changeset
|
789 size_t n = *n_ptr; |
|
c9647fa78f05
Added preferences/startup options for division warning
Jack Jansen <jack.jansen@cwi.nl>
parents:
18962
diff
changeset
|
790 |
|
c9647fa78f05
Added preferences/startup options for division warning
Jack Jansen <jack.jansen@cwi.nl>
parents:
18962
diff
changeset
|
791 for(p=buf; n > 0; p++, n--) |
|
c9647fa78f05
Added preferences/startup options for division warning
Jack Jansen <jack.jansen@cwi.nl>
parents:
18962
diff
changeset
|
792 if ( *p == '\r' ) *p = '\n'; |
|
c9647fa78f05
Added preferences/startup options for division warning
Jack Jansen <jack.jansen@cwi.nl>
parents:
18962
diff
changeset
|
793 else if ( *p == '\n' && !PyMac_options.unixnewlines ) |
|
c9647fa78f05
Added preferences/startup options for division warning
Jack Jansen <jack.jansen@cwi.nl>
parents:
18962
diff
changeset
|
794 *p = '\r'; |
|
c9647fa78f05
Added preferences/startup options for division warning
Jack Jansen <jack.jansen@cwi.nl>
parents:
18962
diff
changeset
|
795 } |
|
c9647fa78f05
Added preferences/startup options for division warning
Jack Jansen <jack.jansen@cwi.nl>
parents:
18962
diff
changeset
|
796 #endif /* WITHOUT_UNIX_NEWLINES */ |
|
19748
c93d7d0857a2
Changes to make these work under OSX as the main program for a
Jack Jansen <jack.jansen@cwi.nl>
parents:
19641
diff
changeset
|
797 #endif /* !TARGET_API_MAC_OSX */ |
|
19641
c9647fa78f05
Added preferences/startup options for division warning
Jack Jansen <jack.jansen@cwi.nl>
parents:
18962
diff
changeset
|
798 |
