@@ -316,10 +316,12 @@ static PyObject *
316316navrr_getattr (navrrobject * self , char * name )
317317{
318318 FSSpec fss ;
319+ FSRef fsr ;
319320
320321 if ( strcmp (name , "__members__" ) == 0 )
321- return Py_BuildValue ("sssssss" , "version" , "validRecord" , "replacing" ,
322- "isStationery" , "translationNeeded" , "selection" , "fileTranslation" );
322+ return Py_BuildValue ("ssssssssss" , "version" , "validRecord" , "replacing" ,
323+ "isStationery" , "translationNeeded" , "selection" , "selection_fsr" ,
324+ "fileTranslation" , "keyScript" , "saveFileName" );
323325 if ( strcmp (name , "version" ) == 0 )
324326 return Py_BuildValue ("h" , self -> itself .version );
325327 if ( strcmp (name , "validRecord" ) == 0 )
@@ -364,8 +366,42 @@ navrr_getattr(navrrobject *self, char *name)
364366 }
365367 return rv ;
366368 }
369+ if ( strcmp (name , "selection_fsr" ) == 0 ) {
370+ SInt32 i , count ;
371+ OSErr err ;
372+ PyObject * rv , * rvitem ;
373+ AEDesc desc ;
374+
375+ if (err = AECountItems (& self -> itself .selection , & count )) {
376+ PyErr_Mac (ErrorObject , err );
377+ return NULL ;
378+ }
379+ if ( (rv = PyList_New (count )) == NULL )
380+ return NULL ;
381+ for (i = 0 ; i < count ; i ++ ) {
382+ desc .dataHandle = NULL ;
383+ if (err = AEGetNthDesc (& self -> itself .selection , i + 1 , typeFSRef , NULL , & desc )) {
384+ Py_DECREF (rv );
385+ PyErr_Mac (ErrorObject , err );
386+ return NULL ;
387+ }
388+ if (err = AEGetDescData (& desc , & fsr , sizeof (FSRef ))) {
389+ Py_DECREF (rv );
390+ PyErr_Mac (ErrorObject , err );
391+ return NULL ;
392+ }
393+ rvitem = PyMac_BuildFSRef (& fsr );
394+ PyList_SetItem (rv , i , rvitem );
395+ AEDisposeDesc (& desc );
396+ }
397+ return rv ;
398+ }
367399 if ( strcmp (name , "fileTranslation" ) == 0 )
368400 return ResObj_New ((Handle )self -> itself .fileTranslation );
401+ if ( strcmp (name , "keyScript" ) == 0 )
402+ return Py_BuildValue ("h" , (short )self -> itself .keyScript );
403+ if ( strcmp (name , "saveFileName" ) == 0 )
404+ return Py_BuildValue ("O&" , CFStringRefObj_New , self -> itself .saveFileName );
369405
370406
371407 return Py_FindMethod (navrr_methods , (PyObject * )self , name );
0 commit comments