- 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

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