Changeset 9903b4e


Ignore:
Timestamp:
Sep 18, 2006, 9:13:40 AM (18 years ago)
Author:
Jim Gifford <clfs@…>
Branches:
clfs-1.2, clfs-2.1, clfs-3.0.0-systemd, clfs-3.0.0-sysvinit, master, systemd, sysvinit
Children:
316cdc3
Parents:
97e2ea5
Message:

Updated vim patch

File:
1 moved

Legend:

Unmodified
Added
Removed
  • patches/vim-7.0-fixes-13.patch

    r97e2ea5 r9903b4e  
    11Submitted By: Jim Gifford (jim at linuxfromscratch dot org)
    2 Date: 2006-09-11
     2Date: 2006-09-18
    33Initial Package Version: 7.0
    44Origin: Upstream
    55Upstream Status: Applied
    66Description: Contains Patch 001-004, 006-026, 028-031, 033-044, 036-056,
    7         058-064, 066-073, and 075-099  from Upstream
    8         005, 027, 032, 045, 057, 066, and 074 are for the extras, Mac, or
     7        058-064, 066-073, 075-107, and 109  from Upstream
     8        005, 027, 032, 045, 057, 066, 074, 108 are for the extras, Mac, or
    99        Windows 32 only
    1010
     
    138138+  endif
    139139+endfunc
     140diff -Naur vim70.orig/runtime/menu.vim vim70/runtime/menu.vim
     141--- vim70.orig/runtime/menu.vim 2006-04-17 06:47:28.000000000 -0700
     142+++ vim70/runtime/menu.vim      2006-09-18 08:56:52.000000000 -0700
     143@@ -2,7 +2,7 @@
     144 " You can also use this as a start for your own set of menus.
     145 "
     146 " Maintainer:  Bram Moolenaar <Bram@vim.org>
     147-" Last Change: 2006 Apr 17
     148+" Last Change: 2006 Sep 14
     149 
     150 " Note that ":an" (short for ":anoremenu") is often used to make a menu work
     151 " in all modes and avoid side effects from mappings defined by the user.
     152@@ -885,6 +885,8 @@
     153     if exists("s:changeitem") && s:changeitem != ''
     154       call <SID>SpellDel()
     155     endif
     156+
     157+    " Return quickly if spell checking is not enabled.
     158     if !&spell || &spelllang == ''
     159       return
     160     endif
     161@@ -908,18 +910,18 @@
     162        let s:fromword = w
     163        let pri = 1
     164        for sug in s:suglist
     165-         exe 'amenu 1.5.' . pri . ' PopUp.' . s:changeitem . '.' . escape(sug, ' .')
     166+         exe 'anoremenu 1.5.' . pri . ' PopUp.' . s:changeitem . '.' . escape(sug, ' .')
     167                \ . ' :call <SID>SpellReplace(' . pri . ')<CR>'
     168          let pri += 1
     169        endfor
     170 
     171        let s:additem = 'add\ "' . escape(w, ' .') . '"\ to\ word\ list'
     172-       exe 'amenu 1.6 PopUp.' . s:additem . ' :spellgood ' . w . '<CR>'
     173+       exe 'anoremenu 1.6 PopUp.' . s:additem . ' :spellgood ' . w . '<CR>'
     174 
     175        let s:ignoreitem = 'ignore\ "' . escape(w, ' .') . '"'
     176-       exe 'amenu 1.7 PopUp.' . s:ignoreitem . ' :spellgood! ' . w . '<CR>'
     177+       exe 'anoremenu 1.7 PopUp.' . s:ignoreitem . ' :spellgood! ' . w . '<CR>'
     178 
     179-       amenu 1.8 PopUp.-SpellSep- :
     180+       anoremenu 1.8 PopUp.-SpellSep- :
     181       endif
     182     endif
     183   endfunc
     184@@ -938,7 +940,9 @@
     185     let s:changeitem = ''
     186   endfun
     187 
     188-  au! MenuPopup * call <SID>SpellPopup()
     189+  augroup SpellPopupMenu
     190+    au! MenuPopup * call <SID>SpellPopup()
     191+  augroup END
     192 endif
     193 
     194 " The GUI toolbar (for MS-Windows and GTK)
     195@@ -1013,9 +1017,9 @@
     196     tmenu ToolBar.FindPrev     Find Previous
     197     tmenu ToolBar.Replace              Find / Replace...
     198   endif
     199-  tmenu ToolBar.LoadSesn       Chose a session to load
     200+  tmenu ToolBar.LoadSesn       Choose a session to load
     201   tmenu ToolBar.SaveSesn       Save current session
     202-  tmenu ToolBar.RunScript      Chose a Vim Script to run
     203+  tmenu ToolBar.RunScript      Choose a Vim Script to run
     204   tmenu ToolBar.Make           Make current project (:make)
     205   tmenu ToolBar.RunCtags       Build tags in current directory tree (!ctags -R .)
     206   tmenu ToolBar.TagJump                Jump to tag under cursor
    140207diff -Naur vim70.orig/runtime/plugin/matchparen.vim vim70/runtime/plugin/matchparen.vim
    141208--- vim70.orig/runtime/plugin/matchparen.vim    2006-04-27 06:31:26.000000000 -0700
     
    21002167diff -Naur vim70.orig/src/edit.c vim70/src/edit.c
    21012168--- vim70.orig/src/edit.c       2006-05-07 04:48:51.000000000 -0700
    2102 +++ vim70/src/edit.c    2006-09-11 08:30:17.000000000 -0700
     2169+++ vim70/src/edit.c    2006-09-18 08:55:16.000000000 -0700
    21032170@@ -129,7 +129,7 @@
    21042171 
     
    21102177 static void ins_compl_longest_match __ARGS((compl_T *match));
    21112178 static void ins_compl_add_matches __ARGS((int num_matches, char_u **matches, int icase));
    2112 @@ -719,9 +719,14 @@
     2179@@ -707,6 +707,11 @@
     2180        lastc = c;                      /* remember previous char for CTRL-D */
     2181        c = safe_vgetc();
     2182 
     2183+#ifdef FEAT_AUTOCMD
     2184+       /* Don't want K_CURSORHOLD for the second key, e.g., after CTRL-V. */
     2185+       did_cursorhold = TRUE;
     2186+#endif
     2187+
     2188 #ifdef FEAT_RIGHTLEFT
     2189        if (p_hkmap && KeyTyped)
     2190            c = hkmap(c);               /* Hebrew mode mapping */
     2191@@ -719,9 +724,14 @@
    21132192 #ifdef FEAT_INS_EXPAND
    21142193        /*
     
    21272206            /* BS: Delete one character from "compl_leader". */
    21282207            if ((c == K_BS || c == Ctrl_H)
    2129 @@ -751,7 +756,7 @@
     2208@@ -751,7 +761,7 @@
    21302209                    continue;
    21312210                }
     
    21362215                if (c == Ctrl_Y || (compl_enter_selects
    21372216                                   && (c == CAR || c == K_KENTER || c == NL)))
    2138 @@ -877,6 +882,7 @@
     2217@@ -877,6 +887,7 @@
    21392218                /* Close the cmdline window. */
    21402219                cmdwin_result = K_IGNORE;
     
    21442223            }
    21452224 #endif
    2146 @@ -2112,7 +2118,7 @@
     2225@@ -1383,6 +1394,12 @@
     2226            break;
     2227        }   /* end of switch (c) */
     2228 
     2229+#ifdef FEAT_AUTOCMD
     2230+       /* If typed something may trigger CursorHoldI again. */
     2231+       if (c != K_CURSORHOLD)
     2232+           did_cursorhold = FALSE;
     2233+#endif
     2234+
     2235        /* If the cursor was moved we didn't just insert a space */
     2236        if (arrow_used)
     2237            inserted_space = FALSE;
     2238@@ -2112,7 +2129,7 @@
    21472239  * maybe because alloc() returns NULL, then FAIL is returned.
    21482240  */
     
    21532245     int                len;
    21542246     int                icase;
    2155 @@ -2120,7 +2126,7 @@
     2247@@ -2120,7 +2137,7 @@
    21562248     char_u     **cptext;   /* extra text for popup menu or NULL */
    21572249     int                cdir;
     
    21622254     compl_T    *match;
    21632255     int                dir = (cdir == 0 ? compl_direction : cdir);
    2164 @@ -2134,7 +2140,7 @@
     2256@@ -2134,7 +2151,7 @@
    21652257     /*
    21662258      * If the same match is already present, don't add it.
     
    21712263        match = compl_first_match;
    21722264        do
    2173 @@ -2399,7 +2405,7 @@
     2265@@ -2399,7 +2416,7 @@
    21742266     /* compl_pattern doesn't need to be set */
    21752267     compl_orig_text = vim_strnsave(ml_get_curline() + compl_col, compl_length);
     
    21802272 
    21812273     /* Handle like dictionary completion. */
    2182 @@ -2409,6 +2415,7 @@
     2274@@ -2409,6 +2426,7 @@
    21832275     compl_matches = ins_compl_make_cyclic();
    21842276     compl_started = TRUE;
     
    21882280     compl_curr_match = compl_first_match;
    21892281     ins_complete(Ctrl_N);
    2190 @@ -2753,6 +2760,7 @@
     2282@@ -2753,6 +2771,7 @@
    21912283        }
    21922284        else
     
    21962288            ins_compl_files(count, files, thesaurus, flags,
    21972289                                                        &regmatch, buf, &dir);
    2198 @@ -2813,7 +2821,7 @@
     2290@@ -2813,7 +2832,7 @@
    21992291                        ptr = find_word_end(ptr);
    22002292                    add_r = ins_compl_add_infercase(regmatch->startp[0],
     
    22052297                    {
    22062298                        char_u *wstart;
    2207 @@ -2849,7 +2857,7 @@
     2299@@ -2849,7 +2868,7 @@
    22082300                                ptr = find_word_end(ptr);
    22092301                            add_r = ins_compl_add_infercase(wstart,
     
    22142306                    }
    22152307                    if (add_r == OK)
    2216 @@ -3015,9 +3023,6 @@
     2308@@ -3015,9 +3034,6 @@
    22172309     if ((int)(p - line) - (int)compl_col <= 0)
    22182310        return K_BS;
     
    22242316      * finding all matches: need to look for matches all over again. */
    22252317     if (curwin->w_cursor.col <= compl_col + compl_length
    2226 @@ -3046,7 +3051,6 @@
     2318@@ -3046,7 +3062,6 @@
    22272319     ins_compl_delete();
    22282320     ins_bytes(compl_leader + curwin->w_cursor.col - compl_col);
     
    22322324     if (compl_started)
    22332325        ins_compl_set_original_text(compl_leader);
    2234 @@ -3076,6 +3080,7 @@
     2326@@ -3076,6 +3091,7 @@
    22352327        compl_restarting = FALSE;
    22362328     }
     
    22402332     {
    22412333        /* Go to the original text, since none of the matches is inserted. */
    2242 @@ -3087,9 +3092,15 @@
     2334@@ -3087,9 +3103,15 @@
    22432335        compl_curr_match = compl_shown_match;
    22442336        compl_shows_dir = compl_direction;
     
    22562348 
    22572349 /*
    2258 @@ -3115,10 +3126,6 @@
     2350@@ -3115,10 +3137,6 @@
    22592351 #endif
    22602352        ins_char(c);
     
    22672359     if (compl_was_interrupted)
    22682360        ins_compl_restart();
    2269 @@ -3175,10 +3182,32 @@
     2361@@ -3175,10 +3193,32 @@
    22702362     char_u     *p;
    22712363     int                len = curwin->w_cursor.col - compl_col;
     
    23012393 #ifdef FEAT_MBYTE
    23022394     c = mb_ptr2char(p);
    2303 @@ -3198,7 +3227,6 @@
     2395@@ -3198,7 +3238,6 @@
    23042396     int            c;
    23052397 {
     
    23092401     int                retval = FALSE;
    23102402 
    2311 @@ -3354,6 +3382,7 @@
     2403@@ -3354,6 +3393,7 @@
    23122404            if (compl_curr_match != NULL || compl_leader != NULL || c == Ctrl_E)
    23132405            {
     
    23172409                /*
    23182410                 * If any of the original typed text has been changed, eg when
    2319 @@ -3369,16 +3398,21 @@
     2411@@ -3369,16 +3409,21 @@
    23202412                    ptr = compl_leader;
    23212413                else
     
    23472439 
    23482440 #ifdef FEAT_CINDENT
    2349 @@ -3578,7 +3612,7 @@
     2441@@ -3578,7 +3623,7 @@
    23502442 {
    23512443     char_u     *word;
     
    23562448 
    23572449     if (tv->v_type == VAR_DICT && tv->vval.v_dict != NULL)
    2358 @@ -3595,7 +3629,7 @@
     2450@@ -3595,7 +3640,7 @@
    23592451        if (get_dict_string(tv->vval.v_dict, (char_u *)"icase", FALSE) != NULL)
    23602452            icase = get_dict_number(tv->vval.v_dict, (char_u *)"icase");
     
    23652457     else
    23662458     {
    2367 @@ -3604,7 +3638,7 @@
     2459@@ -3604,7 +3649,7 @@
    23682460     }
    23692461     if (word == NULL || *word == NUL)
     
    23742466 #endif
    23752467 
    2376 @@ -3796,7 +3830,7 @@
     2468@@ -3796,7 +3841,7 @@
    23772469                    TAG_INS_COMP | (ctrl_x_mode ? TAG_VERBOSE : 0),
    23782470                    TAG_MANY, curbuf->b_ffname) == OK && num_matches > 0)
     
    23832475            p_ic = save_p_ic;
    23842476            break;
    2385 @@ -3837,7 +3871,7 @@
     2477@@ -3837,7 +3882,7 @@
    23862478            num_matches = expand_spelling(first_match_pos.lnum,
    23872479                                 first_match_pos.col, compl_pattern, &matches);
     
    23922484            break;
    23932485 
    2394 @@ -3971,7 +4005,7 @@
     2486@@ -3971,7 +4016,7 @@
    23952487                            continue;
    23962488                    }
     
    24012493                                           0, flags) != NOTDONE)
    24022494                {
    2403 @@ -4100,6 +4134,21 @@
     2495@@ -4100,6 +4145,21 @@
    24042496                && compl_shown_match->cp_next != NULL
    24052497                && compl_shown_match->cp_next != compl_first_match)
     
    24232515 
    24242516     if (allow_get_expansion && insert_match
    2425 @@ -4124,8 +4173,6 @@
     2517@@ -4124,8 +4184,6 @@
    24262518     {
    24272519        if (compl_shows_dir == FORWARD && compl_shown_match->cp_next != NULL)
     
    24322524            found_end = (compl_first_match != NULL
    24332525                           && (compl_shown_match->cp_next == compl_first_match
    2434 @@ -4134,14 +4181,24 @@
     2526@@ -4134,14 +4192,24 @@
    24352527        else if (compl_shows_dir == BACKWARD
    24362528                                        && compl_shown_match->cp_prev != NULL)
     
    24592551            {
    24602552                if (compl_shows_dir == BACKWARD)
    2461 @@ -4149,14 +4206,27 @@
     2553@@ -4149,14 +4217,27 @@
    24622554                else
    24632555                    ++compl_pending;
     
    24912583        }
    24922584        if ((compl_shown_match->cp_flags & ORIGINAL_TEXT) == 0
    2493 @@ -4265,9 +4335,9 @@
     2585@@ -4265,9 +4346,9 @@
    24942586        return;
    24952587     count = 0;
     
    25032595     {
    25042596        if (vim_is_ctrl_x_key(c) && c != Ctrl_X && c != Ctrl_R)
    2505 @@ -4277,12 +4347,27 @@
     2597@@ -4277,12 +4358,27 @@
    25062598            (void)ins_compl_next(FALSE, ins_compl_key2count(c),
    25072599                                                    c != K_UP && c != K_DOWN);
     
    25352627 
    25362628 /*
    2537 @@ -4611,10 +4696,12 @@
     2629@@ -4611,10 +4707,12 @@
    25382630                                     (int)STRLEN(compl_pattern), curs_col);
    25392631            if (compl_xp.xp_context == EXPAND_UNSUCCESSFUL
     
    25522644        else if (ctrl_x_mode == CTRL_X_FUNCTION || ctrl_x_mode == CTRL_X_OMNI)
    25532645        {
    2554 @@ -4668,11 +4755,17 @@
     2646@@ -4668,11 +4766,17 @@
    25552647            else
    25562648                compl_col = spell_word_start(startcol);
     
    25732665            if (compl_pattern == NULL)
    25742666 #endif
    2575 @@ -4720,7 +4813,7 @@
     2667@@ -4720,7 +4824,7 @@
    25762668        vim_free(compl_orig_text);
    25772669        compl_orig_text = vim_strnsave(line + compl_col, compl_length);
     
    25822674            vim_free(compl_pattern);
    25832675            compl_pattern = NULL;
    2584 @@ -8508,7 +8601,12 @@
     2676@@ -8508,7 +8612,12 @@
    25852677     tpos = curwin->w_cursor;
    25862678     if (oneleft() == OK)
     
    34643556diff -Naur vim70.orig/src/ex_getln.c vim70/src/ex_getln.c
    34653557--- vim70.orig/src/ex_getln.c   2006-04-30 08:32:01.000000000 -0700
    3466 +++ vim70/src/ex_getln.c        2006-09-11 09:27:49.000000000 -0700
     3558+++ vim70/src/ex_getln.c        2006-09-18 08:55:55.000000000 -0700
    34673559@@ -324,6 +324,9 @@
    34683560      */
     
    34753567        dont_scroll = FALSE;    /* allow scrolling here */
    34763568 #endif
    3477 @@ -4521,7 +4524,9 @@
     3569@@ -1753,6 +1756,11 @@
     3570                end_pos = curwin->w_cursor; /* shutup gcc 4 */
     3571 
     3572            validate_cursor();
     3573+# ifdef FEAT_WINDOWS
     3574+           /* May redraw the status line to show the cursor position. */
     3575+           if (p_ru && curwin->w_status_height > 0)
     3576+               curwin->w_redr_status = TRUE;
     3577+# endif
     3578 
     3579            save_cmdline(&save_ccline);
     3580            update_screen(SOME_VALID);
     3581@@ -2360,7 +2368,7 @@
     3582 {
     3583     if ((State & CMDLINE)
     3584            && xic != NULL
     3585-           && im_get_status()
     3586+           /* && im_get_status()  doesn't work when using SCIM */
     3587            && !p_imdisable
     3588            && im_is_preediting())
     3589     {
     3590@@ -4521,7 +4529,9 @@
    34783591     flags |= EW_FILE | EW_EXEC;
    34793592 
     
    34863599        path = (char_u *)".";
    34873600     else
    3488 @@ -4534,6 +4539,9 @@
     3601@@ -4534,6 +4544,9 @@
    34893602     ga_init2(&ga, (int)sizeof(char *), 10);
    34903603     for (s = path; *s != NUL; s = e)
     
    34963609        e = vim_strchr(s, ';');
    34973610 #else
    3498 @@ -5982,6 +5990,8 @@
     3611@@ -5982,6 +5995,8 @@
    34993612     typestr[0] = cmdwin_type;
    35003613     typestr[1] = NUL;
     
    35073620diff -Naur vim70.orig/src/fileio.c vim70/src/fileio.c
    35083621--- vim70.orig/src/fileio.c     2006-04-30 08:28:57.000000000 -0700
    3509 +++ vim70/src/fileio.c  2006-09-11 09:04:57.000000000 -0700
     3622+++ vim70/src/fileio.c  2006-09-18 08:55:16.000000000 -0700
    35103623@@ -316,6 +316,9 @@
    35113624      * display the line. */
     
    35753688     void
    35763689 aucmd_restbuf(aco)
    3577 @@ -9063,8 +9057,38 @@
     3690@@ -8295,7 +8289,11 @@
     3691 {
     3692     int                state;
     3693 
     3694-    if (!did_cursorhold && has_cursorhold() && !Recording)
     3695+    if (!did_cursorhold && has_cursorhold() && !Recording
     3696+#ifdef FEAT_INS_EXPAND
     3697+           && !ins_compl_active()
     3698+#endif
     3699+           )
     3700     {
     3701        state = get_real_state();
     3702        if (state == NORMAL_BUSY || (state & INSERT) != 0)
     3703@@ -9063,8 +9061,38 @@
    35783704     return retval;
    35793705 }
     
    48644990diff -Naur vim70.orig/src/misc1.c vim70/src/misc1.c
    48654991--- vim70.orig/src/misc1.c      2006-04-30 08:30:02.000000000 -0700
    4866 +++ vim70/src/misc1.c   2006-09-11 09:03:25.000000000 -0700
     4992+++ vim70/src/misc1.c   2006-09-18 08:57:51.000000000 -0700
    48674993@@ -3016,6 +3016,7 @@
    48684994     int                len = 0;
     
    49205046 # endif
    49215047        }
     5048@@ -8070,9 +8074,20 @@
     5049                }
     5050                if (*that == '"' && *(that + 1) != NUL)
     5051                {
     5052-                   that++;
     5053-                   while (*that && (*that != '"' || *(that - 1) == '\\'))
     5054-                       ++that;
     5055+                   while (*++that && *that != '"')
     5056+                   {
     5057+                       /* skipping escaped characters in the string */
     5058+                       if (*that == '\\')
     5059+                       {
     5060+                           if (*++that == NUL)
     5061+                               break;
     5062+                           if (that[1] == NUL)
     5063+                           {
     5064+                               ++that;
     5065+                               break;
     5066+                           }
     5067+                       }
     5068+                   }
     5069                }
     5070                if (*that == '(' || *that == '[')
     5071                    ++parencount;
    49225072diff -Naur vim70.orig/src/netbeans.c vim70/src/netbeans.c
    49235073--- vim70.orig/src/netbeans.c   2006-04-22 11:00:05.000000000 -0700
     
    56265776diff -Naur vim70.orig/src/screen.c vim70/src/screen.c
    56275777--- vim70.orig/src/screen.c     2006-05-05 03:13:55.000000000 -0700
    5628 +++ vim70/src/screen.c  2006-09-11 08:23:16.000000000 -0700
    5629 @@ -2612,7 +2612,8 @@
     5778+++ vim70/src/screen.c  2006-09-18 08:57:17.000000000 -0700
     5779@@ -1228,7 +1228,14 @@
     5780        {
     5781            mid_end = wp->w_height;
     5782            if (lastwin == firstwin)
     5783+           {
     5784                screenclear();
     5785+#ifdef FEAT_WINDOWS
     5786+               /* The screen was cleared, redraw the tab pages line. */
     5787+               if (redraw_tabline)
     5788+                   draw_tabline();
     5789+#endif
     5790+           }
     5791        }
     5792     }
     5793     else
     5794@@ -2612,7 +2619,8 @@
    56305795 #ifdef FEAT_LINEBREAK
    56315796     int                need_showbreak = FALSE;
     
    56375802     int                line_attr = 0;          /* atrribute for the whole line */
    56385803 #endif
    5639 @@ -2626,7 +2627,7 @@
     5804@@ -2626,7 +2634,7 @@
    56405805     int                prev_c = 0;             /* previous Arabic character */
    56415806     int                prev_c1 = 0;            /* first composing char for prev_c */
     
    56465811 #endif
    56475812 
    5648 @@ -4116,17 +4117,12 @@
     5813@@ -4116,17 +4124,12 @@
    56495814                    --ptr;          /* put it back at the NUL */
    56505815                }
     
    56665831 # ifdef FEAT_RIGHTLEFT
    56675832                            wp->w_p_rl ? (col >= 0) :
    5668 @@ -4237,7 +4233,7 @@
     5833@@ -4237,7 +4240,7 @@
    56695834         * At end of the text line or just after the last character.
    56705835         */
     
    56755840 #endif
    56765841                )
    5677 @@ -4258,7 +4254,7 @@
     5842@@ -4258,7 +4261,7 @@
    56785843                                || prevcol == (long)match_hl[0].startcol
    56795844                                || prevcol == (long)match_hl[1].startcol
     
    56845849 # endif
    56855850                           )
    5686 @@ -7103,7 +7099,7 @@
     5851@@ -7103,7 +7106,7 @@
    56875852     tabpage_T      *tp;
    56885853 #endif
     
    56935858     /*
    56945859      * Allocation of the screen buffers is done only when the size changes and
    5695 @@ -7133,6 +7129,12 @@
     5860@@ -7133,6 +7136,12 @@
    56965861        return;
    56975862     entered = TRUE;
     
    57065871 
    57075872     comp_col();                /* recompute columns for shown command and ruler */
    5708 @@ -7205,14 +7207,14 @@
     5873@@ -7205,14 +7214,14 @@
    57095874 #endif
    57105875            || outofmem)
     
    57235888        vim_free(new_ScreenLines);
    57245889        new_ScreenLines = NULL;
    5725 @@ -7240,7 +7242,7 @@
     5890@@ -7240,7 +7249,7 @@
    57265891     }
    57275892     else
     
    57325897        for (new_row = 0; new_row < Rows; ++new_row)
    57335898        {
    5734 @@ -7367,6 +7369,7 @@
     5899@@ -7367,6 +7376,7 @@
    57355900 #endif
    57365901 
     
    57915956diff -Naur vim70.orig/src/spell.c vim70/src/spell.c
    57925957--- vim70.orig/src/spell.c      2006-05-05 00:49:58.000000000 -0700
    5793 +++ vim70/src/spell.c   2006-09-11 08:23:16.000000000 -0700
     5958+++ vim70/src/spell.c   2006-09-18 08:54:02.000000000 -0700
     5959@@ -1483,7 +1483,7 @@
     5960            else if ((mode == FIND_COMPOUND || mode == FIND_KEEPCOMPOUND
     5961                                                                || !word_ends))
     5962            {
     5963-               /* If there is no  flag or the word is shorter than
     5964+               /* If there is no compound flag or the word is shorter than
     5965                 * COMPOUNDMIN reject it quickly.
     5966                 * Makes you wonder why someone puts a compound flag on a word
     5967                 * that's too short...  Myspell compatibility requires this
    57945968@@ -2043,8 +2043,8 @@
    57955969     int                len;
     
    59096083     /* Count the number of siblings. */
    59106084     for (np = node; np != NULL; np = np->wn_sibling)
    5911 @@ -9243,11 +9243,11 @@
     6085@@ -9243,15 +9243,15 @@
    59126086  * Add "word[len]" to 'spellfile' as a good or bad word.
    59136087  */
     
    59236097     int                undo;       /* TRUE for "zug", "zuG", "zuw" and "zuW" */
    59246098 {
     6099-    FILE       *fd;
     6100+    FILE       *fd = NULL;
     6101     buf_T      *buf = NULL;
     6102     int                new_spf = FALSE;
     6103     char_u     *fname;
    59256104@@ -9261,7 +9261,7 @@
    59266105     int                i;
     
    59466125            }
    59476126        }
    5948 @@ -10070,6 +10070,7 @@
     6127@@ -9336,7 +9336,10 @@
     6128                    {
     6129                        fputc('#', fd);
     6130                        if (undo)
     6131+                       {
     6132+                           home_replace(NULL, fname, NameBuff, MAXPATHL, TRUE);
     6133                            smsg((char_u *)_("Word removed from %s"), NameBuff);
     6134+                       }
     6135                    }
     6136                    fseek(fd, fpos_next, SEEK_SET);
     6137                }
     6138@@ -9344,20 +9347,27 @@
     6139            fclose(fd);
     6140        }
     6141     }
     6142-    else
     6143+
     6144+    if (!undo)
     6145     {
     6146        fd = mch_fopen((char *)fname, "a");
     6147        if (fd == NULL && new_spf)
     6148        {
     6149+           char_u *p;
     6150+
     6151            /* We just initialized the 'spellfile' option and can't open the
     6152             * file.  We may need to create the "spell" directory first.  We
     6153             * already checked the runtime directory is writable in
     6154             * init_spellfile(). */
     6155-           if (!dir_of_file_exists(fname))
     6156+           if (!dir_of_file_exists(fname) && (p = gettail_sep(fname)) != fname)
     6157            {
     6158+               int c = *p;
     6159+
     6160                /* The directory doesn't exist.  Try creating it and opening
     6161                 * the file again. */
     6162-               vim_mkdir(NameBuff, 0755);
     6163+               *p = NUL;
     6164+               vim_mkdir(fname, 0755);
     6165+               *p = c;
     6166                fd = mch_fopen((char *)fname, "a");
     6167            }
     6168        }
     6169@@ -10070,6 +10080,7 @@
    59496170 
    59506171        /* List the suggestions. */
     
    59546175        vim_snprintf((char *)IObuff, IOSIZE, _("Change \"%.*s\" to:"),
    59556176                                                sug.su_badlen, sug.su_badptr);
    5956 @@ -13579,53 +13580,58 @@
     6177@@ -13579,53 +13590,58 @@
    59576178         * the first "the" to itself. */
    59586179        return;
     
    60556276     if (i < 0 && ga_grow(gap, 1) == OK)
    60566277     {
    6057 @@ -15656,7 +15662,7 @@
     6278@@ -15656,7 +15672,7 @@
    60586279                    ? MB_STRNICMP(p, pat, STRLEN(pat)) == 0
    60596280                    : STRNCMP(p, pat, STRLEN(pat)) == 0)
     
    62406461diff -Naur vim70.orig/src/version.c vim70/src/version.c
    62416462--- vim70.orig/src/version.c    2006-05-03 00:50:42.000000000 -0700
    6242 +++ vim70/src/version.c 2006-09-11 09:28:13.000000000 -0700
    6243 @@ -667,6 +667,190 @@
     6463+++ vim70/src/version.c 2006-09-18 08:57:51.000000000 -0700
     6464@@ -667,6 +667,208 @@
    62446465 static int included_patches[] =
    62456466 {   /* Add new patch number below this line */
    62466467 /**/
     6468+    109,
     6469+/**/
     6470+    107,
     6471+/**/
     6472+    106,
     6473+/**/
     6474+    105,
     6475+/**/
     6476+    104,
     6477+/**/
     6478+    103,
     6479+/**/
     6480+    102,
     6481+/**/
     6482+    101,
     6483+/**/
     6484+    100,
     6485+/**/
    62476486+    99,
    62486487+/**/
Note: See TracChangeset for help on using the changeset viewer.