summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJack Jansen <jack.jansen@cwi.nl>2003-01-17 23:13:03 (GMT)
committerJack Jansen <jack.jansen@cwi.nl>2003-01-17 23:13:03 (GMT)
commite58962af4de4ff3a331be66c4413d1609de40633 (patch)
tree573bf3ec7fe36398b69619f4a93e11c73559b227
parentb2a57722a8ed9ba035707a50023105cdbfcfdaae (diff)
downloadcpython-e58962af4de4ff3a331be66c4413d1609de40633.zip
cpython-e58962af4de4ff3a331be66c4413d1609de40633.tar.gz
cpython-e58962af4de4ff3a331be66c4413d1609de40633.tar.bz2
Fixed the first two bugs in the new file dialogs (found by Just):
- AskFileForSave didn't work for string return values - filterProc didn't work.
-rw-r--r--Lib/plat-mac/EasyDialogs.py3
-rw-r--r--Mac/Modules/Nav.c21
2 files changed, 13 insertions, 11 deletions
diff --git a/Lib/plat-mac/EasyDialogs.py b/Lib/plat-mac/EasyDialogs.py
index cb1ef99..25a791a 100644
--- a/Lib/plat-mac/EasyDialogs.py
+++ b/Lib/plat-mac/EasyDialogs.py
@@ -30,6 +30,7 @@ from Carbon.ControlAccessor import * # Also import Controls constants
import Carbon.File
import macfs
import macresource
+import os
_initialized = 0
@@ -660,7 +661,7 @@ def AskFileForSave(**args):
# This is gross, and probably incorrect too
vrefnum, dirid, name = rr.selection[0].as_tuple()
pardir_fss = Carbon.File.FSSpec((vrefnum, dirid, ''))
- pardir_fsr = Carbon.File.FSRef(fss)
+ pardir_fsr = Carbon.File.FSRef(pardir_fss)
pardir_path = pardir_fsr.FSRefMakePath() # This is utf-8
name_utf8 = unicode(name, 'macroman').encode('utf8')
fullpath = os.path.join(pardir_path, name_utf8)
diff --git a/Mac/Modules/Nav.c b/Mac/Modules/Nav.c
index dd6a57c..58d4c05 100644
--- a/Mac/Modules/Nav.c
+++ b/Mac/Modules/Nav.c
@@ -56,7 +56,7 @@ my_eventProc(NavEventCallbackMessage callBackSelector,
if (!dict) return;
if ( (pyfunc = PyDict_GetItemString(dict, "eventProc")) == NULL ) {
- PyErr_Clear();
+ PyErr_Print();
return;
}
if ( pyfunc == Py_None ) {
@@ -74,8 +74,8 @@ my_eventProc(NavEventCallbackMessage callBackSelector,
if ( rv )
Py_DECREF(rv);
else {
- fprintf(stderr, "Nav: exception in eventProc callback\n");
- PyErr_Clear();
+ PySys_WriteStderr("Nav: exception in eventProc callback\n");
+ PyErr_Print();
}
}
@@ -90,7 +90,7 @@ my_previewProc(NavCBRecPtr callBackParms,
if (!dict) return false;
if ( (pyfunc = PyDict_GetItemString(dict, "previewProc")) == NULL ) {
- PyErr_Clear();
+ PyErr_Print();
return false;
}
rv = PyObject_CallFunction(pyfunc, "s#", (void *)callBackParms, sizeof(NavCBRec));
@@ -98,8 +98,8 @@ my_previewProc(NavCBRecPtr callBackParms,
c_rv = PyObject_IsTrue(rv);
Py_DECREF(rv);
} else {
- fprintf(stderr, "Nav: exception in previewProc callback\n");
- PyErr_Clear();
+ PySys_WriteStderr("Nav: exception in previewProc callback\n");
+ PyErr_Print();
}
return c_rv;
}
@@ -113,20 +113,21 @@ my_filterProc(AEDesc *theItem, void *info,
PyObject *pyfunc;
PyObject *rv;
Boolean c_rv = false;
+ PyObject theItemCopy;
if (!dict) return false;
if ( (pyfunc = PyDict_GetItemString(dict, "filterProc")) == NULL ) {
- PyErr_Clear();
+ PyErr_Print();
return false;
}
rv = PyObject_CallFunction(pyfunc, "O&s#h",
- AEDesc_New, theItem, info, sizeof(NavFileOrFolderInfo), (short)filterMode);
+ AEDesc_NewBorrowed, theItem, info, sizeof(NavFileOrFolderInfo), (short)filterMode);
if ( rv ) {
c_rv = PyObject_IsTrue(rv);
Py_DECREF(rv);
} else {
- fprintf(stderr, "Nav: exception in filterProc callback\n");
- PyErr_Clear();
+ PySys_WriteStderr("Nav: exception in filterProc callback\n");
+ PyErr_Print();
}
return c_rv;
}