On 10/12/13 19:01, mattn wrote:
Windows console version doesn't switch to alternate-file with CTRL-^.
Currently, os_win32.c has workaround for this. But it's not correct way.
diff -r 79df7d17b859 src/os_win32.c
--- a/src/os_win32.c Sat Dec 07 14:48:10 2013 +0100
+++ b/src/os_win32.c Tue Dec 10 18:47:43 2013 +0900
@@ -860,29 +860,6 @@
break;
}
- /* special cases */
- if ((nModifs& CTRL) != 0&& (nModifs& ~CTRL) == 0&& pker->AChar == NUL)
- {
- /* Ctrl-6 is Ctrl-^ */
- if (pker->wVirtualKeyCode == '6')
- {
- *pch = Ctrl_HAT;
- return TRUE;
- }
- /* Ctrl-2 is Ctrl-@ */
- else if (pker->wVirtualKeyCode == '2')
- {
- *pch = NUL;
- return TRUE;
- }
- /* Ctrl-- is Ctrl-_ */
- else if (pker->wVirtualKeyCode == 0xBD)
- {
- *pch = Ctrl__;
- return TRUE;
- }
- }
-
/* Shift-TAB */
if (pker->wVirtualKeyCode == VK_TAB&& (nModifs& SHIFT_PRESSED))
{
@@ -943,6 +920,19 @@
if ((nModifs& CTRL) != 0&& (nModifs& ALT) == 0
&& *pch>= 0x20&& *pch< 0x80)
*pmodifiers |= MOD_MASK_CTRL;
+
+ if ((nModifs& CTRL)&& *pch == '^') {
+ *pch = Ctrl_HAT;
+ return TRUE;
This patch is wrong.
This above case should not be CTRL+'6' not CTRL+'^'. The original source
code is
correct and does not need changing.
Your patch will break everything as to get '^' on most western keyboards you
also have to press SHIFT (i.e. your patch makes Ctrl_HAT equal to
CTRL+SHIFT+'6').
If someone else could confirm this.
Cheers,
+ }
+ if ((nModifs& CTRL)&& *pch == 28) {
+ *pch = Ctrl__;
+ return TRUE;
+ }
+ if ((nModifs& CTRL)&& *pch == '@') {
+ *pch = Ctrl_AT;
+ return TRUE;
+ }
}
}
```
--
--
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.