diff options
| author | Jack Jansen <jack.jansen@cwi.nl> | 1996-03-12 13:29:04 +0000 | 
|---|---|---|
| committer | Jack Jansen <jack.jansen@cwi.nl> | 1996-03-12 13:29:04 +0000 | 
| commit | e355c4568f30b720c714d999ffb621b5bd83c137 (patch) | |
| tree | 5437f6e072528d512893cd93199cec56c2f3a6b3 | |
| parent | 4032c2c1ce3e15fa038721938854bdec14334600 (diff) | |
| download | cpython-git-e355c4568f30b720c714d999ffb621b5bd83c137.tar.gz | |
- Allow setting of argc/argv in <option>-start dialog
- Set "ok" to be default button
| -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 49e909f587..4a69d5d9e0 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 966c279824..bcfed1ad07 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 4dae7bb2a7..673c56e7d5 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!*!()`