diff options
-rw-r--r-- | Mac/Include/pythonresources.h | 1 | ||||
-rw-r--r-- | Mac/Python/macmain.c | 32 | ||||
-rw-r--r-- | Mac/Resources/dialogs.rsrc.hqx | 51 |
3 files changed, 54 insertions, 30 deletions
diff --git a/Mac/Include/pythonresources.h b/Mac/Include/pythonresources.h index 49e909f..4a69d5d 100644 --- a/Mac/Include/pythonresources.h +++ b/Mac/Include/pythonresources.h @@ -43,6 +43,7 @@ #define OPT_DEBUGGING 7 #define OPT_KEEPNORMAL 8 #define OPT_KEEPERROR 9 +#define OPT_CMDLINE 10 /* Dialog for 'No preferences directory' */ #define NOPREFDIR_ID 133 diff --git a/Mac/Python/macmain.c b/Mac/Python/macmain.c index 966c279..bcfed1a 100644 --- a/Mac/Python/macmain.c +++ b/Mac/Python/macmain.c @@ -208,7 +208,7 @@ PyMac_InitApplication() void PyMac_InteractiveOptions(int *inspect, int *verbose, int *suppress_print, int *unbuffered, int *debugging, int *keep_normal, - int *keep_error) + int *keep_error, int *argcp, char ***argvp) { KeyMap rmap; unsigned char *map; @@ -216,6 +216,8 @@ PyMac_InteractiveOptions(int *inspect, int *verbose, int *suppress_print, ControlHandle handle; DialogPtr dialog; Rect rect; + int old_argc = *argcp; + int i; /* Default-defaults: */ *keep_error = 1; @@ -233,6 +235,8 @@ PyMac_InteractiveOptions(int *inspect, int *verbose, int *suppress_print, printf("Option dialog not found - cannot set options\n"); return; } + SetDialogDefaultItem(dialog, OPT_OK); + SetDialogCancelItem(dialog, OPT_CANCEL); /* Set default values */ #define SET_OPT_ITEM(num, var) \ @@ -258,6 +262,24 @@ PyMac_InteractiveOptions(int *inspect, int *verbose, int *suppress_print, DisposDialog(dialog); exit(0); } + if ( item == OPT_CMDLINE ) { + int new_argc, newer_argc; + char **new_argv, **newer_argv; + + new_argc = ccommand(&new_argv); + newer_argc = (new_argc-1) + old_argc; + newer_argv = malloc((newer_argc+1)*sizeof(char *)); + if( !newer_argv ) + Py_FatalError("Cannot malloc argv\n"); + for(i=0; i<old_argc; i++) + newer_argv[i] = (*argvp)[i]; + for(i=old_argc; i<=newer_argc; i++) /* Copy the NULL too */ + newer_argv[i] = new_argv[i-old_argc+1]; + *argvp = newer_argv; + *argcp = newer_argc; + + /* XXXX Is it not safe to use free() here, apparently */ + } #define OPT_ITEM(num, var) \ if ( item == (num) ) { \ *(var) = !*(var); \ @@ -291,12 +313,12 @@ Py_Main(argc, argv) int inspect = 0; int unbuffered = 0; + PyMac_InteractiveOptions(&inspect, &Py_VerboseFlag, &Py_SuppressPrintingFlag, + &unbuffered, &Py_DebugFlag, &keep_normal, &keep_error, &argc, &argv); + orig_argc = argc; /* For getargcargv() */ orig_argv = argv; argv0 = argv[0]; /* For getprogramname() */ - - PyMac_InteractiveOptions(&inspect, &Py_VerboseFlag, &Py_SuppressPrintingFlag, - &unbuffered, &Py_DebugFlag, &keep_normal, &keep_error); if (unbuffered) { #ifndef MPW @@ -366,7 +388,7 @@ PyMac_Exit(status) if (keep) { SIOUXSettings.standalone = 1; SIOUXSettings.autocloseonquit = 0; - SIOUXSetTitle("\p«terminated»"); + SIOUXSetTitle("\p´terminatedª"); } else SIOUXSettings.autocloseonquit = 1; diff --git a/Mac/Resources/dialogs.rsrc.hqx b/Mac/Resources/dialogs.rsrc.hqx index 4dae7bb..673c56e 100644 --- a/Mac/Resources/dialogs.rsrc.hqx +++ b/Mac/Resources/dialogs.rsrc.hqx @@ -1,8 +1,8 @@ (This file must be converted with BinHex 4.0) -:$'4TB@a[Ch-ZFR0bB`"bFh*M8P0&4!%!N!F,5YMQ!*!%!3!!!!MI!!!(h`!!!QX +:$'4TB@a[Ch-ZFR0bB`"bFh*M8P0&4!%!N!F,GLmj!*!%!3!!!!N,!!!)#`!!!QX f&#"8)'J!&#"3I4'`D"%!1J&R*K)[$%kk!J`-1J"DH3aND@&XEfGc,R*cFQ0c!J! -!!(*cFQ058d9%!3!!0!#!!!"bFh*M8P0&4!%!!$3!J!#3%Uc1(f3!N!B,5[m4`+K +#!(*cFQ058d9%!3!!0!#!!J"bFh*M8P0&4!%!!$3!J!#3%Uc1(f3!N!B,G[m4`+K T!4e!%Irc%h!!%#lrmlh5%@B386Dq9@X"!8*%[D'q9@X"!6"4-J&R(N39$!!!('8 5F!!3,N-9$!!!(f)'F!&J!!%"!LaD9#dZ4,d"!"Xm!@B`*e8q'NU!)&-#+!#r!#i L!1d*!J%!3)-Sfc36UGF[$%kk!3P+CfX"!+CA3cS!!!"d!!%!N!9,!&F!A`#4"!* @@ -17,7 +17,7 @@ JE@8JGfKPFQ8JDA3JDA-r!*!%$!"D!'B!fJ'+!)"993!!!"8!DJ"B!0N"B!!"!3! !!3%!!3#3"3%"!*!%3J!$!*!&@J#r!'i!q`3#6dX!N!9D!!S!EJ"%"!C$B@jMC@` !N!8+!!S!-!$lL!#3"MB!$3"+!2J3!*!%&3##!'3!kJ&N!!%"!!%!N!8"!J#3"&3 !"!#3"8d!6J"H!'3)!*!'63$!!'%!qJ3$@@9cqJ#3"8d!I`"K!,N%!Nj[!*!&63! -+!'%!4J3'3f&ZBf9X!*!&#J!+!%B!qSJ!N!39!#J!+!%)!8B!!3%!!3#3"S-!N!6 ++!'%!4J3'3f&ZBf9X!*!&#J!+!%B!qSJ!N!39!#J!+!%T!88!!3%!!3#3"S-!N!6 -!!S!N!@8!3d!TJ&G"!42F'9Z!*!&V`%0!-%"A33'3f&ZBf9X!*!%"*F!2J6R!&! %!*!')`$U!$F"AB!!N!C#!3d!9!&G"!9&DQ9MG!#3"P`"$3"Z!9d%"d4PFfYdEh! !N!C"!!i!`J$U!*!()`![!$J!bB!!N!Cp!38!IJ&GJ!#3"JJ!$`!B!9Z)!*!'cJ! @@ -35,25 +35,26 @@ dD'pZ8(*PCR-R,J!!!)i!!3#3"9S!F`"Z!+d%"%9iDA3!N!8+!%B!8`&6#'XR8(P dD'pZ)&"bC@CPFQ9ZBf9c*b"KF("PBA*c)'0[FR*eF(30+&"jG'K[EL"SEfeP)'C [E'4PFL"TEQ0[FR*PBh3T,L!0$9"XC@&cC5"bC@e[GQ8JDA3JB@jN)(*PFh4KFR3 JF(PdD'pZ,J#3"!`!8J!q!-!"MJ#&998!!!!-!(i!D!$k!Fd!KP99!!!!$!"-!') -!a!(*!)G993!!!A3!#J#3"Ei!e3$5!3m%!e*eEQJ!N!@q!!S!dJ"("!C$B@jMC@` -!N!8H!!N!-!%1"50&ER4PFL"TER4PFQ&MG'PfC5"YEf4P)'&QG'9b)(0MFQP`G#- -!N!8c!!N!43%1"4G8FQ&MC5"TEA"[FR3JFh4KG'9YC@jdFjS!N!9*!!N!@`%0"4a -6GA"`FQ9cFb"PH("bCA0cD@pZ)("bD@jdD@jR!*!&A`!*!(%"$!8B9@jLG@CQCA* -PC#"cG'4[GA3[Fh4NCA*b!*!&G3!*!)F"#`864'9LG@FJF'&bFf9b)'peG("eG(3 -!N!@J!"i!XJ#-"3Y1Eh*YB@`JCAKTG()!N!@J!+!!XJ%+"3TPFR*[FL"PH'Pd!*! -&"J!Q!"F!lSJD8(PdD'pZ)'PZG'9bF(*PG'9b)'p`G'P[ER-!N!@-!!S!R!%,L"T -,C@9`)(0dC'P[)(GTEQ4[Gb"[F'9Z)'pZ1J!!!"8!DJ"B!,J"T!!"!3!"!*!&!3- -!N!3b!!)!N!8Y!33!33&!K!CMB@jMC@`!N!8+!!S!)`$jL!#3"Ld!#J"!!2U!!!! -!!3!!!!MI!!!(h`!!!QX!qR18%aS!!!!F!9B!!N4*9%`!#`!D38a59!!%!+T%6%p -(!!B!jJ#"!$m!N!AkFQ`!J!![!!!!S3$kFR3"!!"'!!!"J!$kFQJ"!3"1!!!"[3$ -kFQ3"!J"X!!!#(!$kFQ!!J`#H!!!''!$kFP`!JJ#!)!!#M3$kFPJ!K!#3!#!!!ed -!qR*8!)8![!!!"#!!qR*3!)B!aJ!!",!!qR*-!)F!d3!!"9B!qR*)!3-!r3!!"kN -!qR*%!)%!+!!!!(J!N!@!!"J!!!&A!*!&K3$G!!!&k!#3"BB!j`!!"IJ!N!@(!2% -!!!B)!*!&JJ!!)!!!L!$kFMJ"!!!3!!!"C`$kFM3"!3"A!!!"T!$kF83"!J"J!!! -#!`$kFL`!J`"i!!!#G!$kFM!!K!#Z)!!%"`$kFLJ"!`%*!!!(N!!!qR)F$e0PE'9 -MG%4TFQ9MG'pbH3G0CA0cB@GP$e"jG'K[EN4TFQ9MG'pbH3C"F("XCA328(PdD'p -Z4'PbC@0dEh*j"N&`F'aPG!G0CA0cB@GP#&&eCA0dD@pZ#&&eCA0dD@pZ#ePPFdj -[3f&ZBf9X#ePPFdj[3f&ZBf9X"dp`G'P[ER-28f9XC@0d4'PbC@0dEh*j$9"bEfe -`G%GPG%CTE'828h4KFR4eF#"[F(4TEfjc$9"bEfe`G%GPG%CTE'8*6Qp3FQ9Q4'P -b#Nj[8(*PCNCTE'8,3Q&N8(*PCNCTE'8*6Qp3FQ9Q4'Pb#8j[8(*PCN4TFJY#B@4 -3FQ9Q4QPXC3Y3FQpRFQ9cFd*KFJY3FQpRFQ9cFd*KFT+Q: +!a!(*!)G993!!!"8!DJ"B!,J"T!!"!3!"!*!&!3-!N!3b!!)!N!8Y!33!33&!K!C +MB@jMC@`!N!8+!!S!)`$jL!#3"Ld!#J"!!2U!!!!!!D!!#`#3"H-!d`$h!3d%!e* +eEQJ!N!AM!!J!p`"&"!C$B@jMC@`!N!8H!!N!-!%1"50&ER4PFL"TER4PFQ&MG'P +fC5"YEf4P)'&QG'9b)(0MFQP`G#-!N!8c!!N!43%1"4G8FQ&MC5"TEA"[FR3JFh4 +KG'9YC@jdFjS!N!9*!!N!@`%0"4a6GA"`FQ9cFb"PH("bCA0cD@pZ)("bD@jdD@j +R!*!&A`!*!(%"$!8B9@jLG@CQCA*PC#"cG'4[GA3[Fh4NCA*b!*!&G3!*!)F"#`8 +64'9LG@FJF'&bFf9b)'peG("eG(3!N!@J!"i!XJ#-"3Y1Eh*YB@`JCAKTG()!N!@ +J!+!!XJ%+"3TPFR*[FL"PH'Pd!*!&`!!*!08"#33H8f9d)(9ZDAJYFh4jE'8JBfp +YE@&ZC#"XD@jP,LiZ!*!&"J!Q!"F!lSJD8(PdD'pZ)'PZG'9bF(*PG'9b)'p`G'P +[ER-!N!@-!!S!R!%,L"T,C@9`)(0dC'P[)(GTEQ4[Gb"[F'9Z)'pZ1J!!!3!!!!N +,!!!)#`!!!QX"K4Ym&i)!!!!F!9B!!N4*9%`!#`!D38a59!!%!+T%6%p(!!B!jJ# +"!$m!N!3"K6&%!)!!,`!!!+%"K6&-!3!!4J!!!B!"K6&!!3%!6J!!!Ed"K6%X!3) +!E!!!!K`"K6%S!)-!RJ!!"QF"K6%N!))!J#!!!Sd"K6%J!)3!N!!J!!0G!B8a(!# +&!,`!!!3J!B8a'!#'!-B!!!5`!B8a&!#(!0%!!!9@!B8a%!%$!2d!!!Ba!B8a$!# +"!#J!!!"i!*!&J!!B!!!"9`#3"B8!h3!!"HJ!N!@'!1F!!!Ai!*!&K`$a!!!'#!# +3"B)!!#!!!)J!N!3"!!!3!!!"C`#3"!%"!&F!!!'N!*!%!3)!B!!!!J-!N!@$!(J +!!!*d!B8[K!#%!+iJ!!3(!*!%!3-"#3!!"KJ!N!328f9XC@0d4'PbC@0dEh*j"de +PFh0KCf828(PdD'pZ4'PbC@0dEh*j"N&`F'aPG!p3HA4SEfj%DA*PBh4[FRN'3A" +`E'9d"dePFh0KCf8)8A9PFh4TEfi)8A9PFh4TEfi,@@9c6Qp$B@jMC@`,@@9c6Qp +$B@jMC@`(6h"dD@pZF`p6C@aPBh4%DA*PBh4[FRN08(*[EA"d4f9d4QPXC3p6G'& +bG(9`)'p`G'P[ER-08(*[EA"d4f9d4QPXC3P1Ee"bC@C%DA)+6Qp3FQ9Q4QPXC3Y +#B@43FQ9Q4QPXC3P1Ee"bC@C%DA)*6Qp3FQ9Q4'Pb#d*KC&"bC@C'D@aP#e"bEfG +bCA0c3Q&b#e"bEfGbCA0c3Q&b'&-: |