]> granicus.if.org Git - python/commitdiff
Fixed the first two bugs in the new file dialogs (found by Just):
authorJack Jansen <jack.jansen@cwi.nl>
Fri, 17 Jan 2003 23:13:03 +0000 (23:13 +0000)
committerJack Jansen <jack.jansen@cwi.nl>
Fri, 17 Jan 2003 23:13:03 +0000 (23:13 +0000)
- AskFileForSave didn't work for string return values
- filterProc didn't work.

Lib/plat-mac/EasyDialogs.py
Mac/Modules/Nav.c

index cb1ef99300d914fb7af3542db21f551abe303978..25a791a395b738e02e4499fd00e857dcb18917ae 100644 (file)
@@ -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)
index dd6a57c170ad5e13ae341b70fa562706c72ac40e..58d4c05da8a65eea859cc62b305a2136f5f718fd 100644 (file)
@@ -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;
 }