The
exec behaviour in win32 was changed somewhere between 10.4.5 and 10.5.0 (sorry, I haven't followed the development releases). In 10.5.0, it replaces "\n" line endings with "\r\n" in the executed process stdin, in all previous versions it wasn't (my pet script I found broken by this is dated back to 2008). Of course my script is trivial to fix, but I believe the old behaivour was more consistent: newlisp never does silent line-ending conversion. I believe the change should be reverted, or, if the new behaviour is official and final, it should be at least documented. Short examples:
- Code: Select all
newLISP v.10.4.5 on Win32 IPv4/6 libffi, execute 'newlisp -h' for more info.
> (exec "od -bc" "hello\nworld\n")
0000000 150 145 154 154 157 012 167 157 162 154 144 012
h e l l o \n w o r l d \n
0000014
true
- Code: Select all
newLISP v.10.5.0 32-bit on Win32 IPv4/6 libffi, options: newlisp -h
> (exec "od -bc" "hello\nworld\n")
0000000 150 145 154 154 157 015 012 167 157 162 154 144 015 012
h e l l o \r \n w o r l d \r \n
0000016
true
And yes, I am still a newlisp user! :-) And I am going to update the
newlisp.vim for the new bigint syntax (and some other minor things) in a few days.