to be used when creating temporary file
Split a filename into its bare name without extension, and the extension itself without dot.
Split a filename into its bare name without extension, and the extension itself without dot.
The extension is converted to lower-case. It's not theoretically beautiful to do that here, but it prevents a lot of confusion and mistakes if we do it in one place. Which is here.
Input file name
A tuple containing the extension-less filename and extension (null if not present)