Added PyMac_Initialize() routine, to be used by embedding programs (in

stead of standard Py_Initialize(), which it calls).
This commit is contained in:
Jack Jansen 1997-01-15 15:49:08 +00:00
parent 5cd752028c
commit 52ac037249
5 changed files with 532 additions and 516 deletions

View File

@ -102,3 +102,4 @@ PyObject *PyMac_BuildEventRecord(EventRecord *); /* Convert EventRecord to PyObj
int PyMac_GetFixed(PyObject *, Fixed *); /* argument parser for Fixed */
PyObject *PyMac_BuildFixed(Fixed); /* Convert Fixed to PyObject */
void PyMac_InitApplet(void); /* Initialize and run an Applet */
void PyMac_Initialize(void); /* Initialize function for embedding Python */

View File

@ -192,7 +192,7 @@ PyMac_InteractiveOptions(PyMac_PrefRecord *p, int *argcp, char ***argvp)
** Initialization code, shared by interpreter and applets
*/
static void
init_common(int *argcp, char ***argvp)
init_common(int *argcp, char ***argvp, int embedded)
{
/* Remember resource fork refnum, for later */
PyMac_AppRefNum = CurResFile();
@ -223,11 +223,18 @@ init_common(int *argcp, char ***argvp)
options.keep_error = 1; /* default-default */
PyMac_PreferenceOptions(&options);
/* Create argc/argv. Do it before we go into the options event loop. */
*argcp = PyMac_GetArgv(argvp, options.noargs);
/* Do interactive option setting, if allowed and <option> depressed */
PyMac_InteractiveOptions(&options, argcp, argvp);
if ( embedded ) {
static char *emb_argv[] = {"embedded-python", 0};
*argcp = 1;
*argvp = emb_argv;
} else {
/* Create argc/argv. Do it before we go into the options event loop. */
*argcp = PyMac_GetArgv(argvp, options.noargs);
/* Do interactive option setting, if allowed and <option> depressed */
PyMac_InteractiveOptions(&options, argcp, argvp);
}
/* Copy selected options to where the machine-independent stuff wants it */
Py_VerboseFlag = options.verbose;
@ -310,7 +317,7 @@ PyMac_InitApplet()
char **argv;
int err;
init_common(&argc, &argv);
init_common(&argc, &argv, 0);
Py_Initialize();
PySys_SetArgv(argc, argv);
@ -325,6 +332,20 @@ PyMac_InitApplet()
/* XXX Should we bother to Py_Exit(sts)? */
}
/*
** Hook for embedding python.
*/
void
PyMac_Initialize()
{
int argc;
char **argv;
init_common(&argc, &argv, 1);
Py_Initialize();
PySys_SetArgv(argc, argv);
}
#endif /* USE_MAC_APPLET_SUPPORT */
/* For normal application */
@ -334,7 +355,7 @@ PyMac_InitApplication()
int argc;
char **argv;
init_common(&argc, &argv);
init_common(&argc, &argv, 0);
if ( argc > 1 ) {
/* We're running a script. Attempt to change current directory */

View File

@ -1,4 +1,5 @@
inittab
PyMac_Initialize
PyExc_ZeroDivisionError
PyExc_ValueError
PyExc_TypeError

File diff suppressed because it is too large Load Diff

View File

@ -12,15 +12,15 @@ IFfKKFQ9NAf0[EQCTCbjS!*!*VT2S`3'!9%9B9+k6k-%!"!!#!*!%$9"jG'K[EN0
Z8fTb!B"08%a'VP0UFJ!!!6!!"!"3!!!!!J!"!*!)!J#3"4"YB@0KF("XD@0KG'P
[ELjM!*!B!3#3"`1ZNqM"!!%!4J")!qF!!3!#!*!)!J%!N!313A"`8R9ZG'PYC5j
-D@)!N"S&!*!(4J")!qF!!3!#!*!)!J%!N!308(PdD'pZ3fpbC9"33`#3'`3!N!G
'!%J$j`!"!!-!N!J#!3#3"!YLG@jNE'8ZFR0bB`#3(3)!N!S$9@i`!!!"(J!!!3j
34Qac!*!%!e@`M!!!!L`!!!%`8%acG!#3#a`!!!!#8&0PCrrr!*!*(J!!!3"38f9
R!!%!!$!e!!!"!!!!*"m!!#-I!!!#XJ#3"9S!!HXF!!-!N"3,8(PdD'pZ8&"$,V8
'!%J$j`!"!!-!N!J#!3#3"!YLG@jNE'8ZFR0bB`#3(3)!N!S"2TFF!!!"(J!!!3j
34Qac!*!%!6kAR!!!!L`!!!%`8%acG!#3#a`!!!!#8&0PCrrr!*!*(J!!!3"38f9
R!!%!!"e"!!!"!!!!*"m!!#-I!!!#XJ#3"9S!!HXF!!-!N"3,8(PdD'pZ8&"$,V8
#!!!!68e38N0A588!!2q3"!#3"%e08&*$9dP&!!$rN!3!N"+ZaQ0I!!!$V!!!*Y%
!!J"U"'CXBA#8!!2J[!!!!!%2!2q3"J!!!!%!!`-(!*!%%J#3"!)-)8e[GQ8Q8Q8
ZEQ&YE3!!9581!`)"6@pfC5C5C@jKE@8B#`#3"!)&9(*KFfJ!!$DF"94bBA0S"J!
!!$DF!&3&9(*KFfK4P2r41L!!E2q3#!!!!!S!"!#3#`)!"J!!!$!!"J%!rrm!N!M
rr`'3"3#3""i"!3#3#*QC!!!rrcrr2rm"!*!%5J!"!!N'6@pZB@0[!*!F"!!S!!S
"`J+!!#J!#J(#!S!!N"!"!*!%!J#3"43!!3"B!@!!pJ*k!$S!!%S6!!"r%J!!!"S
"`J+!!#J!#J(#!S!!N"!"!*!%!J#3"43!!3"B!@!!pJ*k!%)!!%S6!!"r%J!!!"S
!!`!!QCN!N!4rr`#3"(rr!*!%Irm!N!3&(!!%!!!!!`!#!3J!!3%k@km!cq$N!!k
[0'&cDb!!!!!F!*!*U'+Q!+KMP!#SBk`!N!@U*[J!N!@U*[J!%'0`!*!Sc*!)!-r
Bd!$2f'$GN!Krrhrr!-rBK!#3"%#9-CJ!!!@%!!#K)[i#!*!(cpM3!!-j-J#3%`%
@ -90,18 +90,18 @@ B9!)ZD!#324!!!!"849K8"#j`BfJ!N"X)68-J3bp$+bX!N"H!!!!!9%9B9!-ZG(-
XDATP!*!dAepcG'&bG!#319pIG'9bE@PZBA4P!*!h!43!"3#3r`#3&VS!"!!!#9"
jG'K[EP"33`#3&P"jG'K"8&"-!!!AF!!!#!#3"%!!!&MJ!*"K!6q3"!#3"e8"N!!
"!J*l!3!!!!Y@!!"EV`!!!#i!!J!!!!)!!J#3+!)-!!)!8!!"!!%!!3!"!*$r!"3
R3dp%45FJ*d4"9%%R)#G35808*`#3lJS!"!%!N!N"!!!!*"m!!#-I!!!#XJ09DA`
XcJ!!!"`"HJ!#F(*PCJ!B!"T`9Q9b!!!"4P088L-!!!&5",!!N!SY2J!G!!!!&!#
3"%Y`!#3!!!")!*!%Gf!!+3!!!*`!N!4!#!!i!!!!Y!#3"!D"!%J!!!$5!*!%,di
!93!!"I)!N!3YP3"F!!!DLJ#3"%V,!'N!!"U8!*!%9Z%!G3!!'U`!N!3*k`#'!!!
DZJ#3"&2C!*%!!"V-!*!%CN3!R3!!'jB!N!3f2`#X!!!EdJ#3"(PJ!,X!!"[L!*!
%2"X!`J!!(F!!N!35i!$5!!!GqJ#3"&k6!1)!!"i,!*!%'Fm!lJ!!(L-!N!4Xa!$
r!!!H-3#3"(2#!3S!!"lj!*!%+T!!!4)!!#!4!*!%@2-"(J!!)-m!N!3ll`%V!!!
K!3#3"FMrr`!!)a%!N!F0!!!!$J#3""Z!rrm!!!#@!*!%$&"bEfTPBh3J6@PcB`p
3FQpUC@0d)&CPFR0TEfi'4@4TG'pb"%C[ER318(*[DQ9MG#"&H(4bBA-23h9cG'p
Y)%YPHAG[FQ4c$%&MBf9cFb"3BA4SF`C8BA*RCA3-3R9TE'3J4AKdFQ&c#cBi5b"
$Ef4P4f9Z%$Bi5b"%DA0KFh0PE@*XCA)+0MK,)%aTEQYPFJXf1%XJ8(*[DQ9MG!j
$,d-V+b"$Efe`D@aPFJj$,d-V+b"ABA*ZD@jRF`C$4Ndf1%X28'&cBf&X)%0[EA"
TE'9b$e"KFf0KE#"ABA*ZD@jRF`Y38%-J3fpNC8GPEK"38%-J4'PcBA0cC@eLE'9
b#P"33b"-D@jVCA)(8&"$)&"&4JY38%-J8(*[DQ9MG!a38%0"FfdJ8'&ZC@`-8Q9
k)%0[EA"TE'9b%&d:
R3dp%45FJ*d4"9%%R)#G35808*`#3lJS!"!%!N!N"!!!!*"m!!#-I!!!#XJ%qQ&3
J8J!!!"`"HJ!#F(*PCJ!B!"T`9Q9b!!!"4P088L-!!!&5",!!N!SY2J!G!!!!&!#
3"%Y`!#3!!!")!*!%(!i!+3!!!*`!N!4j#J!i!!!!Y!#3"#l8!%J!!!$5!*!%1Gd
!93!!"I)!N!3$m!"F!!!DLJ#3"(J2!'N!!"U8!*!%+8i!G3!!'U`!N!4"(!#'!!!
DZJ#3"#f4!*%!!"V-!*!%#(%!R3!!'jB!N!4R[3#X!!!EdJ#3"$*b!,X!!"[L!*!
%&N8!`J!!(F!!N!35H`$5!!!GqJ#3"&JY!1)!!"i,!*!%*Xm!lJ!!(L-!N!3aX`$
r!!!H-3#3"%SM!3S!!"lj!*!%8Y%"%J!!)"%!N!4B'`%H!!!Jc`#3"(,6!5X!!#%
"!*!&b2rr!!!M%3#3"`d!!!!1!*!%'i$rr`!!!*B!N!3-8(*[DQ9MG#"0DA0M$e"
bEfTPBh3J9Q9bFfP[EJC&C'PdEh)%4QpZG!j3FQpUC@0d)%9iG(*KF`p$GA0dEfd
J5f9jGfpbC(--3@0MCA0c)&"KG'Kc"P4KFQGPG!a#G@PXC#"&H(4bBA-,0MK,)%0
[C'9(C@i30MK,)%4TFf&cFf9YBQaPFJSf1%XJ6'PZDf9b#cBi5b"3FQpUC@0d$N-
[3bXV)%0[EA"TE'9b$N-[3bXV)&GKFQjTEQGc"N0'66Bi5`p3BA0MB@`J3fpYF'P
XCA)28'&cBf&X)&GKFQjTEQGc#e"33b"$Ef4P4f9Z%&"33b"%DA0KFh0PE@*XCA)
+8&"$)%aTEQYPFJG38%-J8%9'#e"33b"3FQpUC@0d$&"33d&cE5"3B@jPE!a5CAS
J3fpYF'PXCA*F&`: