- Allow setting of argc/argv in <option>-start dialog

- Set "ok" to be default button
This commit is contained in:
Jack Jansen 1996-03-12 13:29:04 +00:00
parent 4032c2c1ce
commit e355c4568f
3 changed files with 54 additions and 30 deletions

View File

@ -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

View File

@ -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,13 +313,13 @@ 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
setbuf(stdout, (char *)NULL);
@ -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;

View File

@ -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'&-: