]>
Commit | Line | Data |
---|---|---|
6577e359 | 1 | To: vim-dev@vim.org |
2 | Subject: patch 7.1.057 | |
3 | Fcc: outbox | |
4 | From: Bram Moolenaar <Bram@moolenaar.net> | |
5 | Mime-Version: 1.0 | |
6 | Content-Type: text/plain; charset=ISO-8859-1 | |
7 | Content-Transfer-Encoding: 8bit | |
8 | ------------ | |
9 | ||
10 | Patch 7.1.057 | |
11 | Problem: Problem with CursorHoldI when using "r" in Visual mode (Max | |
12 | Dyckhoff) | |
13 | Solution: Ignore CursorHold(I) when getting a second character for a Normal | |
14 | mode command. Also abort the "r" command in Visual when a special | |
15 | key is typed. | |
16 | Files: src/normal.c | |
17 | ||
18 | ||
19 | *** ../vim-7.1.056/src/normal.c Tue Jul 10 14:02:51 2007 | |
20 | --- src/normal.c Sun Aug 5 21:57:43 2007 | |
21 | *************** | |
22 | *** 889,894 **** | |
23 | --- 889,899 ---- | |
24 | ||
25 | ++no_mapping; | |
26 | ++allow_keys; /* no mapping for nchar, but allow key codes */ | |
27 | + #ifdef FEAT_AUTOCMD | |
28 | + /* Don't generate a CursorHold event here, most commands can't handle | |
29 | + * it, e.g., nv_replace(), nv_csearch(). */ | |
30 | + did_cursorhold = TRUE; | |
31 | + #endif | |
32 | if (ca.cmdchar == 'g') | |
33 | { | |
34 | /* | |
35 | *************** | |
36 | *** 6662,6667 **** | |
37 | --- 6668,6680 ---- | |
38 | else | |
39 | had_ctrl_v = NUL; | |
40 | ||
41 | + /* Abort if the character is a special key. */ | |
42 | + if (IS_SPECIAL(cap->nchar)) | |
43 | + { | |
44 | + clearopbeep(cap->oap); | |
45 | + return; | |
46 | + } | |
47 | + | |
48 | #ifdef FEAT_VISUAL | |
49 | /* Visual mode "r" */ | |
50 | if (VIsual_active) | |
51 | *************** | |
52 | *** 6688,6698 **** | |
53 | } | |
54 | #endif | |
55 | ||
56 | ! /* | |
57 | ! * Check for a special key or not enough characters to replace. | |
58 | ! */ | |
59 | ptr = ml_get_cursor(); | |
60 | ! if (IS_SPECIAL(cap->nchar) || STRLEN(ptr) < (unsigned)cap->count1 | |
61 | #ifdef FEAT_MBYTE | |
62 | || (has_mbyte && mb_charlen(ptr) < cap->count1) | |
63 | #endif | |
64 | --- 6701,6709 ---- | |
65 | } | |
66 | #endif | |
67 | ||
68 | ! /* Abort if not enough characters to replace. */ | |
69 | ptr = ml_get_cursor(); | |
70 | ! if (STRLEN(ptr) < (unsigned)cap->count1 | |
71 | #ifdef FEAT_MBYTE | |
72 | || (has_mbyte && mb_charlen(ptr) < cap->count1) | |
73 | #endif | |
74 | *** ../vim-7.1.056/src/version.c Tue Aug 7 21:59:26 2007 | |
75 | --- src/version.c Wed Aug 8 21:39:43 2007 | |
76 | *************** | |
77 | *** 668,669 **** | |
78 | --- 668,671 ---- | |
79 | { /* Add new patch number below this line */ | |
80 | + /**/ | |
81 | + 57, | |
82 | /**/ | |
83 | ||
84 | -- | |
85 | hundred-and-one symptoms of being an internet addict: | |
86 | 95. Only communication in your household is through email. | |
87 | ||
88 | /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ | |
89 | /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ | |
90 | \\\ download, build and distribute -- http://www.A-A-P.org /// | |
91 | \\\ help me help AIDS victims -- http://ICCF-Holland.org /// |