Closed inkarkat closed 11 years ago
I use a Windows Batch script to build the DLLs so that most likely excludes me screwing up a manual build. Unfortunately I don't have a 64 bit Windows environment so I can't test the x64 DLL :-(. You don't happen to have a build environment set up to compile against the Windows API and some programming experience with the Windows API? ;-)
I'm not actually sure if I screwed up the build or if my code changes in 653918545629ef553ee46214714c9177283fc0a6 (tagged as 0.12) are the problem. It may very well be the code changes. However I can't easily test or verify this. I have some ideas though:
sprintf()
is simply not to be used on 64 bit machines.%li
as in a long integer, which is dependent on bitness so this sounds like it might be related).I'll see if I can get my hands on a 64 bit Windows environment to make it easier to confirm my suspicions.
Some research notes:
DWORD exit_code
→ 32 bit unsigned integer%i
is for signed integers while %u
is for unsigned integers%li
specifies a signed long integer which certainly doesn't match the DWORD
→ 32 bit unsigned integer note above...This can certainly be improved. Let me get back to you :-)
Can you try out the latest release on GitHub (not yet on Vim Online) to confirm whether my change in aac1374 resolves the problem? If it does, I'll release to Vim Online as well.
After upgrading to vim-shell 0.12.7, I get the following error on GVIM startup on Windows/x64, caused by the easytags plugin:
(The last character of the output is U+0080 PADDING CHARACTER!)
This can then be reproduced with other calls to
xolox#misc#os#exec()
. The problem does not occur with a 32-bit GVIM on the same system; downgrading to the previous commit ofshell-x64.dll
also fixes the problem, so the issue seems to be related to the latest build of that DLL.I'm on Windows 7 Ultimate SP1 English 64-bit, and can reproduce this on 2 different systems, and using both a self-compiled Vim 7.3.823/x64 as well as with the old 7.3.000 64-bit build provided by George Reilly.
Please let me know if you need any other information. Thanks!