- Timestamp:
- Sep 18, 2006, 9:13:40 AM (18 years ago)
- Branches:
- clfs-1.2, clfs-2.1, clfs-3.0.0-systemd, clfs-3.0.0-sysvinit, master, systemd, sysvinit
- Children:
- 316cdc3
- Parents:
- 97e2ea5
- File:
-
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
patches/vim-7.0-fixes-13.patch
r97e2ea5 r9903b4e 1 1 Submitted By: Jim Gifford (jim at linuxfromscratch dot org) 2 Date: 2006-09-1 12 Date: 2006-09-18 3 3 Initial Package Version: 7.0 4 4 Origin: Upstream 5 5 Upstream Status: Applied 6 6 Description: Contains Patch 001-004, 006-026, 028-031, 033-044, 036-056, 7 058-064, 066-073, and 075-099 from Upstream8 005, 027, 032, 045, 057, 066, and 074are for the extras, Mac, or7 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 9 9 Windows 32 only 10 10 … … 138 138 + endif 139 139 +endfunc 140 diff -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 140 207 diff -Naur vim70.orig/runtime/plugin/matchparen.vim vim70/runtime/plugin/matchparen.vim 141 208 --- vim70.orig/runtime/plugin/matchparen.vim 2006-04-27 06:31:26.000000000 -0700 … … 2100 2167 diff -Naur vim70.orig/src/edit.c vim70/src/edit.c 2101 2168 --- vim70.orig/src/edit.c 2006-05-07 04:48:51.000000000 -0700 2102 +++ vim70/src/edit.c 2006-09-1 1 08:30:17.000000000 -07002169 +++ vim70/src/edit.c 2006-09-18 08:55:16.000000000 -0700 2103 2170 @@ -129,7 +129,7 @@ 2104 2171 … … 2110 2177 static void ins_compl_longest_match __ARGS((compl_T *match)); 2111 2178 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 @@ 2113 2192 #ifdef FEAT_INS_EXPAND 2114 2193 /* … … 2127 2206 /* BS: Delete one character from "compl_leader". */ 2128 2207 if ((c == K_BS || c == Ctrl_H) 2129 @@ -751,7 +7 56,7 @@2208 @@ -751,7 +761,7 @@ 2130 2209 continue; 2131 2210 } … … 2136 2215 if (c == Ctrl_Y || (compl_enter_selects 2137 2216 && (c == CAR || c == K_KENTER || c == NL))) 2138 @@ -877,6 +88 2,7 @@2217 @@ -877,6 +887,7 @@ 2139 2218 /* Close the cmdline window. */ 2140 2219 cmdwin_result = K_IGNORE; … … 2144 2223 } 2145 2224 #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 @@ 2147 2239 * maybe because alloc() returns NULL, then FAIL is returned. 2148 2240 */ … … 2153 2245 int len; 2154 2246 int icase; 2155 @@ -2120,7 +21 26,7 @@2247 @@ -2120,7 +2137,7 @@ 2156 2248 char_u **cptext; /* extra text for popup menu or NULL */ 2157 2249 int cdir; … … 2162 2254 compl_T *match; 2163 2255 int dir = (cdir == 0 ? compl_direction : cdir); 2164 @@ -2134,7 +21 40,7 @@2256 @@ -2134,7 +2151,7 @@ 2165 2257 /* 2166 2258 * If the same match is already present, don't add it. … … 2171 2263 match = compl_first_match; 2172 2264 do 2173 @@ -2399,7 +24 05,7 @@2265 @@ -2399,7 +2416,7 @@ 2174 2266 /* compl_pattern doesn't need to be set */ 2175 2267 compl_orig_text = vim_strnsave(ml_get_curline() + compl_col, compl_length); … … 2180 2272 2181 2273 /* Handle like dictionary completion. */ 2182 @@ -2409,6 +24 15,7 @@2274 @@ -2409,6 +2426,7 @@ 2183 2275 compl_matches = ins_compl_make_cyclic(); 2184 2276 compl_started = TRUE; … … 2188 2280 compl_curr_match = compl_first_match; 2189 2281 ins_complete(Ctrl_N); 2190 @@ -2753,6 +27 60,7 @@2282 @@ -2753,6 +2771,7 @@ 2191 2283 } 2192 2284 else … … 2196 2288 ins_compl_files(count, files, thesaurus, flags, 2197 2289 ®match, buf, &dir); 2198 @@ -2813,7 +28 21,7 @@2290 @@ -2813,7 +2832,7 @@ 2199 2291 ptr = find_word_end(ptr); 2200 2292 add_r = ins_compl_add_infercase(regmatch->startp[0], … … 2205 2297 { 2206 2298 char_u *wstart; 2207 @@ -2849,7 +28 57,7 @@2299 @@ -2849,7 +2868,7 @@ 2208 2300 ptr = find_word_end(ptr); 2209 2301 add_r = ins_compl_add_infercase(wstart, … … 2214 2306 } 2215 2307 if (add_r == OK) 2216 @@ -3015,9 +30 23,6 @@2308 @@ -3015,9 +3034,6 @@ 2217 2309 if ((int)(p - line) - (int)compl_col <= 0) 2218 2310 return K_BS; … … 2224 2316 * finding all matches: need to look for matches all over again. */ 2225 2317 if (curwin->w_cursor.col <= compl_col + compl_length 2226 @@ -3046,7 +30 51,6 @@2318 @@ -3046,7 +3062,6 @@ 2227 2319 ins_compl_delete(); 2228 2320 ins_bytes(compl_leader + curwin->w_cursor.col - compl_col); … … 2232 2324 if (compl_started) 2233 2325 ins_compl_set_original_text(compl_leader); 2234 @@ -3076,6 +30 80,7 @@2326 @@ -3076,6 +3091,7 @@ 2235 2327 compl_restarting = FALSE; 2236 2328 } … … 2240 2332 { 2241 2333 /* Go to the original text, since none of the matches is inserted. */ 2242 @@ -3087,9 +3 092,15 @@2334 @@ -3087,9 +3103,15 @@ 2243 2335 compl_curr_match = compl_shown_match; 2244 2336 compl_shows_dir = compl_direction; … … 2256 2348 2257 2349 /* 2258 @@ -3115,10 +31 26,6 @@2350 @@ -3115,10 +3137,6 @@ 2259 2351 #endif 2260 2352 ins_char(c); … … 2267 2359 if (compl_was_interrupted) 2268 2360 ins_compl_restart(); 2269 @@ -3175,10 +31 82,32 @@2361 @@ -3175,10 +3193,32 @@ 2270 2362 char_u *p; 2271 2363 int len = curwin->w_cursor.col - compl_col; … … 2301 2393 #ifdef FEAT_MBYTE 2302 2394 c = mb_ptr2char(p); 2303 @@ -3198,7 +32 27,6 @@2395 @@ -3198,7 +3238,6 @@ 2304 2396 int c; 2305 2397 { … … 2309 2401 int retval = FALSE; 2310 2402 2311 @@ -3354,6 +33 82,7 @@2403 @@ -3354,6 +3393,7 @@ 2312 2404 if (compl_curr_match != NULL || compl_leader != NULL || c == Ctrl_E) 2313 2405 { … … 2317 2409 /* 2318 2410 * If any of the original typed text has been changed, eg when 2319 @@ -3369,16 +3 398,21 @@2411 @@ -3369,16 +3409,21 @@ 2320 2412 ptr = compl_leader; 2321 2413 else … … 2347 2439 2348 2440 #ifdef FEAT_CINDENT 2349 @@ -3578,7 +36 12,7 @@2441 @@ -3578,7 +3623,7 @@ 2350 2442 { 2351 2443 char_u *word; … … 2356 2448 2357 2449 if (tv->v_type == VAR_DICT && tv->vval.v_dict != NULL) 2358 @@ -3595,7 +36 29,7 @@2450 @@ -3595,7 +3640,7 @@ 2359 2451 if (get_dict_string(tv->vval.v_dict, (char_u *)"icase", FALSE) != NULL) 2360 2452 icase = get_dict_number(tv->vval.v_dict, (char_u *)"icase"); … … 2365 2457 else 2366 2458 { 2367 @@ -3604,7 +36 38,7 @@2459 @@ -3604,7 +3649,7 @@ 2368 2460 } 2369 2461 if (word == NULL || *word == NUL) … … 2374 2466 #endif 2375 2467 2376 @@ -3796,7 +38 30,7 @@2468 @@ -3796,7 +3841,7 @@ 2377 2469 TAG_INS_COMP | (ctrl_x_mode ? TAG_VERBOSE : 0), 2378 2470 TAG_MANY, curbuf->b_ffname) == OK && num_matches > 0) … … 2383 2475 p_ic = save_p_ic; 2384 2476 break; 2385 @@ -3837,7 +38 71,7 @@2477 @@ -3837,7 +3882,7 @@ 2386 2478 num_matches = expand_spelling(first_match_pos.lnum, 2387 2479 first_match_pos.col, compl_pattern, &matches); … … 2392 2484 break; 2393 2485 2394 @@ -3971,7 +40 05,7 @@2486 @@ -3971,7 +4016,7 @@ 2395 2487 continue; 2396 2488 } … … 2401 2493 0, flags) != NOTDONE) 2402 2494 { 2403 @@ -4100,6 +41 34,21 @@2495 @@ -4100,6 +4145,21 @@ 2404 2496 && compl_shown_match->cp_next != NULL 2405 2497 && compl_shown_match->cp_next != compl_first_match) … … 2423 2515 2424 2516 if (allow_get_expansion && insert_match 2425 @@ -4124,8 +41 73,6 @@2517 @@ -4124,8 +4184,6 @@ 2426 2518 { 2427 2519 if (compl_shows_dir == FORWARD && compl_shown_match->cp_next != NULL) … … 2432 2524 found_end = (compl_first_match != NULL 2433 2525 && (compl_shown_match->cp_next == compl_first_match 2434 @@ -4134,14 +41 81,24 @@2526 @@ -4134,14 +4192,24 @@ 2435 2527 else if (compl_shows_dir == BACKWARD 2436 2528 && compl_shown_match->cp_prev != NULL) … … 2459 2551 { 2460 2552 if (compl_shows_dir == BACKWARD) 2461 @@ -4149,14 +42 06,27 @@2553 @@ -4149,14 +4217,27 @@ 2462 2554 else 2463 2555 ++compl_pending; … … 2491 2583 } 2492 2584 if ((compl_shown_match->cp_flags & ORIGINAL_TEXT) == 0 2493 @@ -4265,9 +43 35,9 @@2585 @@ -4265,9 +4346,9 @@ 2494 2586 return; 2495 2587 count = 0; … … 2503 2595 { 2504 2596 if (vim_is_ctrl_x_key(c) && c != Ctrl_X && c != Ctrl_R) 2505 @@ -4277,12 +43 47,27 @@2597 @@ -4277,12 +4358,27 @@ 2506 2598 (void)ins_compl_next(FALSE, ins_compl_key2count(c), 2507 2599 c != K_UP && c != K_DOWN); … … 2535 2627 2536 2628 /* 2537 @@ -4611,10 +4 696,12 @@2629 @@ -4611,10 +4707,12 @@ 2538 2630 (int)STRLEN(compl_pattern), curs_col); 2539 2631 if (compl_xp.xp_context == EXPAND_UNSUCCESSFUL … … 2552 2644 else if (ctrl_x_mode == CTRL_X_FUNCTION || ctrl_x_mode == CTRL_X_OMNI) 2553 2645 { 2554 @@ -4668,11 +47 55,17 @@2646 @@ -4668,11 +4766,17 @@ 2555 2647 else 2556 2648 compl_col = spell_word_start(startcol); … … 2573 2665 if (compl_pattern == NULL) 2574 2666 #endif 2575 @@ -4720,7 +48 13,7 @@2667 @@ -4720,7 +4824,7 @@ 2576 2668 vim_free(compl_orig_text); 2577 2669 compl_orig_text = vim_strnsave(line + compl_col, compl_length); … … 2582 2674 vim_free(compl_pattern); 2583 2675 compl_pattern = NULL; 2584 @@ -8508,7 +86 01,12 @@2676 @@ -8508,7 +8612,12 @@ 2585 2677 tpos = curwin->w_cursor; 2586 2678 if (oneleft() == OK) … … 3464 3556 diff -Naur vim70.orig/src/ex_getln.c vim70/src/ex_getln.c 3465 3557 --- vim70.orig/src/ex_getln.c 2006-04-30 08:32:01.000000000 -0700 3466 +++ vim70/src/ex_getln.c 2006-09-1 1 09:27:49.000000000 -07003558 +++ vim70/src/ex_getln.c 2006-09-18 08:55:55.000000000 -0700 3467 3559 @@ -324,6 +324,9 @@ 3468 3560 */ … … 3475 3567 dont_scroll = FALSE; /* allow scrolling here */ 3476 3568 #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 @@ 3478 3591 flags |= EW_FILE | EW_EXEC; 3479 3592 … … 3486 3599 path = (char_u *)"."; 3487 3600 else 3488 @@ -4534,6 +45 39,9 @@3601 @@ -4534,6 +4544,9 @@ 3489 3602 ga_init2(&ga, (int)sizeof(char *), 10); 3490 3603 for (s = path; *s != NUL; s = e) … … 3496 3609 e = vim_strchr(s, ';'); 3497 3610 #else 3498 @@ -5982,6 +599 0,8 @@3611 @@ -5982,6 +5995,8 @@ 3499 3612 typestr[0] = cmdwin_type; 3500 3613 typestr[1] = NUL; … … 3507 3620 diff -Naur vim70.orig/src/fileio.c vim70/src/fileio.c 3508 3621 --- vim70.orig/src/fileio.c 2006-04-30 08:28:57.000000000 -0700 3509 +++ vim70/src/fileio.c 2006-09-1 1 09:04:57.000000000 -07003622 +++ vim70/src/fileio.c 2006-09-18 08:55:16.000000000 -0700 3510 3623 @@ -316,6 +316,9 @@ 3511 3624 * display the line. */ … … 3575 3688 void 3576 3689 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 @@ 3578 3704 return retval; 3579 3705 } … … 4864 4990 diff -Naur vim70.orig/src/misc1.c vim70/src/misc1.c 4865 4991 --- vim70.orig/src/misc1.c 2006-04-30 08:30:02.000000000 -0700 4866 +++ vim70/src/misc1.c 2006-09-1 1 09:03:25.000000000 -07004992 +++ vim70/src/misc1.c 2006-09-18 08:57:51.000000000 -0700 4867 4993 @@ -3016,6 +3016,7 @@ 4868 4994 int len = 0; … … 4920 5046 # endif 4921 5047 } 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; 4922 5072 diff -Naur vim70.orig/src/netbeans.c vim70/src/netbeans.c 4923 5073 --- vim70.orig/src/netbeans.c 2006-04-22 11:00:05.000000000 -0700 … … 5626 5776 diff -Naur vim70.orig/src/screen.c vim70/src/screen.c 5627 5777 --- 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 @@ 5630 5795 #ifdef FEAT_LINEBREAK 5631 5796 int need_showbreak = FALSE; … … 5637 5802 int line_attr = 0; /* atrribute for the whole line */ 5638 5803 #endif 5639 @@ -2626,7 +26 27,7 @@5804 @@ -2626,7 +2634,7 @@ 5640 5805 int prev_c = 0; /* previous Arabic character */ 5641 5806 int prev_c1 = 0; /* first composing char for prev_c */ … … 5646 5811 #endif 5647 5812 5648 @@ -4116,17 +41 17,12 @@5813 @@ -4116,17 +4124,12 @@ 5649 5814 --ptr; /* put it back at the NUL */ 5650 5815 } … … 5666 5831 # ifdef FEAT_RIGHTLEFT 5667 5832 wp->w_p_rl ? (col >= 0) : 5668 @@ -4237,7 +42 33,7 @@5833 @@ -4237,7 +4240,7 @@ 5669 5834 * At end of the text line or just after the last character. 5670 5835 */ … … 5675 5840 #endif 5676 5841 ) 5677 @@ -4258,7 +42 54,7 @@5842 @@ -4258,7 +4261,7 @@ 5678 5843 || prevcol == (long)match_hl[0].startcol 5679 5844 || prevcol == (long)match_hl[1].startcol … … 5684 5849 # endif 5685 5850 ) 5686 @@ -7103,7 +7 099,7 @@5851 @@ -7103,7 +7106,7 @@ 5687 5852 tabpage_T *tp; 5688 5853 #endif … … 5693 5858 /* 5694 5859 * Allocation of the screen buffers is done only when the size changes and 5695 @@ -7133,6 +71 29,12 @@5860 @@ -7133,6 +7136,12 @@ 5696 5861 return; 5697 5862 entered = TRUE; … … 5706 5871 5707 5872 comp_col(); /* recompute columns for shown command and ruler */ 5708 @@ -7205,14 +72 07,14 @@5873 @@ -7205,14 +7214,14 @@ 5709 5874 #endif 5710 5875 || outofmem) … … 5723 5888 vim_free(new_ScreenLines); 5724 5889 new_ScreenLines = NULL; 5725 @@ -7240,7 +724 2,7 @@5890 @@ -7240,7 +7249,7 @@ 5726 5891 } 5727 5892 else … … 5732 5897 for (new_row = 0; new_row < Rows; ++new_row) 5733 5898 { 5734 @@ -7367,6 +73 69,7 @@5899 @@ -7367,6 +7376,7 @@ 5735 5900 #endif 5736 5901 … … 5791 5956 diff -Naur vim70.orig/src/spell.c vim70/src/spell.c 5792 5957 --- 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 5794 5968 @@ -2043,8 +2043,8 @@ 5795 5969 int len; … … 5909 6083 /* Count the number of siblings. */ 5910 6084 for (np = node; np != NULL; np = np->wn_sibling) 5911 @@ -9243,1 1 +9243,11@@6085 @@ -9243,15 +9243,15 @@ 5912 6086 * Add "word[len]" to 'spellfile' as a good or bad word. 5913 6087 */ … … 5923 6097 int undo; /* TRUE for "zug", "zuG", "zuw" and "zuW" */ 5924 6098 { 6099 - FILE *fd; 6100 + FILE *fd = NULL; 6101 buf_T *buf = NULL; 6102 int new_spf = FALSE; 6103 char_u *fname; 5925 6104 @@ -9261,7 +9261,7 @@ 5926 6105 int i; … … 5946 6125 } 5947 6126 } 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 @@ 5949 6170 5950 6171 /* List the suggestions. */ … … 5954 6175 vim_snprintf((char *)IObuff, IOSIZE, _("Change \"%.*s\" to:"), 5955 6176 sug.su_badlen, sug.su_badptr); 5956 @@ -13579,53 +135 80,58 @@6177 @@ -13579,53 +13590,58 @@ 5957 6178 * the first "the" to itself. */ 5958 6179 return; … … 6055 6276 if (i < 0 && ga_grow(gap, 1) == OK) 6056 6277 { 6057 @@ -15656,7 +156 62,7 @@6278 @@ -15656,7 +15672,7 @@ 6058 6279 ? MB_STRNICMP(p, pat, STRLEN(pat)) == 0 6059 6280 : STRNCMP(p, pat, STRLEN(pat)) == 0) … … 6240 6461 diff -Naur vim70.orig/src/version.c vim70/src/version.c 6241 6462 --- vim70.orig/src/version.c 2006-05-03 00:50:42.000000000 -0700 6242 +++ vim70/src/version.c 2006-09-1 1 09:28:13.000000000 -07006243 @@ -667,6 +667, 190@@6463 +++ vim70/src/version.c 2006-09-18 08:57:51.000000000 -0700 6464 @@ -667,6 +667,208 @@ 6244 6465 static int included_patches[] = 6245 6466 { /* Add new patch number below this line */ 6246 6467 /**/ 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 +/**/ 6247 6486 + 99, 6248 6487 +/**/
Note:
See TracChangeset
for help on using the changeset viewer.