]>
Commit | Line | Data |
---|---|---|
7ca5039e AG |
1 | To: vim-dev@vim.org |
2 | Subject: Patch 7.2.355 | |
3 | Fcc: outbox | |
4 | From: Bram Moolenaar <Bram@moolenaar.net> | |
5 | Mime-Version: 1.0 | |
6 | Content-Type: text/plain; charset=UTF-8 | |
7 | Content-Transfer-Encoding: 8bit | |
8 | ------------ | |
9 | ||
10 | Patch 7.2.355 | |
11 | Problem: Computing the cursor column in validate_cursor_col() is wrong when | |
12 | line numbers are used and 'n' is not in 'cpoptions', causing the | |
13 | popup menu to be positioned wrong. | |
14 | Solution: Correctly use the offset. (partly by Dominique Pelle) | |
15 | Files: src/move.c | |
16 | ||
17 | ||
18 | *** ../vim-7.2.354/src/move.c 2009-11-03 16:22:59.000000000 +0100 | |
19 | --- src/move.c 2010-02-03 17:15:16.000000000 +0100 | |
20 | *************** | |
21 | *** 889,894 **** | |
22 | --- 889,895 ---- | |
23 | { | |
24 | colnr_T off; | |
25 | colnr_T col; | |
26 | + int width; | |
27 | ||
28 | validate_virtcol(); | |
29 | if (!(curwin->w_valid & VALID_WCOL)) | |
30 | *************** | |
31 | *** 896,910 **** | |
32 | col = curwin->w_virtcol; | |
33 | off = curwin_col_off(); | |
34 | col += off; | |
35 | ||
36 | /* long line wrapping, adjust curwin->w_wrow */ | |
37 | if (curwin->w_p_wrap | |
38 | && col >= (colnr_T)W_WIDTH(curwin) | |
39 | ! && W_WIDTH(curwin) - off + curwin_col_off2() > 0) | |
40 | ! { | |
41 | ! col -= W_WIDTH(curwin); | |
42 | ! col = col % (W_WIDTH(curwin) - off + curwin_col_off2()); | |
43 | ! } | |
44 | if (col > (int)curwin->w_leftcol) | |
45 | col -= curwin->w_leftcol; | |
46 | else | |
47 | --- 897,910 ---- | |
48 | col = curwin->w_virtcol; | |
49 | off = curwin_col_off(); | |
50 | col += off; | |
51 | + width = W_WIDTH(curwin) - off + curwin_col_off2(); | |
52 | ||
53 | /* long line wrapping, adjust curwin->w_wrow */ | |
54 | if (curwin->w_p_wrap | |
55 | && col >= (colnr_T)W_WIDTH(curwin) | |
56 | ! && width > 0) | |
57 | ! /* use same formula as what is used in curs_columns() */ | |
58 | ! col -= ((col - W_WIDTH(curwin)) / width + 1) * width; | |
59 | if (col > (int)curwin->w_leftcol) | |
60 | col -= curwin->w_leftcol; | |
61 | else | |
62 | *************** | |
63 | *** 1041,1046 **** | |
64 | --- 1041,1047 ---- | |
65 | /* long line wrapping, adjust curwin->w_wrow */ | |
66 | if (curwin->w_wcol >= W_WIDTH(curwin)) | |
67 | { | |
68 | + /* this same formula is used in validate_cursor_col() */ | |
69 | n = (curwin->w_wcol - W_WIDTH(curwin)) / width + 1; | |
70 | curwin->w_wcol -= n * width; | |
71 | curwin->w_wrow += n; | |
72 | *** ../vim-7.2.354/src/version.c 2010-02-03 15:47:59.000000000 +0100 | |
73 | --- src/version.c 2010-02-03 17:40:39.000000000 +0100 | |
74 | *************** | |
75 | *** 683,684 **** | |
76 | --- 683,686 ---- | |
77 | { /* Add new patch number below this line */ | |
78 | + /**/ | |
79 | + 355, | |
80 | /**/ | |
81 | ||
82 | -- | |
83 | I'm in shape. Round IS a shape. | |
84 | ||
85 | /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ | |
86 | /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ | |
87 | \\\ download, build and distribute -- http://www.A-A-P.org /// | |
88 | \\\ help me help AIDS victims -- http://ICCF-Holland.org /// |