|
1 To: [email protected] |
|
2 Subject: Patch 7.2.167 |
|
3 Fcc: outbox |
|
4 From: Bram Moolenaar <[email protected]> |
|
5 Mime-Version: 1.0 |
|
6 Content-Type: text/plain; charset=UTF-8 |
|
7 Content-Transfer-Encoding: 8bit |
|
8 ------------ |
|
9 |
|
10 Patch 7.2.167 |
|
11 Problem: Splint doesn't work well for checking the code. |
|
12 Solution: Add splint arguments in the Makefile. Exclude some code from |
|
13 splint that it can't handle. Tune splint arguments to give |
|
14 reasonable errors. Add a filter for removing false warnings from |
|
15 splint output. Many small changes to avoid warnings. More to |
|
16 follow... |
|
17 Files: Filelist, src/Makefile, src/buffer.c, src/charset.c, |
|
18 src/cleanlint.vim, src/digraph.c, src/edit.c, src/ex_cmds.c, |
|
19 src/globals.h, src/ops.c, src/os_unix.c, src/os_unix.h, |
|
20 src/proto/buffer.pro, src/proto/edit.pro, src/screen.c, |
|
21 src/structs.h |
|
22 |
|
23 *** ../vim-7.2.166/Filelist 2008-09-20 16:26:10.000000000 +0200 |
|
24 --- Filelist 2009-05-05 21:45:49.000000000 +0200 |
|
25 *************** |
|
26 *** 139,144 **** |
|
27 --- 139,145 ---- |
|
28 src/INSTALL \ |
|
29 src/INSTALLx.txt \ |
|
30 src/Makefile \ |
|
31 + src/cleanlint.vim \ |
|
32 src/auto/configure \ |
|
33 src/config.aap.in \ |
|
34 src/config.h.in \ |
|
35 *************** |
|
36 *** 683,691 **** |
|
37 runtime/spell/??/main.aap \ |
|
38 runtime/spell/yi/README.txt \ |
|
39 runtime/spell/main.aap \ |
|
40 - runtime/spell/cleanadd.vim \ |
|
41 runtime/spell/*.vim \ |
|
42 - runtime/spell/fixdup \ |
|
43 |
|
44 # generic language files, binary |
|
45 LANG_GEN_BIN = \ |
|
46 --- 684,690 ---- |
|
47 *** ../vim-7.2.166/src/Makefile 2009-04-29 18:44:45.000000000 +0200 |
|
48 --- src/Makefile 2009-05-06 00:23:15.000000000 +0200 |
|
49 *************** |
|
50 *** 551,557 **** |
|
51 # }}} |
|
52 |
|
53 # LINT - for running lint |
|
54 ! LINT_OPTIONS = -beprxzF |
|
55 |
|
56 # PROFILING - Uncomment the next two lines to do profiling with gcc and gprof. |
|
57 # Might not work with GUI or Perl. |
|
58 --- 551,562 ---- |
|
59 # }}} |
|
60 |
|
61 # LINT - for running lint |
|
62 ! # For standard lint |
|
63 ! #LINT = lint |
|
64 ! #LINT_OPTIONS = -beprxzF |
|
65 ! # For splint (see cleanlint.vim for filtering the output) |
|
66 ! LINT = splint |
|
67 ! LINT_OPTIONS = +unixlib -weak -macrovarprefixexclude -showfunc -linelen 9999 |
|
68 |
|
69 # PROFILING - Uncomment the next two lines to do profiling with gcc and gprof. |
|
70 # Might not work with GUI or Perl. |
|
71 *************** |
|
72 *** 1259,1274 **** |
|
73 # This is for cproto 3 patchlevel 8 or below |
|
74 # __inline, __attribute__ and __extension__ are not recognized by cproto |
|
75 # G_IMPLEMENT_INLINES is to avoid functions defined in glib/gutils.h. |
|
76 ! NO_ATTR = -D__inline= -D__inline__= -DG_IMPLEMENT_INLINES \ |
|
77 ! -D"__attribute__\\(x\\)=" -D"__asm__\\(x\\)=" \ |
|
78 ! -D__extension__= -D__restrict="" \ |
|
79 ! -D__gnuc_va_list=char -D__builtin_va_list=char |
|
80 |
|
81 # |
|
82 ! # This is for cproto 3 patchlevel 9 or above (currently 4.6) |
|
83 # __inline and __attribute__ are now recognized by cproto |
|
84 # -D"foo()=" is not supported by all compilers so do not use it |
|
85 ! # NO_ATTR= |
|
86 # |
|
87 # maybe the "/usr/bin/cc -E" has to be adjusted for some systems |
|
88 # This is for cproto 3.5 patchlevel 3: |
|
89 --- 1264,1279 ---- |
|
90 # This is for cproto 3 patchlevel 8 or below |
|
91 # __inline, __attribute__ and __extension__ are not recognized by cproto |
|
92 # G_IMPLEMENT_INLINES is to avoid functions defined in glib/gutils.h. |
|
93 ! #NO_ATTR = -D__inline= -D__inline__= -DG_IMPLEMENT_INLINES \ |
|
94 ! # -D"__attribute__\\(x\\)=" -D"__asm__\\(x\\)=" \ |
|
95 ! # -D__extension__= -D__restrict="" \ |
|
96 ! # -D__gnuc_va_list=char -D__builtin_va_list=char |
|
97 |
|
98 # |
|
99 ! # This is for cproto 3 patchlevel 9 or above (currently 4.6, 4.7g) |
|
100 # __inline and __attribute__ are now recognized by cproto |
|
101 # -D"foo()=" is not supported by all compilers so do not use it |
|
102 ! NO_ATTR= |
|
103 # |
|
104 # maybe the "/usr/bin/cc -E" has to be adjusted for some systems |
|
105 # This is for cproto 3.5 patchlevel 3: |
|
106 *************** |
|
107 *** 1432,1437 **** |
|
108 --- 1437,1443 ---- |
|
109 $(SNIFF_SRC) $(WORKSHOP_SRC) $(WSDEBUG_SRC) $(NETBEANS_SRC) |
|
110 #LINT_SRC = $(SRC) |
|
111 #LINT_SRC = $(ALL_SRC) |
|
112 + #LINT_SRC = $(BASIC_SRC) |
|
113 |
|
114 OBJ = \ |
|
115 objects/buffer.o \ |
|
116 *************** |
|
117 *** 2272,2283 **** |
|
118 |
|
119 # Run lint. Clean up the *.ln files that are sometimes left behind. |
|
120 lint: |
|
121 ! lint $(LINT_OPTIONS) $(LINT_CFLAGS) $(LINT_EXTRA) $(LINT_SRC) |
|
122 -rm -f *.ln |
|
123 |
|
124 # Check dosinst.c with lint. |
|
125 lintinstall: |
|
126 ! lint $(LINT_OPTIONS) -DWIN32 -DUNIX_LINT dosinst.c |
|
127 -rm -f dosinst.ln |
|
128 |
|
129 ########################################################################### |
|
130 --- 2279,2290 ---- |
|
131 |
|
132 # Run lint. Clean up the *.ln files that are sometimes left behind. |
|
133 lint: |
|
134 ! $(LINT) $(LINT_OPTIONS) $(LINT_CFLAGS) $(LINT_EXTRA) $(LINT_SRC) |
|
135 -rm -f *.ln |
|
136 |
|
137 # Check dosinst.c with lint. |
|
138 lintinstall: |
|
139 ! $(LINT) $(LINT_OPTIONS) -DWIN32 -DUNIX_LINT dosinst.c |
|
140 -rm -f dosinst.ln |
|
141 |
|
142 ########################################################################### |
|
143 *** ../vim-7.2.166/src/buffer.c 2009-02-22 00:01:42.000000000 +0100 |
|
144 --- src/buffer.c 2009-05-13 12:25:29.000000000 +0200 |
|
145 *************** |
|
146 *** 44,49 **** |
|
147 --- 44,50 ---- |
|
148 #ifdef FEAT_TITLE |
|
149 static int ti_change __ARGS((char_u *str, char_u **last)); |
|
150 #endif |
|
151 + static int append_arg_number __ARGS((win_T *wp, char_u *buf, int buflen, int add_file)); |
|
152 static void free_buffer __ARGS((buf_T *)); |
|
153 static void free_buffer_stuff __ARGS((buf_T *buf, int free_options)); |
|
154 static void clear_wininfo __ARGS((buf_T *buf)); |
|
155 *************** |
|
156 *** 1453,1465 **** |
|
157 |
|
158 #ifdef FEAT_KEYMAP |
|
159 if (curbuf->b_kmap_state & KEYMAP_INIT) |
|
160 ! keymap_init(); |
|
161 #endif |
|
162 #ifdef FEAT_SPELL |
|
163 /* May need to set the spell language. Can only do this after the buffer |
|
164 * has been properly setup. */ |
|
165 if (!curbuf->b_help && curwin->w_p_spell && *curbuf->b_p_spl != NUL) |
|
166 ! did_set_spelllang(curbuf); |
|
167 #endif |
|
168 |
|
169 redraw_later(NOT_VALID); |
|
170 --- 1454,1466 ---- |
|
171 |
|
172 #ifdef FEAT_KEYMAP |
|
173 if (curbuf->b_kmap_state & KEYMAP_INIT) |
|
174 ! (void)keymap_init(); |
|
175 #endif |
|
176 #ifdef FEAT_SPELL |
|
177 /* May need to set the spell language. Can only do this after the buffer |
|
178 * has been properly setup. */ |
|
179 if (!curbuf->b_help && curwin->w_p_spell && *curbuf->b_p_spl != NUL) |
|
180 ! (void)did_set_spelllang(curbuf); |
|
181 #endif |
|
182 |
|
183 redraw_later(NOT_VALID); |
|
184 *************** |
|
185 *** 2516,2522 **** |
|
186 buf_T *buf; |
|
187 { |
|
188 wininfo_T *wip; |
|
189 ! static pos_T no_position = {1, 0}; |
|
190 |
|
191 wip = find_wininfo(buf, FALSE); |
|
192 if (wip != NULL) |
|
193 --- 2517,2523 ---- |
|
194 buf_T *buf; |
|
195 { |
|
196 wininfo_T *wip; |
|
197 ! static pos_T no_position = INIT_POS_T(1, 0, 0); |
|
198 |
|
199 wip = find_wininfo(buf, FALSE); |
|
200 if (wip != NULL) |
|
201 *************** |
|
202 *** 2577,2584 **** |
|
203 { |
|
204 IObuff[len++] = ' '; |
|
205 } while (--i > 0 && len < IOSIZE - 18); |
|
206 ! vim_snprintf((char *)IObuff + len, IOSIZE - len, _("line %ld"), |
|
207 ! buf == curbuf ? curwin->w_cursor.lnum |
|
208 : (long)buflist_findlnum(buf)); |
|
209 msg_outtrans(IObuff); |
|
210 out_flush(); /* output one line at a time */ |
|
211 --- 2578,2585 ---- |
|
212 { |
|
213 IObuff[len++] = ' '; |
|
214 } while (--i > 0 && len < IOSIZE - 18); |
|
215 ! vim_snprintf((char *)IObuff + len, (size_t)(IOSIZE - len), |
|
216 ! _("line %ld"), buf == curbuf ? curwin->w_cursor.lnum |
|
217 : (long)buflist_findlnum(buf)); |
|
218 msg_outtrans(IObuff); |
|
219 out_flush(); /* output one line at a time */ |
|
220 *************** |
|
221 *** 2967,2973 **** |
|
222 |
|
223 if (fullname > 1) /* 2 CTRL-G: include buffer number */ |
|
224 { |
|
225 ! sprintf((char *)buffer, "buf %d: ", curbuf->b_fnum); |
|
226 p = buffer + STRLEN(buffer); |
|
227 } |
|
228 else |
|
229 --- 2968,2974 ---- |
|
230 |
|
231 if (fullname > 1) /* 2 CTRL-G: include buffer number */ |
|
232 { |
|
233 ! vim_snprintf((char *)buffer, IOSIZE, "buf %d: ", curbuf->b_fnum); |
|
234 p = buffer + STRLEN(buffer); |
|
235 } |
|
236 else |
|
237 *************** |
|
238 *** 3041,3051 **** |
|
239 (long)curbuf->b_ml.ml_line_count, |
|
240 n); |
|
241 validate_virtcol(); |
|
242 ! col_print(buffer + STRLEN(buffer), |
|
243 (int)curwin->w_cursor.col + 1, (int)curwin->w_virtcol + 1); |
|
244 } |
|
245 |
|
246 ! (void)append_arg_number(curwin, buffer, !shortmess(SHM_FILE), IOSIZE); |
|
247 |
|
248 if (dont_truncate) |
|
249 { |
|
250 --- 3042,3053 ---- |
|
251 (long)curbuf->b_ml.ml_line_count, |
|
252 n); |
|
253 validate_virtcol(); |
|
254 ! len = STRLEN(buffer); |
|
255 ! col_print(buffer + len, IOSIZE - len, |
|
256 (int)curwin->w_cursor.col + 1, (int)curwin->w_virtcol + 1); |
|
257 } |
|
258 |
|
259 ! (void)append_arg_number(curwin, buffer, IOSIZE, !shortmess(SHM_FILE)); |
|
260 |
|
261 if (dont_truncate) |
|
262 { |
|
263 *************** |
|
264 *** 3073,3087 **** |
|
265 } |
|
266 |
|
267 void |
|
268 ! col_print(buf, col, vcol) |
|
269 char_u *buf; |
|
270 int col; |
|
271 int vcol; |
|
272 { |
|
273 if (col == vcol) |
|
274 ! sprintf((char *)buf, "%d", col); |
|
275 else |
|
276 ! sprintf((char *)buf, "%d-%d", col, vcol); |
|
277 } |
|
278 |
|
279 #if defined(FEAT_TITLE) || defined(PROTO) |
|
280 --- 3075,3090 ---- |
|
281 } |
|
282 |
|
283 void |
|
284 ! col_print(buf, buflen, col, vcol) |
|
285 char_u *buf; |
|
286 + size_t buflen; |
|
287 int col; |
|
288 int vcol; |
|
289 { |
|
290 if (col == vcol) |
|
291 ! vim_snprintf((char *)buf, buflen, "%d", col); |
|
292 else |
|
293 ! vim_snprintf((char *)buf, buflen, "%d-%d", col, vcol); |
|
294 } |
|
295 |
|
296 #if defined(FEAT_TITLE) || defined(PROTO) |
|
297 *************** |
|
298 *** 3194,3211 **** |
|
299 if (p == buf + off) |
|
300 /* must be a help buffer */ |
|
301 vim_strncpy(buf + off, (char_u *)_("help"), |
|
302 ! IOSIZE - off - 1); |
|
303 else |
|
304 *p = NUL; |
|
305 |
|
306 /* translate unprintable chars */ |
|
307 p = transstr(buf + off); |
|
308 ! vim_strncpy(buf + off, p, IOSIZE - off - 1); |
|
309 vim_free(p); |
|
310 STRCAT(buf, ")"); |
|
311 } |
|
312 |
|
313 ! append_arg_number(curwin, buf, FALSE, IOSIZE); |
|
314 |
|
315 #if defined(FEAT_CLIENTSERVER) |
|
316 if (serverName != NULL) |
|
317 --- 3197,3214 ---- |
|
318 if (p == buf + off) |
|
319 /* must be a help buffer */ |
|
320 vim_strncpy(buf + off, (char_u *)_("help"), |
|
321 ! (size_t)(IOSIZE - off - 1)); |
|
322 else |
|
323 *p = NUL; |
|
324 |
|
325 /* translate unprintable chars */ |
|
326 p = transstr(buf + off); |
|
327 ! vim_strncpy(buf + off, p, (size_t)(IOSIZE - off - 1)); |
|
328 vim_free(p); |
|
329 STRCAT(buf, ")"); |
|
330 } |
|
331 |
|
332 ! append_arg_number(curwin, buf, IOSIZE, FALSE); |
|
333 |
|
334 #if defined(FEAT_CLIENTSERVER) |
|
335 if (serverName != NULL) |
|
336 *************** |
|
337 *** 3520,3526 **** |
|
338 n = (long)(p - t) - item[groupitem[groupdepth]].maxwid + 1; |
|
339 |
|
340 *t = '<'; |
|
341 ! mch_memmove(t + 1, t + n, p - (t + n)); |
|
342 p = p - n + 1; |
|
343 #ifdef FEAT_MBYTE |
|
344 /* Fill up space left over by half a double-wide char. */ |
|
345 --- 3523,3529 ---- |
|
346 n = (long)(p - t) - item[groupitem[groupdepth]].maxwid + 1; |
|
347 |
|
348 *t = '<'; |
|
349 ! mch_memmove(t + 1, t + n, (size_t)(p - (t + n))); |
|
350 p = p - n + 1; |
|
351 #ifdef FEAT_MBYTE |
|
352 /* Fill up space left over by half a double-wide char. */ |
|
353 *************** |
|
354 *** 3550,3556 **** |
|
355 else |
|
356 { |
|
357 /* fill by inserting characters */ |
|
358 ! mch_memmove(t + n - l, t, p - t); |
|
359 l = n - l; |
|
360 if (p + l >= out + outlen) |
|
361 l = (long)((out + outlen) - p - 1); |
|
362 --- 3553,3559 ---- |
|
363 else |
|
364 { |
|
365 /* fill by inserting characters */ |
|
366 ! mch_memmove(t + n - l, t, (size_t)(p - t)); |
|
367 l = n - l; |
|
368 if (p + l >= out + outlen) |
|
369 l = (long)((out + outlen) - p - 1); |
|
370 *************** |
|
371 *** 3686,3692 **** |
|
372 p = t; |
|
373 |
|
374 #ifdef FEAT_EVAL |
|
375 ! sprintf((char *)tmp, "%d", curbuf->b_fnum); |
|
376 set_internal_string_var((char_u *)"actual_curbuf", tmp); |
|
377 |
|
378 o_curbuf = curbuf; |
|
379 --- 3689,3695 ---- |
|
380 p = t; |
|
381 |
|
382 #ifdef FEAT_EVAL |
|
383 ! vim_snprintf((char *)tmp, sizeof(tmp), "%d", curbuf->b_fnum); |
|
384 set_internal_string_var((char_u *)"actual_curbuf", tmp); |
|
385 |
|
386 o_curbuf = curbuf; |
|
387 *************** |
|
388 *** 3753,3765 **** |
|
389 |
|
390 case STL_ALTPERCENT: |
|
391 str = tmp; |
|
392 ! get_rel_pos(wp, str); |
|
393 break; |
|
394 |
|
395 case STL_ARGLISTSTAT: |
|
396 fillable = FALSE; |
|
397 tmp[0] = 0; |
|
398 ! if (append_arg_number(wp, tmp, FALSE, (int)sizeof(tmp))) |
|
399 str = tmp; |
|
400 break; |
|
401 |
|
402 --- 3756,3768 ---- |
|
403 |
|
404 case STL_ALTPERCENT: |
|
405 str = tmp; |
|
406 ! get_rel_pos(wp, str, TMPLEN); |
|
407 break; |
|
408 |
|
409 case STL_ARGLISTSTAT: |
|
410 fillable = FALSE; |
|
411 tmp[0] = 0; |
|
412 ! if (append_arg_number(wp, tmp, (int)sizeof(tmp), FALSE)) |
|
413 str = tmp; |
|
414 break; |
|
415 |
|
416 *************** |
|
417 *** 3794,3800 **** |
|
418 case STL_BYTEVAL_X: |
|
419 base = 'X'; |
|
420 case STL_BYTEVAL: |
|
421 ! if (wp->w_cursor.col > STRLEN(linecont)) |
|
422 num = 0; |
|
423 else |
|
424 { |
|
425 --- 3797,3803 ---- |
|
426 case STL_BYTEVAL_X: |
|
427 base = 'X'; |
|
428 case STL_BYTEVAL: |
|
429 ! if (wp->w_cursor.col > (colnr_T)STRLEN(linecont)) |
|
430 num = 0; |
|
431 else |
|
432 { |
|
433 *************** |
|
434 *** 3967,3973 **** |
|
435 if (zeropad) |
|
436 *t++ = '0'; |
|
437 *t++ = '*'; |
|
438 ! *t++ = nbase == 16 ? base : (nbase == 8 ? 'o' : 'd'); |
|
439 *t = 0; |
|
440 |
|
441 for (n = num, l = 1; n >= nbase; n /= nbase) |
|
442 --- 3970,3976 ---- |
|
443 if (zeropad) |
|
444 *t++ = '0'; |
|
445 *t++ = '*'; |
|
446 ! *t++ = nbase == 16 ? base : (char_u)(nbase == 8 ? 'o' : 'd'); |
|
447 *t = 0; |
|
448 |
|
449 for (n = num, l = 1; n >= nbase; n /= nbase) |
|
450 *************** |
|
451 *** 4160,4172 **** |
|
452 #if defined(FEAT_STL_OPT) || defined(FEAT_CMDL_INFO) \ |
|
453 || defined(FEAT_GUI_TABLINE) || defined(PROTO) |
|
454 /* |
|
455 ! * Get relative cursor position in window into "str[]", in the form 99%, using |
|
456 ! * "Top", "Bot" or "All" when appropriate. |
|
457 */ |
|
458 void |
|
459 ! get_rel_pos(wp, str) |
|
460 win_T *wp; |
|
461 ! char_u *str; |
|
462 { |
|
463 long above; /* number of lines above window */ |
|
464 long below; /* number of lines below window */ |
|
465 --- 4163,4176 ---- |
|
466 #if defined(FEAT_STL_OPT) || defined(FEAT_CMDL_INFO) \ |
|
467 || defined(FEAT_GUI_TABLINE) || defined(PROTO) |
|
468 /* |
|
469 ! * Get relative cursor position in window into "buf[buflen]", in the form 99%, |
|
470 ! * using "Top", "Bot" or "All" when appropriate. |
|
471 */ |
|
472 void |
|
473 ! get_rel_pos(wp, buf, buflen) |
|
474 win_T *wp; |
|
475 ! char_u *buf; |
|
476 ! int buflen; |
|
477 { |
|
478 long above; /* number of lines above window */ |
|
479 long below; /* number of lines below window */ |
|
480 *************** |
|
481 *** 4177,4210 **** |
|
482 #endif |
|
483 below = wp->w_buffer->b_ml.ml_line_count - wp->w_botline + 1; |
|
484 if (below <= 0) |
|
485 ! STRCPY(str, above == 0 ? _("All") : _("Bot")); |
|
486 else if (above <= 0) |
|
487 ! STRCPY(str, _("Top")); |
|
488 else |
|
489 ! sprintf((char *)str, "%2d%%", above > 1000000L |
|
490 ? (int)(above / ((above + below) / 100L)) |
|
491 : (int)(above * 100L / (above + below))); |
|
492 } |
|
493 #endif |
|
494 |
|
495 /* |
|
496 ! * Append (file 2 of 8) to 'buf', if editing more than one file. |
|
497 * Return TRUE if it was appended. |
|
498 */ |
|
499 ! int |
|
500 ! append_arg_number(wp, buf, add_file, maxlen) |
|
501 win_T *wp; |
|
502 char_u *buf; |
|
503 int add_file; /* Add "file" before the arg number */ |
|
504 - int maxlen; /* maximum nr of chars in buf or zero*/ |
|
505 { |
|
506 char_u *p; |
|
507 |
|
508 if (ARGCOUNT <= 1) /* nothing to do */ |
|
509 return FALSE; |
|
510 |
|
511 ! p = buf + STRLEN(buf); /* go to the end of the buffer */ |
|
512 ! if (maxlen && p - buf + 35 >= maxlen) /* getting too long */ |
|
513 return FALSE; |
|
514 *p++ = ' '; |
|
515 *p++ = '('; |
|
516 --- 4181,4215 ---- |
|
517 #endif |
|
518 below = wp->w_buffer->b_ml.ml_line_count - wp->w_botline + 1; |
|
519 if (below <= 0) |
|
520 ! vim_strncpy(buf, (char_u *)(above == 0 ? _("All") : _("Bot")), |
|
521 ! (size_t)(buflen - 1)); |
|
522 else if (above <= 0) |
|
523 ! vim_strncpy(buf, (char_u *)_("Top"), (size_t)(buflen - 1)); |
|
524 else |
|
525 ! vim_snprintf((char *)buf, (size_t)buflen, "%2d%%", above > 1000000L |
|
526 ? (int)(above / ((above + below) / 100L)) |
|
527 : (int)(above * 100L / (above + below))); |
|
528 } |
|
529 #endif |
|
530 |
|
531 /* |
|
532 ! * Append (file 2 of 8) to "buf[buflen]", if editing more than one file. |
|
533 * Return TRUE if it was appended. |
|
534 */ |
|
535 ! static int |
|
536 ! append_arg_number(wp, buf, buflen, add_file) |
|
537 win_T *wp; |
|
538 char_u *buf; |
|
539 + int buflen; |
|
540 int add_file; /* Add "file" before the arg number */ |
|
541 { |
|
542 char_u *p; |
|
543 |
|
544 if (ARGCOUNT <= 1) /* nothing to do */ |
|
545 return FALSE; |
|
546 |
|
547 ! p = buf + STRLEN(buf); /* go to the end of the buffer */ |
|
548 ! if (p - buf + 35 >= buflen) /* getting too long */ |
|
549 return FALSE; |
|
550 *p++ = ' '; |
|
551 *p++ = '('; |
|
552 *************** |
|
553 *** 4213,4219 **** |
|
554 STRCPY(p, "file "); |
|
555 p += 5; |
|
556 } |
|
557 ! sprintf((char *)p, wp->w_arg_idx_invalid ? "(%d) of %d)" |
|
558 : "%d of %d)", wp->w_arg_idx + 1, ARGCOUNT); |
|
559 return TRUE; |
|
560 } |
|
561 --- 4218,4225 ---- |
|
562 STRCPY(p, "file "); |
|
563 p += 5; |
|
564 } |
|
565 ! vim_snprintf((char *)p, (size_t)(buflen - (p - buf)), |
|
566 ! wp->w_arg_idx_invalid ? "(%d) of %d)" |
|
567 : "%d of %d)", wp->w_arg_idx + 1, ARGCOUNT); |
|
568 return TRUE; |
|
569 } |
|
570 *************** |
|
571 *** 4996,5002 **** |
|
572 if (tab != NULL) |
|
573 { |
|
574 *tab++ = '\0'; |
|
575 ! col = atoi((char *)tab); |
|
576 tab = vim_strrchr(xline, '\t'); |
|
577 if (tab != NULL) |
|
578 { |
|
579 --- 5002,5008 ---- |
|
580 if (tab != NULL) |
|
581 { |
|
582 *tab++ = '\0'; |
|
583 ! col = (colnr_T)atoi((char *)tab); |
|
584 tab = vim_strrchr(xline, '\t'); |
|
585 if (tab != NULL) |
|
586 { |
|
587 *************** |
|
588 *** 5034,5039 **** |
|
589 --- 5040,5046 ---- |
|
590 #endif |
|
591 char_u *line; |
|
592 int max_buffers; |
|
593 + size_t len; |
|
594 |
|
595 if (find_viminfo_parameter('%') == NULL) |
|
596 return; |
|
597 *************** |
|
598 *** 5042,5048 **** |
|
599 max_buffers = get_viminfo_parameter('%'); |
|
600 |
|
601 /* Allocate room for the file name, lnum and col. */ |
|
602 ! line = alloc(MAXPATHL + 40); |
|
603 if (line == NULL) |
|
604 return; |
|
605 |
|
606 --- 5049,5056 ---- |
|
607 max_buffers = get_viminfo_parameter('%'); |
|
608 |
|
609 /* Allocate room for the file name, lnum and col. */ |
|
610 ! #define LINE_BUF_LEN (MAXPATHL + 40) |
|
611 ! line = alloc(LINE_BUF_LEN); |
|
612 if (line == NULL) |
|
613 return; |
|
614 |
|
615 *************** |
|
616 *** 5068,5074 **** |
|
617 break; |
|
618 putc('%', fp); |
|
619 home_replace(NULL, buf->b_ffname, line, MAXPATHL, TRUE); |
|
620 ! sprintf((char *)line + STRLEN(line), "\t%ld\t%d", |
|
621 (long)buf->b_last_cursor.lnum, |
|
622 buf->b_last_cursor.col); |
|
623 viminfo_writestring(fp, line); |
|
624 --- 5076,5083 ---- |
|
625 break; |
|
626 putc('%', fp); |
|
627 home_replace(NULL, buf->b_ffname, line, MAXPATHL, TRUE); |
|
628 ! len = STRLEN(line); |
|
629 ! vim_snprintf((char *)line + len, len - LINE_BUF_LEN, "\t%ld\t%d", |
|
630 (long)buf->b_last_cursor.lnum, |
|
631 buf->b_last_cursor.col); |
|
632 viminfo_writestring(fp, line); |
|
633 *************** |
|
634 *** 5226,5232 **** |
|
635 return; |
|
636 } |
|
637 |
|
638 ! int |
|
639 buf_change_sign_type(buf, markId, typenr) |
|
640 buf_T *buf; /* buffer to store sign in */ |
|
641 int markId; /* sign ID */ |
|
642 --- 5235,5241 ---- |
|
643 return; |
|
644 } |
|
645 |
|
646 ! linenr_T |
|
647 buf_change_sign_type(buf, markId, typenr) |
|
648 buf_T *buf; /* buffer to store sign in */ |
|
649 int markId; /* sign ID */ |
|
650 *************** |
|
651 *** 5243,5252 **** |
|
652 } |
|
653 } |
|
654 |
|
655 ! return 0; |
|
656 } |
|
657 |
|
658 ! int_u |
|
659 buf_getsigntype(buf, lnum, type) |
|
660 buf_T *buf; |
|
661 linenr_T lnum; |
|
662 --- 5252,5261 ---- |
|
663 } |
|
664 } |
|
665 |
|
666 ! return (linenr_T)0; |
|
667 } |
|
668 |
|
669 ! int |
|
670 buf_getsigntype(buf, lnum, type) |
|
671 buf_T *buf; |
|
672 linenr_T lnum; |
|
673 *** ../vim-7.2.166/src/charset.c 2008-07-24 21:30:44.000000000 +0200 |
|
674 --- src/charset.c 2009-05-05 18:17:11.000000000 +0200 |
|
675 *************** |
|
676 *** 17,23 **** |
|
677 static int win_nolbr_chartabsize __ARGS((win_T *wp, char_u *s, colnr_T col, int *headp)); |
|
678 #endif |
|
679 |
|
680 ! static int nr2hex __ARGS((int c)); |
|
681 |
|
682 static int chartab_initialized = FALSE; |
|
683 |
|
684 --- 17,23 ---- |
|
685 static int win_nolbr_chartabsize __ARGS((win_T *wp, char_u *s, colnr_T col, int *headp)); |
|
686 #endif |
|
687 |
|
688 ! static unsigned nr2hex __ARGS((unsigned c)); |
|
689 |
|
690 static int chartab_initialized = FALSE; |
|
691 |
|
692 *************** |
|
693 *** 664,670 **** |
|
694 } |
|
695 #endif |
|
696 buf[++i] = nr2hex((unsigned)c >> 4); |
|
697 ! buf[++i] = nr2hex(c); |
|
698 buf[++i] = '>'; |
|
699 buf[++i] = NUL; |
|
700 } |
|
701 --- 664,670 ---- |
|
702 } |
|
703 #endif |
|
704 buf[++i] = nr2hex((unsigned)c >> 4); |
|
705 ! buf[++i] = nr2hex((unsigned)c); |
|
706 buf[++i] = '>'; |
|
707 buf[++i] = NUL; |
|
708 } |
|
709 *************** |
|
710 *** 674,682 **** |
|
711 * Lower case letters are used to avoid the confusion of <F1> being 0xf1 or |
|
712 * function key 1. |
|
713 */ |
|
714 ! static int |
|
715 nr2hex(c) |
|
716 ! int c; |
|
717 { |
|
718 if ((c & 0xf) <= 9) |
|
719 return (c & 0xf) + '0'; |
|
720 --- 674,682 ---- |
|
721 * Lower case letters are used to avoid the confusion of <F1> being 0xf1 or |
|
722 * function key 1. |
|
723 */ |
|
724 ! static unsigned |
|
725 nr2hex(c) |
|
726 ! unsigned c; |
|
727 { |
|
728 if ((c & 0xf) <= 9) |
|
729 return (c & 0xf) + '0'; |
|
730 *************** |
|
731 *** 884,890 **** |
|
732 if (c >= 0x100) |
|
733 { |
|
734 if (enc_dbcs != 0) |
|
735 ! return dbcs_class((unsigned)c >> 8, c & 0xff) >= 2; |
|
736 if (enc_utf8) |
|
737 return utf_class(c) >= 2; |
|
738 } |
|
739 --- 884,890 ---- |
|
740 if (c >= 0x100) |
|
741 { |
|
742 if (enc_dbcs != 0) |
|
743 ! return dbcs_class((unsigned)c >> 8, (unsigned)(c & 0xff)) >= 2; |
|
744 if (enc_utf8) |
|
745 return utf_class(c) >= 2; |
|
746 } |
|
747 *************** |
|
748 *** 1090,1096 **** |
|
749 */ |
|
750 numberextra = win_col_off(wp); |
|
751 col2 = col; |
|
752 ! colmax = W_WIDTH(wp) - numberextra; |
|
753 if (col >= colmax) |
|
754 { |
|
755 n = colmax + win_col_off2(wp); |
|
756 --- 1090,1096 ---- |
|
757 */ |
|
758 numberextra = win_col_off(wp); |
|
759 col2 = col; |
|
760 ! colmax = (colnr_T)(W_WIDTH(wp) - numberextra); |
|
761 if (col >= colmax) |
|
762 { |
|
763 n = colmax + win_col_off2(wp); |
|
764 *************** |
|
765 *** 1201,1217 **** |
|
766 win_T *wp; |
|
767 colnr_T vcol; |
|
768 { |
|
769 ! colnr_T width1; /* width of first line (after line number) */ |
|
770 ! colnr_T width2; /* width of further lines */ |
|
771 |
|
772 #ifdef FEAT_VERTSPLIT |
|
773 if (wp->w_width == 0) /* there is no border */ |
|
774 return FALSE; |
|
775 #endif |
|
776 width1 = W_WIDTH(wp) - win_col_off(wp); |
|
777 ! if (vcol < width1 - 1) |
|
778 return FALSE; |
|
779 ! if (vcol == width1 - 1) |
|
780 return TRUE; |
|
781 width2 = width1 + win_col_off2(wp); |
|
782 return ((vcol - width1) % width2 == width2 - 1); |
|
783 --- 1201,1217 ---- |
|
784 win_T *wp; |
|
785 colnr_T vcol; |
|
786 { |
|
787 ! int width1; /* width of first line (after line number) */ |
|
788 ! int width2; /* width of further lines */ |
|
789 |
|
790 #ifdef FEAT_VERTSPLIT |
|
791 if (wp->w_width == 0) /* there is no border */ |
|
792 return FALSE; |
|
793 #endif |
|
794 width1 = W_WIDTH(wp) - win_col_off(wp); |
|
795 ! if ((int)vcol < width1 - 1) |
|
796 return FALSE; |
|
797 ! if ((int)vcol == width1 - 1) |
|
798 return TRUE; |
|
799 width2 = width1 + win_col_off2(wp); |
|
800 return ((vcol - width1) % width2 == width2 - 1); |
|
801 *************** |
|
802 *** 1396,1408 **** |
|
803 # ifdef FEAT_MBYTE |
|
804 /* Cannot put the cursor on part of a wide character. */ |
|
805 ptr = ml_get_buf(wp->w_buffer, pos->lnum, FALSE); |
|
806 ! if (pos->col < STRLEN(ptr)) |
|
807 { |
|
808 int c = (*mb_ptr2char)(ptr + pos->col); |
|
809 |
|
810 if (c != TAB && vim_isprintc(c)) |
|
811 { |
|
812 ! endadd = char2cells(c) - 1; |
|
813 if (coladd > endadd) /* past end of line */ |
|
814 endadd = 0; |
|
815 else |
|
816 --- 1396,1408 ---- |
|
817 # ifdef FEAT_MBYTE |
|
818 /* Cannot put the cursor on part of a wide character. */ |
|
819 ptr = ml_get_buf(wp->w_buffer, pos->lnum, FALSE); |
|
820 ! if (pos->col < (colnr_T)STRLEN(ptr)) |
|
821 { |
|
822 int c = (*mb_ptr2char)(ptr + pos->col); |
|
823 |
|
824 if (c != TAB && vim_isprintc(c)) |
|
825 { |
|
826 ! endadd = (colnr_T)(char2cells(c) - 1); |
|
827 if (coladd > endadd) /* past end of line */ |
|
828 endadd = 0; |
|
829 else |
|
830 *** ../vim-7.2.166/src/cleanlint.vim 2009-05-13 12:08:12.000000000 +0200 |
|
831 --- src/cleanlint.vim 2009-05-05 21:34:01.000000000 +0200 |
|
832 *************** |
|
833 *** 0 **** |
|
834 --- 1,27 ---- |
|
835 + " Vim tool: Filter output of splint |
|
836 + " |
|
837 + " Maintainer: Bram Moolenaar <[email protected]> |
|
838 + " Last Change: 2009 May 05 |
|
839 + |
|
840 + " Usage: redirect output of "make lint" to a file, edit that file with Vim and |
|
841 + " :call CleanLint() |
|
842 + " This deletes irrelevant messages. What remains might be valid warnings. |
|
843 + |
|
844 + fun! CleanLint() |
|
845 + g/^ Types are incompatible/lockmarks d |
|
846 + g/Assignment of dev_t to __dev_t:/lockmarks d |
|
847 + g/Assignment of __dev_t to dev_t:/lockmarks d |
|
848 + g/Operands of == have incompatible types (__dev_t, dev_t): /lockmarks d |
|
849 + g/Operands of == have incompatible types (unsigned int, int): /lockmarks d |
|
850 + g/Assignment of char to char_u: /lockmarks d |
|
851 + g/Assignment of unsigned int to int: /lockmarks d |
|
852 + g/Assignment of colnr_T to int: /lockmarks d |
|
853 + g/Assignment of int to char_u: /lockmarks d |
|
854 + g/Function .* expects arg . to be wint_t gets int: /lockmarks d |
|
855 + g/^digraph.c.*digraphdefault.*is type char, expects char_u:/lockmarks d |
|
856 + g/^digraph.c.*Additional initialization errors for digraphdefault not reported/lockmarks d |
|
857 + g/Function strncasecmp expects arg 3 to be int gets size_t: /lockmarks d |
|
858 + g/ To ignore signs in type comparisons use +ignoresigns/lockmarks d |
|
859 + g/ To allow arbitrary integral types to match any integral type, use +matchanyintegral./lockmarks d |
|
860 + g/ To allow arbitrary integral types to match long unsigned, use +longintegral./lockmarks d |
|
861 + endfun |
|
862 *** ../vim-7.2.166/src/digraph.c 2008-06-25 00:26:41.000000000 +0200 |
|
863 --- src/digraph.c 2009-05-05 20:32:43.000000000 +0200 |
|
864 *************** |
|
865 *** 32,38 **** |
|
866 static void printdigraph __ARGS((digr_T *)); |
|
867 |
|
868 /* digraphs added by the user */ |
|
869 ! static garray_T user_digraphs = {0, 0, sizeof(digr_T), 10, NULL}; |
|
870 |
|
871 /* |
|
872 * Note: Characters marked with XX are not included literally, because some |
|
873 --- 32,38 ---- |
|
874 static void printdigraph __ARGS((digr_T *)); |
|
875 |
|
876 /* digraphs added by the user */ |
|
877 ! static garray_T user_digraphs = {0, 0, (int)sizeof(digr_T), 10, NULL}; |
|
878 |
|
879 /* |
|
880 * Note: Characters marked with XX are not included literally, because some |
|
881 *************** |
|
882 *** 2371,2380 **** |
|
883 } |
|
884 else |
|
885 #endif |
|
886 ! *p++ = dp->result; |
|
887 if (char2cells(dp->result) == 1) |
|
888 *p++ = ' '; |
|
889 ! sprintf((char *)p, " %3d", dp->result); |
|
890 msg_outtrans(buf); |
|
891 } |
|
892 } |
|
893 --- 2371,2380 ---- |
|
894 } |
|
895 else |
|
896 #endif |
|
897 ! *p++ = (char_u)dp->result; |
|
898 if (char2cells(dp->result) == 1) |
|
899 *p++ = ' '; |
|
900 ! vim_snprintf((char *)p, sizeof(buf) - (p - buf), " %3d", dp->result); |
|
901 msg_outtrans(buf); |
|
902 } |
|
903 } |
|
904 *************** |
|
905 *** 2395,2401 **** |
|
906 static void keymap_unload __ARGS((void)); |
|
907 |
|
908 /* |
|
909 ! * Set up key mapping tables for the 'keymap' option |
|
910 */ |
|
911 char_u * |
|
912 keymap_init() |
|
913 --- 2395,2404 ---- |
|
914 static void keymap_unload __ARGS((void)); |
|
915 |
|
916 /* |
|
917 ! * Set up key mapping tables for the 'keymap' option. |
|
918 ! * Returns NULL if OK, an error message for failure. This only needs to be |
|
919 ! * used when setting the option, not later when the value has already been |
|
920 ! * checked. |
|
921 */ |
|
922 char_u * |
|
923 keymap_init() |
|
924 *************** |
|
925 *** 2412,2436 **** |
|
926 else |
|
927 { |
|
928 char_u *buf; |
|
929 |
|
930 /* Source the keymap file. It will contain a ":loadkeymap" command |
|
931 * which will call ex_loadkeymap() below. */ |
|
932 ! buf = alloc((unsigned)(STRLEN(curbuf->b_p_keymap) |
|
933 # ifdef FEAT_MBYTE |
|
934 ! + STRLEN(p_enc) |
|
935 # endif |
|
936 ! + 14)); |
|
937 if (buf == NULL) |
|
938 return e_outofmem; |
|
939 |
|
940 # ifdef FEAT_MBYTE |
|
941 /* try finding "keymap/'keymap'_'encoding'.vim" in 'runtimepath' */ |
|
942 ! sprintf((char *)buf, "keymap/%s_%s.vim", curbuf->b_p_keymap, p_enc); |
|
943 if (source_runtime(buf, FALSE) == FAIL) |
|
944 # endif |
|
945 { |
|
946 /* try finding "keymap/'keymap'.vim" in 'runtimepath' */ |
|
947 ! sprintf((char *)buf, "keymap/%s.vim", curbuf->b_p_keymap); |
|
948 if (source_runtime(buf, FALSE) == FAIL) |
|
949 { |
|
950 vim_free(buf); |
|
951 --- 2415,2443 ---- |
|
952 else |
|
953 { |
|
954 char_u *buf; |
|
955 + size_t buflen; |
|
956 |
|
957 /* Source the keymap file. It will contain a ":loadkeymap" command |
|
958 * which will call ex_loadkeymap() below. */ |
|
959 ! buflen = STRLEN(curbuf->b_p_keymap) |
|
960 # ifdef FEAT_MBYTE |
|
961 ! + STRLEN(p_enc) |
|
962 # endif |
|
963 ! + 14; |
|
964 ! buf = alloc((unsigned)buflen); |
|
965 if (buf == NULL) |
|
966 return e_outofmem; |
|
967 |
|
968 # ifdef FEAT_MBYTE |
|
969 /* try finding "keymap/'keymap'_'encoding'.vim" in 'runtimepath' */ |
|
970 ! vim_snprintf((char *)buf, buflen, "keymap/%s_%s.vim", |
|
971 ! curbuf->b_p_keymap, p_enc); |
|
972 if (source_runtime(buf, FALSE) == FAIL) |
|
973 # endif |
|
974 { |
|
975 /* try finding "keymap/'keymap'.vim" in 'runtimepath' */ |
|
976 ! vim_snprintf((char *)buf, buflen, "keymap/%s.vim", |
|
977 ! curbuf->b_p_keymap); |
|
978 if (source_runtime(buf, FALSE) == FAIL) |
|
979 { |
|
980 vim_free(buf); |
|
981 *** ../vim-7.2.166/src/edit.c 2009-02-21 20:27:00.000000000 +0100 |
|
982 --- src/edit.c 2009-05-05 21:14:50.000000000 +0200 |
|
983 *************** |
|
984 *** 57,63 **** |
|
985 N_(" Keyword Local completion (^N^P)"), |
|
986 }; |
|
987 |
|
988 ! static char_u e_hitend[] = N_("Hit end of paragraph"); |
|
989 |
|
990 /* |
|
991 * Structure used to store one match for insert completion. |
|
992 --- 57,63 ---- |
|
993 N_(" Keyword Local completion (^N^P)"), |
|
994 }; |
|
995 |
|
996 ! static char e_hitend[] = N_("Hit end of paragraph"); |
|
997 |
|
998 /* |
|
999 * Structure used to store one match for insert completion. |
|
1000 *************** |
|
1001 *** 69,75 **** |
|
1002 --- 69,79 ---- |
|
1003 compl_T *cp_prev; |
|
1004 char_u *cp_str; /* matched text */ |
|
1005 char cp_icase; /* TRUE or FALSE: ignore case */ |
|
1006 + #ifdef S_SPLINT_S /* splint can't handle array of pointers */ |
|
1007 + char_u **cp_text; /* text for the menu */ |
|
1008 + #else |
|
1009 char_u *(cp_text[CPT_COUNT]); /* text for the menu */ |
|
1010 + #endif |
|
1011 char_u *cp_fname; /* file containing the match, allocated when |
|
1012 * cp_flags has FREE_FNAME */ |
|
1013 int cp_flags; /* ORIGINAL_TEXT, CONT_S_IPOS or FREE_FNAME */ |
|
1014 *************** |
|
1015 *** 306,312 **** |
|
1016 int c = 0; |
|
1017 char_u *ptr; |
|
1018 int lastc; |
|
1019 ! colnr_T mincol; |
|
1020 static linenr_T o_lnum = 0; |
|
1021 int i; |
|
1022 int did_backspace = TRUE; /* previous char was backspace */ |
|
1023 --- 310,316 ---- |
|
1024 int c = 0; |
|
1025 char_u *ptr; |
|
1026 int lastc; |
|
1027 ! int mincol; |
|
1028 static linenr_T o_lnum = 0; |
|
1029 int i; |
|
1030 int did_backspace = TRUE; /* previous char was backspace */ |
|
1031 *************** |
|
1032 *** 387,393 **** |
|
1033 if (startln) |
|
1034 Insstart.col = 0; |
|
1035 } |
|
1036 ! Insstart_textlen = linetabsize(ml_get_curline()); |
|
1037 Insstart_blank_vcol = MAXCOL; |
|
1038 if (!did_ai) |
|
1039 ai_col = 0; |
|
1040 --- 391,397 ---- |
|
1041 if (startln) |
|
1042 Insstart.col = 0; |
|
1043 } |
|
1044 ! Insstart_textlen = (colnr_T)linetabsize(ml_get_curline()); |
|
1045 Insstart_blank_vcol = MAXCOL; |
|
1046 if (!did_ai) |
|
1047 ai_col = 0; |
|
1048 *************** |
|
1049 *** 653,659 **** |
|
1050 mincol = curwin->w_wcol; |
|
1051 validate_cursor_col(); |
|
1052 |
|
1053 ! if ((int)curwin->w_wcol < (int)mincol - curbuf->b_p_ts |
|
1054 && curwin->w_wrow == W_WINROW(curwin) |
|
1055 + curwin->w_height - 1 - p_so |
|
1056 && (curwin->w_cursor.lnum != curwin->w_topline |
|
1057 --- 657,663 ---- |
|
1058 mincol = curwin->w_wcol; |
|
1059 validate_cursor_col(); |
|
1060 |
|
1061 ! if ((int)curwin->w_wcol < mincol - curbuf->b_p_ts |
|
1062 && curwin->w_wrow == W_WINROW(curwin) |
|
1063 + curwin->w_height - 1 - p_so |
|
1064 && (curwin->w_cursor.lnum != curwin->w_topline |
|
1065 *************** |
|
1066 *** 1773,1779 **** |
|
1067 * Compute the screen column where the cursor should be. |
|
1068 */ |
|
1069 vcol = get_indent() - vcol; |
|
1070 ! curwin->w_virtcol = (vcol < 0) ? 0 : vcol; |
|
1071 |
|
1072 /* |
|
1073 * Advance the cursor until we reach the right screen column. |
|
1074 --- 1777,1783 ---- |
|
1075 * Compute the screen column where the cursor should be. |
|
1076 */ |
|
1077 vcol = get_indent() - vcol; |
|
1078 ! curwin->w_virtcol = (colnr_T)((vcol < 0) ? 0 : vcol); |
|
1079 |
|
1080 /* |
|
1081 * Advance the cursor until we reach the right screen column. |
|
1082 *************** |
|
1083 *** 1800,1808 **** |
|
1084 */ |
|
1085 if (vcol != (int)curwin->w_virtcol) |
|
1086 { |
|
1087 ! curwin->w_cursor.col = new_cursor_col; |
|
1088 i = (int)curwin->w_virtcol - vcol; |
|
1089 ! ptr = alloc(i + 1); |
|
1090 if (ptr != NULL) |
|
1091 { |
|
1092 new_cursor_col += i; |
|
1093 --- 1804,1812 ---- |
|
1094 */ |
|
1095 if (vcol != (int)curwin->w_virtcol) |
|
1096 { |
|
1097 ! curwin->w_cursor.col = (colnr_T)new_cursor_col; |
|
1098 i = (int)curwin->w_virtcol - vcol; |
|
1099 ! ptr = alloc((unsigned)(i + 1)); |
|
1100 if (ptr != NULL) |
|
1101 { |
|
1102 new_cursor_col += i; |
|
1103 *************** |
|
1104 *** 1826,1832 **** |
|
1105 if (new_cursor_col <= 0) |
|
1106 curwin->w_cursor.col = 0; |
|
1107 else |
|
1108 ! curwin->w_cursor.col = new_cursor_col; |
|
1109 curwin->w_set_curswant = TRUE; |
|
1110 changed_cline_bef_curs(); |
|
1111 |
|
1112 --- 1830,1836 ---- |
|
1113 if (new_cursor_col <= 0) |
|
1114 curwin->w_cursor.col = 0; |
|
1115 else |
|
1116 ! curwin->w_cursor.col = (colnr_T)new_cursor_col; |
|
1117 curwin->w_set_curswant = TRUE; |
|
1118 changed_cline_bef_curs(); |
|
1119 |
|
1120 *************** |
|
1121 *** 1966,1972 **** |
|
1122 #ifdef FEAT_MBYTE |
|
1123 if (enc_utf8 && limit_col >= 0) |
|
1124 { |
|
1125 ! int ecol = curwin->w_cursor.col + 1; |
|
1126 |
|
1127 /* Make sure the cursor is at the start of a character, but |
|
1128 * skip forward again when going too far back because of a |
|
1129 --- 1970,1976 ---- |
|
1130 #ifdef FEAT_MBYTE |
|
1131 if (enc_utf8 && limit_col >= 0) |
|
1132 { |
|
1133 ! colnr_T ecol = curwin->w_cursor.col + 1; |
|
1134 |
|
1135 /* Make sure the cursor is at the start of a character, but |
|
1136 * skip forward again when going too far back because of a |
|
1137 *************** |
|
1138 *** 1982,1988 **** |
|
1139 } |
|
1140 if (*ml_get_cursor() == NUL || curwin->w_cursor.col == ecol) |
|
1141 return FALSE; |
|
1142 ! del_bytes((long)(ecol - curwin->w_cursor.col), FALSE, TRUE); |
|
1143 } |
|
1144 else |
|
1145 #endif |
|
1146 --- 1986,1992 ---- |
|
1147 } |
|
1148 if (*ml_get_cursor() == NUL || curwin->w_cursor.col == ecol) |
|
1149 return FALSE; |
|
1150 ! del_bytes((long)((int)ecol - curwin->w_cursor.col), FALSE, TRUE); |
|
1151 } |
|
1152 else |
|
1153 #endif |
|
1154 *************** |
|
1155 *** 2201,2207 **** |
|
1156 actual_compl_length = compl_length; |
|
1157 |
|
1158 /* Allocate wide character array for the completion and fill it. */ |
|
1159 ! wca = (int *)alloc(actual_len * sizeof(int)); |
|
1160 if (wca != NULL) |
|
1161 { |
|
1162 p = str; |
|
1163 --- 2205,2211 ---- |
|
1164 actual_compl_length = compl_length; |
|
1165 |
|
1166 /* Allocate wide character array for the completion and fill it. */ |
|
1167 ! wca = (int *)alloc((unsigned)(actual_len * sizeof(int))); |
|
1168 if (wca != NULL) |
|
1169 { |
|
1170 p = str; |
|
1171 *************** |
|
1172 *** 2580,2586 **** |
|
1173 */ |
|
1174 void |
|
1175 set_completion(startcol, list) |
|
1176 ! int startcol; |
|
1177 list_T *list; |
|
1178 { |
|
1179 /* If already doing completions stop it. */ |
|
1180 --- 2584,2590 ---- |
|
1181 */ |
|
1182 void |
|
1183 set_completion(startcol, list) |
|
1184 ! colnr_T startcol; |
|
1185 list_T *list; |
|
1186 { |
|
1187 /* If already doing completions stop it. */ |
|
1188 *************** |
|
1189 *** 2591,2600 **** |
|
1190 if (stop_arrow() == FAIL) |
|
1191 return; |
|
1192 |
|
1193 ! if (startcol > (int)curwin->w_cursor.col) |
|
1194 startcol = curwin->w_cursor.col; |
|
1195 compl_col = startcol; |
|
1196 ! compl_length = curwin->w_cursor.col - startcol; |
|
1197 /* compl_pattern doesn't need to be set */ |
|
1198 compl_orig_text = vim_strnsave(ml_get_curline() + compl_col, compl_length); |
|
1199 if (compl_orig_text == NULL || ins_compl_add(compl_orig_text, |
|
1200 --- 2595,2604 ---- |
|
1201 if (stop_arrow() == FAIL) |
|
1202 return; |
|
1203 |
|
1204 ! if (startcol > curwin->w_cursor.col) |
|
1205 startcol = curwin->w_cursor.col; |
|
1206 compl_col = startcol; |
|
1207 ! compl_length = (int)curwin->w_cursor.col - (int)startcol; |
|
1208 /* compl_pattern doesn't need to be set */ |
|
1209 compl_orig_text = vim_strnsave(ml_get_curline() + compl_col, compl_length); |
|
1210 if (compl_orig_text == NULL || ins_compl_add(compl_orig_text, |
|
1211 *************** |
|
1212 *** 2860,2866 **** |
|
1213 regmatch_T regmatch; |
|
1214 char_u **files; |
|
1215 int count; |
|
1216 - int i; |
|
1217 int save_p_scs; |
|
1218 int dir = compl_direction; |
|
1219 |
|
1220 --- 2864,2869 ---- |
|
1221 *************** |
|
1222 *** 2892,2908 **** |
|
1223 if (ctrl_x_mode == CTRL_X_WHOLE_LINE) |
|
1224 { |
|
1225 char_u *pat_esc = vim_strsave_escaped(pat, (char_u *)"\\"); |
|
1226 |
|
1227 if (pat_esc == NULL) |
|
1228 goto theend; |
|
1229 ! i = (int)STRLEN(pat_esc) + 10; |
|
1230 ! ptr = alloc(i); |
|
1231 if (ptr == NULL) |
|
1232 { |
|
1233 vim_free(pat_esc); |
|
1234 goto theend; |
|
1235 } |
|
1236 ! vim_snprintf((char *)ptr, i, "^\\s*\\zs\\V%s", pat_esc); |
|
1237 regmatch.regprog = vim_regcomp(ptr, RE_MAGIC); |
|
1238 vim_free(pat_esc); |
|
1239 vim_free(ptr); |
|
1240 --- 2895,2912 ---- |
|
1241 if (ctrl_x_mode == CTRL_X_WHOLE_LINE) |
|
1242 { |
|
1243 char_u *pat_esc = vim_strsave_escaped(pat, (char_u *)"\\"); |
|
1244 + size_t len; |
|
1245 |
|
1246 if (pat_esc == NULL) |
|
1247 goto theend; |
|
1248 ! len = STRLEN(pat_esc) + 10; |
|
1249 ! ptr = alloc((unsigned)len); |
|
1250 if (ptr == NULL) |
|
1251 { |
|
1252 vim_free(pat_esc); |
|
1253 goto theend; |
|
1254 } |
|
1255 ! vim_snprintf((char *)ptr, len, "^\\s*\\zs\\V%s", pat_esc); |
|
1256 regmatch.regprog = vim_regcomp(ptr, RE_MAGIC); |
|
1257 vim_free(pat_esc); |
|
1258 vim_free(ptr); |
|
1259 *************** |
|
1260 *** 2993,2999 **** |
|
1261 { |
|
1262 vim_snprintf((char *)IObuff, IOSIZE, |
|
1263 _("Scanning dictionary: %s"), (char *)files[i]); |
|
1264 ! msg_trunc_attr(IObuff, TRUE, hl_attr(HLF_R)); |
|
1265 } |
|
1266 |
|
1267 if (fp != NULL) |
|
1268 --- 2997,3003 ---- |
|
1269 { |
|
1270 vim_snprintf((char *)IObuff, IOSIZE, |
|
1271 _("Scanning dictionary: %s"), (char *)files[i]); |
|
1272 ! (void)msg_trunc_attr(IObuff, TRUE, hl_attr(HLF_R)); |
|
1273 } |
|
1274 |
|
1275 if (fp != NULL) |
|
1276 *************** |
|
1277 *** 3311,3317 **** |
|
1278 static int |
|
1279 ins_compl_len() |
|
1280 { |
|
1281 ! int off = curwin->w_cursor.col - compl_col; |
|
1282 |
|
1283 if (off < 0) |
|
1284 return 0; |
|
1285 --- 3315,3321 ---- |
|
1286 static int |
|
1287 ins_compl_len() |
|
1288 { |
|
1289 ! int off = (int)curwin->w_cursor.col - (int)compl_col; |
|
1290 |
|
1291 if (off < 0) |
|
1292 return 0; |
|
1293 *************** |
|
1294 *** 3347,3353 **** |
|
1295 |
|
1296 vim_free(compl_leader); |
|
1297 compl_leader = vim_strnsave(ml_get_curline() + compl_col, |
|
1298 ! curwin->w_cursor.col - compl_col); |
|
1299 if (compl_leader != NULL) |
|
1300 ins_compl_new_leader(); |
|
1301 } |
|
1302 --- 3351,3357 ---- |
|
1303 |
|
1304 vim_free(compl_leader); |
|
1305 compl_leader = vim_strnsave(ml_get_curline() + compl_col, |
|
1306 ! (int)(curwin->w_cursor.col - compl_col)); |
|
1307 if (compl_leader != NULL) |
|
1308 ins_compl_new_leader(); |
|
1309 } |
|
1310 *************** |
|
1311 *** 3395,3401 **** |
|
1312 ins_compl_addfrommatch() |
|
1313 { |
|
1314 char_u *p; |
|
1315 ! int len = curwin->w_cursor.col - compl_col; |
|
1316 int c; |
|
1317 compl_T *cp; |
|
1318 |
|
1319 --- 3399,3405 ---- |
|
1320 ins_compl_addfrommatch() |
|
1321 { |
|
1322 char_u *p; |
|
1323 ! int len = (int)curwin->w_cursor.col - (int)compl_col; |
|
1324 int c; |
|
1325 compl_T *cp; |
|
1326 |
|
1327 *************** |
|
1328 *** 3961,3967 **** |
|
1329 : ins_buf->b_sfname == NULL |
|
1330 ? (char *)ins_buf->b_fname |
|
1331 : (char *)ins_buf->b_sfname); |
|
1332 ! msg_trunc_attr(IObuff, TRUE, hl_attr(HLF_R)); |
|
1333 } |
|
1334 else if (*e_cpt == NUL) |
|
1335 break; |
|
1336 --- 3965,3971 ---- |
|
1337 : ins_buf->b_sfname == NULL |
|
1338 ? (char *)ins_buf->b_fname |
|
1339 : (char *)ins_buf->b_sfname); |
|
1340 ! (void)msg_trunc_attr(IObuff, TRUE, hl_attr(HLF_R)); |
|
1341 } |
|
1342 else if (*e_cpt == NUL) |
|
1343 break; |
|
1344 *************** |
|
1345 *** 3991,3997 **** |
|
1346 { |
|
1347 type = CTRL_X_TAGS; |
|
1348 sprintf((char*)IObuff, _("Scanning tags.")); |
|
1349 ! msg_trunc_attr(IObuff, TRUE, hl_attr(HLF_R)); |
|
1350 } |
|
1351 else |
|
1352 type = -1; |
|
1353 --- 3995,4001 ---- |
|
1354 { |
|
1355 type = CTRL_X_TAGS; |
|
1356 sprintf((char*)IObuff, _("Scanning tags.")); |
|
1357 ! (void)msg_trunc_attr(IObuff, TRUE, hl_attr(HLF_R)); |
|
1358 } |
|
1359 else |
|
1360 type = -1; |
|
1361 *************** |
|
1362 *** 6320,6326 **** |
|
1363 ins_need_undo = FALSE; |
|
1364 } |
|
1365 Insstart = curwin->w_cursor; /* new insertion starts here */ |
|
1366 ! Insstart_textlen = linetabsize(ml_get_curline()); |
|
1367 ai_col = 0; |
|
1368 #ifdef FEAT_VREPLACE |
|
1369 if (State & VREPLACE_FLAG) |
|
1370 --- 6324,6330 ---- |
|
1371 ins_need_undo = FALSE; |
|
1372 } |
|
1373 Insstart = curwin->w_cursor; /* new insertion starts here */ |
|
1374 ! Insstart_textlen = (colnr_T)linetabsize(ml_get_curline()); |
|
1375 ai_col = 0; |
|
1376 #ifdef FEAT_VREPLACE |
|
1377 if (State & VREPLACE_FLAG) |
|
1378 *** ../vim-7.2.166/src/ex_cmds.c 2009-04-29 18:44:38.000000000 +0200 |
|
1379 --- src/ex_cmds.c 2009-05-05 17:55:40.000000000 +0200 |
|
1380 *************** |
|
1381 *** 1789,1795 **** |
|
1382 * overwrite a user's viminfo file after a "su root", with a |
|
1383 * viminfo file that the user can't read. |
|
1384 */ |
|
1385 ! st_old.st_dev = 0; |
|
1386 st_old.st_ino = 0; |
|
1387 st_old.st_mode = 0600; |
|
1388 if (mch_stat((char *)fname, &st_old) == 0 |
|
1389 --- 1789,1795 ---- |
|
1390 * overwrite a user's viminfo file after a "su root", with a |
|
1391 * viminfo file that the user can't read. |
|
1392 */ |
|
1393 ! st_old.st_dev = (dev_t)0; |
|
1394 st_old.st_ino = 0; |
|
1395 st_old.st_mode = 0600; |
|
1396 if (mch_stat((char *)fname, &st_old) == 0 |
|
1397 *************** |
|
1398 *** 3715,3721 **** |
|
1399 /* If the window options were changed may need to set the spell language. |
|
1400 * Can only do this after the buffer has been properly setup. */ |
|
1401 if (did_get_winopts && curwin->w_p_spell && *curbuf->b_p_spl != NUL) |
|
1402 ! did_set_spelllang(curbuf); |
|
1403 #endif |
|
1404 |
|
1405 if (command == NULL) |
|
1406 --- 3715,3721 ---- |
|
1407 /* If the window options were changed may need to set the spell language. |
|
1408 * Can only do this after the buffer has been properly setup. */ |
|
1409 if (did_get_winopts && curwin->w_p_spell && *curbuf->b_p_spl != NUL) |
|
1410 ! (void)did_set_spelllang(curbuf); |
|
1411 #endif |
|
1412 |
|
1413 if (command == NULL) |
|
1414 *************** |
|
1415 *** 3788,3794 **** |
|
1416 |
|
1417 #ifdef FEAT_KEYMAP |
|
1418 if (curbuf->b_kmap_state & KEYMAP_INIT) |
|
1419 ! keymap_init(); |
|
1420 #endif |
|
1421 |
|
1422 --RedrawingDisabled; |
|
1423 --- 3788,3794 ---- |
|
1424 |
|
1425 #ifdef FEAT_KEYMAP |
|
1426 if (curbuf->b_kmap_state & KEYMAP_INIT) |
|
1427 ! (void)keymap_init(); |
|
1428 #endif |
|
1429 |
|
1430 --RedrawingDisabled; |
|
1431 *** ../vim-7.2.166/src/globals.h 2009-03-05 03:13:51.000000000 +0100 |
|
1432 --- src/globals.h 2009-05-09 21:14:49.000000000 +0200 |
|
1433 *************** |
|
1434 *** 524,530 **** |
|
1435 EXTERN win_T *prevwin INIT(= NULL); /* previous window */ |
|
1436 # define W_NEXT(wp) ((wp)->w_next) |
|
1437 # define FOR_ALL_WINDOWS(wp) for (wp = firstwin; wp != NULL; wp = wp->w_next) |
|
1438 ! #define FOR_ALL_TAB_WINDOWS(tp, wp) \ |
|
1439 for ((tp) = first_tabpage; (tp) != NULL; (tp) = (tp)->tp_next) \ |
|
1440 for ((wp) = ((tp) == curtab) \ |
|
1441 ? firstwin : (tp)->tp_firstwin; (wp); (wp) = (wp)->w_next) |
|
1442 --- 524,530 ---- |
|
1443 EXTERN win_T *prevwin INIT(= NULL); /* previous window */ |
|
1444 # define W_NEXT(wp) ((wp)->w_next) |
|
1445 # define FOR_ALL_WINDOWS(wp) for (wp = firstwin; wp != NULL; wp = wp->w_next) |
|
1446 ! # define FOR_ALL_TAB_WINDOWS(tp, wp) \ |
|
1447 for ((tp) = first_tabpage; (tp) != NULL; (tp) = (tp)->tp_next) \ |
|
1448 for ((wp) = ((tp) == curtab) \ |
|
1449 ? firstwin : (tp)->tp_firstwin; (wp); (wp) = (wp)->w_next) |
|
1450 *************** |
|
1451 *** 718,724 **** |
|
1452 |
|
1453 EXTERN pos_T saved_cursor /* w_cursor before formatting text. */ |
|
1454 # ifdef DO_INIT |
|
1455 ! = INIT_POS_T |
|
1456 # endif |
|
1457 ; |
|
1458 |
|
1459 --- 718,724 ---- |
|
1460 |
|
1461 EXTERN pos_T saved_cursor /* w_cursor before formatting text. */ |
|
1462 # ifdef DO_INIT |
|
1463 ! = INIT_POS_T(0, 0, 0) |
|
1464 # endif |
|
1465 ; |
|
1466 |
|
1467 *************** |
|
1468 *** 1039,1045 **** |
|
1469 EXTERN int did_cursorhold INIT(= FALSE); /* set when CursorHold t'gerd */ |
|
1470 EXTERN pos_T last_cursormoved /* for CursorMoved event */ |
|
1471 # ifdef DO_INIT |
|
1472 ! = INIT_POS_T |
|
1473 # endif |
|
1474 ; |
|
1475 #endif |
|
1476 --- 1039,1045 ---- |
|
1477 EXTERN int did_cursorhold INIT(= FALSE); /* set when CursorHold t'gerd */ |
|
1478 EXTERN pos_T last_cursormoved /* for CursorMoved event */ |
|
1479 # ifdef DO_INIT |
|
1480 ! = INIT_POS_T(0, 0, 0) |
|
1481 # endif |
|
1482 ; |
|
1483 #endif |
|
1484 *** ../vim-7.2.166/src/ops.c 2009-04-29 17:39:17.000000000 +0200 |
|
1485 --- src/ops.c 2009-05-13 12:41:02.000000000 +0200 |
|
1486 *************** |
|
1487 *** 6400,6406 **** |
|
1488 { |
|
1489 getvcols(curwin, &min_pos, &max_pos, &min_pos.col, |
|
1490 &max_pos.col); |
|
1491 ! sprintf((char *)buf1, _("%ld Cols; "), |
|
1492 (long)(oparg.end_vcol - oparg.start_vcol + 1)); |
|
1493 } |
|
1494 else |
|
1495 --- 6400,6406 ---- |
|
1496 { |
|
1497 getvcols(curwin, &min_pos, &max_pos, &min_pos.col, |
|
1498 &max_pos.col); |
|
1499 ! vim_snprintf((char *)buf1, sizeof(buf1), _("%ld Cols; "), |
|
1500 (long)(oparg.end_vcol - oparg.start_vcol + 1)); |
|
1501 } |
|
1502 else |
|
1503 *************** |
|
1504 *** 6408,6420 **** |
|
1505 |
|
1506 if (char_count_cursor == byte_count_cursor |
|
1507 && char_count == byte_count) |
|
1508 ! sprintf((char *)IObuff, _("Selected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld Bytes"), |
|
1509 buf1, line_count_selected, |
|
1510 (long)curbuf->b_ml.ml_line_count, |
|
1511 word_count_cursor, word_count, |
|
1512 byte_count_cursor, byte_count); |
|
1513 else |
|
1514 ! sprintf((char *)IObuff, _("Selected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld Chars; %ld of %ld Bytes"), |
|
1515 buf1, line_count_selected, |
|
1516 (long)curbuf->b_ml.ml_line_count, |
|
1517 word_count_cursor, word_count, |
|
1518 --- 6408,6422 ---- |
|
1519 |
|
1520 if (char_count_cursor == byte_count_cursor |
|
1521 && char_count == byte_count) |
|
1522 ! vim_snprintf((char *)IObuff, IOSIZE, |
|
1523 ! _("Selected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld Bytes"), |
|
1524 buf1, line_count_selected, |
|
1525 (long)curbuf->b_ml.ml_line_count, |
|
1526 word_count_cursor, word_count, |
|
1527 byte_count_cursor, byte_count); |
|
1528 else |
|
1529 ! vim_snprintf((char *)IObuff, IOSIZE, |
|
1530 ! _("Selected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld Chars; %ld of %ld Bytes"), |
|
1531 buf1, line_count_selected, |
|
1532 (long)curbuf->b_ml.ml_line_count, |
|
1533 word_count_cursor, word_count, |
|
1534 *************** |
|
1535 *** 6426,6445 **** |
|
1536 { |
|
1537 p = ml_get_curline(); |
|
1538 validate_virtcol(); |
|
1539 ! col_print(buf1, (int)curwin->w_cursor.col + 1, |
|
1540 (int)curwin->w_virtcol + 1); |
|
1541 ! col_print(buf2, (int)STRLEN(p), linetabsize(p)); |
|
1542 |
|
1543 if (char_count_cursor == byte_count_cursor |
|
1544 && char_count == byte_count) |
|
1545 ! sprintf((char *)IObuff, _("Col %s of %s; Line %ld of %ld; Word %ld of %ld; Byte %ld of %ld"), |
|
1546 (char *)buf1, (char *)buf2, |
|
1547 (long)curwin->w_cursor.lnum, |
|
1548 (long)curbuf->b_ml.ml_line_count, |
|
1549 word_count_cursor, word_count, |
|
1550 byte_count_cursor, byte_count); |
|
1551 else |
|
1552 ! sprintf((char *)IObuff, _("Col %s of %s; Line %ld of %ld; Word %ld of %ld; Char %ld of %ld; Byte %ld of %ld"), |
|
1553 (char *)buf1, (char *)buf2, |
|
1554 (long)curwin->w_cursor.lnum, |
|
1555 (long)curbuf->b_ml.ml_line_count, |
|
1556 --- 6428,6449 ---- |
|
1557 { |
|
1558 p = ml_get_curline(); |
|
1559 validate_virtcol(); |
|
1560 ! col_print(buf1, sizeof(buf1), (int)curwin->w_cursor.col + 1, |
|
1561 (int)curwin->w_virtcol + 1); |
|
1562 ! col_print(buf2, sizeof(buf2), (int)STRLEN(p), linetabsize(p)); |
|
1563 |
|
1564 if (char_count_cursor == byte_count_cursor |
|
1565 && char_count == byte_count) |
|
1566 ! vim_snprintf((char *)IObuff, IOSIZE, |
|
1567 ! _("Col %s of %s; Line %ld of %ld; Word %ld of %ld; Byte %ld of %ld"), |
|
1568 (char *)buf1, (char *)buf2, |
|
1569 (long)curwin->w_cursor.lnum, |
|
1570 (long)curbuf->b_ml.ml_line_count, |
|
1571 word_count_cursor, word_count, |
|
1572 byte_count_cursor, byte_count); |
|
1573 else |
|
1574 ! vim_snprintf((char *)IObuff, IOSIZE, |
|
1575 ! _("Col %s of %s; Line %ld of %ld; Word %ld of %ld; Char %ld of %ld; Byte %ld of %ld"), |
|
1576 (char *)buf1, (char *)buf2, |
|
1577 (long)curwin->w_cursor.lnum, |
|
1578 (long)curbuf->b_ml.ml_line_count, |
|
1579 *** ../vim-7.2.166/src/os_unix.c 2009-03-02 02:44:54.000000000 +0100 |
|
1580 --- src/os_unix.c 2009-05-05 17:35:58.000000000 +0200 |
|
1581 *************** |
|
1582 *** 199,205 **** |
|
1583 #endif |
|
1584 |
|
1585 #ifndef SIG_ERR |
|
1586 ! # define SIG_ERR ((RETSIGTYPE (*)())-1) |
|
1587 #endif |
|
1588 |
|
1589 /* volatile because it is used in signal handler sig_winch(). */ |
|
1590 --- 199,207 ---- |
|
1591 #endif |
|
1592 |
|
1593 #ifndef SIG_ERR |
|
1594 ! # ifndef S_SPLINT_S |
|
1595 ! # define SIG_ERR ((RETSIGTYPE (*)())-1) |
|
1596 ! # endif |
|
1597 #endif |
|
1598 |
|
1599 /* volatile because it is used in signal handler sig_winch(). */ |
|
1600 *************** |
|
1601 *** 441,447 **** |
|
1602 |
|
1603 #if defined(HAVE_TOTAL_MEM) || defined(PROTO) |
|
1604 # ifdef HAVE_SYS_RESOURCE_H |
|
1605 ! # include <sys/resource.h> |
|
1606 # endif |
|
1607 # if defined(HAVE_SYS_SYSCTL_H) && defined(HAVE_SYSCTL) |
|
1608 # include <sys/sysctl.h> |
|
1609 --- 443,451 ---- |
|
1610 |
|
1611 #if defined(HAVE_TOTAL_MEM) || defined(PROTO) |
|
1612 # ifdef HAVE_SYS_RESOURCE_H |
|
1613 ! # ifndef S_SPLINT_S /* splint crashes on bits/resource.h */ |
|
1614 ! # include <sys/resource.h> |
|
1615 ! # endif |
|
1616 # endif |
|
1617 # if defined(HAVE_SYS_SYSCTL_H) && defined(HAVE_SYSCTL) |
|
1618 # include <sys/sysctl.h> |
|
1619 *** ../vim-7.2.166/src/os_unix.h 2008-06-20 18:06:36.000000000 +0200 |
|
1620 --- src/os_unix.h 2009-05-05 17:07:45.000000000 +0200 |
|
1621 *************** |
|
1622 *** 53,59 **** |
|
1623 #endif |
|
1624 |
|
1625 #ifdef HAVE_UNISTD_H |
|
1626 ! # include <unistd.h> |
|
1627 #endif |
|
1628 |
|
1629 #ifdef HAVE_LIBC_H |
|
1630 --- 53,61 ---- |
|
1631 #endif |
|
1632 |
|
1633 #ifdef HAVE_UNISTD_H |
|
1634 ! # ifndef S_SPLINT_S /* splint crashes on bits/confname.h */ |
|
1635 ! # include <unistd.h> |
|
1636 ! # endif |
|
1637 #endif |
|
1638 |
|
1639 #ifdef HAVE_LIBC_H |
|
1640 *** ../vim-7.2.166/src/proto/buffer.pro 2008-11-15 14:10:23.000000000 +0100 |
|
1641 --- src/proto/buffer.pro 2009-05-13 12:23:41.000000000 +0200 |
|
1642 *************** |
|
1643 *** 37,49 **** |
|
1644 int otherfile __ARGS((char_u *ffname)); |
|
1645 void buf_setino __ARGS((buf_T *buf)); |
|
1646 void fileinfo __ARGS((int fullname, int shorthelp, int dont_truncate)); |
|
1647 ! void col_print __ARGS((char_u *buf, int col, int vcol)); |
|
1648 void maketitle __ARGS((void)); |
|
1649 void resettitle __ARGS((void)); |
|
1650 void free_titles __ARGS((void)); |
|
1651 int build_stl_str_hl __ARGS((win_T *wp, char_u *out, size_t outlen, char_u *fmt, int use_sandbox, int fillchar, int maxwidth, struct stl_hlrec *hltab, struct stl_hlrec *tabtab)); |
|
1652 ! void get_rel_pos __ARGS((win_T *wp, char_u *str)); |
|
1653 ! int append_arg_number __ARGS((win_T *wp, char_u *buf, int add_file, int maxlen)); |
|
1654 char_u *fix_fname __ARGS((char_u *fname)); |
|
1655 void fname_expand __ARGS((buf_T *buf, char_u **ffname, char_u **sfname)); |
|
1656 char_u *alist_name __ARGS((aentry_T *aep)); |
|
1657 --- 37,48 ---- |
|
1658 int otherfile __ARGS((char_u *ffname)); |
|
1659 void buf_setino __ARGS((buf_T *buf)); |
|
1660 void fileinfo __ARGS((int fullname, int shorthelp, int dont_truncate)); |
|
1661 ! void col_print __ARGS((char_u *buf, size_t buflen, int col, int vcol)); |
|
1662 void maketitle __ARGS((void)); |
|
1663 void resettitle __ARGS((void)); |
|
1664 void free_titles __ARGS((void)); |
|
1665 int build_stl_str_hl __ARGS((win_T *wp, char_u *out, size_t outlen, char_u *fmt, int use_sandbox, int fillchar, int maxwidth, struct stl_hlrec *hltab, struct stl_hlrec *tabtab)); |
|
1666 ! void get_rel_pos __ARGS((win_T *wp, char_u *buf, int buflen)); |
|
1667 char_u *fix_fname __ARGS((char_u *fname)); |
|
1668 void fname_expand __ARGS((buf_T *buf, char_u **ffname, char_u **sfname)); |
|
1669 char_u *alist_name __ARGS((aentry_T *aep)); |
|
1670 *************** |
|
1671 *** 54,61 **** |
|
1672 void write_viminfo_bufferlist __ARGS((FILE *fp)); |
|
1673 char *buf_spname __ARGS((buf_T *buf)); |
|
1674 void buf_addsign __ARGS((buf_T *buf, int id, linenr_T lnum, int typenr)); |
|
1675 ! int buf_change_sign_type __ARGS((buf_T *buf, int markId, int typenr)); |
|
1676 ! int_u buf_getsigntype __ARGS((buf_T *buf, linenr_T lnum, int type)); |
|
1677 linenr_T buf_delsign __ARGS((buf_T *buf, int id)); |
|
1678 int buf_findsign __ARGS((buf_T *buf, int id)); |
|
1679 int buf_findsign_id __ARGS((buf_T *buf, linenr_T lnum)); |
|
1680 --- 53,60 ---- |
|
1681 void write_viminfo_bufferlist __ARGS((FILE *fp)); |
|
1682 char *buf_spname __ARGS((buf_T *buf)); |
|
1683 void buf_addsign __ARGS((buf_T *buf, int id, linenr_T lnum, int typenr)); |
|
1684 ! linenr_T buf_change_sign_type __ARGS((buf_T *buf, int markId, int typenr)); |
|
1685 ! int buf_getsigntype __ARGS((buf_T *buf, linenr_T lnum, int type)); |
|
1686 linenr_T buf_delsign __ARGS((buf_T *buf, int id)); |
|
1687 int buf_findsign __ARGS((buf_T *buf, int id)); |
|
1688 int buf_findsign_id __ARGS((buf_T *buf, linenr_T lnum)); |
|
1689 *** ../vim-7.2.166/src/proto/edit.pro 2008-01-16 20:03:13.000000000 +0100 |
|
1690 --- src/proto/edit.pro 2009-05-05 20:51:56.000000000 +0200 |
|
1691 *************** |
|
1692 *** 8,14 **** |
|
1693 void backspace_until_column __ARGS((int col)); |
|
1694 int vim_is_ctrl_x_key __ARGS((int c)); |
|
1695 int ins_compl_add_infercase __ARGS((char_u *str, int len, int icase, char_u *fname, int dir, int flags)); |
|
1696 ! void set_completion __ARGS((int startcol, list_T *list)); |
|
1697 void ins_compl_show_pum __ARGS((void)); |
|
1698 char_u *find_word_start __ARGS((char_u *ptr)); |
|
1699 char_u *find_word_end __ARGS((char_u *ptr)); |
|
1700 --- 8,14 ---- |
|
1701 void backspace_until_column __ARGS((int col)); |
|
1702 int vim_is_ctrl_x_key __ARGS((int c)); |
|
1703 int ins_compl_add_infercase __ARGS((char_u *str, int len, int icase, char_u *fname, int dir, int flags)); |
|
1704 ! void set_completion __ARGS((colnr_T startcol, list_T *list)); |
|
1705 void ins_compl_show_pum __ARGS((void)); |
|
1706 char_u *find_word_start __ARGS((char_u *ptr)); |
|
1707 char_u *find_word_end __ARGS((char_u *ptr)); |
|
1708 *** ../vim-7.2.166/src/screen.c 2009-03-18 19:07:09.000000000 +0100 |
|
1709 --- src/screen.c 2009-05-05 17:42:45.000000000 +0200 |
|
1710 *************** |
|
1711 *** 9481,9493 **** |
|
1712 win_T *wp; |
|
1713 int always; |
|
1714 { |
|
1715 ! char_u buffer[70]; |
|
1716 int row; |
|
1717 int fillchar; |
|
1718 int attr; |
|
1719 int empty_line = FALSE; |
|
1720 colnr_T virtcol; |
|
1721 int i; |
|
1722 int o; |
|
1723 #ifdef FEAT_VERTSPLIT |
|
1724 int this_ru_col; |
|
1725 --- 9481,9495 ---- |
|
1726 win_T *wp; |
|
1727 int always; |
|
1728 { |
|
1729 ! #define RULER_BUF_LEN 70 |
|
1730 ! char_u buffer[RULER_BUF_LEN]; |
|
1731 int row; |
|
1732 int fillchar; |
|
1733 int attr; |
|
1734 int empty_line = FALSE; |
|
1735 colnr_T virtcol; |
|
1736 int i; |
|
1737 + size_t len; |
|
1738 int o; |
|
1739 #ifdef FEAT_VERTSPLIT |
|
1740 int this_ru_col; |
|
1741 *************** |
|
1742 *** 9602,9612 **** |
|
1743 * Some sprintfs return the length, some return a pointer. |
|
1744 * To avoid portability problems we use strlen() here. |
|
1745 */ |
|
1746 ! sprintf((char *)buffer, "%ld,", |
|
1747 (wp->w_buffer->b_ml.ml_flags & ML_EMPTY) |
|
1748 ? 0L |
|
1749 : (long)(wp->w_cursor.lnum)); |
|
1750 ! col_print(buffer + STRLEN(buffer), |
|
1751 empty_line ? 0 : (int)wp->w_cursor.col + 1, |
|
1752 (int)virtcol + 1); |
|
1753 |
|
1754 --- 9604,9615 ---- |
|
1755 * Some sprintfs return the length, some return a pointer. |
|
1756 * To avoid portability problems we use strlen() here. |
|
1757 */ |
|
1758 ! vim_snprintf((char *)buffer, RULER_BUF_LEN, "%ld,", |
|
1759 (wp->w_buffer->b_ml.ml_flags & ML_EMPTY) |
|
1760 ? 0L |
|
1761 : (long)(wp->w_cursor.lnum)); |
|
1762 ! len = STRLEN(buffer); |
|
1763 ! col_print(buffer + len, RULER_BUF_LEN - len, |
|
1764 empty_line ? 0 : (int)wp->w_cursor.col + 1, |
|
1765 (int)virtcol + 1); |
|
1766 |
|
1767 *************** |
|
1768 *** 9616,9622 **** |
|
1769 * screen up on some terminals). |
|
1770 */ |
|
1771 i = (int)STRLEN(buffer); |
|
1772 ! get_rel_pos(wp, buffer + i + 1); |
|
1773 o = i + vim_strsize(buffer + i + 1); |
|
1774 #ifdef FEAT_WINDOWS |
|
1775 if (wp->w_status_height == 0) /* can't use last char of screen */ |
|
1776 --- 9619,9625 ---- |
|
1777 * screen up on some terminals). |
|
1778 */ |
|
1779 i = (int)STRLEN(buffer); |
|
1780 ! get_rel_pos(wp, buffer + i + 1, RULER_BUF_LEN - i - 1); |
|
1781 o = i + vim_strsize(buffer + i + 1); |
|
1782 #ifdef FEAT_WINDOWS |
|
1783 if (wp->w_status_height == 0) /* can't use last char of screen */ |
|
1784 *************** |
|
1785 *** 9643,9649 **** |
|
1786 buffer[i++] = fillchar; |
|
1787 ++o; |
|
1788 } |
|
1789 ! get_rel_pos(wp, buffer + i); |
|
1790 } |
|
1791 /* Truncate at window boundary. */ |
|
1792 #ifdef FEAT_MBYTE |
|
1793 --- 9646,9652 ---- |
|
1794 buffer[i++] = fillchar; |
|
1795 ++o; |
|
1796 } |
|
1797 ! get_rel_pos(wp, buffer + i, RULER_BUF_LEN - i); |
|
1798 } |
|
1799 /* Truncate at window boundary. */ |
|
1800 #ifdef FEAT_MBYTE |
|
1801 *** ../vim-7.2.166/src/structs.h 2008-11-15 16:05:30.000000000 +0100 |
|
1802 --- src/structs.h 2009-05-05 18:20:36.000000000 +0200 |
|
1803 *************** |
|
1804 *** 33,41 **** |
|
1805 } pos_T; |
|
1806 |
|
1807 #ifdef FEAT_VIRTUALEDIT |
|
1808 ! # define INIT_POS_T {0, 0, 0} |
|
1809 #else |
|
1810 ! # define INIT_POS_T {0, 0} |
|
1811 #endif |
|
1812 |
|
1813 /* |
|
1814 --- 33,41 ---- |
|
1815 } pos_T; |
|
1816 |
|
1817 #ifdef FEAT_VIRTUALEDIT |
|
1818 ! # define INIT_POS_T(l, c, ca) {l, c, ca} |
|
1819 #else |
|
1820 ! # define INIT_POS_T(l, c, ca) {l, c} |
|
1821 #endif |
|
1822 |
|
1823 /* |
|
1824 *************** |
|
1825 *** 1166,1172 **** |
|
1826 char_u *b_fname; /* current file name */ |
|
1827 |
|
1828 #ifdef UNIX |
|
1829 ! int b_dev; /* device number (-1 if not set) */ |
|
1830 ino_t b_ino; /* inode number */ |
|
1831 #endif |
|
1832 #ifdef FEAT_CW_EDITOR |
|
1833 --- 1166,1172 ---- |
|
1834 char_u *b_fname; /* current file name */ |
|
1835 |
|
1836 #ifdef UNIX |
|
1837 ! dev_t b_dev; /* device number (-1 if not set) */ |
|
1838 ino_t b_ino; /* inode number */ |
|
1839 #endif |
|
1840 #ifdef FEAT_CW_EDITOR |
|
1841 *************** |
|
1842 *** 1645,1651 **** |
|
1843 --- 1645,1655 ---- |
|
1844 #endif |
|
1845 #ifdef FEAT_DIFF |
|
1846 diff_T *tp_first_diff; |
|
1847 + # ifdef S_SPLINT_S /* splint doesn't understand the array of pointers */ |
|
1848 + buf_T **tp_diffbuf; |
|
1849 + # else |
|
1850 buf_T *(tp_diffbuf[DB_COUNT]); |
|
1851 + # endif |
|
1852 int tp_diff_invalid; /* list of diffs is outdated */ |
|
1853 #endif |
|
1854 frame_T *tp_snapshot; /* window layout snapshot */ |
|
1855 *** ../vim-7.2.166/src/version.c 2009-04-29 18:44:38.000000000 +0200 |
|
1856 --- src/version.c 2009-05-13 12:06:36.000000000 +0200 |
|
1857 *************** |
|
1858 *** 678,679 **** |
|
1859 --- 678,681 ---- |
|
1860 { /* Add new patch number below this line */ |
|
1861 + /**/ |
|
1862 + 167, |
|
1863 /**/ |
|
1864 |
|
1865 -- |
|
1866 Snoring is prohibited unless all bedroom windows are closed and securely |
|
1867 locked. |
|
1868 [real standing law in Massachusetts, United States of America] |
|
1869 |
|
1870 /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net \\\ |
|
1871 /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ |
|
1872 \\\ download, build and distribute -- http://www.A-A-P.org /// |
|
1873 \\\ help me help AIDS victims -- http://ICCF-Holland.org /// |