On Dec 26, 2011, at 1:02 AM, Brian S wrote: > > On Dec 24, 2011, at 12:15 AM, RC wrote: > >>> Local Fn AppFolderNestedFolder(name$, outFS as ^FSSpec) >>> dim as FSSpec appSpec, mySpec >>> dim as OSErr err >>> err = Fn GetApplicationSpec(@appSpec) >>> err = fn FD_CreateDirectoryWithFSSpec( Fn CFStr(name$), appSpec, mySpec ) // Gives warning >>> blockmove @mySpec, outFS, sizeof(FSSpec) >> > To which Robert P. wrote: > >> err = fn FD_CreateDirectoryWithFSSpec( fn CFStr( "" + name$ ), appSpec, #outFS ) > > This post seems to refer back to Robert’s post: > > On Dec 25, 2011, at 6:14 PM, Robert Covington wrote: > >> I don't know when to use an @, when to 'dim as something @var' and when to use # nowadays, and when to use #[ ] nowadays...I wish there was a FAQ. Is there one? > > 'dim as type @var' - the '@' is superfluous and ignored in FB5. The compiler( i.e. gcc/clang etc. ) figures out if how vars should be allocated and determines the most efficient method on its own. > > when to use # - also refer to Robert P’s code above. The #outFS says to the translator to just pass outFS and not to take its address ( with the '@' symbol ) because it is already a pointer ( ^FSSpec ). Using #outFS allows the FD_ call to use that pointer to return the FSSpec to the caller of AppFolderNestedFolder() and the blockmove is superfluous. > > > Brian S I pulled out some code and ran tests, so I get the # now...I was suffering FD_Directory heck until I had @spec from all senders, and #spec, for any output (to incoming pointers). Working now.