Just a question really.

I've come across code like this ... that given the example in the comment it is probably DAW sourced

External_Function WinAPI_PathFindExtension "PathFindExtensionA" SHLWAPI.DLL Pointer lpszPath Returns Pointer
// Searches a path for a file extension.
// Returns the extension of the filename in the passed path
//    Example:
//       In: c:\vdf7\bin\dfrun.exe
//       Out: .exe
// Parameters:
//      sPath - Path that contains the extension for which to search.

Function PathFindExtension Desktop String sPath Returns String
    String sRetVal
    Pointer pExtension pPath

    Move (sPath - Character (0)) to sPath
    Move (AddressOf(sPath)) to pPath
    Move (WinAPI_PathFindExtension (pPath)) to pExtension
    Move (pExtension - pPath) to pPath
    Move (Right (sPath, Length (sPath) - pPath)) to sRetVal

    Function_Return (Trim(CString (sRetVal)))
It seems to still work in 32/64 bit DF20 but this line looks like it might depend on some assumptions about where things are in memory
Move (pExtension - pPath) to pPath
Presumably the code for PathFindExtensionW would have to differ from this and use WString on the call and use proper string manipulation to put in back into a String

I'm guessing the above line creates this string in memory ??
Anyway the question is more about this type of code going forward in DF20 rather than this very specific example