source: patches/vim-7.0-fixes-2.patch @ 34f53b7

clfs-1.2clfs-2.1clfs-3.0.0-systemdclfs-3.0.0-sysvinitsystemdsysvinit
Last change on this file since 34f53b7 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.