On Windows, when you request a diff in Gunison, and Windows doesn’t recognize the .diff file type, it pops up a window to select an application. On my Windows 8.1 system, Gunison crashes either immediately when that window pops up, or once you make a selection in it. “exit status 3221226356” is printed to the console, which is 0xC0000374 = STATUS_HEAP_CORRUPTION.
If Windows already has an application associated with .diff, that application starts and Gunison doesn’t crash. The association can be reset by deleting the registry key HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.diff.
I couldn’t quickly reduce this to a reproducer program without GTK. May be some kind of conflict with GTK.
Gunison opens files via github.com/skratchdot/open-golang, which runsrundll32.exe url.dll,FileProtocolHandler. I tried replacing it with a direct call to ShellExecute, like this:
On Windows, when you request a diff in Gunison, and Windows doesn’t recognize the
.diff
file type, it pops up a window to select an application. On my Windows 8.1 system, Gunison crashes either immediately when that window pops up, or once you make a selection in it. “exit status 3221226356” is printed to the console, which is 0xC0000374 =STATUS_HEAP_CORRUPTION
.If Windows already has an application associated with
.diff
, that application starts and Gunison doesn’t crash. The association can be reset by deleting the registry keyHKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.diff
.I couldn’t quickly reduce this to a reproducer program without GTK. May be some kind of conflict with GTK.
Gunison opens files via
github.com/skratchdot/open-golang
, which runsrundll32.exe url.dll,FileProtocolHandler
. I tried replacing it with a direct call toShellExecute
, like this:— but this changed nothing.