]>
Commit | Line | Data |
---|---|---|
dbf7c229 AG |
1 | To: vim-dev@vim.org |
2 | Subject: Patch 7.0.067 | |
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.0.067 | |
11 | Problem: Undo doesn't always work properly when using "scim" input method. | |
12 | Undo is split up when using preediting. | |
13 | Solution: Reset xim_has_preediting also when preedit_start_col is not | |
14 | MAXCOL. Don't split undo when <Left> is used while preediting. | |
15 | (Yukihiro Nakadaira) | |
16 | Files: src/edit.c, src/mbyte.c | |
17 | ||
18 | ||
19 | *** ../vim-7.0.066/src/edit.c Tue Aug 22 19:58:22 2006 | |
20 | --- src/edit.c Tue Aug 29 14:57:46 2006 | |
21 | *************** | |
22 | *** 8597,8603 **** | |
23 | tpos = curwin->w_cursor; | |
24 | if (oneleft() == OK) | |
25 | { | |
26 | ! start_arrow(&tpos); | |
27 | #ifdef FEAT_RIGHTLEFT | |
28 | /* If exit reversed string, position is fixed */ | |
29 | if (revins_scol != -1 && (int)curwin->w_cursor.col >= revins_scol) | |
30 | --- 8597,8608 ---- | |
31 | tpos = curwin->w_cursor; | |
32 | if (oneleft() == OK) | |
33 | { | |
34 | ! #if defined(FEAT_XIM) && defined(FEAT_GUI_GTK) | |
35 | ! /* Only call start_arrow() when not busy with preediting, it will | |
36 | ! * break undo. K_LEFT is inserted in im_correct_cursor(). */ | |
37 | ! if (!im_is_preediting()) | |
38 | ! #endif | |
39 | ! start_arrow(&tpos); | |
40 | #ifdef FEAT_RIGHTLEFT | |
41 | /* If exit reversed string, position is fixed */ | |
42 | if (revins_scol != -1 && (int)curwin->w_cursor.col >= revins_scol) | |
43 | *** ../vim-7.0.066/src/mbyte.c Wed Aug 16 18:05:36 2006 | |
44 | --- src/mbyte.c Tue Aug 29 14:41:45 2006 | |
45 | *************** | |
46 | *** 3514,3519 **** | |
47 | --- 3514,3524 ---- | |
48 | add_to_input_buf(delkey, (int)sizeof(delkey)); | |
49 | } | |
50 | ||
51 | + /* | |
52 | + * Move the cursor left by "num_move_back" characters. | |
53 | + * Note that ins_left() checks im_is_preediting() to avoid breaking undo for | |
54 | + * these K_LEFT keys. | |
55 | + */ | |
56 | static void | |
57 | im_correct_cursor(int num_move_back) | |
58 | { | |
59 | *************** | |
60 | *** 3741,3748 **** | |
61 | } | |
62 | else if (cursor_index == 0 && preedit_string[0] == '\0') | |
63 | { | |
64 | ! if (preedit_start_col == MAXCOL) | |
65 | ! xim_has_preediting = FALSE; | |
66 | ||
67 | /* If at the start position (after typing backspace) | |
68 | * preedit_start_col must be reset. */ | |
69 | --- 3746,3752 ---- | |
70 | } | |
71 | else if (cursor_index == 0 && preedit_string[0] == '\0') | |
72 | { | |
73 | ! xim_has_preediting = FALSE; | |
74 | ||
75 | /* If at the start position (after typing backspace) | |
76 | * preedit_start_col must be reset. */ | |
77 | *** ../vim-7.0.066/src/version.c Tue Aug 22 21:51:18 2006 | |
78 | --- src/version.c Tue Aug 29 16:09:35 2006 | |
79 | *************** | |
80 | *** 668,669 **** | |
81 | --- 668,671 ---- | |
82 | { /* Add new patch number below this line */ | |
83 | + /**/ | |
84 | + 67, | |
85 | /**/ | |
86 | ||
87 | -- | |
88 | hundred-and-one symptoms of being an internet addict: | |
89 | 265. Your reason for not staying in touch with family is that | |
90 | they do not have e-mail addresses. | |
91 | ||
92 | /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ | |
93 | /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ | |
94 | \\\ download, build and distribute -- http://www.A-A-P.org /// | |
95 | \\\ help me help AIDS victims -- http://ICCF-Holland.org /// |