summaryrefslogtreecommitdiffstats
path: root/Mac/Python/macmain.c
diff options
context:
space:
mode:
authorJack Jansen <jack.jansen@cwi.nl>2001-09-01 22:37:54 (GMT)
committerJack Jansen <jack.jansen@cwi.nl>2001-09-01 22:37:54 (GMT)
commitff5d8aaa28f16fc6b34b61d6926881cc31a9626d (patch)
tree3b75b9c0a86dfeacba21dbf8eaf14451165fc552 /Mac/Python/macmain.c
parenta5ffeb69ab814618d9b4d77eba3aa2e03b1b9625 (diff)
downloadcpython-ff5d8aaa28f16fc6b34b61d6926881cc31a9626d.zip
cpython-ff5d8aaa28f16fc6b34b61d6926881cc31a9626d.tar.gz
cpython-ff5d8aaa28f16fc6b34b61d6926881cc31a9626d.tar.bz2
Added preferences/startup options for division warning
and accepting unix-style newlines on input. Also (finally) added a startup option to get -vv behaviour. Moved __convert_to_newlines to main.c because that's easier with the newline option.
Diffstat (limited to 'Mac/Python/macmain.c')
-rw-r--r--Mac/Python/macmain.c43
1 files changed, 37 insertions, 6 deletions
diff --git a/Mac/Python/macmain.c b/Mac/Python/macmain.c
index b82395c..c72bc33 100644
--- a/Mac/Python/macmain.c
+++ b/Mac/Python/macmain.c
@@ -62,9 +62,6 @@ extern PyMac_AddLibResources(void);
#define COPYRIGHT \
"Type \"copyright\", \"credits\" or \"license\" for more information."
-
-extern int Py_DebugFlag; /* For parser.c, declared in pythonrun.c */
-extern int Py_VerboseFlag; /* For import.c, declared in pythonrun.c */
short PyMac_AppRefNum; /* RefNum of application resource fork */
/* For Py_GetArgcArgv(); set by main() */
@@ -159,6 +156,7 @@ PyMac_InteractiveOptions(PyMac_PrefRecord *p, int *argcp, char ***argvp)
SET_OPT_ITEM(OPT_INSPECT, inspect);
SET_OPT_ITEM(OPT_VERBOSE, verbose);
+ /* OPT_VERBOSEVERBOSE is default off */
SET_OPT_ITEM(OPT_OPTIMIZE, optimize);
SET_OPT_ITEM(OPT_UNBUFFERED, unbuffered);
SET_OPT_ITEM(OPT_DEBUGGING, debugging);
@@ -173,7 +171,8 @@ PyMac_InteractiveOptions(PyMac_PrefRecord *p, int *argcp, char ***argvp)
/* SET_OPT_ITEM(OPT_KEEPCONSOLE, keep_console); */
SET_OPT_ITEM(OPT_TABWARN, tabwarn);
SET_OPT_ITEM(OPT_NOSITE, nosite);
- SET_OPT_ITEM(OPT_NONAVSERV, nonavservice);
+ SET_OPT_ITEM(OPT_DIVISIONWARN, divisionwarn);
+ SET_OPT_ITEM(OPT_UNIXNEWLINES, unixnewlines);
/* The rest are not settable interactively */
#undef SET_OPT_ITEM
@@ -219,6 +218,16 @@ PyMac_InteractiveOptions(PyMac_PrefRecord *p, int *argcp, char ***argvp)
OPT_ITEM(OPT_INSPECT, inspect);
OPT_ITEM(OPT_VERBOSE, verbose);
+ if ( item == OPT_VERBOSEVERBOSE ) {
+ if ( p->verbose == 2 )
+ p->verbose = 1;
+ else
+ p->verbose = 2;
+ GetDialogItem(dialog, OPT_VERBOSE, &type, (Handle *)&handle, &rect);
+ SetControlValue(handle, 1);
+ }
+ GetDialogItem(dialog, OPT_VERBOSEVERBOSE, &type, (Handle *)&handle, &rect);
+ SetControlValue(handle, p->verbose == 2);
OPT_ITEM(OPT_OPTIMIZE, optimize);
OPT_ITEM(OPT_UNBUFFERED, unbuffered);
OPT_ITEM(OPT_DEBUGGING, debugging);
@@ -236,7 +245,8 @@ PyMac_InteractiveOptions(PyMac_PrefRecord *p, int *argcp, char ***argvp)
SetControlValue(handle, (short)(p->keep_console == POPT_KEEPCONSOLE_NEVER));
OPT_ITEM(OPT_TABWARN, tabwarn);
OPT_ITEM(OPT_NOSITE, nosite);
- OPT_ITEM(OPT_NONAVSERV, nonavservice);
+ OPT_ITEM(OPT_DIVISIONWARN, divisionwarn);
+ OPT_ITEM(OPT_UNIXNEWLINES, unixnewlines);
#undef OPT_ITEM
}
@@ -315,6 +325,7 @@ init_common(int *argcp, char ***argvp, int embedded)
Py_DebugFlag = PyMac_options.debugging;
Py_NoSiteFlag = PyMac_options.nosite;
Py_TabcheckFlag = PyMac_options.tabwarn;
+ Py_DivisionWarningFlag = PyMac_options.divisionwarn;
if ( PyMac_options.noargs ) {
/* don't process events at all without the scripts permission */
PyMacSchedParams scp;
@@ -674,4 +685,24 @@ int
PyMac_GetDelayConsoleFlag()
{
return (int)PyMac_options.delayconsole;
-} \ No newline at end of file
+}
+
+#ifndef WITHOUT_UNIX_NEWLINES
+/*
+** Experimental feature (for 2.2a2): optionally allow unix newlines
+** as well as Mac newlines on input. We replace a lowlevel
+** MSL routine to accomplish this.
+*/
+void
+__convert_to_newlines(unsigned char * buf, size_t * n_ptr)
+{
+ unsigned char *p;
+ size_t n = *n_ptr;
+
+ for(p=buf; n > 0; p++, n--)
+ if ( *p == '\r' ) *p = '\n';
+ else if ( *p == '\n' && !PyMac_options.unixnewlines )
+ *p = '\r';
+}
+#endif /* WITHOUT_UNIX_NEWLINES */
+