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