diff options
author | Jack Jansen <jack.jansen@cwi.nl> | 2003-01-17 23:13:03 (GMT) |
---|---|---|
committer | Jack Jansen <jack.jansen@cwi.nl> | 2003-01-17 23:13:03 (GMT) |
commit | e58962af4de4ff3a331be66c4413d1609de40633 (patch) | |
tree | 573bf3ec7fe36398b69619f4a93e11c73559b227 | |
parent | b2a57722a8ed9ba035707a50023105cdbfcfdaae (diff) | |
download | cpython-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.py | 3 | ||||
-rw-r--r-- | Mac/Modules/Nav.c | 21 |
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; } |