4 From: Bram Moolenaar <Bram@moolenaar.net>
6 Content-Type: text/plain; charset=ISO-8859-1
7 Content-Transfer-Encoding: 8bit
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.
16 Files: src/edit.c, src/mbyte.c
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
23 tpos = curwin->w_cursor;
28 /* If exit reversed string, position is fixed */
29 if (revins_scol != -1 && (int)curwin->w_cursor.col >= revins_scol)
31 tpos = curwin->w_cursor;
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())
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
48 add_to_input_buf(delkey, (int)sizeof(delkey));
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.
57 im_correct_cursor(int num_move_back)
62 else if (cursor_index == 0 && preedit_string[0] == '\0')
64 ! if (preedit_start_col == MAXCOL)
65 ! xim_has_preediting = FALSE;
67 /* If at the start position (after typing backspace)
68 * preedit_start_col must be reset. */
71 else if (cursor_index == 0 && preedit_string[0] == '\0')
73 ! xim_has_preediting = FALSE;
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
82 { /* Add new patch number below this line */
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.
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 ///