- Timestamp:
- Oct 25, 2006, 8:01:17 PM (18 years ago)
- Branches:
- clfs-1.2, clfs-2.1, clfs-3.0.0-systemd, clfs-3.0.0-sysvinit, master, systemd, sysvinit
- Children:
- af2511e
- Parents:
- 658cb1c
- File:
-
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
patches/vim-7.0-fixes-16.patch
r658cb1c r13457b7 1 1 Submitted By: Jim Gifford (jim at linuxfromscratch dot org) 2 Date: 2006-10-2 12 Date: 2006-10-25 3 3 Initial Package Version: 7.0 4 4 Origin: Upstream 5 5 Upstream Status: Applied 6 Description: Contains all upstream patches up to 7.0.1 466 Description: Contains all upstream patches up to 7.0.152 7 7 The following patches were skipped 8 8 005 027 028 032 045 057 065 074 108 130 131 132 138 9 9 10 diff -Naur vim70.orig/configure vim70/configure 10 11 --- vim70.orig/configure 2004-07-05 02:02:24.000000000 -0700 11 +++ vim70/configure 2006-10-2 1 21:08:54.000000000 -070012 +++ vim70/configure 2006-10-25 19:55:26.000000000 -0700 12 13 @@ -3,4 +3,4 @@ 13 14 # This is just a stub for the Unix configure script, to provide support for … … 18 19 diff -Naur vim70.orig/runtime/autoload/ccomplete.vim vim70/runtime/autoload/ccomplete.vim 19 20 --- vim70.orig/runtime/autoload/ccomplete.vim 2006-05-03 07:35:56.000000000 -0700 20 +++ vim70/runtime/autoload/ccomplete.vim 2006-10-2 1 21:08:49.000000000 -070021 +++ vim70/runtime/autoload/ccomplete.vim 2006-10-25 19:55:18.000000000 -0700 21 22 @@ -1,7 +1,7 @@ 22 23 " Vim completion script … … 39 40 diff -Naur vim70.orig/runtime/autoload/gzip.vim vim70/runtime/autoload/gzip.vim 40 41 --- vim70.orig/runtime/autoload/gzip.vim 2006-03-31 07:12:15.000000000 -0800 41 +++ vim70/runtime/autoload/gzip.vim 2006-10-2 1 21:09:06.000000000 -070042 +++ vim70/runtime/autoload/gzip.vim 2006-10-25 19:55:42.000000000 -0700 42 43 @@ -1,6 +1,6 @@ 43 44 " Vim autoload file for editing compressed files. … … 100 101 diff -Naur vim70.orig/runtime/autoload/paste.vim vim70/runtime/autoload/paste.vim 101 102 --- vim70.orig/runtime/autoload/paste.vim 2006-04-21 11:31:01.000000000 -0700 102 +++ vim70/runtime/autoload/paste.vim 2006-10-2 1 21:08:52.000000000 -0700103 +++ vim70/runtime/autoload/paste.vim 2006-10-25 19:55:22.000000000 -0700 103 104 @@ -1,6 +1,6 @@ 104 105 " Vim support file to help with paste mappings and menus … … 120 121 diff -Naur vim70.orig/runtime/autoload/spellfile.vim vim70/runtime/autoload/spellfile.vim 121 122 --- vim70.orig/runtime/autoload/spellfile.vim 2006-02-01 04:12:24.000000000 -0800 122 +++ vim70/runtime/autoload/spellfile.vim 2006-10-2 1 21:09:00.000000000 -0700123 +++ vim70/runtime/autoload/spellfile.vim 2006-10-25 19:55:36.000000000 -0700 123 124 @@ -1,9 +1,9 @@ 124 125 " Vim script to download a missing spell file … … 176 177 diff -Naur vim70.orig/runtime/doc/eval.txt vim70/runtime/doc/eval.txt 177 178 --- vim70.orig/runtime/doc/eval.txt 2006-05-07 05:16:44.000000000 -0700 178 +++ vim70/runtime/doc/eval.txt 2006-10-2 1 21:09:06.000000000 -0700179 +++ vim70/runtime/doc/eval.txt 2006-10-25 19:55:42.000000000 -0700 179 180 @@ -1,4 +1,4 @@ 180 181 -*eval.txt* For Vim version 7.0. Last change: 2006 May 06 … … 216 217 diff -Naur vim70.orig/runtime/menu.vim vim70/runtime/menu.vim 217 218 --- vim70.orig/runtime/menu.vim 2006-04-17 06:47:28.000000000 -0700 218 +++ vim70/runtime/menu.vim 2006-10-2 1 21:09:05.000000000 -0700219 +++ vim70/runtime/menu.vim 2006-10-25 19:55:41.000000000 -0700 219 220 @@ -2,7 +2,7 @@ 220 221 " You can also use this as a start for your own set of menus. … … 283 284 diff -Naur vim70.orig/runtime/plugin/matchparen.vim vim70/runtime/plugin/matchparen.vim 284 285 --- vim70.orig/runtime/plugin/matchparen.vim 2006-04-27 06:31:26.000000000 -0700 285 +++ vim70/runtime/plugin/matchparen.vim 2006-10-2 1 21:09:04.000000000 -0700286 +++ vim70/runtime/plugin/matchparen.vim 2006-10-25 19:55:39.000000000 -0700 286 287 @@ -1,6 +1,6 @@ 287 288 " Vim plugin for showing matching parens … … 326 327 diff -Naur vim70.orig/runtime/scripts.vim vim70/runtime/scripts.vim 327 328 --- vim70.orig/runtime/scripts.vim 2006-03-28 11:30:49.000000000 -0800 328 +++ vim70/runtime/scripts.vim 2006-10-2 1 21:08:54.000000000 -0700329 +++ vim70/runtime/scripts.vim 2006-10-25 19:55:27.000000000 -0700 329 330 @@ -1,7 +1,7 @@ 330 331 " Vim support file to detect file types in scripts … … 351 352 diff -Naur vim70.orig/runtime/tutor/Makefile vim70/runtime/tutor/Makefile 352 353 --- vim70.orig/runtime/tutor/Makefile 2004-06-07 07:32:39.000000000 -0700 353 +++ vim70/runtime/tutor/Makefile 2006-10-2 1 21:09:04.000000000 -0700354 +++ vim70/runtime/tutor/Makefile 2006-10-25 19:55:40.000000000 -0700 354 355 @@ -2,8 +2,13 @@ 355 356 # … … 385 386 diff -Naur vim70.orig/runtime/tutor/tutor.gr.utf-8 vim70/runtime/tutor/tutor.gr.utf-8 386 387 --- vim70.orig/runtime/tutor/tutor.gr.utf-8 1969-12-31 16:00:00.000000000 -0800 387 +++ vim70/runtime/tutor/tutor.gr.utf-8 2006-10-2 1 21:09:04.000000000 -0700388 +++ vim70/runtime/tutor/tutor.gr.utf-8 2006-10-25 19:55:40.000000000 -0700 388 389 @@ -0,0 +1,815 @@ 389 390 +=============================================================================== … … 1418 1419 diff -Naur vim70.orig/runtime/tutor/tutor.ru.utf-8 vim70/runtime/tutor/tutor.ru.utf-8 1419 1420 --- vim70.orig/runtime/tutor/tutor.ru.utf-8 1969-12-31 16:00:00.000000000 -0800 1420 +++ vim70/runtime/tutor/tutor.ru.utf-8 2006-10-2 1 21:09:00.000000000 -07001421 +++ vim70/runtime/tutor/tutor.ru.utf-8 2006-10-25 19:55:36.000000000 -0700 1421 1422 @@ -0,0 +1,834 @@ 1422 1423 +=============================================================================== … … 2339 2340 diff -Naur vim70.orig/runtime/tutor/tutor.vim vim70/runtime/tutor/tutor.vim 2340 2341 --- vim70.orig/runtime/tutor/tutor.vim 2006-03-18 12:20:36.000000000 -0800 2341 +++ vim70/runtime/tutor/tutor.vim 2006-10-2 1 21:09:04.000000000 -07002342 +++ vim70/runtime/tutor/tutor.vim 2006-10-25 19:55:40.000000000 -0700 2342 2343 @@ -1,6 +1,6 @@ 2343 2344 " Vim tutor support file … … 2391 2392 diff -Naur vim70.orig/src/auto/configure vim70/src/auto/configure 2392 2393 --- vim70.orig/src/auto/configure 2006-05-04 03:46:19.000000000 -0700 2393 +++ vim70/src/auto/configure 2006-10-2 1 21:09:10.000000000 -07002394 +++ vim70/src/auto/configure 2006-10-25 19:55:46.000000000 -0700 2394 2395 @@ -4014,7 +4014,7 @@ 2395 2396 LDFLAGS=$ldflags_save … … 2432 2433 diff -Naur vim70.orig/src/buffer.c vim70/src/buffer.c 2433 2434 --- vim70.orig/src/buffer.c 2006-04-26 14:37:23.000000000 -0700 2434 +++ vim70/src/buffer.c 2006-10-2 1 21:09:11.000000000 -07002435 +++ vim70/src/buffer.c 2006-10-25 19:55:48.000000000 -0700 2435 2436 @@ -434,12 +434,8 @@ 2436 2437 if (usingNetbeans) … … 2574 2575 diff -Naur vim70.orig/src/configure vim70/src/configure 2575 2576 --- vim70.orig/src/configure 2006-05-07 07:17:49.000000000 -0700 2576 +++ vim70/src/configure 2006-10-2 1 21:08:54.000000000 -07002577 +++ vim70/src/configure 2006-10-25 19:55:26.000000000 -0700 2577 2578 @@ -2,5 +2,9 @@ 2578 2579 # run the automatically generated configure script … … 2587 2588 diff -Naur vim70.orig/src/configure.in vim70/src/configure.in 2588 2589 --- vim70.orig/src/configure.in 2006-05-04 03:46:11.000000000 -0700 2589 +++ vim70/src/configure.in 2006-10-2 1 21:09:10.000000000 -07002590 +++ vim70/src/configure.in 2006-10-25 19:55:46.000000000 -0700 2590 2591 @@ -508,7 +508,8 @@ 2591 2592 LDFLAGS=$ldflags_save … … 2630 2631 diff -Naur vim70.orig/src/edit.c vim70/src/edit.c 2631 2632 --- vim70.orig/src/edit.c 2006-05-07 04:48:51.000000000 -0700 2632 +++ vim70/src/edit.c 2006-10-2 1 21:09:10.000000000 -07002633 +++ vim70/src/edit.c 2006-10-25 19:55:46.000000000 -0700 2633 2634 @@ -129,7 +129,7 @@ 2634 2635 … … 3240 3241 diff -Naur vim70.orig/src/eval.c vim70/src/eval.c 3241 3242 --- vim70.orig/src/eval.c 2006-05-05 10:15:26.000000000 -0700 3242 +++ vim70/src/eval.c 2006-10-2 1 21:09:11.000000000 -07003243 +++ vim70/src/eval.c 2006-10-25 19:55:55.000000000 -0700 3243 3244 @@ -191,8 +191,6 @@ 3244 3245 #define FC_RANGE 2 /* function accepts range */ … … 3311 3312 } 3312 3313 3313 @@ -3364,6 +3364,8 @@ 3314 @@ -3125,7 +3125,12 @@ 3315 funcdict_T fudi; 3316 3317 tofree = trans_function_name(&arg, eap->skip, TFN_INT, &fudi); 3318 - vim_free(fudi.fd_newkey); 3319 + if (fudi.fd_newkey != NULL) 3320 + { 3321 + /* Still need to give an error message for missing key. */ 3322 + EMSG2(_(e_dictkey), fudi.fd_newkey); 3323 + vim_free(fudi.fd_newkey); 3324 + } 3325 if (tofree == NULL) 3326 return; 3327 3328 @@ -3364,6 +3369,8 @@ 3314 3329 hi = hash_find(ht, varname); 3315 3330 if (!HASHITEM_EMPTY(hi)) … … 3320 3335 return FAIL; 3321 3336 delete_var(ht, hi); 3322 @@ -4895,7 +4 897,7 @@3337 @@ -4895,7 +4902,7 @@ 3323 3338 { 3324 3339 if (list_append_tv(l, &item->li_tv) == FAIL) … … 3329 3344 } 3330 3345 item = item->li_next; 3331 @@ -5295,7 +5 297,7 @@3346 @@ -5295,7 +5302,7 @@ 3332 3347 EMSG2(_("E697: Missing end of List ']': %s"), *arg); 3333 3348 failret: … … 3338 3353 } 3339 3354 3340 @@ -5359,8 +536 1,8 @@3355 @@ -5359,8 +5366,8 @@ 3341 3356 list_unref(l) 3342 3357 list_T *l; … … 3349 3364 3350 3365 /* 3351 @@ -5368,14 +537 0,12 @@3366 @@ -5368,14 +5375,12 @@ 3352 3367 * Ignores the reference count. 3353 3368 */ … … 3367 3382 if (l->lv_used_prev == NULL) 3368 3383 first_list = l->lv_used_next; 3369 @@ -5388,7 +53 88,10 @@3384 @@ -5388,7 +5393,10 @@ 3370 3385 { 3371 3386 /* Remove the item before deleting it. */ … … 3379 3394 vim_free(l); 3380 3395 } 3381 @@ -5448,6 +545 1,8 @@3396 @@ -5448,6 +5456,8 @@ 3382 3397 { 3383 3398 listitem_T *item1, *item2; … … 3388 3403 return FALSE; 3389 3404 3390 @@ -5484,6 +54 89,8 @@3405 @@ -5484,6 +5494,8 @@ 3391 3406 dictitem_T *item2; 3392 3407 int todo; … … 3397 3412 return FALSE; 3398 3413 3399 @@ -5516,19 +552 3,29 @@3414 @@ -5516,19 +5528,29 @@ 3400 3415 { 3401 3416 char_u buf1[NUMBUFLEN], buf2[NUMBUFLEN]; … … 3431 3446 case VAR_FUNC: 3432 3447 return (tv1->vval.v_string != NULL 3433 @@ -6059,6 +60 76,10 @@3448 @@ -6059,6 +6081,10 @@ 3434 3449 tabpage_T *tp; 3435 3450 #endif … … 3442 3457 * 1. Go through all accessible variables and mark all lists and dicts 3443 3458 * with copyID. 3444 @@ -6097,7 +61 18,10 @@3459 @@ -6097,7 +6123,10 @@ 3445 3460 for (dd = first_dict; dd != NULL; ) 3446 3461 if (dd->dv_copyID != copyID) … … 3454 3469 3455 3470 /* restart, next dict may also have been freed */ 3456 @@ -6114,7 +61 38,10 @@3471 @@ -6114,7 +6143,10 @@ 3457 3472 for (ll = first_list; ll != NULL; ) 3458 3473 if (ll->lv_copyID != copyID && ll->lv_watch == NULL) … … 3466 3481 3467 3482 /* restart, next list may also have been freed */ 3468 @@ -6207,11 +623 4,12 @@3483 @@ -6207,11 +6239,12 @@ 3469 3484 d = (dict_T *)alloc(sizeof(dict_T)); 3470 3485 if (d != NULL) … … 3480 3495 hash_init(&d->dv_hashtab); 3481 3496 d->dv_lock = 0; 3482 @@ -6229,8 +62 57,8 @@3497 @@ -6229,8 +6262,8 @@ 3483 3498 dict_unref(d) 3484 3499 dict_T *d; … … 3491 3506 3492 3507 /* 3493 @@ -6238,16 +62 66,14 @@3508 @@ -6238,16 +6271,14 @@ 3494 3509 * Ignores the reference count. 3495 3510 */ … … 3511 3526 if (d->dv_used_prev == NULL) 3512 3527 first_dict = d->dv_used_next; 3513 @@ -6267,7 +629 3,10 @@3528 @@ -6267,7 +6298,10 @@ 3514 3529 * something recursive causing trouble. */ 3515 3530 di = HI2DI(hi); … … 3523 3538 } 3524 3539 } 3525 @@ -6718,7 +67 47,7 @@3540 @@ -6718,7 +6752,7 @@ 3526 3541 EMSG2(_("E723: Missing end of Dictionary '}': %s"), *arg); 3527 3542 failret: … … 3532 3547 } 3533 3548 3534 @@ -7139,6 +71 68,7 @@3549 @@ -7139,6 +7173,7 @@ 3535 3550 {"setreg", 2, 3, f_setreg}, 3536 3551 {"settabwinvar", 4, 4, f_settabwinvar}, … … 3540 3555 {"sort", 1, 2, f_sort}, 3541 3556 {"soundfold", 1, 1, f_soundfold}, 3542 @@ -7595,8 +76 25,8 @@3557 @@ -7595,8 +7630,8 @@ 3543 3558 * Give an error message with a function name. Handle <SNR> things. 3544 3559 */ … … 3551 3566 { 3552 3567 char_u *p; 3553 @@ -7605,7 +76 35,7 @@3568 @@ -7605,7 +7640,7 @@ 3554 3569 p = concat_str((char_u *)"<SNR>", name + 3); 3555 3570 else … … 3560 3575 vim_free(p); 3561 3576 } 3562 @@ -8252,6 +828 2,12 @@3577 @@ -8252,6 +8287,12 @@ 3563 3578 EMSG(_("E785: complete() can only be used in Insert mode")); 3564 3579 return; … … 3573 3588 { 3574 3589 EMSG(_(e_invarg)); 3575 @@ -9173,25 +92 09,25 @@3590 @@ -9173,25 +9214,25 @@ 3576 3591 typval_T save_key; 3577 3592 int rem; … … 3603 3618 } 3604 3619 3605 @@ -9223,7 +92 59,7 @@3620 @@ -9223,7 +9264,7 @@ 3606 3621 { 3607 3622 --todo; … … 3612 3627 vimvars[VV_KEY].vv_str = vim_strsave(di->di_key); 3613 3628 if (filter_map_one(&di->di_tv, expr, map, &rem) == FAIL 3614 @@ -9242,7 +92 78,7 @@3629 @@ -9242,7 +9283,7 @@ 3615 3630 { 3616 3631 for (li = l->lv_first; li != NULL; li = nli) … … 3621 3636 nli = li->li_next; 3622 3637 if (filter_map_one(&li->li_tv, expr, map, &rem) == FAIL 3623 @@ -9598,7 +963 4,9 @@3638 @@ -9598,7 +9639,9 @@ 3624 3639 typval_T *argvars; 3625 3640 typval_T *rettv; … … 3632 3647 3633 3648 /* 3634 @@ -9792,6 +983 0,9 @@3649 @@ -9792,6 +9835,9 @@ 3635 3650 varnumber_T n; 3636 3651 int error = FALSE; … … 3642 3657 ++allow_keys; 3643 3658 if (argvars[0].v_type == VAR_UNKNOWN) 3644 @@ -10412,20 +1045 3,14 @@3659 @@ -10412,20 +10458,14 @@ 3645 3660 3646 3661 if (win != NULL && varname != NULL) … … 3669 3684 { 3670 3685 if (*varname == NUL) 3671 @@ -10438,6 +1047 3,10 @@3686 @@ -10438,6 +10478,10 @@ 3672 3687 if (v != NULL) 3673 3688 copy_tv(&v->di_tv, rettv); … … 3680 3695 3681 3696 --emsg_off; 3682 @@ -11312,14 +1135 1,19 @@3697 @@ -11312,14 +11356,19 @@ 3683 3698 3684 3699 static int inputsecret_flag = 0; … … 3703 3718 char_u *prompt = get_tv_string_chk(&argvars[0]); 3704 3719 char_u *p = NULL; 3705 @@ -11369,10 +1141 3,10 @@3720 @@ -11369,10 +11418,10 @@ 3706 3721 if (defstr != NULL) 3707 3722 stuffReadbuffSpec(defstr); … … 3716 3731 3717 3732 rettv->vval.v_string = NULL; 3718 @@ -11404,6 +114 48,18 @@3733 @@ -11404,6 +11453,18 @@ 3719 3734 } 3720 3735 … … 3735 3750 */ 3736 3751 static void 3737 @@ -11443,7 +11 499,7 @@3752 @@ -11443,7 +11504,7 @@ 3738 3753 } 3739 3754 else … … 3744 3759 3745 3760 /* 3746 @@ -11471,6 +115 27,7 @@3761 @@ -11471,6 +11532,7 @@ 3747 3762 } 3748 3763 … … 3752 3767 msg_scroll = TRUE; 3753 3768 msg_clr_eos(); 3754 @@ -13250,7 +133 07,7 @@3769 @@ -13250,7 +13312,7 @@ 3755 3770 if (argvars[2].v_type != VAR_UNKNOWN) 3756 3771 EMSG2(_(e_toomanyarg), "remove()"); … … 3761 3776 key = get_tv_string_chk(&argvars[1]); 3762 3777 if (key != NULL) 3763 @@ -13270,7 +133 27,7 @@3778 @@ -13270,7 +13332,7 @@ 3764 3779 else if (argvars[0].v_type != VAR_LIST) 3765 3780 EMSG2(_(e_listdictarg), "remove()"); … … 3770 3785 int error = FALSE; 3771 3786 3772 @@ -14157,11 +1421 4,7 @@3787 @@ -14157,11 +14219,7 @@ 3773 3788 typval_T *rettv; 3774 3789 { … … 3782 3797 typval_T *varp; 3783 3798 char_u nbuf[NUMBUFLEN]; 3784 @@ -14178,12 +1423 1,7 @@3799 @@ -14178,12 +14236,7 @@ 3785 3800 if (buf != NULL && varname != NULL && varp != NULL) 3786 3801 { … … 3795 3810 if (*varname == '&') 3796 3811 { 3797 @@ -14210,11 +142 58,7 @@3812 @@ -14210,11 +14263,7 @@ 3798 3813 } 3799 3814 … … 3807 3822 } 3808 3823 3809 @@ -14582,6 +146 26,18 @@3824 @@ -14582,6 +14631,18 @@ 3810 3825 } 3811 3826 … … 3826 3841 */ 3827 3842 static void 3828 @@ -16173,7 +162 29,7 @@3843 @@ -16173,7 +16234,7 @@ 3829 3844 curwin->w_curswant = get_dict_number(dict, (char_u *)"curswant"); 3830 3845 curwin->w_set_curswant = FALSE; … … 3835 3850 curwin->w_topfill = get_dict_number(dict, (char_u *)"topfill"); 3836 3851 #endif 3837 @@ -16218,6 +1627 4,7 @@3852 @@ -16218,6 +16279,7 @@ 3838 3853 #ifdef FEAT_VIRTUALEDIT 3839 3854 dict_add_nr_str(dict, "coladd", (long)curwin->w_cursor.coladd, NULL); … … 3843 3858 3844 3859 dict_add_nr_str(dict, "topline", (long)curwin->w_topline, NULL); 3845 @@ -16438,9 +16 495,12 @@3860 @@ -16438,9 +16500,12 @@ 3846 3861 long i = 0; 3847 3862 long n; … … 3859 3874 3860 3875 if (fnump != NULL) 3861 @@ -16466,8 +165 26,9 @@3876 @@ -16466,8 +16531,9 @@ 3862 3877 #ifdef FEAT_VIRTUALEDIT 3863 3878 n = list_find_nr(l, i, NULL); … … 3871 3886 3872 3887 return OK; 3873 @@ -17759,6 +1782 0,13 @@3888 @@ -17759,6 +17825,13 @@ 3874 3889 } 3875 3890 else /* add a new variable */ … … 3885 3900 for (p = varname; *p != NUL; ++p) 3886 3901 if (!eval_isnamec1(*p) && (p == varname || !VIM_ISDIGIT(*p)) 3887 @@ -17792,7 +1786 0,7 @@3902 @@ -17792,7 +17865,7 @@ 3888 3903 } 3889 3904 … … 3894 3909 */ 3895 3910 static int 3896 @@ -17814,6 +1788 2,23 @@3911 @@ -17814,6 +17887,23 @@ 3897 3912 } 3898 3913 … … 3918 3933 * Also give an error message, using "name". 3919 3934 */ 3920 @@ -18786,6 +1887 1,7 @@3935 @@ -18786,6 +18876,7 @@ 3921 3936 if (dict_add(fudi.fd_dict, fudi.fd_di) == FAIL) 3922 3937 { … … 3926 3941 } 3927 3942 } 3928 @@ -18963,7 +190 49,8 @@3943 @@ -18963,7 +19054,8 @@ 3929 3944 else if (lead > 0) 3930 3945 { … … 3936 3951 /* It's "s:" or "<SID>" */ 3937 3952 if (current_SID <= 0) 3938 @@ -19685,6 +1977 2,7 @@3953 @@ -19685,6 +19777,7 @@ 3939 3954 v->di_tv.vval.v_list = &fc.l_varlist; 3940 3955 vim_memset(&fc.l_varlist, 0, sizeof(list_T)); … … 3944 3959 /* 3945 3960 * Set a:firstline to "firstline" and a:lastline to "lastline". 3946 @@ -19761,7 +198 49,7 @@3961 @@ -19761,7 +19854,7 @@ 3947 3962 if (p_verbose >= 14) 3948 3963 { … … 3953 3968 3954 3969 msg_puts((char_u *)"("); 3955 @@ -19773,8 +1986 1,8 @@3970 @@ -19773,8 +19866,8 @@ 3956 3971 msg_outnum((long)argvars[i].vval.v_number); 3957 3972 else … … 3964 3979 vim_free(tofree); 3965 3980 } 3966 @@ -19852,13 +1994 0,13 @@3981 @@ -19852,13 +19945,13 @@ 3967 3982 else 3968 3983 { … … 3982 3997 diff -Naur vim70.orig/src/ex_cmds2.c vim70/src/ex_cmds2.c 3983 3998 --- vim70.orig/src/ex_cmds2.c 2006-04-17 03:19:07.000000000 -0700 3984 +++ vim70/src/ex_cmds2.c 2006-10-2 1 21:08:58.000000000 -07003999 +++ vim70/src/ex_cmds2.c 2006-10-25 19:55:34.000000000 -0700 3985 4000 @@ -3648,13 +3648,13 @@ 3986 4001 * Return FALSE when not sourcing a file. … … 4003 4018 diff -Naur vim70.orig/src/ex_cmds.c vim70/src/ex_cmds.c 4004 4019 --- vim70.orig/src/ex_cmds.c 2006-04-22 11:56:56.000000000 -0700 4005 +++ vim70/src/ex_cmds.c 2006-10-2 1 21:09:02.000000000 -07004020 +++ vim70/src/ex_cmds.c 2006-10-25 19:55:39.000000000 -0700 4006 4021 @@ -95,7 +95,10 @@ 4007 4022 _("<%s>%s%s %d, Hex %02x, Octal %03o"), … … 4114 4129 diff -Naur vim70.orig/src/ex_cmds.h vim70/src/ex_cmds.h 4115 4130 --- vim70.orig/src/ex_cmds.h 2006-04-07 02:44:46.000000000 -0700 4116 +++ vim70/src/ex_cmds.h 2006-10-2 1 21:08:52.000000000 -07004131 +++ vim70/src/ex_cmds.h 2006-10-25 19:55:22.000000000 -0700 4117 4132 @@ -262,7 +262,7 @@ 4118 4133 EX(CMD_comclear, "comclear", ex_comclear, … … 4126 4141 diff -Naur vim70.orig/src/ex_docmd.c vim70/src/ex_docmd.c 4127 4142 --- vim70.orig/src/ex_docmd.c 2006-05-05 09:33:19.000000000 -0700 4128 +++ vim70/src/ex_docmd.c 2006-10-2 1 21:09:04.000000000 -07004143 +++ vim70/src/ex_docmd.c 2006-10-25 19:55:51.000000000 -0700 4129 4144 @@ -58,9 +58,9 @@ 4130 4145 #endif … … 4396 4411 4397 4412 /* 4413 @@ -9629,7 +9643,8 @@ 4414 #endif 4415 4416 #ifdef FEAT_SESSION 4417 -static int ses_winsizes __ARGS((FILE *fd, int restore_size)); 4418 +static int ses_winsizes __ARGS((FILE *fd, int restore_size, 4419 + win_T *tab_firstwin)); 4420 static int ses_win_rec __ARGS((FILE *fd, frame_T *fr)); 4421 static frame_T *ses_skipframe __ARGS((frame_T *fr)); 4422 static int ses_do_frame __ARGS((frame_T *fr)); 4423 @@ -9655,8 +9670,8 @@ 4424 win_T *wp; 4425 char_u *sname; 4426 win_T *edited_win = NULL; 4427 - tabpage_T *old_curtab = curtab; 4428 int tabnr; 4429 + win_T *tab_firstwin; 4430 4431 if (ssop_flags & SSOP_BUFFERS) 4432 only_save_windows = FALSE; /* Save ALL buffers */ 4433 @@ -9764,14 +9779,26 @@ 4434 /* 4435 * May repeat putting Windows for each tab, when "tabpages" is in 4436 * 'sessionoptions'. 4437 + * Don't use goto_tabpage(), it may change directory and trigger 4438 + * autocommands. 4439 */ 4440 + tab_firstwin = firstwin; /* first window in tab page "tabnr" */ 4441 for (tabnr = 1; ; ++tabnr) 4442 { 4443 + int need_tabnew = FALSE; 4444 + 4445 if ((ssop_flags & SSOP_TABPAGES)) 4446 { 4447 - goto_tabpage(tabnr); 4448 - if (tabnr > 1 && put_line(fd, "tabnew") == FAIL) 4449 - return FAIL; 4450 + tabpage_T *tp = find_tabpage(tabnr); 4451 + 4452 + if (tp == NULL) 4453 + break; /* done all tab pages */ 4454 + if (tp == curtab) 4455 + tab_firstwin = firstwin; 4456 + else 4457 + tab_firstwin = tp->tp_firstwin; 4458 + if (tabnr > 1) 4459 + need_tabnew = TRUE; 4460 } 4461 4462 /* 4463 @@ -9779,7 +9806,7 @@ 4464 * is aborted we don't end up with a number of useless windows. 4465 * This may have side effects! (e.g., compressed or network file). 4466 */ 4467 - for (wp = firstwin; wp != NULL; wp = wp->w_next) 4468 + for (wp = tab_firstwin; wp != NULL; wp = wp->w_next) 4469 { 4470 if (ses_do_win(wp) 4471 && wp->w_buffer->b_ffname != NULL 4472 @@ -9789,15 +9816,20 @@ 4473 #endif 4474 ) 4475 { 4476 - if (fputs("edit ", fd) < 0 4477 + if (fputs(need_tabnew ? "tabedit " : "edit ", fd) < 0 4478 || ses_fname(fd, wp->w_buffer, &ssop_flags) == FAIL) 4479 return FAIL; 4480 + need_tabnew = FALSE; 4481 if (!wp->w_arg_idx_invalid) 4482 edited_win = wp; 4483 break; 4484 } 4485 } 4486 4487 + /* If no file got edited create an empty tab page. */ 4488 + if (need_tabnew && put_line(fd, "tabnew") == FAIL) 4489 + return FAIL; 4490 + 4491 /* 4492 * Save current window layout. 4493 */ 4494 @@ -9815,7 +9847,7 @@ 4495 * Remember the window number of the current window after restoring. 4496 */ 4497 nr = 0; 4498 - for (wp = firstwin; wp != NULL; wp = W_NEXT(wp)) 4499 + for (wp = tab_firstwin; wp != NULL; wp = W_NEXT(wp)) 4500 { 4501 if (ses_do_win(wp)) 4502 ++nr; 4503 @@ -9838,13 +9870,13 @@ 4504 */ 4505 if (put_line(fd, "set winheight=1 winwidth=1") == FAIL) 4506 return FAIL; 4507 - if (nr > 1 && ses_winsizes(fd, restore_size) == FAIL) 4508 + if (nr > 1 && ses_winsizes(fd, restore_size, tab_firstwin) == FAIL) 4509 return FAIL; 4510 4511 /* 4512 * Restore the view of the window (options, file, cursor, etc.). 4513 */ 4514 - for (wp = firstwin; wp != NULL; wp = wp->w_next) 4515 + for (wp = tab_firstwin; wp != NULL; wp = wp->w_next) 4516 { 4517 if (!ses_do_win(wp)) 4518 continue; 4519 @@ -9865,19 +9897,17 @@ 4520 * Restore window sizes again after jumping around in windows, because 4521 * the current window has a minimum size while others may not. 4522 */ 4523 - if (nr > 1 && ses_winsizes(fd, restore_size) == FAIL) 4524 + if (nr > 1 && ses_winsizes(fd, restore_size, tab_firstwin) == FAIL) 4525 return FAIL; 4526 4527 /* Don't continue in another tab page when doing only the current one 4528 * or when at the last tab page. */ 4529 - if (!(ssop_flags & SSOP_TABPAGES) || curtab->tp_next == NULL) 4530 + if (!(ssop_flags & SSOP_TABPAGES)) 4531 break; 4532 } 4533 4534 if (ssop_flags & SSOP_TABPAGES) 4535 { 4536 - if (valid_tabpage(old_curtab)) 4537 - goto_tabpage_tp(old_curtab); 4538 if (fprintf(fd, "tabnext %d", tabpage_index(curtab)) < 0 4539 || put_eol(fd) == FAIL) 4540 return FAIL; 4541 @@ -9913,16 +9943,17 @@ 4542 } 4543 4544 static int 4545 -ses_winsizes(fd, restore_size) 4546 +ses_winsizes(fd, restore_size, tab_firstwin) 4547 FILE *fd; 4548 int restore_size; 4549 + win_T *tab_firstwin; 4550 { 4551 int n = 0; 4552 win_T *wp; 4553 4554 if (restore_size && (ssop_flags & SSOP_WINSIZE)) 4555 { 4556 - for (wp = firstwin; wp != NULL; wp = wp->w_next) 4557 + for (wp = tab_firstwin; wp != NULL; wp = wp->w_next) 4558 { 4559 if (!ses_do_win(wp)) 4560 continue; 4398 4561 diff -Naur vim70.orig/src/ex_getln.c vim70/src/ex_getln.c 4399 4562 --- vim70.orig/src/ex_getln.c 2006-04-30 08:32:01.000000000 -0700 4400 +++ vim70/src/ex_getln.c 2006-10-2 1 21:09:11.000000000 -07004563 +++ vim70/src/ex_getln.c 2006-10-25 19:55:47.000000000 -0700 4401 4564 @@ -86,7 +86,7 @@ 4402 4565 static void draw_cmdline __ARGS((int start, int len)); … … 4521 4684 diff -Naur vim70.orig/src/fileio.c vim70/src/fileio.c 4522 4685 --- vim70.orig/src/fileio.c 2006-04-30 08:28:57.000000000 -0700 4523 +++ vim70/src/fileio.c 2006-10-2 1 21:09:05.000000000 -07004686 +++ vim70/src/fileio.c 2006-10-25 19:55:41.000000000 -0700 4524 4687 @@ -316,6 +316,9 @@ 4525 4688 * display the line. */ … … 4643 4806 diff -Naur vim70.orig/src/getchar.c vim70/src/getchar.c 4644 4807 --- vim70.orig/src/getchar.c 2006-05-03 10:29:21.000000000 -0700 4645 +++ vim70/src/getchar.c 2006-10-2 1 21:09:07.000000000 -07004808 +++ vim70/src/getchar.c 2006-10-25 19:55:43.000000000 -0700 4646 4809 @@ -1451,7 +1451,8 @@ 4647 4810 { … … 4729 4892 diff -Naur vim70.orig/src/globals.h vim70/src/globals.h 4730 4893 --- vim70.orig/src/globals.h 2006-04-30 06:16:23.000000000 -0700 4731 +++ vim70/src/globals.h 2006-10-2 1 21:09:09.000000000 -07004894 +++ vim70/src/globals.h 2006-10-25 19:55:45.000000000 -0700 4732 4895 @@ -166,6 +166,7 @@ 4733 4896 EXTERN int emsg_off INIT(= 0); /* don't display errors for now, … … 4769 4932 diff -Naur vim70.orig/src/gui_at_fs.c vim70/src/gui_at_fs.c 4770 4933 --- vim70.orig/src/gui_at_fs.c 2005-07-09 04:30:17.000000000 -0700 4771 +++ vim70/src/gui_at_fs.c 2006-10-2 1 21:08:51.000000000 -07004934 +++ vim70/src/gui_at_fs.c 2006-10-25 19:55:20.000000000 -0700 4772 4935 @@ -1861,27 +1861,27 @@ 4773 4936 XtPointer pnew; … … 4885 5048 diff -Naur vim70.orig/src/gui_beval.c vim70/src/gui_beval.c 4886 5049 --- vim70.orig/src/gui_beval.c 2006-05-04 12:29:51.000000000 -0700 4887 +++ vim70/src/gui_beval.c 2006-10-2 1 21:08:58.000000000 -07005050 +++ vim70/src/gui_beval.c 2006-10-25 19:55:34.000000000 -0700 4888 5051 @@ -926,7 +926,7 @@ 4889 5052 # define IS_NONPRINTABLE(c) (((c) < 0x20 && (c) != TAB && (c) != NL) \ … … 4924 5087 diff -Naur vim70.orig/src/gui.c vim70/src/gui.c 4925 5088 --- vim70.orig/src/gui.c 2006-05-03 04:00:59.000000000 -0700 4926 +++ vim70/src/gui.c 2006-10-2 1 21:09:09.000000000 -07005089 +++ vim70/src/gui.c 2006-10-25 19:55:45.000000000 -0700 4927 5090 @@ -187,9 +187,10 @@ 4928 5091 #endif … … 5027 5190 diff -Naur vim70.orig/src/gui_gtk.c vim70/src/gui_gtk.c 5028 5191 --- vim70.orig/src/gui_gtk.c 2006-05-05 04:52:52.000000000 -0700 5029 +++ vim70/src/gui_gtk.c 2006-10-2 1 21:09:09.000000000 -07005192 +++ vim70/src/gui_gtk.c 2006-10-25 19:56:06.000000000 -0700 5030 5193 @@ -957,15 +957,15 @@ 5031 5194 get_menu_position(vimmenu_T *menu) … … 5068 5231 /* If our pointer is currently hidden, then we should show it. */ 5069 5232 gui_mch_mousehide(FALSE); 5233 @@ -1298,8 +1293,8 @@ 5234 GTK_WINDOW(gui.mainwin), 5235 saving ? GTK_FILE_CHOOSER_ACTION_SAVE 5236 : GTK_FILE_CHOOSER_ACTION_OPEN, 5237 - saving ? GTK_STOCK_SAVE : GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, 5238 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, 5239 + saving ? GTK_STOCK_SAVE : GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, 5240 NULL); 5241 gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(fc), 5242 (const gchar *)dirbuf); 5070 5243 @@ -1341,6 +1336,11 @@ 5071 5244 else … … 5115 5288 diff -Naur vim70.orig/src/gui_gtk_x11.c vim70/src/gui_gtk_x11.c 5116 5289 --- vim70.orig/src/gui_gtk_x11.c 2006-05-04 23:58:59.000000000 -0700 5117 +++ vim70/src/gui_gtk_x11.c 2006-10-2 1 21:08:58.000000000 -07005290 +++ vim70/src/gui_gtk_x11.c 2006-10-25 19:55:34.000000000 -0700 5118 5291 @@ -3233,12 +3233,12 @@ 5119 5292 on_select_tab( … … 5180 5353 diff -Naur vim70.orig/src/gui_xmebw.c vim70/src/gui_xmebw.c 5181 5354 --- vim70.orig/src/gui_xmebw.c 2006-04-30 08:32:32.000000000 -0700 5182 +++ vim70/src/gui_xmebw.c 2006-10-2 1 21:08:51.000000000 -07005355 +++ vim70/src/gui_xmebw.c 2006-10-25 19:56:09.000000000 -0700 5183 5356 @@ -47,13 +47,13 @@ 5184 5357 #include "gui_xmebwp.h" … … 5197 5370 # define Lab_IsMenupane(w) (Lab_MenuType(w) == (int)XmMENU_POPUP || \ 5198 5371 Lab_MenuType(w) == (int)XmMENU_PULLDOWN) 5199 @@ -480,7 +480,7 @@ 5372 @@ -138,6 +138,19 @@ 5373 } 5374 }; 5375 5376 +/* This is needed to work around a bug in Lesstif 2, leaving the extension 5377 + * NULL somehow results in getting it set to an invalid pointer. */ 5378 +XmPrimitiveClassExtRec xmEnhancedButtonPrimClassExtRec = 5379 +{ 5380 + /* next_extension */ NULL, 5381 + /* record_type */ NULLQUARK, 5382 + /* version */ XmPrimitiveClassExtVersion, 5383 + /* record_size */ sizeof(XmPrimitiveClassExtRec), 5384 + /* widget_baseline */ XmInheritBaselineProc, 5385 + /* widget_display_rect */ XmInheritDisplayRectProc, 5386 + /* widget_margins */ NULL 5387 +}; 5388 + 5389 XmEnhancedButtonClassRec xmEnhancedButtonClassRec = 5390 { 5391 { 5392 @@ -184,7 +197,7 @@ 5393 /* arm and activate */ XmInheritArmAndActivate, 5394 /* synthetic resources */ NULL, 5395 /* number of syn res */ 0, 5396 - /* extension */ NULL, 5397 + /* extension */ (XtPointer)&xmEnhancedButtonPrimClassExtRec, 5398 }, 5399 5400 /* label_class fields */ 5401 @@ -480,7 +493,7 @@ 5200 5402 || (eb->core.height <= 2 * eb->primitive.highlight_thickness)) 5201 5403 return; … … 5206 5408 XmDisplay dpy; 5207 5409 5208 @@ -641,7 +6 41,7 @@5410 @@ -641,7 +654,7 @@ 5209 5411 GC tmp_gc = NULL; 5210 5412 Boolean replaceGC = False; … … 5215 5417 Boolean etched_in = dpy->display.enable_etched_in_menu; 5216 5418 #else 5217 @@ -726,7 +7 26,7 @@5419 @@ -726,7 +739,7 @@ 5218 5420 if ((((ShellWidget) XtParent(XtParent(eb)))->shell.popped_up) 5219 5421 && _XmGetInDragMode((Widget) eb)) … … 5224 5426 Boolean etched_in = dpy->display.enable_etched_in_menu; 5225 5427 #else 5226 @@ -810,7 +8 10,7 @@5428 @@ -810,7 +823,7 @@ 5227 5429 5228 5430 if (Lab_IsMenupane(eb)) … … 5233 5435 Boolean etched_in = dpy->display.enable_etched_in_menu; 5234 5436 #else 5235 @@ -1150,7 +11 50,7 @@5437 @@ -1150,7 +1163,7 @@ 5236 5438 Redisplay(Widget w, XEvent *event, Region region) 5237 5439 { … … 5242 5444 XtEnum default_button_emphasis; 5243 5445 #endif 5244 @@ -1162,7 +11 62,7 @@5446 @@ -1162,7 +1175,7 @@ 5245 5447 if (!XtIsRealized((Widget)eb)) 5246 5448 return; … … 5251 5453 default_button_emphasis = dpy->display.default_button_emphasis; 5252 5454 #endif 5253 @@ -1241,7 +12 41,7 @@5455 @@ -1241,7 +1254,7 @@ 5254 5456 { 5255 5457 int adjust = 0; … … 5260 5462 * NOTE: PushButton has two types of shadows: primitive-shadow and 5261 5463 * default-button-shadow. If pushbutton is in a menu only primitive 5262 @@ -1289,7 +1 289,7 @@5464 @@ -1289,7 +1302,7 @@ 5263 5465 adjust, adjust, rectwidth, rectheight, borderwidth); 5264 5466 } … … 5269 5471 { 5270 5472 case XmINTERNAL_HIGHLIGHT: 5271 @@ -1365,7 +13 65,7 @@5473 @@ -1365,7 +1378,7 @@ 5272 5474 default_button_shadow_thickness = 5273 5475 eb->pushbutton.default_button_shadow_thickness; … … 5280 5482 diff -Naur vim70.orig/src/hardcopy.c vim70/src/hardcopy.c 5281 5483 --- vim70.orig/src/hardcopy.c 2006-05-04 03:09:58.000000000 -0700 5282 +++ vim70/src/hardcopy.c 2006-10-2 1 21:08:58.000000000 -07005484 +++ vim70/src/hardcopy.c 2006-10-25 19:55:34.000000000 -0700 5283 5485 @@ -1794,29 +1794,27 @@ 5284 5486 static int … … 5383 5585 diff -Naur vim70.orig/src/if_cscope.c vim70/src/if_cscope.c 5384 5586 --- vim70.orig/src/if_cscope.c 2006-04-18 01:54:15.000000000 -0700 5385 +++ vim70/src/if_cscope.c 2006-10-2 1 21:08:58.000000000 -07005587 +++ vim70/src/if_cscope.c 2006-10-25 19:55:34.000000000 -0700 5386 5588 @@ -989,8 +989,7 @@ 5387 5589 { … … 5406 5608 diff -Naur vim70.orig/src/if_perl.xs vim70/src/if_perl.xs 5407 5609 --- vim70.orig/src/if_perl.xs 2006-03-06 10:57:16.000000000 -0800 5408 +++ vim70/src/if_perl.xs 2006-10-2 1 21:08:55.000000000 -07005610 +++ vim70/src/if_perl.xs 2006-10-25 19:55:31.000000000 -0700 5409 5611 @@ -155,8 +155,8 @@ 5410 5612 static int (*perl_run)(PerlInterpreter*); … … 5521 5723 diff -Naur vim70.orig/src/if_python.c vim70/src/if_python.c 5522 5724 --- vim70.orig/src/if_python.c 2006-04-30 08:31:36.000000000 -0700 5523 +++ vim70/src/if_python.c 2006-10-2 1 21:09:06.000000000 -07005725 +++ vim70/src/if_python.c 2006-10-25 19:55:42.000000000 -0700 5524 5726 @@ -1463,7 +1463,7 @@ 5525 5727 if (this->buf && this->buf != INVALID_BUFFER_VALUE) … … 5560 5762 diff -Naur vim70.orig/src/if_ruby.c vim70/src/if_ruby.c 5561 5763 --- vim70.orig/src/if_ruby.c 2006-04-30 08:37:52.000000000 -0700 5562 +++ vim70/src/if_ruby.c 2006-10-2 1 21:08:55.000000000 -07005764 +++ vim70/src/if_ruby.c 2006-10-25 19:55:31.000000000 -0700 5563 5765 @@ -643,11 +643,14 @@ 5564 5766 … … 5675 5877 diff -Naur vim70.orig/src/macros.h vim70/src/macros.h 5676 5878 --- vim70.orig/src/macros.h 2006-03-01 04:01:10.000000000 -0800 5677 +++ vim70/src/macros.h 2006-10-2 1 21:09:01.000000000 -07005879 +++ vim70/src/macros.h 2006-10-25 19:55:39.000000000 -0700 5678 5880 @@ -276,3 +276,9 @@ 5679 5881 # define MB_CHARLEN(p) STRLEN(p) … … 5688 5890 diff -Naur vim70.orig/src/main.c vim70/src/main.c 5689 5891 --- vim70.orig/src/main.c 2006-05-03 10:36:44.000000000 -0700 5690 +++ vim70/src/main.c 2006-10-2 1 21:09:01.000000000 -07005892 +++ vim70/src/main.c 2006-10-25 19:55:38.000000000 -0700 5691 5893 @@ -564,7 +564,11 @@ 5692 5894 */ … … 5777 5979 diff -Naur vim70.orig/src/Makefile vim70/src/Makefile 5778 5980 --- vim70.orig/src/Makefile 2006-05-07 06:25:27.000000000 -0700 5779 +++ vim70/src/Makefile 2006-10-2 1 21:09:00.000000000 -07005981 +++ vim70/src/Makefile 2006-10-25 19:55:36.000000000 -0700 5780 5982 @@ -2177,6 +2177,7 @@ 5781 5983 cd $(SHADOWDIR)/xxd; ln -s ../../xxd/*.[ch] ../../xxd/Make* . … … 5797 5999 diff -Naur vim70.orig/src/mbyte.c vim70/src/mbyte.c 5798 6000 --- vim70.orig/src/mbyte.c 2006-04-30 04:51:01.000000000 -0700 5799 +++ vim70/src/mbyte.c 2006-10-2 1 21:08:58.000000000 -07006001 +++ vim70/src/mbyte.c 2006-10-25 19:55:34.000000000 -0700 5800 6002 @@ -311,7 +311,11 @@ 5801 6003 … … 5879 6081 diff -Naur vim70.orig/src/memfile.c vim70/src/memfile.c 5880 6082 --- vim70.orig/src/memfile.c 2006-03-06 00:59:15.000000000 -0800 5881 +++ vim70/src/memfile.c 2006-10-2 1 21:09:06.000000000 -07006083 +++ vim70/src/memfile.c 2006-10-25 19:55:41.000000000 -0700 5882 6084 @@ -517,7 +517,7 @@ 5883 6085 mf_ins_free(mfp, hp); /* put *hp in the free list */ … … 5912 6114 diff -Naur vim70.orig/src/memline.c vim70/src/memline.c 5913 6115 --- vim70.orig/src/memline.c 2006-04-20 14:00:21.000000000 -0700 5914 +++ vim70/src/memline.c 2006-10-2 1 21:09:09.000000000 -07006116 +++ vim70/src/memline.c 2006-10-25 19:55:45.000000000 -0700 5915 6117 @@ -215,7 +215,7 @@ 5916 6118 #define ML_FLUSH 0x02 /* flush locked block */ … … 5988 6190 diff -Naur vim70.orig/src/menu.c vim70/src/menu.c 5989 6191 --- vim70.orig/src/menu.c 2006-05-03 10:30:48.000000000 -0700 5990 +++ vim70/src/menu.c 2006-10-2 1 21:08:56.000000000 -07006192 +++ vim70/src/menu.c 2006-10-25 19:55:31.000000000 -0700 5991 6193 @@ -511,6 +511,14 @@ 5992 6194 * name (without mnemonic and accelerator text). */ … … 6065 6267 diff -Naur vim70.orig/src/message.c vim70/src/message.c 6066 6268 --- vim70.orig/src/message.c 2006-05-06 13:07:37.000000000 -0700 6067 +++ vim70/src/message.c 2006-10-2 1 21:09:09.000000000 -07006269 +++ vim70/src/message.c 2006-10-25 19:55:45.000000000 -0700 6068 6270 @@ -53,7 +53,6 @@ 6069 6271 static struct msg_hist *first_msg_hist = NULL; … … 6118 6320 diff -Naur vim70.orig/src/misc1.c vim70/src/misc1.c 6119 6321 --- vim70.orig/src/misc1.c 2006-04-30 08:30:02.000000000 -0700 6120 +++ vim70/src/misc1.c 2006-10-21 21:09:10.000000000 -0700 6121 @@ -2842,7 +2842,8 @@ 6322 +++ vim70/src/misc1.c 2006-10-25 19:55:59.000000000 -0700 6323 @@ -1761,15 +1761,13 @@ 6324 * Add column offset for 'number', 'foldcolumn', etc. 6325 */ 6326 width = W_WIDTH(wp) - win_col_off(wp); 6327 - if (width > 0) 6328 - { 6329 - lines += 1; 6330 - if (col >= width) 6331 - lines += (col - width) / (width + win_col_off2(wp)); 6332 - if (lines <= wp->w_height) 6333 - return lines; 6334 - } 6335 - return (int)(wp->w_height); /* maximum length */ 6336 + if (width <= 0) 6337 + return 9999; 6338 + 6339 + lines += 1; 6340 + if (col > width) 6341 + lines += (col - width) / (width + win_col_off2(wp)) + 1; 6342 + return lines; 6343 } 6344 6345 int 6346 @@ -2842,7 +2840,8 @@ 6122 6347 6123 6348 #ifdef FEAT_AUTOCMD … … 6129 6354 #endif 6130 6355 } 6131 @@ -3016,6 +301 7,7 @@6356 @@ -3016,6 +3015,7 @@ 6132 6357 int len = 0; 6133 6358 int n; … … 6137 6362 mapped_ctrl_c = FALSE; /* mappings are not used here */ 6138 6363 for (;;) 6139 @@ -3034,11 +303 6,16 @@6364 @@ -3034,11 +3034,16 @@ 6140 6365 /* Replace zero and CSI by a special key code. */ 6141 6366 n = fix_input_buffer(buf + len, n, FALSE); … … 6156 6381 if (n > 0) 6157 6382 len = n; 6158 @@ -3196,14 +320 3,12 @@6383 @@ -3196,14 +3201,12 @@ 6159 6384 else 6160 6385 MSG_PUTS(_("Choice number (<Enter> cancels): ")); … … 6175 6400 i = get_number(TRUE, mouse_used); 6176 6401 if (KeyTyped) 6177 @@ -4492,7 +449 7,7 @@6402 @@ -4492,7 +4495,7 @@ 6178 6403 int l = mb_ptr2len(s); 6179 6404 … … 6184 6409 # endif 6185 6410 } 6186 @@ -8070,9 +807 5,20 @@6411 @@ -8070,9 +8073,20 @@ 6187 6412 } 6188 6413 if (*that == '"' && *(that + 1) != NUL) … … 6210 6435 diff -Naur vim70.orig/src/misc2.c vim70/src/misc2.c 6211 6436 --- vim70.orig/src/misc2.c 2006-05-04 05:12:38.000000000 -0700 6212 +++ vim70/src/misc2.c 2006-10-2 1 21:09:06.000000000 -07006437 +++ vim70/src/misc2.c 2006-10-25 19:55:42.000000000 -0700 6213 6438 @@ -1229,6 +1229,94 @@ 6214 6439 return escaped_string; … … 6308 6533 diff -Naur vim70.orig/src/netbeans.c vim70/src/netbeans.c 6309 6534 --- vim70.orig/src/netbeans.c 2006-04-22 11:00:05.000000000 -0700 6310 +++ vim70/src/netbeans.c 2006-10-2 1 21:08:58.000000000 -07006535 +++ vim70/src/netbeans.c 2006-10-25 19:55:34.000000000 -0700 6311 6536 @@ -103,7 +103,7 @@ 6312 6537 static int inputHandler = -1; /* simply ret.value of WSAAsyncSelect() */ … … 6478 6703 diff -Naur vim70.orig/src/normal.c vim70/src/normal.c 6479 6704 --- vim70.orig/src/normal.c 2006-04-29 06:11:18.000000000 -0700 6480 +++ vim70/src/normal.c 2006-10-2 1 21:09:11.000000000 -07006705 +++ vim70/src/normal.c 2006-10-25 19:55:48.000000000 -0700 6481 6706 @@ -1477,14 +1477,17 @@ 6482 6707 } … … 6556 6781 diff -Naur vim70.orig/src/ops.c vim70/src/ops.c 6557 6782 --- vim70.orig/src/ops.c 2006-04-30 08:13:44.000000000 -0700 6558 +++ vim70/src/ops.c 2006-10-2 1 21:09:11.000000000 -07006783 +++ vim70/src/ops.c 2006-10-25 19:55:47.000000000 -0700 6559 6784 @@ -770,6 +770,7 @@ 6560 6785 { … … 6634 6859 diff -Naur vim70.orig/src/option.c vim70/src/option.c 6635 6860 --- vim70.orig/src/option.c 2006-05-03 10:32:28.000000000 -0700 6636 +++ vim70/src/option.c 2006-10-2 1 21:09:11.000000000 -07006861 +++ vim70/src/option.c 2006-10-25 19:55:47.000000000 -0700 6637 6862 @@ -2294,7 +2294,7 @@ 6638 6863 {(char_u *)0L, (char_u *)0L} … … 6750 6975 diff -Naur vim70.orig/src/os_unix.c vim70/src/os_unix.c 6751 6976 --- vim70.orig/src/os_unix.c 2006-05-01 01:13:15.000000000 -0700 6752 +++ vim70/src/os_unix.c 2006-10-2 1 21:08:58.000000000 -07006977 +++ vim70/src/os_unix.c 2006-10-25 19:55:34.000000000 -0700 6753 6978 @@ -3934,7 +3934,7 @@ 6754 6979 { … … 6809 7034 diff -Naur vim70.orig/src/popupmnu.c vim70/src/popupmnu.c 6810 7035 --- vim70.orig/src/popupmnu.c 2006-04-20 13:18:37.000000000 -0700 6811 +++ vim70/src/popupmnu.c 2006-10-2 1 21:08:56.000000000 -07007036 +++ vim70/src/popupmnu.c 2006-10-25 19:55:32.000000000 -0700 6812 7037 @@ -552,6 +552,9 @@ 6813 7038 { … … 6822 7047 diff -Naur vim70.orig/src/proto/buffer.pro vim70/src/proto/buffer.pro 6823 7048 --- vim70.orig/src/proto/buffer.pro 2006-05-07 06:08:29.000000000 -0700 6824 +++ vim70/src/proto/buffer.pro 2006-10-2 1 21:09:01.000000000 -07007049 +++ vim70/src/proto/buffer.pro 2006-10-25 19:55:38.000000000 -0700 6825 7050 @@ -10,6 +10,7 @@ 6826 7051 extern int do_buffer __ARGS((int action, int start, int dir, int count, int forceit)); … … 6833 7058 diff -Naur vim70.orig/src/proto/eval.pro vim70/src/proto/eval.pro 6834 7059 --- vim70.orig/src/proto/eval.pro 2006-05-07 06:08:33.000000000 -0700 6835 +++ vim70/src/proto/eval.pro 2006-10-2 1 21:09:10.000000000 -07007060 +++ vim70/src/proto/eval.pro 2006-10-25 19:55:46.000000000 -0700 6836 7061 @@ -44,7 +44,7 @@ 6837 7062 extern char_u *get_user_var_name __ARGS((expand_T *xp, int idx)); … … 6845 7070 diff -Naur vim70.orig/src/proto/menu.pro vim70/src/proto/menu.pro 6846 7071 --- vim70.orig/src/proto/menu.pro 2006-05-07 06:08:51.000000000 -0700 6847 +++ vim70/src/proto/menu.pro 2006-10-2 1 21:08:56.000000000 -07007072 +++ vim70/src/proto/menu.pro 2006-10-25 19:55:31.000000000 -0700 6848 7073 @@ -10,6 +10,7 @@ 6849 7074 extern int menu_is_child_of_popup __ARGS((vimmenu_T *menu)); … … 6856 7081 diff -Naur vim70.orig/src/proto/misc2.pro vim70/src/proto/misc2.pro 6857 7082 --- vim70.orig/src/proto/misc2.pro 2006-05-07 06:08:54.000000000 -0700 6858 +++ vim70/src/proto/misc2.pro 2006-10-2 1 21:09:06.000000000 -07007083 +++ vim70/src/proto/misc2.pro 2006-10-25 19:55:42.000000000 -0700 6859 7084 @@ -29,6 +29,7 @@ 6860 7085 extern char_u *vim_strnsave __ARGS((char_u *string, int len)); … … 6867 7092 diff -Naur vim70.orig/src/proto/ops.pro vim70/src/proto/ops.pro 6868 7093 --- vim70.orig/src/proto/ops.pro 2006-05-07 06:08:58.000000000 -0700 6869 +++ vim70/src/proto/ops.pro 2006-10-2 1 21:09:11.000000000 -07007094 +++ vim70/src/proto/ops.pro 2006-10-25 19:55:47.000000000 -0700 6870 7095 @@ -20,7 +20,7 @@ 6871 7096 extern int do_execreg __ARGS((int regname, int colon, int addcr)); … … 6879 7104 diff -Naur vim70.orig/src/proto/undo.pro vim70/src/proto/undo.pro 6880 7105 --- vim70.orig/src/proto/undo.pro 2006-05-07 06:09:11.000000000 -0700 6881 +++ vim70/src/proto/undo.pro 2006-10-2 1 21:08:53.000000000 -07007106 +++ vim70/src/proto/undo.pro 2006-10-25 19:55:23.000000000 -0700 6882 7107 @@ -4,6 +4,7 @@ 6883 7108 extern int u_savesub __ARGS((linenr_T lnum)); … … 6890 7115 diff -Naur vim70.orig/src/quickfix.c vim70/src/quickfix.c 6891 7116 --- vim70.orig/src/quickfix.c 2006-05-03 00:47:42.000000000 -0700 6892 +++ vim70/src/quickfix.c 2006-10-2 1 21:09:11.000000000 -07007117 +++ vim70/src/quickfix.c 2006-10-25 19:55:48.000000000 -0700 6893 7118 @@ -500,8 +500,6 @@ 6894 7119 { … … 7145 7370 diff -Naur vim70.orig/src/regexp.c vim70/src/regexp.c 7146 7371 --- vim70.orig/src/regexp.c 2006-04-30 08:31:50.000000000 -0700 7147 +++ vim70/src/regexp.c 2006-10-2 1 21:09:11.000000000 -07007372 +++ vim70/src/regexp.c 2006-10-25 19:55:47.000000000 -0700 7148 7373 @@ -3777,8 +3777,8 @@ 7149 7374 … … 7282 7507 diff -Naur vim70.orig/src/screen.c vim70/src/screen.c 7283 7508 --- vim70.orig/src/screen.c 2006-05-05 03:13:55.000000000 -0700 7284 +++ vim70/src/screen.c 2006-10-2 1 21:09:08.000000000 -07007509 +++ vim70/src/screen.c 2006-10-25 19:55:44.000000000 -0700 7285 7510 @@ -1228,7 +1228,14 @@ 7286 7511 { … … 7458 7683 diff -Naur vim70.orig/src/search.c vim70/src/search.c 7459 7684 --- vim70.orig/src/search.c 2006-05-05 05:12:13.000000000 -0700 7460 +++ vim70/src/search.c 2006-10-2 1 21:09:09.000000000 -07007685 +++ vim70/src/search.c 2006-10-25 19:55:45.000000000 -0700 7461 7686 @@ -1259,7 +1259,7 @@ 7462 7687 /* … … 7515 7740 diff -Naur vim70.orig/src/spell.c vim70/src/spell.c 7516 7741 --- vim70.orig/src/spell.c 2006-05-05 00:49:58.000000000 -0700 7517 +++ vim70/src/spell.c 2006-10-2 1 21:09:05.000000000 -07007742 +++ vim70/src/spell.c 2006-10-25 19:55:41.000000000 -0700 7518 7743 @@ -1483,7 +1483,7 @@ 7519 7744 else if ((mode == FIND_COMPOUND || mode == FIND_KEEPCOMPOUND … … 7846 8071 diff -Naur vim70.orig/src/structs.h vim70/src/structs.h 7847 8072 --- vim70.orig/src/structs.h 2006-04-09 10:57:46.000000000 -0700 7848 +++ vim70/src/structs.h 2006-10-2 1 21:08:55.000000000 -07008073 +++ vim70/src/structs.h 2006-10-25 19:55:31.000000000 -0700 7849 8074 @@ -2213,18 +2213,20 @@ 7850 8075 … … 7872 8097 diff -Naur vim70.orig/src/syntax.c vim70/src/syntax.c 7873 8098 --- vim70.orig/src/syntax.c 2006-04-26 05:49:45.000000000 -0700 7874 +++ vim70/src/syntax.c 2006-10-2 1 21:09:07.000000000 -07008099 +++ vim70/src/syntax.c 2006-10-25 19:55:44.000000000 -0700 7875 8100 @@ -977,6 +977,7 @@ 7876 8101 { … … 7964 8189 diff -Naur vim70.orig/src/tag.c vim70/src/tag.c 7965 8190 --- vim70.orig/src/tag.c 2006-04-27 06:11:21.000000000 -0700 7966 +++ vim70/src/tag.c 2006-10-2 1 21:09:10.000000000 -07008191 +++ vim70/src/tag.c 2006-10-25 19:55:46.000000000 -0700 7967 8192 @@ -911,7 +911,7 @@ 7968 8193 … … 8006 8231 diff -Naur vim70.orig/src/term.c vim70/src/term.c 8007 8232 --- vim70.orig/src/term.c 2006-05-03 10:34:57.000000000 -0700 8008 +++ vim70/src/term.c 2006-10-21 21:08:56.000000000 -0700 8009 @@ -4783,6 +4783,14 @@ 8233 +++ vim70/src/term.c 2006-10-25 19:56:02.000000000 -0700 8234 @@ -3137,25 +3137,32 @@ 8235 screenalloc(FALSE); 8236 repeat_message(); 8237 } 8238 - else if (State & CMDLINE) 8239 - { 8240 - update_screen(NOT_VALID); 8241 - redrawcmdline(); 8242 - } 8243 else 8244 { 8245 - update_topline(); 8246 -#if defined(FEAT_INS_EXPAND) 8247 - if (pum_visible()) 8248 +#ifdef FEAT_SCROLLBIND 8249 + if (curwin->w_p_scb) 8250 + do_check_scrollbind(TRUE); 8251 +#endif 8252 + if (State & CMDLINE) 8253 { 8254 - redraw_later(NOT_VALID); 8255 - ins_compl_show_pum(); /* This includes the redraw. */ 8256 + update_screen(NOT_VALID); 8257 + redrawcmdline(); 8258 } 8259 else 8260 + { 8261 + update_topline(); 8262 +#if defined(FEAT_INS_EXPAND) 8263 + if (pum_visible()) 8264 + { 8265 + redraw_later(NOT_VALID); 8266 + ins_compl_show_pum(); /* This includes the redraw. */ 8267 + } 8268 + else 8269 #endif 8270 - update_screen(NOT_VALID); 8271 - if (redrawing()) 8272 - setcursor(); 8273 + update_screen(NOT_VALID); 8274 + if (redrawing()) 8275 + setcursor(); 8276 + } 8277 } 8278 cursor_on(); /* redrawing may have switched it off */ 8279 } 8280 @@ -4783,6 +4790,14 @@ 8010 8281 return -1; 8011 8282 current_menu = (vimmenu_T *)val; … … 8024 8295 diff -Naur vim70.orig/src/testdir/test56.in vim70/src/testdir/test56.in 8025 8296 --- vim70.orig/src/testdir/test56.in 2005-05-18 08:37:37.000000000 -0700 8026 +++ vim70/src/testdir/test56.in 2006-10-2 1 21:09:01.000000000 -07008297 +++ vim70/src/testdir/test56.in 2006-10-25 19:55:38.000000000 -0700 8027 8298 @@ -3,7 +3,7 @@ 8028 8299 STARTTEST … … 8036 8307 diff -Naur vim70.orig/src/ui.c vim70/src/ui.c 8037 8308 --- vim70.orig/src/ui.c 2006-03-27 11:15:09.000000000 -0800 8038 +++ vim70/src/ui.c 2006-10-2 1 21:08:58.000000000 -07008309 +++ vim70/src/ui.c 2006-10-25 19:55:35.000000000 -0700 8039 8310 @@ -1137,7 +1137,6 @@ 8040 8311 int len; … … 8056 8327 diff -Naur vim70.orig/src/undo.c vim70/src/undo.c 8057 8328 --- vim70.orig/src/undo.c 2006-04-21 02:30:59.000000000 -0700 8058 +++ vim70/src/undo.c 2006-10-2 1 21:08:58.000000000 -07008329 +++ vim70/src/undo.c 2006-10-25 19:55:35.000000000 -0700 8059 8330 @@ -84,7 +84,6 @@ 8060 8331 static void u_unch_branch __ARGS((u_header_T *uhp)); … … 8121 8392 diff -Naur vim70.orig/src/version.c vim70/src/version.c 8122 8393 --- vim70.orig/src/version.c 2006-05-03 00:50:42.000000000 -0700 8123 +++ vim70/src/version.c 2006-10-2 1 21:09:11.000000000 -07008124 @@ -667,6 +667,2 72@@8394 +++ vim70/src/version.c 2006-10-25 19:56:09.000000000 -0700 8395 @@ -667,6 +667,284 @@ 8125 8396 static int included_patches[] = 8126 8397 { /* Add new patch number below this line */ 8127 8398 /**/ 8399 + 152, 8400 +/**/ 8401 + 151, 8402 +/**/ 8403 + 150, 8404 +/**/ 8405 + 149, 8406 +/**/ 8407 + 148, 8408 +/**/ 8409 + 147, 8410 +/**/ 8128 8411 + 146, 8129 8412 +/**/ … … 8395 8678 }; 8396 8679 8397 @@ -731,7 + 997,11 @@8680 @@ -731,7 +1009,11 @@ 8398 8681 /* Only MS VC 4.1 and earlier can do Win32s */ 8399 8682 MSG_PUTS(_("\nMS-Windows 16/32 bit GUI version")); … … 8409 8692 diff -Naur vim70.orig/src/vim.h vim70/src/vim.h 8410 8693 --- vim70.orig/src/vim.h 2006-04-30 08:32:38.000000000 -0700 8411 +++ vim70/src/vim.h 2006-10-2 1 21:08:59.000000000 -07008694 +++ vim70/src/vim.h 2006-10-25 19:55:35.000000000 -0700 8412 8695 @@ -585,7 +585,6 @@ 8413 8696 #define INSERT 0x10 /* Insert mode */ … … 8438 8721 diff -Naur vim70.orig/src/window.c vim70/src/window.c 8439 8722 --- vim70.orig/src/window.c 2006-05-06 03:54:51.000000000 -0700 8440 +++ vim70/src/window.c 2006-10-2 1 21:09:02.000000000 -07008723 +++ vim70/src/window.c 2006-10-25 19:55:59.000000000 -0700 8441 8724 @@ -340,10 +340,10 @@ 8442 8725 { … … 8467 8750 8468 8751 #endif /* FEAT_WINDOWS */ 8752 @@ -5194,11 +5189,7 @@ 8753 int height; 8754 { 8755 linenr_T lnum; 8756 - linenr_T bot; 8757 int sline, line_size; 8758 - int space; 8759 - int did_below = FALSE; 8760 - int old_height = wp->w_height; 8761 #define FRACTION_MULT 16384L 8762 8763 /* Don't want a negative height. Happens when splitting a tiny window. 8764 @@ -5233,54 +5224,44 @@ 8765 wp->w_wrow = ((long)wp->w_fraction * (long)height - 1L) / FRACTION_MULT; 8766 line_size = plines_win_col(wp, lnum, (long)(wp->w_cursor.col)) - 1; 8767 sline = wp->w_wrow - line_size; 8768 + 8769 + if (sline >= 0) 8770 + { 8771 + /* Make sure the whole cursor line is visible, if possible. */ 8772 + int rows = plines_win(wp, lnum, FALSE); 8773 + 8774 + if (sline > wp->w_height - rows) 8775 + { 8776 + sline = wp->w_height - rows; 8777 + wp->w_wrow -= rows - line_size; 8778 + } 8779 + } 8780 + 8781 if (sline < 0) 8782 { 8783 /* 8784 * Cursor line would go off top of screen if w_wrow was this high. 8785 + * Make cursor line the first line in the window. If not enough 8786 + * room use w_skipcol; 8787 */ 8788 wp->w_wrow = line_size; 8789 + if (wp->w_wrow >= wp->w_height 8790 + && (W_WIDTH(wp) - win_col_off(wp)) > 0) 8791 + { 8792 + wp->w_skipcol += W_WIDTH(wp) - win_col_off(wp); 8793 + --wp->w_wrow; 8794 + while (wp->w_wrow >= wp->w_height) 8795 + { 8796 + wp->w_skipcol += W_WIDTH(wp) - win_col_off(wp) 8797 + + win_col_off2(wp); 8798 + --wp->w_wrow; 8799 + } 8800 + } 8801 } 8802 else 8803 { 8804 - space = height - 1; 8805 - 8806 - while (lnum > 1) 8807 + while (sline > 0 && lnum > 1) 8808 { 8809 - /* When using "~" lines stop when at the old topline, don't 8810 - * scroll down. */ 8811 - if (did_below && height < old_height && lnum <= wp->w_topline) 8812 - sline = 0; 8813 - 8814 - space -= line_size; 8815 - if (space > 0 && sline <= 0 && !did_below) 8816 - { 8817 - /* Try to use "~" lines below the text to avoid that text 8818 - * is above the window while there are empty lines. 8819 - * Subtract the rows below the cursor from "space" and 8820 - * give the rest to "sline". */ 8821 - did_below = TRUE; 8822 - bot = wp->w_cursor.lnum; 8823 - while (space > 0) 8824 - { 8825 - if (wp->w_buffer->b_ml.ml_line_count - bot >= space) 8826 - space = 0; 8827 - else 8828 - { 8829 -#ifdef FEAT_FOLDING 8830 - hasFoldingWin(wp, bot, NULL, &bot, TRUE, NULL); 8831 -#endif 8832 - if (bot >= wp->w_buffer->b_ml.ml_line_count) 8833 - break; 8834 - ++bot; 8835 - space -= plines_win(wp, bot, TRUE); 8836 - } 8837 - } 8838 - if (bot == wp->w_buffer->b_ml.ml_line_count && space > 0) 8839 - sline += space; 8840 - } 8841 - if (sline <= 0) 8842 - break; 8843 - 8844 #ifdef FEAT_FOLDING 8845 hasFoldingWin(wp, lnum, &lnum, NULL, TRUE, NULL); 8846 if (lnum == 1) 8469 8847
Note:
See TracChangeset
for help on using the changeset viewer.