Samuel Ferencik wrote: > On the E325 screen (Found a swap file...), the user can choose > different keys to press (e.g. [O]pen Read-Only, (E)dit anyway,...). If > she presses <Esc>, vim freezes (and the terminal session has to be > killed). > > Reproduce as follows: > 1) in one terminal, $ vim a.txt > 2) in another terminal, $ vim a.txt > 3) vim prompts with E325, warning that there already is a swap file > 4) press <Esc> - vim freezes > > It turns out that vim (on VMS) uses select() to poll on the terminal input. > Unfortunately, select() has never been ported fully and only works for sockets > (same as on Windows). > > The full details of how/why this manifests only for <Esc> are probably > unnecessary here. (If someone is interested, I'm ready to share them, of > course.) > > The idea of the patch is to replace select() by the native IO-sniffing call, > sys$qiow(). VMS thus gets its very own RealWaitForChar(), rather than using > Unix's one. The time-out is implemented manually by looping (just like on > Windows).
Thanks for making a solution for this. Obviously I can't test it. Are there any other VMS users who can try this on their system? If I don't hear anything I'll include it. -- "My particular problem is with registry entries, which seem to just accumulate like plastic coffee cups..." -- Paul Moore /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net \\\ /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ an exciting new programming language -- http://www.Zimbu.org /// \\\ help me help AIDS victims -- http://ICCF-Holland.org /// -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
