Commit 0c6d037c authored by Jack Jansen's avatar Jack Jansen

Removed string-exception preference, added tabcheck and NavService preference,...

Removed string-exception preference, added tabcheck and NavService preference, upped version number.
parent 1fdadcd4
...@@ -16,14 +16,14 @@ OVERRIDE_POPT_ID = 229 ...@@ -16,14 +16,14 @@ OVERRIDE_POPT_ID = 229
OVERRIDE_GUSI_ID = 10241 OVERRIDE_GUSI_ID = 10241
# version # version
CUR_VERSION=4 CUR_VERSION=5
preffilename = PstringLoader(AnyResLoader('STR ', resname=PREFNAME_NAME)).load() preffilename = PstringLoader(AnyResLoader('STR ', resname=PREFNAME_NAME)).load()
pref_fss = preferencefile(preffilename, 'Pyth', 'pref') pref_fss = preferencefile(preffilename, 'Pyth', 'pref')
class PoptLoader(VersionLoader): class PoptLoader(VersionLoader):
def __init__(self, loader): def __init__(self, loader):
VersionLoader.__init__(self, "bbbbbbbbbbbb", loader) VersionLoader.__init__(self, "bbbbbbbbbbbbb", loader)
def versioncheck(self, data): def versioncheck(self, data):
if data[0] == CUR_VERSION: if data[0] == CUR_VERSION:
...@@ -89,8 +89,8 @@ class PythonOptions: ...@@ -89,8 +89,8 @@ class PythonOptions:
flags = self.popt.load() flags = self.popt.load()
dict['version'], dict['inspect'], dict['verbose'], dict['optimize'], \ dict['version'], dict['inspect'], dict['verbose'], dict['optimize'], \
dict['unbuffered'], dict['debugging'], dict['keepopen'], dict['keeperror'], \ dict['unbuffered'], dict['debugging'], dict['keepopen'], dict['keeperror'], \
dict['nointopt'], dict['noargs'], dict['oldexc'], \ dict['nointopt'], dict['noargs'], dict['tabwarn'], \
dict['nosite'] = flags dict['nosite'], dict['nonavservice'] = flags
return dict return dict
def save(self, dict): def save(self, dict):
...@@ -100,8 +100,8 @@ class PythonOptions: ...@@ -100,8 +100,8 @@ class PythonOptions:
self.gusi.save((dict['creator'], dict['type'], dict['delayconsole'])) self.gusi.save((dict['creator'], dict['type'], dict['delayconsole']))
flags = dict['version'], dict['inspect'], dict['verbose'], dict['optimize'], \ flags = dict['version'], dict['inspect'], dict['verbose'], dict['optimize'], \
dict['unbuffered'], dict['debugging'], dict['keepopen'], dict['keeperror'], \ dict['unbuffered'], dict['debugging'], dict['keepopen'], dict['keeperror'], \
dict['nointopt'], dict['noargs'], dict['oldexc'], \ dict['nointopt'], dict['noargs'], dict['tabwarn'], \
dict['nosite'] dict['nosite'], dict['nonavservice']
self.popt.save(flags) self.popt.save(flags)
def AppletOptions(file): def AppletOptions(file):
......
...@@ -149,8 +149,9 @@ PyMac_InteractiveOptions(PyMac_PrefRecord *p, int *argcp, char ***argvp) ...@@ -149,8 +149,9 @@ PyMac_InteractiveOptions(PyMac_PrefRecord *p, int *argcp, char ***argvp)
SET_OPT_ITEM(OPT_DEBUGGING, debugging); SET_OPT_ITEM(OPT_DEBUGGING, debugging);
SET_OPT_ITEM(OPT_KEEPNORMAL, keep_normal); SET_OPT_ITEM(OPT_KEEPNORMAL, keep_normal);
SET_OPT_ITEM(OPT_KEEPERROR, keep_error); SET_OPT_ITEM(OPT_KEEPERROR, keep_error);
SET_OPT_ITEM(OPT_OLDEXC, oldexc); SET_OPT_ITEM(OPT_TABWARN, tabwarn);
SET_OPT_ITEM(OPT_NOSITE, nosite); SET_OPT_ITEM(OPT_NOSITE, nosite);
SET_OPT_ITEM(OPT_NONAVSERV, nonavservice);
/* The rest are not settable interactively */ /* The rest are not settable interactively */
#undef SET_OPT_ITEM #undef SET_OPT_ITEM
...@@ -199,8 +200,9 @@ PyMac_InteractiveOptions(PyMac_PrefRecord *p, int *argcp, char ***argvp) ...@@ -199,8 +200,9 @@ PyMac_InteractiveOptions(PyMac_PrefRecord *p, int *argcp, char ***argvp)
OPT_ITEM(OPT_DEBUGGING, debugging); OPT_ITEM(OPT_DEBUGGING, debugging);
OPT_ITEM(OPT_KEEPNORMAL, keep_normal); OPT_ITEM(OPT_KEEPNORMAL, keep_normal);
OPT_ITEM(OPT_KEEPERROR, keep_error); OPT_ITEM(OPT_KEEPERROR, keep_error);
OPT_ITEM(OPT_OLDEXC, oldexc); OPT_ITEM(OPT_TABWARN, tabwarn);
OPT_ITEM(OPT_NOSITE, nosite); OPT_ITEM(OPT_NOSITE, nosite);
OPT_ITEM(OPT_NONAVSERV, nonavservice);
#undef OPT_ITEM #undef OPT_ITEM
} }
...@@ -266,7 +268,7 @@ init_common(int *argcp, char ***argvp, int embedded) ...@@ -266,7 +268,7 @@ init_common(int *argcp, char ***argvp, int embedded)
Py_OptimizeFlag = options.optimize; Py_OptimizeFlag = options.optimize;
Py_DebugFlag = options.debugging; Py_DebugFlag = options.debugging;
Py_NoSiteFlag = options.nosite; Py_NoSiteFlag = options.nosite;
Py_UseClassExceptionsFlag = !(options.oldexc); Py_TabcheckFlag = options.tabwarn;
if ( options.noargs ) { if ( options.noargs ) {
/* don't process events at all without the scripts permission */ /* don't process events at all without the scripts permission */
PyMacSchedParams scp; PyMacSchedParams scp;
...@@ -313,6 +315,30 @@ run_inspect() ...@@ -313,6 +315,30 @@ run_inspect()
return sts; return sts;
} }
/*
** Import the macfsn module, which will override the Standard File
** calls in the macfs builtin module by Navigation Services versions,
** if available on this machine.
*/
static void
PyMac_InstallNavServicesForSF()
{
if ( !options.nonavservice ) {
PyObject *m = PyImport_ImportModule("macfsn");
if ( m == NULL ) {
PySys_WriteStderr("'import macfsn' failed; ");
if (Py_VerboseFlag) {
PySys_WriteStderr("traceback:\n");
PyErr_Print();
}
else {
PySys_WriteStderr("use -v for traceback\n");
}
}
}
}
#ifdef USE_MAC_APPLET_SUPPORT #ifdef USE_MAC_APPLET_SUPPORT
/* Applet support */ /* Applet support */
...@@ -360,6 +386,7 @@ PyMac_InitApplet() ...@@ -360,6 +386,7 @@ PyMac_InitApplet()
init_common(&argc, &argv, 0); init_common(&argc, &argv, 0);
Py_Initialize(); Py_Initialize();
PyMac_InstallNavServicesForSF();
PySys_SetArgv(argc, argv); PySys_SetArgv(argc, argv);
err = run_main_resource(); err = run_main_resource();
...@@ -383,6 +410,7 @@ PyMac_Initialize() ...@@ -383,6 +410,7 @@ PyMac_Initialize()
init_common(&argc, &argv, 1); init_common(&argc, &argv, 1);
Py_Initialize(); Py_Initialize();
PyMac_InstallNavServicesForSF();
PySys_SetArgv(argc, argv); PySys_SetArgv(argc, argv);
} }
...@@ -448,6 +476,8 @@ Py_Main(argc, argv) ...@@ -448,6 +476,8 @@ Py_Main(argc, argv)
Py_Initialize(); Py_Initialize();
PyMac_InstallNavServicesForSF();
PySys_SetArgv(argc-1, argv+1); PySys_SetArgv(argc-1, argv+1);
if (filename == NULL && isatty((int)fileno(fp))) { if (filename == NULL && isatty((int)fileno(fp))) {
......
...@@ -20,7 +20,9 @@ DIALOG 231 Options ...@@ -20,7 +20,9 @@ DIALOG 231 Options
13.3 Deselect to use new class-based standard exceptions. 13.3 Deselect to use new class-based standard exceptions.
14.1 Selecting this disables the new package and site-python features. 14.1 Selecting this disables the new package and site-python features.
14.3 Deselecting this enables the new package and site-python features. 14.3 Deselecting this enables the new package and site-python features.
16.1 Turn off balloon help. 15.1 Turn off balloon help.
16.1 Select this to keep the old behaviour for macfs Standard File calls
16.3 Deselect this to auto-import macfsn which replaces macfs Standard File calls with Navigation Services wrappers
END-DIALOG END-DIALOG
DIALOG 234 DIALOG 234
1.1 Deleting the incorrect preference will not always work, but Python will run with standard options. 1.1 Deleting the incorrect preference will not always work, but Python will run with standard options.
......
...@@ -21,6 +21,7 @@ type 'Popt' { ...@@ -21,6 +21,7 @@ type 'Popt' {
byte argcArgv = 0, noArgcArgv = 1; byte argcArgv = 0, noArgcArgv = 1;
byte newStandardExceptions = 0, oldStandardExceptions = 1; byte newStandardExceptions = 0, oldStandardExceptions = 1;
byte sitePython = 0, noSitePython = 1; byte sitePython = 0, noSitePython = 1;
byte navService = 0, noNavService = 1;
}; };
type 'TMPL' { type 'TMPL' {
...@@ -48,6 +49,7 @@ resource 'TMPL' (PYTHONOPTIONS_ID, "Popt") { ...@@ -48,6 +49,7 @@ resource 'TMPL' (PYTHONOPTIONS_ID, "Popt") {
"No argc/argv emulation", 'DBYT', "No argc/argv emulation", 'DBYT',
"Old standard exceptions", 'DBYT', "Old standard exceptions", 'DBYT',
"No site-python support", 'DBYT', "No site-python support", 'DBYT',
"No NavServices in macfs", 'DBYT',
} }
}; };
...@@ -66,6 +68,7 @@ resource 'Popt' (PYTHONOPTIONS_ID, "Options") { ...@@ -66,6 +68,7 @@ resource 'Popt' (PYTHONOPTIONS_ID, "Options") {
argcArgv, argcArgv,
newStandardExceptions, newStandardExceptions,
sitePython, sitePython,
navService,
}; };
/* The sys.path initializer */ /* The sys.path initializer */
......
...@@ -48,8 +48,10 @@ opt_dialog_map = [ ...@@ -48,8 +48,10 @@ opt_dialog_map = [
"noargs", "noargs",
"delayconsole", "delayconsole",
None, None, None, None, None, None, None, None, # 11-18 are different None, None, None, None, None, None, None, None, # 11-18 are different
"oldexc", "tabwarn",
"nosite"] "nosite",
None,
"nonavservices"]
opt_dialog_dict = {} opt_dialog_dict = {}
for i in range(len(opt_dialog_map)): for i in range(len(opt_dialog_map)):
if opt_dialog_map[i]: if opt_dialog_map[i]:
......
...@@ -36,6 +36,8 @@ DIALOG 510 ...@@ -36,6 +36,8 @@ DIALOG 510
19.3 Deselect to use new class-based standard exceptions. 19.3 Deselect to use new class-based standard exceptions.
20.1 Selecting this disables the new package and site-python features. 20.1 Selecting this disables the new package and site-python features.
20.3 Deselecting this enables the new package and site-python features. 20.3 Deselecting this enables the new package and site-python features.
22.1 Press here to turn help balloons off again. 21.1 Press here to turn help balloons off again.
22.1 Select this to use old-style Standard File calls in macfs
22.3 Deselect this to auto-import macfsn which replaces macfs StandardFile calls with Navigation Services wrappers
END-DIALOG END-DIALOG
END END
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment