I would've used `os.stream_from_handle`, but:
- Parts of it seem to be implemented for Windows only at the moment.
- PNG's `peek_data` using that stream didn't manage to rewind and thus tried to parse the data after the header as the header.
Two things must happen:
- The `os.stream_from_handle` implementation needs to be fixed.
- PNG and GZIP's parsers need to be able to handle streams that can't rewind or seek (backward).
Those fixes are on my TODO list but are exceed the scope of this patch.
datetime_to_time takes separate parameters for date and time values and returns a time.Time and an `ok` bool.
If the values are out of range, they're considered modulo and ok will be set to false.
When specifying the out parameter, the extension was stripped twice.
If your path contains a ".", this caused issues.
e.g.
cd "C:\Repro\Path With a . In The Name\"
odin run repro.odin -keep-temp-files -out repro.exe
This would cause the files to end up as:
"C:\Repro\Path With a.exe", "C:\Repro\Path With a.ll", "C:\Repro\Path With a.bc" and "C:\Repro\Path With a.obj"
With this patch it works as expected, with or without a . in the file path.