]> git.pld-linux.org Git - packages/vim.git/blame - 6.2.149
- fix for current libselinux
[packages/vim.git] / 6.2.149
CommitLineData
eb0ac1ae
AG
1To: vim-dev@vim.org
2Subject: Patch 6.2.149
3Fcc: outbox
4From: Bram Moolenaar <Bram@moolenaar.net>
5Mime-Version: 1.0
6Content-Type: text/plain; charset=ISO-8859-1
7Content-Transfer-Encoding: 8bit
8------------
9
10Patch 6.2.149
11Problem: When the cursor is on a line past 21,474,748 the indicated
12 percentage of the position is invalid. With that many lines
13 "100%" causes a negative cursor line number, resulting in a crash.
14 (Daniel Goujot)
15Solution: Divide by 100 instead of multiplying. Avoid overflow when
16 computing the line number for "100%".
17Files: src/buffer.c, src/ex_cmds2.c, src/normal.c
18
19
20*** ../vim-6.2.148/src/buffer.c Sat Sep 27 19:36:46 2003
21--- src/buffer.c Sat Nov 8 13:21:58 2003
22***************
23*** 2719,2725 ****
24 (curbufIsChanged() || (curbuf->b_flags & BF_WRITE_MASK)
25 || curbuf->b_p_ro) ?
26 " " : "");
27! n = (int)(((long)curwin->w_cursor.lnum * 100L) /
28 (long)curbuf->b_ml.ml_line_count);
29 if (curbuf->b_ml.ml_flags & ML_EMPTY)
30 {
31--- 2719,2731 ----
32 (curbufIsChanged() || (curbuf->b_flags & BF_WRITE_MASK)
33 || curbuf->b_p_ro) ?
34 " " : "");
35! /* With 32 bit longs and more than 21,474,836 lines multiplying by 100
36! * causes an overflow, thus for large numbers divide instead. */
37! if (curwin->w_cursor.lnum > 1000000L)
38! n = (int)(((long)curwin->w_cursor.lnum) /
39! ((long)curbuf->b_ml.ml_line_count / 100L));
40! else
41! n = (int)(((long)curwin->w_cursor.lnum * 100L) /
42 (long)curbuf->b_ml.ml_line_count);
43 if (curbuf->b_ml.ml_flags & ML_EMPTY)
44 {
45***************
46*** 3755,3762 ****
47 else if (above <= 0)
48 STRCPY(str, _("Top"));
49 else
50! sprintf((char *)str, "%2d%%",
51! (int)(above * 100 / (above + below)));
52 }
53 #endif
54
55--- 3761,3769 ----
56 else if (above <= 0)
57 STRCPY(str, _("Top"));
58 else
59! sprintf((char *)str, "%2d%%", above > 1000000L
60! ? (int)(above / ((above + below) / 100L))
61! : (int)(above * 100L / (above + below)));
62 }
63 #endif
64
65*** ../vim-6.2.148/src/ex_cmds2.c Sun Oct 12 20:20:38 2003
66--- src/ex_cmds2.c Sun Nov 9 16:44:15 2003
67***************
68*** 3401,3407 ****
69
70 sprintf((char *)IObuff, _("Printing page %d (%d%%)"),
71 page_count + 1 + side,
72! (int)((prtpos.bytes_printed * 100)
73 / bytes_to_print));
74 if (!mch_print_begin_page(IObuff))
75 goto print_fail;
76--- 3401,3410 ----
77
78 sprintf((char *)IObuff, _("Printing page %d (%d%%)"),
79 page_count + 1 + side,
80! prtpos.bytes_printed > 1000000
81! ? (int)(prtpos.bytes_printed /
82! (bytes_to_print / 100))
83! : (int)((prtpos.bytes_printed * 100)
84 / bytes_to_print));
85 if (!mch_print_begin_page(IObuff))
86 goto print_fail;
87*** ../vim-6.2.148/src/normal.c Sun Nov 2 15:49:56 2003
88--- src/normal.c Sun Nov 9 13:35:44 2003
89***************
90*** 5814,5822 ****
91 {
92 cap->oap->motion_type = MLINE;
93 setpcmark();
94! /* round up, so CTRL-G will give same value */
95! curwin->w_cursor.lnum = (curbuf->b_ml.ml_line_count *
96 cap->count0 + 99L) / 100L;
97 beginline(BL_SOL | BL_FIX);
98 }
99 }
100--- 5814,5829 ----
101 {
102 cap->oap->motion_type = MLINE;
103 setpcmark();
104! /* Round up, so CTRL-G will give same value. Watch out for a
105! * large line count, the line number must not go negative! */
106! if (curbuf->b_ml.ml_line_count > 1000000)
107! curwin->w_cursor.lnum = (curbuf->b_ml.ml_line_count + 99L)
108! / 100L * cap->count0;
109! else
110! curwin->w_cursor.lnum = (curbuf->b_ml.ml_line_count *
111 cap->count0 + 99L) / 100L;
112+ if (curwin->w_cursor.lnum > curbuf->b_ml.ml_line_count)
113+ curwin->w_cursor.lnum = curbuf->b_ml.ml_line_count;
114 beginline(BL_SOL | BL_FIX);
115 }
116 }
117*** ../vim-6.2.148/src/version.c Sun Nov 9 20:26:53 2003
118--- src/version.c Sun Nov 9 20:29:14 2003
119***************
120*** 639,640 ****
121--- 639,642 ----
122 { /* Add new patch number below this line */
123+ /**/
124+ 149,
125 /**/
126
127--
128The acknowledged parents of reengineering are Michael Hammer and James Champy.
129When I say they're the "parents" I don't mean they had sex - and I apologize
130for making you think about it. I mean they wrote the best-selling business
131book _Reengineering the Corporation_, which was published in 1993.
132 Businesses flocked to reengineering like frat boys to a drunken
133cheerleader. (This analogy wasn't necessary, but I'm trying to get my mind
134off that Hammer and Champy thing.)
135 (Scott Adams - The Dilbert principle)
136
137 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
138/// Creator of Vim - Vi IMproved -- http://www.Vim.org \\\
139\\\ Project leader for A-A-P -- http://www.A-A-P.org ///
140 \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///
This page took 0.041878 seconds and 4 git commands to generate.