source: patches/vim-7.0-fixes-2.patch@ 7a6a0d8

clfs-1.2 clfs-2.1 clfs-3.0.0-systemd clfs-3.0.0-sysvinit systemd sysvinit
Last change on this file since 7a6a0d8 was 34f53b7, checked in by Jim Gifford <clfs@…>, 18 years ago

Added: vim-7.0-fixes-2.patch

  • Property mode set to 100644
File size: 16.5 KB
RevLine 
[34f53b7]1Submitted By: Jim Gifford (patches at jg555 dot com)
2Date: 2006-05-12
3Initial Package Version: 7.0
4Origin: Upstream
5Upstream Status: Applied
6Description: Contains Patch 001-004 and 006-015 from Upstream
7 005 is for the extras and Windows 32 only
8
9diff -Naur vim70.orig/runtime/autoload/ccomplete.vim vim70/runtime/autoload/ccomplete.vim
10--- vim70.orig/runtime/autoload/ccomplete.vim 2006-05-03 07:35:56.000000000 -0700
11+++ vim70/runtime/autoload/ccomplete.vim 2006-05-12 13:14:48.000000000 -0700
12@@ -1,7 +1,7 @@
13 " Vim completion script
14 " Language: C
15 " Maintainer: Bram Moolenaar <Bram@vim.org>
16-" Last Change: 2006 May 03
17+" Last Change: 2006 May 08
18
19
20 " This function is used for the 'omnifunc' option.
21@@ -458,7 +458,7 @@
22 " member.
23 function! s:StructMembers(typename, items, all)
24 " Todo: What about local structures?
25- let fnames = join(map(tagfiles(), 'escape(v:val, " \\")'))
26+ let fnames = join(map(tagfiles(), 'escape(v:val, " \\#%")'))
27 if fnames == ''
28 return []
29 endif
30diff -Naur vim70.orig/runtime/autoload/spellfile.vim vim70/runtime/autoload/spellfile.vim
31--- vim70.orig/runtime/autoload/spellfile.vim 2006-02-01 04:12:24.000000000 -0800
32+++ vim70/runtime/autoload/spellfile.vim 2006-05-12 13:14:48.000000000 -0700
33@@ -1,9 +1,9 @@
34 " Vim script to download a missing spell file
35 " Maintainer: Bram Moolenaar <Bram@vim.org>
36-" Last Change: 2006 Feb 01
37+" Last Change: 2006 May 10
38
39 if !exists('g:spellfile_URL')
40- let g:spellfile_URL = 'ftp://ftp.vim.org/pub/vim/unstable/runtime/spell'
41+ let g:spellfile_URL = 'ftp://ftp.vim.org/pub/vim/runtime/spell'
42 endif
43 let s:spellfile_URL = '' " Start with nothing so that s:donedict is reset.
44
45@@ -61,13 +61,13 @@
46 new
47 setlocal bin
48 echo 'Downloading ' . fname . '...'
49- exe 'Nread ' g:spellfile_URL . '/' . fname
50+ call spellfile#Nread(fname)
51 if getline(2) !~ 'VIMspell'
52 " Didn't work, perhaps there is an ASCII one.
53 g/^/d
54 let fname = a:lang . '.ascii.spl'
55 echo 'Could not find it, trying ' . fname . '...'
56- exe 'Nread ' g:spellfile_URL . '/' . fname
57+ call spellfile#Nread(fname)
58 if getline(2) !~ 'VIMspell'
59 echo 'Sorry, downloading failed'
60 bwipe!
61@@ -95,7 +95,7 @@
62 g/^/d
63 let fname = substitute(fname, '\.spl$', '.sug', '')
64 echo 'Downloading ' . fname . '...'
65- exe 'Nread ' g:spellfile_URL . '/' . fname
66+ call spellfile#Nread(fname)
67 if getline(2) !~ 'VIMsug'
68 echo 'Sorry, downloading failed'
69 else
70@@ -109,3 +109,10 @@
71 bwipe
72 endif
73 endfunc
74+
75+" Read "fname" from the ftp server.
76+function! spellfile#Nread(fname)
77+ let machine = substitute(g:spellfile_URL, 'ftp://\([^/]*\).*', '\1', '')
78+ let dir = substitute(g:spellfile_URL, 'ftp://[^/]*/\(.*\)', '\1', '')
79+ exe 'Nread "' . machine . ' anonymous vim7user ' . dir . '/' . a:fname . '"'
80+endfunc
81diff -Naur vim70.orig/runtime/plugin/matchparen.vim vim70/runtime/plugin/matchparen.vim
82--- vim70.orig/runtime/plugin/matchparen.vim 2006-04-27 06:31:26.000000000 -0700
83+++ vim70/runtime/plugin/matchparen.vim 2006-05-12 13:14:48.000000000 -0700
84@@ -1,6 +1,6 @@
85 " Vim plugin for showing matching parens
86 " Maintainer: Bram Moolenaar <Bram@vim.org>
87-" Last Change: 2006 Apr 27
88+" Last Change: 2006 May 11
89
90 " Exit quickly when:
91 " - this plugin was already loaded (or disabled)
92@@ -90,7 +90,7 @@
93 " Find the match. When it was just before the cursor move it there for a
94 " moment.
95 if before > 0
96- let save_cursor = getpos('.')
97+ let save_cursor = winsaveview()
98 call cursor(c_lnum, c_col - before)
99 endif
100
101@@ -102,7 +102,7 @@
102 let [m_lnum, m_col] = searchpairpos(c, '', c2, s_flags, s_skip, stopline)
103
104 if before > 0
105- call setpos('.', save_cursor)
106+ call winrestview(save_cursor)
107 endif
108
109 " If a match is found setup match highlighting.
110diff -Naur vim70.orig/src/edit.c vim70/src/edit.c
111--- vim70.orig/src/edit.c 2006-05-07 04:48:51.000000000 -0700
112+++ vim70/src/edit.c 2006-05-12 13:15:43.000000000 -0700
113@@ -751,7 +751,7 @@
114 continue;
115 }
116
117- /* Pressing CTRL-Y selects the current match. Shen
118+ /* Pressing CTRL-Y selects the current match. When
119 * compl_enter_selects is set the Enter key does the same. */
120 if (c == Ctrl_Y || (compl_enter_selects
121 && (c == CAR || c == K_KENTER || c == NL)))
122@@ -3046,7 +3046,6 @@
123 ins_compl_delete();
124 ins_bytes(compl_leader + curwin->w_cursor.col - compl_col);
125 compl_used_match = FALSE;
126- compl_enter_selects = FALSE;
127
128 if (compl_started)
129 ins_compl_set_original_text(compl_leader);
130@@ -3076,6 +3075,7 @@
131 compl_restarting = FALSE;
132 }
133
134+#if 0 /* disabled, made CTRL-L, BS and typing char jump to original text. */
135 if (!compl_used_match)
136 {
137 /* Go to the original text, since none of the matches is inserted. */
138@@ -3087,6 +3087,8 @@
139 compl_curr_match = compl_shown_match;
140 compl_shows_dir = compl_direction;
141 }
142+#endif
143+ compl_enter_selects = !compl_used_match;
144
145 /* Show the popup menu with a different set of matches. */
146 ins_compl_show_pum();
147@@ -3175,10 +3177,32 @@
148 char_u *p;
149 int len = curwin->w_cursor.col - compl_col;
150 int c;
151+ compl_T *cp;
152
153 p = compl_shown_match->cp_str;
154 if ((int)STRLEN(p) <= len) /* the match is too short */
155- return;
156+ {
157+ /* When still at the original match use the first entry that matches
158+ * the leader. */
159+ if (compl_shown_match->cp_flags & ORIGINAL_TEXT)
160+ {
161+ p = NULL;
162+ for (cp = compl_shown_match->cp_next; cp != NULL
163+ && cp != compl_first_match; cp = cp->cp_next)
164+ {
165+ if (ins_compl_equal(cp, compl_leader,
166+ (int)STRLEN(compl_leader)))
167+ {
168+ p = cp->cp_str;
169+ break;
170+ }
171+ }
172+ if (p == NULL || (int)STRLEN(p) <= len)
173+ return;
174+ }
175+ else
176+ return;
177+ }
178 p += len;
179 #ifdef FEAT_MBYTE
180 c = mb_ptr2char(p);
181@@ -4100,6 +4124,21 @@
182 && compl_shown_match->cp_next != NULL
183 && compl_shown_match->cp_next != compl_first_match)
184 compl_shown_match = compl_shown_match->cp_next;
185+
186+ /* If we didn't find it searching forward, and compl_shows_dir is
187+ * backward, find the last match. */
188+ if (compl_shows_dir == BACKWARD
189+ && !ins_compl_equal(compl_shown_match,
190+ compl_leader, (int)STRLEN(compl_leader))
191+ && (compl_shown_match->cp_next == NULL
192+ || compl_shown_match->cp_next == compl_first_match))
193+ {
194+ while (!ins_compl_equal(compl_shown_match,
195+ compl_leader, (int)STRLEN(compl_leader))
196+ && compl_shown_match->cp_prev != NULL
197+ && compl_shown_match->cp_prev != compl_first_match)
198+ compl_shown_match = compl_shown_match->cp_prev;
199+ }
200 }
201
202 if (allow_get_expansion && insert_match
203diff -Naur vim70.orig/src/eval.c vim70/src/eval.c
204--- vim70.orig/src/eval.c 2006-05-05 10:15:26.000000000 -0700
205+++ vim70/src/eval.c 2006-05-12 13:14:48.000000000 -0700
206@@ -11372,7 +11372,7 @@
207 if (argvars[2].v_type != VAR_UNKNOWN)
208 {
209 char_u *xp_name;
210- int xp_namelen;
211+ int xp_namelen;
212 long argt;
213
214 rettv->vval.v_string = NULL;
215@@ -18963,7 +18963,8 @@
216 else if (lead > 0)
217 {
218 lead = 3;
219- if (eval_fname_sid(lv.ll_exp_name != NULL ? lv.ll_exp_name : *pp))
220+ if ((lv.ll_exp_name != NULL && eval_fname_sid(lv.ll_exp_name))
221+ || eval_fname_sid(*pp))
222 {
223 /* It's "s:" or "<SID>" */
224 if (current_SID <= 0)
225diff -Naur vim70.orig/src/ex_docmd.c vim70/src/ex_docmd.c
226--- vim70.orig/src/ex_docmd.c 2006-05-05 09:33:19.000000000 -0700
227+++ vim70/src/ex_docmd.c 2006-05-12 13:14:48.000000000 -0700
228@@ -833,7 +833,7 @@
229 * If requested, store and reset the global values controlling the
230 * exception handling (used when debugging).
231 */
232- else if (flags & DOCMD_EXCRESET)
233+ if (flags & DOCMD_EXCRESET)
234 save_dbg_stuff(&debug_saved);
235
236 initial_trylevel = trylevel;
237diff -Naur vim70.orig/src/gui_at_fs.c vim70/src/gui_at_fs.c
238--- vim70.orig/src/gui_at_fs.c 2005-07-09 04:30:17.000000000 -0700
239+++ vim70/src/gui_at_fs.c 2006-05-12 13:18:22.000000000 -0700
240@@ -1861,27 +1861,27 @@
241 XtPointer pnew;
242 {
243 SFDir *dir;
244- int nw;
245+ int nw = (int)(long)pnew;
246
247 dir = &(SFdirs[SFdirPtr + (int)(long)n]);
248
249 #ifdef FEAT_GUI_NEXTAW
250- if ((int)(long)pnew < 0)
251+ if (nw < 0)
252 {
253- if ((int)(long)pnew > -SFvScrollHeight)
254- (int)(long)pnew = -1;
255+ if (nw > -SFvScrollHeight)
256+ nw = -1;
257 else
258- (int)(long)pnew = -SFlistSize;
259+ nw = -SFlistSize;
260 }
261- else if ((int)(long)pnew > 0)
262+ else if (nw > 0)
263 {
264- if ((int)(long)pnew < SFvScrollHeight)
265- (int)(long)pnew = 1;
266+ if (nw < SFvScrollHeight)
267+ nw = 1;
268 else
269- (int)(long)pnew = SFlistSize;
270+ nw = SFlistSize;
271 }
272 #endif
273- nw = dir->vOrigin + (int)(long)pnew;
274+ nw += dir->vOrigin;
275
276 if (nw > dir->nEntries - SFlistSize)
277 nw = dir->nEntries - SFlistSize;
278@@ -1941,27 +1941,27 @@
279 XtPointer pnew;
280 {
281 SFDir *dir;
282- int nw;
283+ int nw = (int)(long)pnew;
284
285 dir = &(SFdirs[SFdirPtr + (int)(long)n]);
286
287 #ifdef FEAT_GUI_NEXTAW
288- if ((int)(long)pnew < 0)
289+ if (nw < 0)
290 {
291- if ((int)(long)pnew > -SFhScrollWidth)
292- (int)(long)pnew = -1;
293+ if (nw > -SFhScrollWidth)
294+ nw = -1;
295 else
296- (int)(long)pnew = -SFcharsPerEntry;
297+ nw = -SFcharsPerEntry;
298 }
299- else if ((int)(long)pnew > 0)
300+ else if (nw > 0)
301 {
302- if ((int)(long)pnew < SFhScrollWidth)
303- (int)(long)pnew = 1;
304+ if (nw < SFhScrollWidth)
305+ nw = 1;
306 else
307- (int)(long)pnew = SFcharsPerEntry;
308+ nw = SFcharsPerEntry;
309 }
310 #endif
311- nw = dir->hOrigin + (int)(long)pnew;
312+ nw += dir->hOrigin;
313
314 if (nw > dir->nChars - SFcharsPerEntry)
315 nw = dir->nChars - SFcharsPerEntry;
316@@ -2038,26 +2038,26 @@
317 XtPointer client_data;
318 XtPointer pnew;
319 {
320- int nw;
321+ int nw = (int)(long)pnew;
322 float f;
323
324 #ifdef FEAT_GUI_NEXTAW
325- if ((int)(long)pnew < 0)
326+ if (nw < 0)
327 {
328- if ((int)(long)pnew > -SFpathScrollWidth)
329- (int)(long)pnew = -1;
330+ if (nw > -SFpathScrollWidth)
331+ nw = -1;
332 else
333- (int)(long)pnew = -3;
334+ nw = -3;
335 }
336- else if ((int)(long)pnew > 0)
337+ else if (nw > 0)
338 {
339- if ((int)(long)pnew < SFpathScrollWidth)
340- (int)(long)pnew = 1;
341+ if (nw < SFpathScrollWidth)
342+ nw = 1;
343 else
344- (int)(long)pnew = 3;
345+ nw = 3;
346 }
347 #endif
348- nw = SFdirPtr + (int)(long)pnew;
349+ nw += SFdirPtr;
350
351 if (nw > SFdirEnd - 3)
352 nw = SFdirEnd - 3;
353diff -Naur vim70.orig/src/gui.c vim70/src/gui.c
354--- vim70.orig/src/gui.c 2006-05-03 04:00:59.000000000 -0700
355+++ vim70/src/gui.c 2006-05-12 13:14:48.000000000 -0700
356@@ -4603,11 +4603,11 @@
357 /* Don't move the mouse when it's left or right of the Vim window */
358 if (x < 0 || x > Columns * gui.char_width)
359 return;
360+ if (y >= 0
361 # ifdef FEAT_WINDOWS
362- if (Y_2_ROW(y) >= tabline_height())
363-# else
364- if (y >= 0)
365+ && Y_2_ROW(y) >= tabline_height()
366 # endif
367+ )
368 wp = xy2win(x, y);
369 if (wp != curwin && wp != NULL) /* If in other than current window */
370 {
371diff -Naur vim70.orig/src/gui_xmebw.c vim70/src/gui_xmebw.c
372--- vim70.orig/src/gui_xmebw.c 2006-04-30 08:32:32.000000000 -0700
373+++ vim70/src/gui_xmebw.c 2006-05-12 13:17:21.000000000 -0700
374@@ -480,7 +480,7 @@
375 || (eb->core.height <= 2 * eb->primitive.highlight_thickness))
376 return;
377
378-#ifndef LESSTIF_VERSION
379+#if !defined(LESSTIF_VERSION) && (XmVersion > 1002)
380 {
381 XmDisplay dpy;
382
383@@ -641,7 +641,7 @@
384 GC tmp_gc = NULL;
385 Boolean replaceGC = False;
386 Boolean deadjusted = False;
387-#ifndef LESSTIF_VERSION
388+#if !defined(LESSTIF_VERSION) && (XmVersion > 1002)
389 XmDisplay dpy = (XmDisplay)XmGetXmDisplay(XtDisplay(eb));
390 Boolean etched_in = dpy->display.enable_etched_in_menu;
391 #else
392@@ -726,7 +726,7 @@
393 if ((((ShellWidget) XtParent(XtParent(eb)))->shell.popped_up)
394 && _XmGetInDragMode((Widget) eb))
395 {
396-#ifndef LESSTIF_VERSION
397+#if !defined(LESSTIF_VERSION) && (XmVersion > 1002)
398 XmDisplay dpy = (XmDisplay) XmGetXmDisplay(XtDisplay(wid));
399 Boolean etched_in = dpy->display.enable_etched_in_menu;
400 #else
401@@ -810,7 +810,7 @@
402
403 if (Lab_IsMenupane(eb))
404 {
405-#ifndef LESSTIF_VERSION
406+#if !defined(LESSTIF_VERSION) && (XmVersion > 1002)
407 XmDisplay dpy = (XmDisplay) XmGetXmDisplay(XtDisplay(wid));
408 Boolean etched_in = dpy->display.enable_etched_in_menu;
409 #else
410@@ -1150,7 +1150,7 @@
411 Redisplay(Widget w, XEvent *event, Region region)
412 {
413 XmEnhancedButtonWidget eb = (XmEnhancedButtonWidget) w;
414-#ifndef LESSTIF_VERSION
415+#if !defined(LESSTIF_VERSION) && (XmVersion > 1002)
416 XmDisplay dpy;
417 XtEnum default_button_emphasis;
418 #endif
419@@ -1162,7 +1162,7 @@
420 if (!XtIsRealized((Widget)eb))
421 return;
422
423-#ifndef LESSTIF_VERSION
424+#if !defined(LESSTIF_VERSION) && (XmVersion > 1002)
425 dpy = (XmDisplay)XmGetXmDisplay(XtDisplay(eb));
426 default_button_emphasis = dpy->display.default_button_emphasis;
427 #endif
428@@ -1241,7 +1241,7 @@
429 {
430 int adjust = 0;
431
432-#ifndef LESSTIF_VERSION
433+#if !defined(LESSTIF_VERSION) && (XmVersion > 1002)
434 /*
435 * NOTE: PushButton has two types of shadows: primitive-shadow and
436 * default-button-shadow. If pushbutton is in a menu only primitive
437@@ -1289,7 +1289,7 @@
438 adjust, adjust, rectwidth, rectheight, borderwidth);
439 }
440
441-#ifndef LESSTIF_VERSION
442+#if !defined(LESSTIF_VERSION) && (XmVersion > 1002)
443 switch (default_button_emphasis)
444 {
445 case XmINTERNAL_HIGHLIGHT:
446@@ -1365,7 +1365,7 @@
447 default_button_shadow_thickness =
448 eb->pushbutton.default_button_shadow_thickness;
449
450-#ifndef LESSTIF_VERSION
451+#if !defined(LESSTIF_VERSION) && (XmVersion > 1002)
452 /*
453 * Compute location of bounding box to contain the
454 * defaultButtonShadow.
455diff -Naur vim70.orig/src/Makefile vim70/src/Makefile
456--- vim70.orig/src/Makefile 2006-05-07 06:25:27.000000000 -0700
457+++ vim70/src/Makefile 2006-05-12 13:14:48.000000000 -0700
458@@ -2177,6 +2177,7 @@
459 cd $(SHADOWDIR)/xxd; ln -s ../../xxd/*.[ch] ../../xxd/Make* .
460 if test -d $(RSRC_DIR); then \
461 cd $(SHADOWDIR); \
462+ ln -s ../infplist.xml .; \
463 ln -s ../$(RSRC_DIR) ../os_mac.rsr.hqx ../dehqx.py .; \
464 fi
465 mkdir $(SHADOWDIR)/testdir
466diff -Naur vim70.orig/src/message.c vim70/src/message.c
467--- vim70.orig/src/message.c 2006-05-06 13:07:37.000000000 -0700
468+++ vim70/src/message.c 2006-05-12 13:14:48.000000000 -0700
469@@ -4175,15 +4175,16 @@
470 str_arg_l = 0;
471 else
472 {
473- /* memchr on HP does not like n > 2^31 !!! */
474- char *q = memchr(str_arg, '\0',
475+ /* Don't put the #if inside memchr(), it can be a
476+ * macro. */
477 #if SIZEOF_INT <= 2
478- precision
479+ char *q = memchr(str_arg, '\0', precision);
480 #else
481- precision <= (size_t)0x7fffffffL ? precision
482- : (size_t)0x7fffffffL
483+ /* memchr on HP does not like n > 2^31 !!! */
484+ char *q = memchr(str_arg, '\0',
485+ precision <= (size_t)0x7fffffffL ? precision
486+ : (size_t)0x7fffffffL);
487 #endif
488- );
489 str_arg_l = (q == NULL) ? precision : q - str_arg;
490 }
491 break;
492diff -Naur vim70.orig/src/option.c vim70/src/option.c
493--- vim70.orig/src/option.c 2006-05-03 10:32:28.000000000 -0700
494+++ vim70/src/option.c 2006-05-12 13:14:48.000000000 -0700
495@@ -2294,7 +2294,7 @@
496 {(char_u *)0L, (char_u *)0L}
497 #endif
498 },
499- {"spellsuggest", "sps", P_STRING|P_VI_DEF|P_EXPAND|P_SECURE,
500+ {"spellsuggest", "sps", P_STRING|P_VI_DEF|P_EXPAND|P_SECURE|P_COMMA,
501 #ifdef FEAT_SPELL
502 (char_u *)&p_sps, PV_NONE,
503 {(char_u *)"best", (char_u *)0L}
504@@ -5227,13 +5227,13 @@
505 case PV_STL: return &curwin->w_p_stl_flags;
506 #endif
507 #ifdef FEAT_EVAL
508+# ifdef FEAT_FOLDING
509 case PV_FDE: return &curwin->w_p_fde_flags;
510 case PV_FDT: return &curwin->w_p_fdt_flags;
511+# endif
512 # ifdef FEAT_BEVAL
513 case PV_BEXPR: return &curbuf->b_p_bexpr_flags;
514 # endif
515-#endif
516-#if defined(FEAT_EVAL)
517 # if defined(FEAT_CINDENT)
518 case PV_INDE: return &curbuf->b_p_inde_flags;
519 # endif
520diff -Naur vim70.orig/src/spell.c vim70/src/spell.c
521--- vim70.orig/src/spell.c 2006-05-05 00:49:58.000000000 -0700
522+++ vim70/src/spell.c 2006-05-12 13:14:48.000000000 -0700
523@@ -2108,7 +2108,8 @@
524 * possible. */
525 STRCPY(buf, line);
526 if (lnum < wp->w_buffer->b_ml.ml_line_count)
527- spell_cat_line(buf + STRLEN(buf), ml_get(lnum + 1), MAXWLEN);
528+ spell_cat_line(buf + STRLEN(buf),
529+ ml_get_buf(wp->w_buffer, lnum + 1, FALSE), MAXWLEN);
530
531 p = buf + skip;
532 endp = buf + len;
533diff -Naur vim70.orig/src/version.c vim70/src/version.c
534--- vim70.orig/src/version.c 2006-05-03 00:50:42.000000000 -0700
535+++ vim70/src/version.c 2006-05-12 13:18:22.000000000 -0700
536@@ -667,6 +667,34 @@
537 static int included_patches[] =
538 { /* Add new patch number below this line */
539 /**/
540+ 15,
541+/**/
542+ 14,
543+/**/
544+ 13,
545+/**/
546+ 12,
547+/**/
548+ 11,
549+/**/
550+ 10,
551+/**/
552+ 9,
553+/**/
554+ 8,
555+/**/
556+ 7,
557+/**/
558+ 6,
559+/**/
560+ 4,
561+/**/
562+ 3,
563+/**/
564+ 2,
565+/**/
566+ 1,
567+/**/
568 0
569 };
570
Note: See TracBrowser for help on using the repository browser.