Changeset 54f612f for patches/vim-7.2-branch_update-9.patch
- Timestamp:
- Feb 23, 2009, 5:59:27 AM (16 years ago)
- Branches:
- clfs-1.2, clfs-2.1, clfs-3.0.0-systemd, clfs-3.0.0-sysvinit, master, systemd, sysvinit
- Children:
- f81e00b
- Parents:
- 2a64e8b
- File:
-
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
patches/vim-7.2-branch_update-9.patch
r2a64e8b r54f612f 1 1 Submitted By: Jim Gifford (jim at cross-lfs dot org) 2 Date: 02- 15-20092 Date: 02-22-2009 3 3 Initial Package Version: 7.2 4 4 Origin: Upstream 5 5 Upstream Status: Applied 6 Description: Contains all upstream patches up to 7.2.1 086 Description: Contains all upstream patches up to 7.2.124 7 7 The following patches were skipped 8 8 007 036 041 049 071 072 074 088 089 093 101 … … 10 10 diff -Naur vim72.orig/Filelist vim72/Filelist 11 11 --- vim72.orig/Filelist 2008-07-06 11:02:23.000000000 -0700 12 +++ vim72/Filelist 2009-02- 15 23:26:03.078324067 -080012 +++ vim72/Filelist 2009-02-22 21:57:28.764584997 -0800 13 13 @@ -285,6 +285,7 @@ 14 14 src/proto/os_win32.pro \ … … 21 21 diff -Naur vim72.orig/runtime/doc/cmdline.txt vim72/runtime/doc/cmdline.txt 22 22 --- vim72.orig/runtime/doc/cmdline.txt 2008-08-09 07:22:59.000000000 -0700 23 +++ vim72/runtime/doc/cmdline.txt 2009-02- 15 23:26:29.516017600-080023 +++ vim72/runtime/doc/cmdline.txt 2009-02-22 21:57:28.892594217 -0800 24 24 @@ -1,4 +1,4 @@ 25 25 -*cmdline.txt* For Vim version 7.2. Last change: 2008 Jul 29 … … 80 80 diff -Naur vim72.orig/runtime/doc/eval.txt vim72/runtime/doc/eval.txt 81 81 --- vim72.orig/runtime/doc/eval.txt 2008-08-09 07:22:59.000000000 -0700 82 +++ vim72/runtime/doc/eval.txt 2009-02- 15 23:28:13.518683894-080082 +++ vim72/runtime/doc/eval.txt 2009-02-22 21:57:40.793357172 -0800 83 83 @@ -1,4 +1,4 @@ 84 84 -*eval.txt* For Vim version 7.2. Last change: 2008 Aug 09 … … 200 200 diff -Naur vim72.orig/runtime/doc/netbeans.txt vim72/runtime/doc/netbeans.txt 201 201 --- vim72.orig/runtime/doc/netbeans.txt 2008-08-09 07:22:59.000000000 -0700 202 +++ vim72/runtime/doc/netbeans.txt 2009-02- 15 23:28:48.044895935-0800202 +++ vim72/runtime/doc/netbeans.txt 2009-02-22 21:57:51.694055594 -0800 203 203 @@ -1,4 +1,4 @@ 204 204 -*netbeans.txt* For Vim version 7.2. Last change: 2008 Jun 28 … … 222 222 diff -Naur vim72.orig/runtime/doc/options.txt vim72/runtime/doc/options.txt 223 223 --- vim72.orig/runtime/doc/options.txt 2008-08-09 07:22:59.000000000 -0700 224 +++ vim72/runtime/doc/options.txt 2009-02- 15 23:27:23.659489593-0800224 +++ vim72/runtime/doc/options.txt 2009-02-22 21:58:02.958777762 -0800 225 225 @@ -1,4 +1,4 @@ 226 226 -*options.txt* For Vim version 7.2. Last change: 2008 Aug 06 … … 229 229 230 230 VIM REFERENCE MANUAL by Bram Moolenaar 231 @@ -7472,7 +7472,9 @@ 231 @@ -4175,9 +4175,6 @@ 232 be able to execute Normal mode commands. 233 This is the opposite of the 'keymap' option, where characters are 234 mapped in Insert mode. 235 - This only works for 8-bit characters. The value of 'langmap' may be 236 - specified with multi-byte characters (e.g., UTF-8), but only the lower 237 - 8 bits of each character will be used. 238 239 Example (for Greek, in UTF-8): *greek* > 240 :set langmap=ÎA,ÎB,ΚC,ÎD,ÎE,ΊF,ÎG,ÎH,ÎI,ÎJ,ÎK,ÎL,ÎM,ÎN,ÎO,Î P,QQ,ΡR,ΣS,΀T,ÎU,ΩV,WW,ΧX,Î¥Y,ÎZ,αa,βb,Ïc,ÎŽd,εe,Ïf,γg,ηh,ιi,Οj,κk,λl,ÎŒm,Îœn,οo,Ïp,qq,Ïr,Ïs,Ït,Ξu,Ïv,Ïw,Ïx,Ï 241 y,ζz 242 @@ -7472,7 +7469,9 @@ 232 243 {not available when compiled without the |+wildignore| 233 244 feature} … … 242 253 diff -Naur vim72.orig/runtime/doc/spell.txt vim72/runtime/doc/spell.txt 243 254 --- vim72.orig/runtime/doc/spell.txt 2008-08-09 07:23:00.000000000 -0700 244 +++ vim72/runtime/doc/spell.txt 2009-02- 15 23:27:49.861165805-0800255 +++ vim72/runtime/doc/spell.txt 2009-02-22 21:57:40.717352144 -0800 245 256 @@ -1,4 +1,4 @@ 246 257 -*spell.txt* For Vim version 7.2. Last change: 2008 Jun 21 … … 372 383 diff -Naur vim72.orig/runtime/doc/starting.txt vim72/runtime/doc/starting.txt 373 384 --- vim72.orig/runtime/doc/starting.txt 2008-08-09 07:23:00.000000000 -0700 374 +++ vim72/runtime/doc/starting.txt 2009-02- 15 23:26:29.520020393-0800385 +++ vim72/runtime/doc/starting.txt 2009-02-22 21:57:28.896592820 -0800 375 386 @@ -1,4 +1,4 @@ 376 387 -*starting.txt* For Vim version 7.2. Last change: 2008 Jun 21 … … 434 445 diff -Naur vim72.orig/runtime/doc/usr_21.txt vim72/runtime/doc/usr_21.txt 435 446 --- vim72.orig/runtime/doc/usr_21.txt 2008-08-09 07:23:01.000000000 -0700 436 +++ vim72/runtime/doc/usr_21.txt 2009-02- 15 23:26:29.520020393-0800447 +++ vim72/runtime/doc/usr_21.txt 2009-02-22 21:57:28.896592820 -0800 437 448 @@ -1,4 +1,4 @@ 438 449 -*usr_21.txt* For Vim version 7.2. Last change: 2007 May 01 … … 501 512 diff -Naur vim72.orig/runtime/scripts.vim vim72/runtime/scripts.vim 502 513 --- vim72.orig/runtime/scripts.vim 2008-08-08 15:27:21.000000000 -0700 503 +++ vim72/runtime/scripts.vim 2009-02- 15 23:25:14.879235088-0800514 +++ vim72/runtime/scripts.vim 2009-02-22 21:57:25.668388043 -0800 504 515 @@ -234,6 +234,10 @@ 505 516 elseif s:line1 =~ '\<DTD\s\+XHTML\s' … … 515 526 diff -Naur vim72.orig/src/auto/configure vim72/src/auto/configure 516 527 --- vim72.orig/src/auto/configure 2008-07-24 05:40:36.000000000 -0700 517 +++ vim72/src/auto/configure 2009-02- 15 23:27:04.022228523-0800528 +++ vim72/src/auto/configure 2009-02-22 21:57:36.313067746 -0800 518 529 @@ -16819,21 +16819,29 @@ 519 530 LDFLAGS="$LDFLAGS -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc" … … 556 567 diff -Naur vim72.orig/src/buffer.c vim72/src/buffer.c 557 568 --- vim72.orig/src/buffer.c 2008-08-06 04:00:48.000000000 -0700 558 +++ vim72/src/buffer.c 2009-02- 15 23:28:48.044895935-0800569 +++ vim72/src/buffer.c 2009-02-22 21:58:03.050783349 -0800 559 570 @@ -437,10 +437,6 @@ 560 571 return; … … 663 674 if (itemcnt == 0) 664 675 s = out; 665 @@ -5062,7 +5064,7 @@ 676 @@ -5048,7 +5050,8 @@ 677 */ 678 FOR_ALL_TAB_WINDOWS(tp, win) 679 if (win->w_buffer == buf) 680 - break; 681 + goto win_found; 682 +win_found: 683 if (win != NULL && win->w_llist_ref != NULL) 684 return _("[Location List]"); 685 else 686 @@ -5062,7 +5065,7 @@ 666 687 { 667 688 if (buf->b_sfname != NULL) … … 674 695 diff -Naur vim72.orig/src/configure.in vim72/src/configure.in 675 696 --- vim72.orig/src/configure.in 2008-07-24 05:40:26.000000000 -0700 676 +++ vim72/src/configure.in 2009-02- 15 23:27:04.022228523-0800697 +++ vim72/src/configure.in 2009-02-22 21:57:36.313067746 -0800 677 698 @@ -3152,18 +3152,25 @@ 678 699 dnl But only when making dependencies, cproto and lint don't take "-isystem". … … 709 730 diff -Naur vim72.orig/src/diff.c vim72/src/diff.c 710 731 --- vim72.orig/src/diff.c 2008-03-05 03:16:56.000000000 -0800 711 +++ vim72/src/diff.c 2009-02- 15 23:29:07.186120966-0800732 +++ vim72/src/diff.c 2009-02-22 21:57:51.762059784 -0800 712 733 @@ -8,7 +8,7 @@ 713 734 */ … … 835 856 diff -Naur vim72.orig/src/edit.c vim72/src/edit.c 836 857 --- vim72.orig/src/edit.c 2008-08-06 05:51:17.000000000 -0700 837 +++ vim72/src/edit.c 2009-02- 15 23:29:31.179660846-0800858 +++ vim72/src/edit.c 2009-02-22 21:58:02.962778041 -0800 838 859 @@ -147,6 +147,7 @@ 839 860 static int ins_compl_bs __ARGS((void)); … … 1046 1067 1047 1068 #ifdef FEAT_CINDENT 1048 @@ -8150,7 +8207,7 @@ 1069 @@ -7646,9 +7703,7 @@ 1070 */ 1071 ++no_mapping; 1072 regname = plain_vgetc(); 1073 -#ifdef FEAT_LANGMAP 1074 LANGMAP_ADJUST(regname, TRUE); 1075 -#endif 1076 if (regname == Ctrl_R || regname == Ctrl_O || regname == Ctrl_P) 1077 { 1078 /* Get a third key for literal register insertion */ 1079 @@ -7657,9 +7712,7 @@ 1080 add_to_showcmd_c(literally); 1081 #endif 1082 regname = plain_vgetc(); 1083 -#ifdef FEAT_LANGMAP 1084 LANGMAP_ADJUST(regname, TRUE); 1085 -#endif 1086 } 1087 --no_mapping; 1088 1089 @@ -8150,7 +8203,7 @@ 1049 1090 /* 1050 1091 * If the cursor is on an indent, ^T/^D insert/delete one … … 1055 1096 * autoindent, we support it everywhere. 1056 1097 */ 1057 @@ -8239,7 +829 6,7 @@1098 @@ -8239,7 +8292,7 @@ 1058 1099 * Replace mode */ 1059 1100 if (curwin->w_cursor.lnum != Insstart.lnum … … 1064 1105 else 1065 1106 (void)del_char(FALSE); 1066 @@ -8556,7 +86 13,7 @@1107 @@ -8556,7 +8609,7 @@ 1067 1108 break; 1068 1109 } … … 1075 1116 diff -Naur vim72.orig/src/eval.c vim72/src/eval.c 1076 1117 --- vim72.orig/src/eval.c 2008-08-07 12:37:22.000000000 -0700 1077 +++ vim72/src/eval.c 2009-02- 15 23:29:43.448444754 -08001118 +++ vim72/src/eval.c 2009-02-22 21:58:00.290604274 -0800 1078 1119 @@ -32,6 +32,9 @@ 1079 1120 … … 1964 2005 diff -Naur vim72.orig/src/ex_cmds2.c vim72/src/ex_cmds2.c 1965 2006 --- vim72.orig/src/ex_cmds2.c 2008-07-13 09:18:22.000000000 -0700 1966 +++ vim72/src/ex_cmds2.c 2009-02- 15 23:29:53.533092890-08002007 +++ vim72/src/ex_cmds2.c 2009-02-22 21:58:02.862770777 -0800 1967 2008 @@ -2842,6 +2842,7 @@ 1968 2009 linenr_T save_sourcing_lnum; … … 2057 2098 diff -Naur vim72.orig/src/ex_cmds.c vim72/src/ex_cmds.c 2058 2099 --- vim72.orig/src/ex_cmds.c 2008-08-04 12:15:00.000000000 -0700 2059 +++ vim72/src/ex_cmds.c 2009-02- 15 23:29:58.597415281-08002100 +++ vim72/src/ex_cmds.c 2009-02-22 21:58:02.886772733 -0800 2060 2101 @@ -24,7 +24,7 @@ 2061 2102 static void do_filter __ARGS((linenr_T line1, linenr_T line2, exarg_T *eap, char_u *cmd, int do_in, int do_out)); … … 2237 2278 diff -Naur vim72.orig/src/ex_cmds.h vim72/src/ex_cmds.h 2238 2279 --- vim72.orig/src/ex_cmds.h 2008-06-21 11:47:57.000000000 -0700 2239 +++ vim72/src/ex_cmds.h 2009-02- 15 23:26:29.532020952-08002280 +++ vim72/src/ex_cmds.h 2009-02-22 21:57:28.904593099 -0800 2240 2281 @@ -278,7 +278,7 @@ 2241 2282 EX(CMD_crewind, "crewind", ex_cc, … … 2285 2326 diff -Naur vim72.orig/src/ex_docmd.c vim72/src/ex_docmd.c 2286 2327 --- vim72.orig/src/ex_docmd.c 2008-07-26 04:51:05.000000000 -0700 2287 +++ vim72/src/ex_docmd.c 2009-02- 15 23:29:17.390774968 -08002328 +++ vim72/src/ex_docmd.c 2009-02-22 21:58:02.982779158 -0800 2288 2329 @@ -364,6 +364,7 @@ 2289 2330 # define ex_function ex_ni … … 2329 2370 ex_command(eap) 2330 2371 exarg_T *eap; 2331 @@ -5911,6 +5917,7 @@ 2372 @@ -5910,7 +5916,8 @@ 2373 char_u *q; 2332 2374 2333 2375 char_u *start; 2334 char_u *end; 2376 - char_u *end; 2377 + char_u *end = NULL; 2335 2378 + char_u *ksp; 2336 2379 size_t len, totlen; … … 2502 2545 diff -Naur vim72.orig/src/ex_getln.c vim72/src/ex_getln.c 2503 2546 --- vim72.orig/src/ex_getln.c 2008-08-08 02:31:33.000000000 -0700 2504 +++ vim72/src/ex_getln.c 2009-02- 15 23:27:23.655489034-08002547 +++ vim72/src/ex_getln.c 2009-02-22 21:57:40.525339851 -0800 2505 2548 @@ -31,6 +31,8 @@ 2506 2549 int cmdattr; /* attributes for prompt */ … … 2636 2679 diff -Naur vim72.orig/src/feature.h vim72/src/feature.h 2637 2680 --- vim72.orig/src/feature.h 2008-08-06 04:00:39.000000000 -0700 2638 +++ vim72/src/feature.h 2009-02- 15 23:26:29.532020952-08002681 +++ vim72/src/feature.h 2009-02-22 21:57:28.908593378 -0800 2639 2682 @@ -767,9 +767,13 @@ 2640 2683 … … 2655 2698 diff -Naur vim72.orig/src/fileio.c vim72/src/fileio.c 2656 2699 --- vim72.orig/src/fileio.c 2008-08-06 04:01:03.000000000 -0700 2657 +++ vim72/src/fileio.c 2009-02- 15 23:28:42.524542813-08002700 +++ vim72/src/fileio.c 2009-02-22 21:57:51.674054756 -0800 2658 2701 @@ -932,7 +932,10 @@ 2659 2702 else … … 2885 2928 diff -Naur vim72.orig/src/fold.c vim72/src/fold.c 2886 2929 --- vim72.orig/src/fold.c 2008-08-06 04:01:12.000000000 -0700 2887 +++ vim72/src/fold.c 2009-02- 15 23:28:45.352722167-08002930 +++ vim72/src/fold.c 2009-02-22 21:57:51.682054476 -0800 2888 2931 @@ -48,7 +48,7 @@ 2889 2932 static int foldFind __ARGS((garray_T *gap, linenr_T lnum, fold_T **fpp)); … … 2974 3017 diff -Naur vim72.orig/src/getchar.c vim72/src/getchar.c 2975 3018 --- vim72.orig/src/getchar.c 2008-07-22 09:57:48.000000000 -0700 2976 +++ vim72/src/getchar.c 2009-02-15 23:27:32.644064534 -0800 2977 @@ -4702,7 +4702,7 @@ 3019 +++ vim72/src/getchar.c 2009-02-22 21:58:03.122787819 -0800 3020 @@ -3816,7 +3816,11 @@ 3021 int len = 1; 3022 3023 if (msg_didout || msg_silent != 0) 3024 + { 3025 msg_putchar('\n'); 3026 + if (got_int) /* 'q' typed at MORE prompt */ 3027 + return; 3028 + } 3029 if ((mp->m_mode & (INSERT + CMDLINE)) == INSERT + CMDLINE) 3030 msg_putchar('!'); /* :map! */ 3031 else if (mp->m_mode & INSERT) 3032 @@ -4702,7 +4706,7 @@ 2978 3033 return FAIL; 2979 3034 if (mp->m_noremap != REMAP_YES && fprintf(fd, "nore") < 0) … … 2984 3039 if (buf != NULL && fputs(" <buffer>", fd) < 0) 2985 3040 return FAIL; 2986 @@ -4801,7 +480 1,7 @@3041 @@ -4801,7 +4805,7 @@ 2987 3042 } 2988 3043 if (IS_SPECIAL(c) || modifiers) /* special key */ … … 2995 3050 diff -Naur vim72.orig/src/globals.h vim72/src/globals.h 2996 3051 --- vim72.orig/src/globals.h 2008-07-26 04:53:29.000000000 -0700 2997 +++ vim72/src/globals.h 2009-02- 15 23:28:48.044895935-08003052 +++ vim72/src/globals.h 2009-02-22 21:57:51.694055594 -0800 2998 3053 @@ -1022,6 +1022,7 @@ 2999 3054 #endif … … 3029 3084 diff -Naur vim72.orig/src/gui_at_sb.c vim72/src/gui_at_sb.c 3030 3085 --- vim72.orig/src/gui_at_sb.c 2004-06-07 07:32:25.000000000 -0700 3031 +++ vim72/src/gui_at_sb.c 2009-02- 15 23:27:36.144289425 -08003086 +++ vim72/src/gui_at_sb.c 2009-02-22 21:57:40.637347115 -0800 3032 3087 @@ -1078,6 +1078,12 @@ 3033 3088 Cardinal *num_params; /* unused */ … … 3055 3110 diff -Naur vim72.orig/src/gui.c vim72/src/gui.c 3056 3111 --- vim72.orig/src/gui.c 2008-07-27 12:32:14.000000000 -0700 3057 +++ vim72/src/gui.c 2009-02- 15 23:28:10.986519625-08003112 +++ vim72/src/gui.c 2009-02-22 21:57:40.773355217 -0800 3058 3113 @@ -139,7 +139,7 @@ 3059 3114 /* The read returns when the child closes the pipe (or when … … 3148 3203 diff -Naur vim72.orig/src/gui_gtk_x11.c vim72/src/gui_gtk_x11.c 3149 3204 --- vim72.orig/src/gui_gtk_x11.c 2008-07-04 03:46:24.000000000 -0700 3150 +++ vim72/src/gui_gtk_x11.c 2009-02- 15 23:27:36.148289425 -08003205 +++ vim72/src/gui_gtk_x11.c 2009-02-22 21:57:40.637347115 -0800 3151 3206 @@ -4070,14 +4070,14 @@ 3152 3207 … … 3172 3227 diff -Naur vim72.orig/src/gui_x11.c vim72/src/gui_x11.c 3173 3228 --- vim72.orig/src/gui_x11.c 2008-06-08 08:13:45.000000000 -0700 3174 +++ vim72/src/gui_x11.c 2009-02- 15 23:26:39.688669925-08003229 +++ vim72/src/gui_x11.c 2009-02-22 21:57:28.972599804 -0800 3175 3230 @@ -2450,7 +2450,7 @@ 3176 3231 *colorPtr = colortable[closest]; … … 3184 3239 diff -Naur vim72.orig/src/gui_xmdlg.c vim72/src/gui_xmdlg.c 3185 3240 --- vim72.orig/src/gui_xmdlg.c 2008-06-21 09:05:32.000000000 -0700 3186 +++ vim72/src/gui_xmdlg.c 2009-02- 15 23:27:36.148289425 -08003241 +++ vim72/src/gui_xmdlg.c 2009-02-22 21:57:40.637347115 -0800 3187 3242 @@ -369,10 +369,10 @@ 3188 3243 char buf[TEMP_BUF_SIZE]; … … 3340 3395 diff -Naur vim72.orig/src/gui_xmebw.c vim72/src/gui_xmebw.c 3341 3396 --- vim72.orig/src/gui_xmebw.c 2007-09-06 03:57:51.000000000 -0700 3342 +++ vim72/src/gui_xmebw.c 2009-02- 15 23:27:36.148289425 -08003397 +++ vim72/src/gui_xmebw.c 2009-02-22 21:57:40.637347115 -0800 3343 3398 @@ -1256,7 +1256,7 @@ 3344 3399 } … … 3367 3422 diff -Naur vim72.orig/src/if_cscope.c vim72/src/if_cscope.c 3368 3423 --- vim72.orig/src/if_cscope.c 2008-06-24 09:32:34.000000000 -0700 3369 +++ vim72/src/if_cscope.c 2009-02- 15 23:29:20.378966335-08003424 +++ vim72/src/if_cscope.c 2009-02-22 21:57:57.086400893 -0800 3370 3425 @@ -74,7 +74,7 @@ 3371 3426 { "add", cs_add, … … 3410 3465 diff -Naur vim72.orig/src/if_cscope.h vim72/src/if_cscope.h 3411 3466 --- vim72.orig/src/if_cscope.h 2007-09-02 07:51:08.000000000 -0700 3412 +++ vim72/src/if_cscope.h 2009-02- 15 23:25:07.934792289-08003467 +++ vim72/src/if_cscope.h 2009-02-22 21:57:25.644386646 -0800 3413 3468 @@ -42,17 +42,6 @@ 3414 3469 * f 7name Find this file … … 3431 3486 diff -Naur vim72.orig/src/if_perl.xs vim72/src/if_perl.xs 3432 3487 --- vim72.orig/src/if_perl.xs 2008-07-17 13:55:09.000000000 -0700 3433 +++ vim72/src/if_perl.xs 2009-02- 15 23:28:02.421970945-08003488 +++ vim72/src/if_perl.xs 2009-02-22 21:57:40.757353820 -0800 3434 3489 @@ -136,6 +136,9 @@ 3435 3490 # define Perl_newXS_flags dll_Perl_newXS_flags … … 3482 3537 diff -Naur vim72.orig/src/if_python.c vim72/src/if_python.c 3483 3538 --- vim72.orig/src/if_python.c 2008-07-17 14:09:32.000000000 -0700 3484 +++ vim72/src/if_python.c 2009-02- 15 23:29:02.149800251-08003539 +++ vim72/src/if_python.c 2009-02-22 21:57:51.746058667 -0800 3485 3540 @@ -531,6 +531,12 @@ 3486 3541 if (PythonMod_Init()) … … 3584 3639 diff -Naur vim72.orig/src/if_xcmdsrv.c vim72/src/if_xcmdsrv.c 3585 3640 --- vim72.orig/src/if_xcmdsrv.c 2008-07-18 06:05:03.000000000 -0700 3586 +++ vim72/src/if_xcmdsrv.c 2009-02- 15 23:26:47.873194300-08003641 +++ vim72/src/if_xcmdsrv.c 2009-02-22 21:57:32.260810448 -0800 3587 3642 @@ -736,7 +736,7 @@ 3588 3643 + serverReply.ga_len; … … 3612 3667 p = entry; 3613 3668 continue; 3669 diff -Naur vim72.orig/src/macros.h vim72/src/macros.h 3670 --- vim72.orig/src/macros.h 2007-08-04 04:44:18.000000000 -0700 3671 +++ vim72/src/macros.h 2009-02-22 21:58:02.962778041 -0800 3672 @@ -127,15 +127,31 @@ 3673 #ifdef FEAT_LANGMAP 3674 /* 3675 * Adjust chars in a language according to 'langmap' option. 3676 - * NOTE that there is NO overhead if 'langmap' is not set; but even 3677 - * when set we only have to do 2 ifs and an array lookup. 3678 + * NOTE that there is no noticeable overhead if 'langmap' is not set. 3679 + * When set the overhead for characters < 256 is small. 3680 * Don't apply 'langmap' if the character comes from the Stuff buffer. 3681 * The do-while is just to ignore a ';' after the macro. 3682 */ 3683 -# define LANGMAP_ADJUST(c, condition) do { \ 3684 - if (*p_langmap && (condition) && !KeyStuffed && (c) >= 0 && (c) < 256) \ 3685 - c = langmap_mapchar[c]; \ 3686 +# ifdef FEAT_MBYTE 3687 +# define LANGMAP_ADJUST(c, condition) \ 3688 + do { \ 3689 + if (*p_langmap && (condition) && !KeyStuffed && (c) >= 0) \ 3690 + { \ 3691 + if ((c) < 256) \ 3692 + c = langmap_mapchar[c]; \ 3693 + else \ 3694 + c = langmap_adjust_mb(c); \ 3695 + } \ 3696 } while (0) 3697 +# else 3698 +# define LANGMAP_ADJUST(c, condition) \ 3699 + do { \ 3700 + if (*p_langmap && (condition) && !KeyStuffed && (c) >= 0 && (c) < 256) \ 3701 + c = langmap_mapchar[c]; \ 3702 + } while (0) 3703 +# endif 3704 +#else 3705 +# define LANGMAP_ADJUST(c, condition) /* nop */ 3706 #endif 3707 3708 /* 3614 3709 diff -Naur vim72.orig/src/main.c vim72/src/main.c 3615 3710 --- vim72.orig/src/main.c 2008-07-24 01:40:56.000000000 -0700 3616 +++ vim72/src/main.c 2009-02- 15 23:27:36.148289425-08003711 +++ vim72/src/main.c 2009-02-22 21:57:40.641347674 -0800 3617 3712 @@ -645,11 +645,12 @@ 3618 3713 … … 3676 3771 diff -Naur vim72.orig/src/mark.c vim72/src/mark.c 3677 3772 --- vim72.orig/src/mark.c 2008-08-08 15:06:49.000000000 -0700 3678 +++ vim72/src/mark.c 2009-02- 15 23:26:29.540021232-08003773 +++ vim72/src/mark.c 2009-02-22 21:57:28.912593658 -0800 3679 3774 @@ -1627,15 +1627,17 @@ 3680 3775 … … 3745 3840 diff -Naur vim72.orig/src/mbyte.c vim72/src/mbyte.c 3746 3841 --- vim72.orig/src/mbyte.c 2008-07-14 05:38:05.000000000 -0700 3747 +++ vim72/src/mbyte.c 2009-02- 15 23:27:36.152289705-08003842 +++ vim72/src/mbyte.c 2009-02-22 21:57:40.641347674 -0800 3748 3843 @@ -717,7 +717,7 @@ 3749 3844 * where mblen() returns 0 for invalid character. … … 3827 3922 diff -Naur vim72.orig/src/menu.c vim72/src/menu.c 3828 3923 --- vim72.orig/src/menu.c 2008-06-21 12:53:43.000000000 -0700 3829 +++ vim72/src/menu.c 2009-02- 15 23:25:01.126353959-08003924 +++ vim72/src/menu.c 2009-02-22 21:57:25.620383014 -0800 3830 3925 @@ -1120,6 +1120,7 @@ 3831 3926 parent = menu; … … 3838 3933 diff -Naur vim72.orig/src/message.c vim72/src/message.c 3839 3934 --- vim72.orig/src/message.c 2008-07-09 11:24:55.000000000 -0700 3840 +++ vim72/src/message.c 2009-02-15 23:30:06.305911160 -0800 3841 @@ -3309,7 +3309,10 @@ 3935 +++ vim72/src/message.c 2009-02-22 21:58:03.062784187 -0800 3936 @@ -976,7 +976,7 @@ 3937 } 3938 } 3939 else if (msg_scrolled > Rows - 2 3940 - && (c == 'j' || c == K_DOWN || c == 'd')) 3941 + && (c == 'j' || c == K_DOWN || c == 'd' || c == 'f')) 3942 c = K_IGNORE; 3943 } 3944 } while ((had_got_int && c == Ctrl_C) 3945 @@ -2504,7 +2504,6 @@ 3946 break; 3947 3948 case 'u': /* Up half a page */ 3949 - case K_PAGEUP: 3950 scroll = -(Rows / 2); 3951 break; 3952 3953 @@ -2513,10 +2512,12 @@ 3954 break; 3955 3956 case 'b': /* one page back */ 3957 + case K_PAGEUP: 3958 scroll = -(Rows - 1); 3959 break; 3960 3961 case ' ': /* one extra page */ 3962 + case 'f': 3963 case K_PAGEDOWN: 3964 case K_LEFTMOUSE: 3965 scroll = Rows - 1; 3966 @@ -3309,7 +3310,10 @@ 3842 3967 { 3843 3968 c = gui_mch_dialog(type, title, message, buttons, dfltbutton, … … 3851 3976 /* Flush output to avoid that further messages and redrawing is done 3852 3977 * in the wrong order. */ 3853 @@ -4556,7 +45 59,13 @@3978 @@ -4556,7 +4560,13 @@ 3854 3979 remove_trailing_zeroes = TRUE; 3855 3980 } … … 3866 3991 /* Avoid a buffer overflow */ 3867 3992 strcpy(tmp, "inf"); 3868 @@ -4585,61 +459 4,62 @@3993 @@ -4585,61 +4595,62 @@ 3869 3994 if (remove_trailing_zeroes) 3870 3995 { … … 3952 4077 diff -Naur vim72.orig/src/misc1.c vim72/src/misc1.c 3953 4078 --- vim72.orig/src/misc1.c 2008-07-12 12:20:53.000000000 -0700 3954 +++ vim72/src/misc1.c 2009-02- 15 23:26:29.540021232-08004079 +++ vim72/src/misc1.c 2009-02-22 21:57:28.916594496 -0800 3955 4080 @@ -3245,9 +3245,9 @@ 3956 4081 … … 3967 4092 diff -Naur vim72.orig/src/misc2.c vim72/src/misc2.c 3968 4093 --- vim72.orig/src/misc2.c 2008-07-23 12:12:56.000000000 -0700 3969 +++ vim72/src/misc2.c 2009-02- 15 23:29:09.750285235-08004094 +++ vim72/src/misc2.c 2009-02-22 21:57:51.770060343 -0800 3970 4095 @@ -873,7 +873,7 @@ 3971 4096 /* 3. check for available memory: call mch_avail_mem() */ … … 4048 4173 diff -Naur vim72.orig/src/move.c vim72/src/move.c 4049 4174 --- vim72.orig/src/move.c 2008-07-12 09:26:47.000000000 -0700 4050 +++ vim72/src/move.c 2009-02- 15 23:26:58.897901382-08004175 +++ vim72/src/move.c 2009-02-22 21:57:36.281067746 -0800 4051 4176 @@ -280,18 +280,20 @@ 4052 4177 … … 4096 4221 wp->w_topfill = 0; 4097 4222 #endif 4223 diff -Naur vim72.orig/src/nbdebug.c vim72/src/nbdebug.c 4224 --- vim72.orig/src/nbdebug.c 2008-06-22 08:38:58.000000000 -0700 4225 +++ vim72/src/nbdebug.c 2009-02-22 21:58:03.030781673 -0800 4226 @@ -33,7 +33,6 @@ 4227 u_int nb_dlevel = 0; /* nb_debug verbosity level */ 4228 4229 void nbdb(char *, ...); 4230 -void nbtrace(char *, ...); 4231 4232 static int lookup(char *); 4233 #ifdef USE_NB_ERRORHANDLER 4234 @@ -100,25 +99,6 @@ 4235 } /* end nbdebug_log_init */ 4236 4237 4238 - 4239 - 4240 -void 4241 -nbtrace( 4242 - char *fmt, 4243 - ...) 4244 -{ 4245 - va_list ap; 4246 - 4247 - if (nb_debug!= NULL && (nb_dlevel & (NB_TRACE | NB_TRACE_VERBOSE))) { 4248 - va_start(ap, fmt); 4249 - vfprintf(nb_debug, fmt, ap); 4250 - va_end(ap); 4251 - fflush(nb_debug); 4252 - } 4253 - 4254 -} /* end nbtrace */ 4255 - 4256 - 4257 void 4258 nbdbg( 4259 char *fmt, 4260 @@ -136,23 +116,6 @@ 4261 } /* end nbdbg */ 4262 4263 4264 -void 4265 -nbprt( 4266 - char *fmt, 4267 - ...) 4268 -{ 4269 - va_list ap; 4270 - 4271 - if (nb_debug != NULL && nb_dlevel & NB_PRINT) { 4272 - va_start(ap, fmt); 4273 - vfprintf(nb_debug, fmt, ap); 4274 - va_end(ap); 4275 - fflush(nb_debug); 4276 - } 4277 - 4278 -} /* end nbprt */ 4279 - 4280 - 4281 static int 4282 lookup( 4283 char *file) 4284 diff -Naur vim72.orig/src/nbdebug.h vim72/src/nbdebug.h 4285 --- vim72.orig/src/nbdebug.h 2008-06-22 07:31:50.000000000 -0700 4286 +++ vim72/src/nbdebug.h 2009-02-22 21:58:03.030781673 -0800 4287 @@ -43,8 +43,6 @@ 4288 4289 4290 void nbdbg(char *, ...); 4291 -void nbprt(char *, ...); 4292 -void nbtrace(char *, ...); 4293 4294 void nbdebug_wait __ARGS((u_int wait_flags, char *wait_var, u_int wait_secs)); 4295 void nbdebug_log_init __ARGS((char *log_var, char *level_var)); 4296 @@ -70,19 +68,5 @@ 4297 { 4298 } 4299 4300 -void 4301 -nbprt( 4302 - char *fmt, 4303 - ...) 4304 -{ 4305 -} 4306 - 4307 -void 4308 -nbtrace( 4309 - char *fmt, 4310 - ...) 4311 -{ 4312 -} 4313 - 4314 #endif /* NBDEBUG */ 4315 #endif /* NBDEBUG_H */ 4098 4316 diff -Naur vim72.orig/src/netbeans.c vim72/src/netbeans.c 4099 4317 --- vim72.orig/src/netbeans.c 2008-07-13 09:19:54.000000000 -0700 4100 +++ vim72/src/netbeans.c 2009-02- 15 23:28:48.048896773 -08004318 +++ vim72/src/netbeans.c 2009-02-22 21:58:03.022781673 -0800 4101 4319 @@ -1043,7 +1043,7 @@ 4102 4320 nbdebug(("EVT: %s", buf)); … … 4108 4326 } 4109 4327 4328 @@ -1921,7 +1921,7 @@ 4329 vim_free(path); 4330 if (bufp == NULL) 4331 { 4332 - nbdebug((" File %s not found in setBufferNumber\n", args)); 4333 + nbdebug((" File %s not found in setBufferNumber\n", args)); 4334 EMSG2("E642: File %s not found in setBufferNumber", args); 4335 return FAIL; 4336 } 4110 4337 @@ -2277,9 +2277,6 @@ 4111 4338 int serNum; … … 4134 4361 nbdebug((" partial line annotation -- Not Yet Implemented!\n")); 4135 4362 } 4363 @@ -2321,7 +2315,7 @@ 4364 } 4365 if (pos) 4366 { 4367 - coloncmd(":sign place %d line=%d name=%d buffer=%d", 4368 + coloncmd(":sign place %d line=%ld name=%d buffer=%d", 4369 serNum, pos->lnum, typeNum, buf->bufp->b_fnum); 4370 if (typeNum == curPCtype) 4371 coloncmd(":sign jump %d buffer=%d", serNum, 4372 @@ -2425,7 +2419,7 @@ 4373 GUARDED) == 0) 4374 { 4375 coloncmd( 4376 - ":sign place %d line=%d name=%d buffer=%d", 4377 + ":sign place %d line=%ld name=%d buffer=%d", 4378 guardId++, lnum, GUARDED, 4379 buf->bufp->b_fnum); 4380 } 4136 4381 @@ -2924,44 +2918,26 @@ 4137 4382 } … … 4187 4432 diff -Naur vim72.orig/src/normal.c vim72/src/normal.c 4188 4433 --- vim72.orig/src/normal.c 2008-07-31 13:03:08.000000000 -0700 4189 +++ vim72/src/normal.c 2009-02- 15 23:29:35.431930716-08004434 +++ vim72/src/normal.c 2009-02-22 21:58:02.962778041 -0800 4190 4435 @@ -183,6 +183,8 @@ 4191 4436 static void nv_cursorhold __ARGS((cmdarg_T *cap)); … … 4220 4465 #ifdef FEAT_AUTOCMD 4221 4466 /* Restore counts from before receiving K_CURSORHOLD. This means after 4222 @@ -717,7 +727,15 @@ 4467 @@ -641,10 +651,7 @@ 4468 * Get the command character from the user. 4469 */ 4470 c = safe_vgetc(); 4471 - 4472 -#ifdef FEAT_LANGMAP 4473 LANGMAP_ADJUST(c, TRUE); 4474 -#endif 4475 4476 #ifdef FEAT_VISUAL 4477 /* 4478 @@ -717,7 +724,15 @@ 4223 4479 * command, so that v:count can be used in an expression mapping 4224 4480 * right after the count. */ … … 4237 4493 if (ctrl_w) 4238 4494 { 4239 @@ -804,7 +822,7 @@ 4495 @@ -726,9 +741,7 @@ 4496 } 4497 ++no_zero_mapping; /* don't map zero here */ 4498 c = plain_vgetc(); 4499 -#ifdef FEAT_LANGMAP 4500 LANGMAP_ADJUST(c, TRUE); 4501 -#endif 4502 --no_zero_mapping; 4503 if (ctrl_w) 4504 { 4505 @@ -751,9 +764,7 @@ 4506 ++no_mapping; 4507 ++allow_keys; /* no mapping for nchar, but keys */ 4508 c = plain_vgetc(); /* get next character */ 4509 -#ifdef FEAT_LANGMAP 4510 LANGMAP_ADJUST(c, TRUE); 4511 -#endif 4512 --no_mapping; 4513 --allow_keys; 4514 #ifdef FEAT_CMDL_INFO 4515 @@ -804,7 +815,7 @@ 4240 4516 * Only set v:count when called from main() and not a stuffed command. 4241 4517 */ … … 4246 4522 4247 4523 /* 4248 @@ -1132,7 +1150,8 @@ 4524 @@ -941,9 +952,7 @@ 4525 * "gr", "g'" and "g`". 4526 */ 4527 ca.nchar = plain_vgetc(); 4528 -#ifdef FEAT_LANGMAP 4529 LANGMAP_ADJUST(ca.nchar, TRUE); 4530 -#endif 4531 #ifdef FEAT_CMDL_INFO 4532 need_flushbuf |= add_to_showcmd(ca.nchar); 4533 #endif 4534 @@ -1044,10 +1053,8 @@ 4535 } 4536 #endif 4537 4538 -#ifdef FEAT_LANGMAP 4539 /* adjust chars > 127, except after "tTfFr" commands */ 4540 LANGMAP_ADJUST(*cp, !lang); 4541 -#endif 4542 #ifdef FEAT_RIGHTLEFT 4543 /* adjust Hebrew mapped char */ 4544 if (p_hkmap && lang && KeyTyped) 4545 @@ -1132,7 +1139,8 @@ 4249 4546 out_flush(); 4250 4547 #endif … … 4256 4553 4257 4554 State = NORMAL; 4258 @@ -3509,7 +35 28,7 @@4555 @@ -3509,7 +3517,7 @@ 4259 4556 if (find_type & FIND_STRING) 4260 4557 EMSG(_("E348: No string under cursor")); … … 4265 4562 } 4266 4563 ptr += col; 4267 @@ -5469,6 +5488,20 @@ 4564 @@ -4611,9 +4619,7 @@ 4565 ++no_mapping; 4566 ++allow_keys; /* no mapping for nchar, but allow key codes */ 4567 nchar = plain_vgetc(); 4568 -#ifdef FEAT_LANGMAP 4569 LANGMAP_ADJUST(nchar, TRUE); 4570 -#endif 4571 --no_mapping; 4572 --allow_keys; 4573 #ifdef FEAT_CMDL_INFO 4574 @@ -4969,9 +4975,7 @@ 4575 ++no_mapping; 4576 ++allow_keys; /* no mapping for nchar, but allow key codes */ 4577 nchar = plain_vgetc(); 4578 -#ifdef FEAT_LANGMAP 4579 LANGMAP_ADJUST(nchar, TRUE); 4580 -#endif 4581 --no_mapping; 4582 --allow_keys; 4583 #ifdef FEAT_CMDL_INFO 4584 @@ -5469,6 +5473,20 @@ 4268 4585 STRCPY(buf, "he! "); 4269 4586 else … … 4286 4603 * really what we want? */ 4287 4604 isman = (STRCMP(kp, "man") == 0); 4288 @@ -5511,37 +55 44,59 @@4605 @@ -5511,37 +5529,59 @@ 4289 4606 /* 4290 4607 * Now grab the chars in the identifier … … 4325 4642 + vim_free(buf); 4326 4643 + return; 4327 4644 + } 4328 4645 + buf = (char_u *)vim_realloc(buf, STRLEN(buf) + STRLEN(p) + 1); 4329 4646 + if (buf == NULL) … … 4332 4649 + vim_free(p); 4333 4650 + return; 4334 +}4651 } 4335 4652 + STRCAT(buf, p); 4336 4653 + vim_free(p); … … 4373 4690 /* 4374 4691 * Execute the command. 4375 @@ -6728,6 +67 83,8 @@4692 @@ -6728,6 +6768,8 @@ 4376 4693 /* Visual mode "r" */ 4377 4694 if (VIsual_active) … … 4382 4699 return; 4383 4700 } 4384 @@ -7784,7 +78 41,7 @@4701 @@ -7784,7 +7826,7 @@ 4385 4702 else 4386 4703 i = curwin->w_leftcol; … … 4393 4710 diff -Naur vim72.orig/src/ops.c vim72/src/ops.c 4394 4711 --- vim72.orig/src/ops.c 2008-06-21 13:08:59.000000000 -0700 4395 +++ vim72/src/ops.c 2009-02- 15 23:28:04.942134376-08004712 +++ vim72/src/ops.c 2009-02-22 21:57:40.765356613 -0800 4396 4713 @@ -2209,12 +2209,15 @@ 4397 4714 { … … 4414 4731 diff -Naur vim72.orig/src/option.c vim72/src/option.c 4415 4732 --- vim72.orig/src/option.c 2008-07-18 06:05:33.000000000 -0700 4416 +++ vim72/src/option.c 2009-02- 15 23:30:11.834265120 -08004733 +++ vim72/src/option.c 2009-02-22 21:58:02.966778320 -0800 4417 4734 @@ -2593,13 +2593,13 @@ 4418 4735 #ifdef FEAT_VIMINFO … … 4683 5000 key = 0; 4684 5001 } 5002 @@ -10093,25 +10153,110 @@ 5003 5004 #ifdef FEAT_LANGMAP 5005 /* 5006 - * Any character has an equivalent character. This is used for keyboards that 5007 - * have a special language mode that sends characters above 128 (although 5008 - * other characters can be translated too). 5009 + * Any character has an equivalent 'langmap' character. This is used for 5010 + * keyboards that have a special language mode that sends characters above 5011 + * 128 (although other characters can be translated too). The "to" field is a 5012 + * Vim command character. This avoids having to switch the keyboard back to 5013 + * ASCII mode when leaving Insert mode. 5014 + * 5015 + * langmap_mapchar[] maps any of 256 chars to an ASCII char used for Vim 5016 + * commands. 5017 + * When FEAT_MBYTE is defined langmap_mapga.ga_data is a sorted table of 5018 + * langmap_entry_T. This does the same as langmap_mapchar[] for characters >= 5019 + * 256. 5020 + */ 5021 +# ifdef FEAT_MBYTE 5022 +/* 5023 + * With multi-byte support use growarray for 'langmap' chars >= 256 5024 */ 5025 +typedef struct 5026 +{ 5027 + int from; 5028 + int to; 5029 +} langmap_entry_T; 5030 + 5031 +static garray_T langmap_mapga; 5032 +static void langmap_set_entry __ARGS((int from, int to)); 5033 5034 /* 5035 - * char_u langmap_mapchar[256]; 5036 - * Normally maps each of the 128 upper chars to an <128 ascii char; used to 5037 - * "translate" native lang chars in normal mode or some cases of 5038 - * insert mode without having to tediously switch lang mode back&forth. 5039 + * Search for an entry in "langmap_mapga" for "from". If found set the "to" 5040 + * field. If not found insert a new entry at the appropriate location. 5041 */ 5042 + static void 5043 +langmap_set_entry(from, to) 5044 + int from; 5045 + int to; 5046 +{ 5047 + langmap_entry_T *entries = (langmap_entry_T *)(langmap_mapga.ga_data); 5048 + int a = 0; 5049 + int b = langmap_mapga.ga_len; 5050 + 5051 + /* Do a binary search for an existing entry. */ 5052 + while (a != b) 5053 + { 5054 + int i = (a + b) / 2; 5055 + int d = entries[i].from - from; 5056 + 5057 + if (d == 0) 5058 + { 5059 + entries[i].to = to; 5060 + return; 5061 + } 5062 + if (d < 0) 5063 + a = i + 1; 5064 + else 5065 + b = i; 5066 + } 5067 + 5068 + if (ga_grow(&langmap_mapga, 1) != OK) 5069 + return; /* out of memory */ 5070 + 5071 + /* insert new entry at position "a" */ 5072 + entries = (langmap_entry_T *)(langmap_mapga.ga_data) + a; 5073 + mch_memmove(entries + 1, entries, 5074 + (langmap_mapga.ga_len - a) * sizeof(langmap_entry_T)); 5075 + ++langmap_mapga.ga_len; 5076 + entries[0].from = from; 5077 + entries[0].to = to; 5078 +} 5079 + 5080 +/* 5081 + * Apply 'langmap' to multi-byte character "c" and return the result. 5082 + */ 5083 + int 5084 +langmap_adjust_mb(c) 5085 + int c; 5086 +{ 5087 + langmap_entry_T *entries = (langmap_entry_T *)(langmap_mapga.ga_data); 5088 + int a = 0; 5089 + int b = langmap_mapga.ga_len; 5090 + 5091 + while (a != b) 5092 + { 5093 + int i = (a + b) / 2; 5094 + int d = entries[i].from - c; 5095 + 5096 + if (d == 0) 5097 + return entries[i].to; /* found matching entry */ 5098 + if (d < 0) 5099 + a = i + 1; 5100 + else 5101 + b = i; 5102 + } 5103 + return c; /* no entry found, return "c" unmodified */ 5104 +} 5105 +# endif 5106 5107 static void 5108 langmap_init() 5109 { 5110 int i; 5111 5112 - for (i = 0; i < 256; i++) /* we init with a-one-to one map */ 5113 - langmap_mapchar[i] = i; 5114 + for (i = 0; i < 256; i++) 5115 + langmap_mapchar[i] = i; /* we init with a one-to-one map */ 5116 +# ifdef FEAT_MBYTE 5117 + ga_init2(&langmap_mapga, sizeof(langmap_entry_T), 8); 5118 +# endif 5119 } 5120 5121 /* 5122 @@ -10125,7 +10270,10 @@ 5123 char_u *p2; 5124 int from, to; 5125 5126 - langmap_init(); /* back to one-to-one map first */ 5127 +#ifdef FEAT_MBYTE 5128 + ga_clear(&langmap_mapga); /* clear the previous map first */ 5129 +#endif 5130 + langmap_init(); /* back to one-to-one map */ 5131 5132 for (p = p_langmap; p[0] != NUL; ) 5133 { 5134 @@ -10175,7 +10323,13 @@ 5135 transchar(from)); 5136 return; 5137 } 5138 - langmap_mapchar[from & 255] = to; 5139 + 5140 +#ifdef FEAT_MBYTE 5141 + if (from >= 256) 5142 + langmap_set_entry(from, to); 5143 + else 5144 +#endif 5145 + langmap_mapchar[from & 255] = to; 5146 5147 /* Advance to next pair */ 5148 mb_ptr_adv(p); 4685 5149 diff -Naur vim72.orig/src/os_unix.c vim72/src/os_unix.c 4686 5150 --- vim72.orig/src/os_unix.c 2008-08-06 04:01:40.000000000 -0700 4687 +++ vim72/src/os_unix.c 2009-02- 15 23:29:40.908282162 -08005151 +++ vim72/src/os_unix.c 2009-02-22 21:58:03.102786422 -0800 4688 5152 @@ -315,12 +315,15 @@ 4689 5153 {-1, "Unknown!", FALSE} … … 4795 5259 # endif 4796 5260 } 4797 @@ -4158,7 +4172,8 @@ 5261 @@ -4078,6 +4092,9 @@ 5262 int fromshell_fd; 5263 garray_T ga; 5264 int noread_cnt; 5265 +# if defined(HAVE_GETTIMEOFDAY) && defined(HAVE_SYS_TIME_H) 5266 + struct timeval start_tv; 5267 +# endif 5268 5269 # ifdef FEAT_GUI 5270 if (pty_master_fd >= 0) 5271 @@ -4158,7 +4175,8 @@ 4798 5272 && (lnum != 4799 5273 curbuf->b_ml.ml_line_count … … 4805 5279 if (lnum > curbuf->b_op_end.lnum) 4806 5280 { 4807 @@ -6814,7 +6829,8 @@ 5281 @@ -4186,7 +4204,9 @@ 5282 ga_init2(&ga, 1, BUFLEN); 5283 5284 noread_cnt = 0; 5285 - 5286 +# if defined(HAVE_GETTIMEOFDAY) && defined(HAVE_SYS_TIME_H) 5287 + gettimeofday(&start_tv, NULL); 5288 +# endif 5289 for (;;) 5290 { 5291 /* 5292 @@ -4199,25 +4219,34 @@ 5293 * that a typed password is echoed for ssh or gpg command. 5294 * Don't get characters when the child has already 5295 * finished (wait_pid == 0). 5296 - * Don't get extra characters when we already have one. 5297 * Don't read characters unless we didn't get output for a 5298 - * while, avoids that ":r !ls" eats typeahead. 5299 + * while (noread_cnt > 4), avoids that ":r !ls" eats 5300 + * typeahead. 5301 */ 5302 len = 0; 5303 if (!(options & SHELL_EXPAND) 5304 && ((options & 5305 (SHELL_READ|SHELL_WRITE|SHELL_COOKED)) 5306 != (SHELL_READ|SHELL_WRITE|SHELL_COOKED) 5307 -#ifdef FEAT_GUI 5308 +# ifdef FEAT_GUI 5309 || gui.in_use 5310 -#endif 5311 +# endif 5312 ) 5313 && wait_pid == 0 5314 - && (ta_len > 0 5315 - || (noread_cnt > 4 5316 - && (len = ui_inchar(ta_buf, 5317 - BUFLEN, 10L, 0)) > 0))) 5318 + && (ta_len > 0 || noread_cnt > 4)) 5319 { 5320 + if (ta_len == 0) 5321 + { 5322 + /* Get extra characters when we don't have any. 5323 + * Reset the counter and timer. */ 5324 + noread_cnt = 0; 5325 +# if defined(HAVE_GETTIMEOFDAY) && defined(HAVE_SYS_TIME_H) 5326 + gettimeofday(&start_tv, NULL); 5327 +# endif 5328 + len = ui_inchar(ta_buf, BUFLEN, 10L, 0); 5329 + } 5330 + if (ta_len > 0 || len > 0) 5331 + { 5332 /* 5333 * For pipes: 5334 * Check for CTRL-C: send interrupt signal to child. 5335 @@ -4319,9 +4348,9 @@ 5336 { 5337 ta_len -= len; 5338 mch_memmove(ta_buf, ta_buf + len, ta_len); 5339 - noread_cnt = 0; 5340 } 5341 } 5342 + } 5343 } 5344 5345 if (got_int) 5346 @@ -4429,6 +4458,25 @@ 5347 out_flush(); 5348 if (got_int) 5349 break; 5350 + 5351 +# if defined(HAVE_GETTIMEOFDAY) && defined(HAVE_SYS_TIME_H) 5352 + { 5353 + struct timeval now_tv; 5354 + long msec; 5355 + 5356 + /* Avoid that we keep looping here without 5357 + * checking for a CTRL-C for a long time. Don't 5358 + * break out too often to avoid losing typeahead. */ 5359 + gettimeofday(&now_tv, NULL); 5360 + msec = (now_tv.tv_sec - start_tv.tv_sec) * 1000L 5361 + + (now_tv.tv_usec - start_tv.tv_usec) / 1000L; 5362 + if (msec > 2000) 5363 + { 5364 + noread_cnt = 5; 5365 + break; 5366 + } 5367 + } 5368 +# endif 5369 } 5370 5371 /* If we already detected the child has finished break the 5372 @@ -6814,7 +6862,8 @@ 4808 5373 if (xsmp_icefd != -1) 4809 5374 { … … 4817 5382 diff -Naur vim72.orig/src/proto/eval.pro vim72/src/proto/eval.pro 4818 5383 --- vim72.orig/src/proto/eval.pro 2008-08-09 07:31:25.000000000 -0700 4819 +++ vim72/src/proto/eval.pro 2009-02- 15 23:27:14.702915211-08005384 +++ vim72/src/proto/eval.pro 2009-02-22 21:57:36.373071657 -0800 4820 5385 @@ -17,7 +17,7 @@ 4821 5386 int eval_to_bool __ARGS((char_u *arg, int *error, char_u **nextcmd, int skip)); … … 4859 5424 diff -Naur vim72.orig/src/proto/ex_cmds.pro vim72/src/proto/ex_cmds.pro 4860 5425 --- vim72.orig/src/proto/ex_cmds.pro 2008-08-09 07:31:25.000000000 -0700 4861 +++ vim72/src/proto/ex_cmds.pro 2009-02- 15 23:26:29.540021232-08005426 +++ vim72/src/proto/ex_cmds.pro 2009-02-22 21:57:28.916594496 -0800 4862 5427 @@ -11,7 +11,7 @@ 4863 5428 char_u *make_filter_cmd __ARGS((char_u *cmd, char_u *itmp, char_u *otmp)); … … 4871 5436 diff -Naur vim72.orig/src/proto/ex_getln.pro vim72/src/proto/ex_getln.pro 4872 5437 --- vim72.orig/src/proto/ex_getln.pro 2008-08-09 07:31:28.000000000 -0700 4873 +++ vim72/src/proto/ex_getln.pro 2009-02- 15 23:27:23.655489034-08005438 +++ vim72/src/proto/ex_getln.pro 2009-02-22 21:57:40.525339851 -0800 4874 5439 @@ -31,7 +31,7 @@ 4875 5440 void set_cmd_context __ARGS((expand_T *xp, char_u *str, int len, int col)); … … 4883 5448 diff -Naur vim72.orig/src/proto/mark.pro vim72/src/proto/mark.pro 4884 5449 --- vim72.orig/src/proto/mark.pro 2008-08-09 07:31:36.000000000 -0700 4885 +++ vim72/src/proto/mark.pro 2009-02- 15 23:26:29.540021232-08005450 +++ vim72/src/proto/mark.pro 2009-02-22 21:57:28.916594496 -0800 4886 5451 @@ -26,5 +26,5 @@ 4887 5452 void write_viminfo_filemarks __ARGS((FILE *fp)); … … 4893 5458 diff -Naur vim72.orig/src/proto/misc2.pro vim72/src/proto/misc2.pro 4894 5459 --- vim72.orig/src/proto/misc2.pro 2008-08-09 07:31:40.000000000 -0700 4895 +++ vim72/src/proto/misc2.pro 2009-02- 15 23:28:32.423895795-08005460 +++ vim72/src/proto/misc2.pro 2009-02-22 21:57:46.089694370 -0800 4896 5461 @@ -59,7 +59,7 @@ 4897 5462 int handle_x_keys __ARGS((int key)); … … 4905 5470 diff -Naur vim72.orig/src/proto/netbeans.pro vim72/src/proto/netbeans.pro 4906 5471 --- vim72.orig/src/proto/netbeans.pro 2008-08-09 07:31:56.000000000 -0700 4907 +++ vim72/src/proto/netbeans.pro 2009-02- 15 23:28:48.048896773 -08005472 +++ vim72/src/proto/netbeans.pro 2009-02-22 21:57:51.698055873 -0800 4908 5473 @@ -11,7 +11,7 @@ 4909 5474 void netbeans_frame_moved __ARGS((int new_x, int new_y)); … … 4915 5480 void netbeans_removed __ARGS((buf_T *bufp, linenr_T linenr, colnr_T col, long len)); 4916 5481 void netbeans_unmodified __ARGS((buf_T *bufp)); 5482 diff -Naur vim72.orig/src/proto/option.pro vim72/src/proto/option.pro 5483 --- vim72.orig/src/proto/option.pro 2008-08-09 07:31:43.000000000 -0700 5484 +++ vim72/src/proto/option.pro 2009-02-22 21:58:02.966778320 -0800 5485 @@ -44,6 +44,7 @@ 5486 void set_context_in_set_cmd __ARGS((expand_T *xp, char_u *arg, int opt_flags)); 5487 int ExpandSettings __ARGS((expand_T *xp, regmatch_T *regmatch, int *num_file, char_u ***file)); 5488 int ExpandOldSetting __ARGS((int *num_file, char_u ***file)); 5489 +int langmap_adjust_mb __ARGS((int c)); 5490 int has_format_option __ARGS((int x)); 5491 int shortmess __ARGS((int x)); 5492 void vimrc_found __ARGS((char_u *fname, char_u *envname)); 4917 5493 diff -Naur vim72.orig/src/pty.c vim72/src/pty.c 4918 5494 --- vim72.orig/src/pty.c 2008-06-21 11:52:58.000000000 -0700 4919 +++ vim72/src/pty.c 2009-02- 15 23:24:57.546124598-08005495 +++ vim72/src/pty.c 2009-02-22 21:57:25.600383852 -0800 4920 5496 @@ -270,9 +270,10 @@ 4921 5497 } … … 4931 5507 int 4932 5508 OpenPTY(ttyn) 5509 diff -Naur vim72.orig/src/quickfix.c vim72/src/quickfix.c 5510 --- vim72.orig/src/quickfix.c 2008-07-18 05:53:02.000000000 -0700 5511 +++ vim72/src/quickfix.c 2009-02-22 21:58:03.086785863 -0800 5512 @@ -1419,6 +1419,7 @@ 5513 int opened_window = FALSE; 5514 win_T *win; 5515 win_T *altwin; 5516 + int flags; 5517 #endif 5518 int print_message = TRUE; 5519 int len; 5520 @@ -1530,7 +1531,6 @@ 5521 if (qf_ptr->qf_type == 1 && (!curwin->w_buffer->b_help || cmdmod.tab != 0)) 5522 { 5523 win_T *wp; 5524 - int n; 5525 5526 if (cmdmod.tab != 0) 5527 wp = NULL; 5528 @@ -1546,13 +1546,16 @@ 5529 * Split off help window; put it at far top if no position 5530 * specified, the current window is vertically split and narrow. 5531 */ 5532 - n = WSP_HELP; 5533 + flags = WSP_HELP; 5534 # ifdef FEAT_VERTSPLIT 5535 if (cmdmod.split == 0 && curwin->w_width != Columns 5536 && curwin->w_width < 80) 5537 - n |= WSP_TOP; 5538 + flags |= WSP_TOP; 5539 # endif 5540 - if (win_split(0, n) == FAIL) 5541 + if (qi != &ql_info) 5542 + flags |= WSP_NEWLOC; /* don't copy the location list */ 5543 + 5544 + if (win_split(0, flags) == FAIL) 5545 goto theend; 5546 opened_window = TRUE; /* close it when fail */ 5547 5548 @@ -1562,7 +1565,6 @@ 5549 if (qi != &ql_info) /* not a quickfix list */ 5550 { 5551 /* The new window should use the supplied location list */ 5552 - qf_free_all(curwin); 5553 curwin->w_llist = qi; 5554 qi->qf_refcount++; 5555 } 5556 @@ -1609,10 +1611,11 @@ 5557 { 5558 goto_tabpage_win(tp, wp); 5559 usable_win = 1; 5560 - break; 5561 + goto win_found; 5562 } 5563 } 5564 } 5565 +win_found: 5566 5567 /* 5568 * If there is only one window and it is the quickfix window, create a 5569 @@ -1622,7 +1625,10 @@ 5570 { 5571 ll_ref = curwin->w_llist_ref; 5572 5573 - if (win_split(0, WSP_ABOVE) == FAIL) 5574 + flags = WSP_ABOVE; 5575 + if (ll_ref != NULL) 5576 + flags |= WSP_NEWLOC; 5577 + if (win_split(0, flags) == FAIL) 5578 goto failed; /* not enough room for window */ 5579 opened_window = TRUE; /* close it when fail */ 5580 p_swb = empty_option; /* don't split again */ 5581 @@ -1634,7 +1640,6 @@ 5582 { 5583 /* The new window should use the location list from the 5584 * location list window */ 5585 - qf_free_all(curwin); 5586 curwin->w_llist = ll_ref; 5587 ll_ref->qf_refcount++; 5588 } 5589 @@ -2307,15 +2312,12 @@ 5590 if (eap->cmdidx == CMD_copen || eap->cmdidx == CMD_cwindow) 5591 /* Create the new window at the very bottom. */ 5592 win_goto(lastwin); 5593 - if (win_split(height, WSP_BELOW) == FAIL) 5594 + if (win_split(height, WSP_BELOW | WSP_NEWLOC) == FAIL) 5595 return; /* not enough room for window */ 5596 #ifdef FEAT_SCROLLBIND 5597 curwin->w_p_scb = FALSE; 5598 #endif 5599 5600 - /* Remove the location list for the quickfix window */ 5601 - qf_free_all(curwin); 5602 - 5603 if (eap->cmdidx == CMD_lopen || eap->cmdidx == CMD_lwindow) 5604 { 5605 /* 5606 diff -Naur vim72.orig/src/regexp.c vim72/src/regexp.c 5607 --- vim72.orig/src/regexp.c 2008-08-07 12:58:50.000000000 -0700 5608 +++ vim72/src/regexp.c 2009-02-22 21:58:03.014779438 -0800 5609 @@ -4532,7 +4532,7 @@ 5610 cleanup_subexpr(); 5611 if (!REG_MULTI) /* Single-line regexp */ 5612 { 5613 - if (reg_endp[no] == NULL) 5614 + if (reg_startp[no] == NULL || reg_endp[no] == NULL) 5615 { 5616 /* Backref was not set: Match an empty string. */ 5617 len = 0; 5618 @@ -4548,7 +4548,7 @@ 5619 } 5620 else /* Multi-line regexp */ 5621 { 5622 - if (reg_endpos[no].lnum < 0) 5623 + if (reg_startpos[no].lnum < 0 || reg_endpos[no].lnum < 0) 5624 { 5625 /* Backref was not set: Match an empty string. */ 5626 len = 0; 5627 @@ -7279,13 +7279,11 @@ 5628 } 5629 else 5630 { 5631 - if (submatch_match->endp[no] == NULL) 5632 + s = submatch_match->startp[no]; 5633 + if (s == NULL || submatch_match->endp[no] == NULL) 5634 retval = NULL; 5635 else 5636 - { 5637 - s = submatch_match->startp[no]; 5638 retval = vim_strnsave(s, (int)(submatch_match->endp[no] - s)); 5639 - } 5640 } 5641 5642 return retval; 4933 5643 diff -Naur vim72.orig/src/screen.c vim72/src/screen.c 4934 5644 --- vim72.orig/src/screen.c 2008-07-24 07:45:07.000000000 -0700 4935 +++ vim72/src/screen.c 2009-02- 15 23:26:05.654490571-08005645 +++ vim72/src/screen.c 2009-02-22 21:58:03.114787819 -0800 4936 5646 @@ -2439,9 +2439,17 @@ 4937 5647 … … 4955 5665 4956 5666 SCREEN_LINE(row + W_WINROW(wp), W_WINCOL(wp), (int)W_WIDTH(wp), 5667 @@ -2588,6 +2596,7 @@ 5668 int noinvcur = FALSE; /* don't invert the cursor */ 5669 #ifdef FEAT_VISUAL 5670 pos_T *top, *bot; 5671 + int lnum_in_visual_area = FALSE; 5672 #endif 5673 pos_T pos; 5674 long v; 5675 @@ -2784,9 +2793,10 @@ 5676 top = &VIsual; 5677 bot = &curwin->w_cursor; 5678 } 5679 + lnum_in_visual_area = (lnum >= top->lnum && lnum <= bot->lnum); 5680 if (VIsual_mode == Ctrl_V) /* block mode */ 5681 { 5682 - if (lnum >= top->lnum && lnum <= bot->lnum) 5683 + if (lnum_in_visual_area) 5684 { 5685 fromcol = wp->w_old_cursor_fcol; 5686 tocol = wp->w_old_cursor_lcol; 5687 @@ -3412,6 +3422,7 @@ 5688 && (*mb_ptr2cells)(ptr) > 1) 5689 #endif 5690 || ((int)vcol_prev == fromcol_prev 5691 + && vcol_prev < vcol /* not at margin */ 5692 && vcol < tocol)) 5693 area_attr = attr; /* start highlighting */ 5694 else if (area_attr != 0 5695 @@ -4549,7 +4560,8 @@ 5696 * highlight the cursor position itself. */ 5697 if (wp->w_p_cuc && vcol == (long)wp->w_virtcol 5698 && lnum != wp->w_cursor.lnum 5699 - && draw_state == WL_LINE) 5700 + && draw_state == WL_LINE 5701 + && !lnum_in_visual_area) 5702 { 5703 vcol_save_attr = char_attr; 5704 char_attr = hl_combine_attr(char_attr, hl_attr(HLF_CUC)); 5705 @@ -6350,7 +6362,7 @@ 5706 && c == 0x8e 5707 && ScreenLines2[off] != ptr[1]) 5708 || (enc_utf8 5709 - && (ScreenLinesUC[off] != (u8char_T)u8c 5710 + && (ScreenLinesUC[off] != (u8char_T)(c >= 0x80 ? u8c : 0) 5711 || screen_comp_differs(off, u8cc))) 5712 #endif 5713 || ScreenAttrs[off] != attr 5714 @@ -7356,7 +7368,11 @@ 5715 #endif 5716 static int entered = FALSE; /* avoid recursiveness */ 5717 static int done_outofmem_msg = FALSE; /* did outofmem message */ 5718 +#ifdef FEAT_AUTOCMD 5719 + int retry_count = 0; 5720 5721 +retry: 5722 +#endif 5723 /* 5724 * Allocation of the screen buffers is done only when the size changes and 5725 * when Rows and Columns have been set and we have started doing full 5726 @@ -7440,10 +7456,13 @@ 5727 { 5728 outofmem = TRUE; 5729 #ifdef FEAT_WINDOWS 5730 - break; 5731 + goto give_up; 5732 #endif 5733 } 5734 } 5735 +#ifdef FEAT_WINDOWS 5736 +give_up: 5737 +#endif 5738 5739 #ifdef FEAT_MBYTE 5740 for (i = 0; i < p_mco; ++i) 5741 @@ -7628,8 +7647,17 @@ 5742 --RedrawingDisabled; 5743 5744 #ifdef FEAT_AUTOCMD 5745 - if (starting == 0) 5746 + /* 5747 + * Do not apply autocommands more than 3 times to avoid an endless loop 5748 + * in case applying autocommands always changes Rows or Columns. 5749 + */ 5750 + if (starting == 0 && ++retry_count <= 3) 5751 + { 5752 apply_autocmds(EVENT_VIMRESIZED, NULL, NULL, FALSE, curbuf); 5753 + /* In rare cases, autocommands may have altered Rows or Columns, 5754 + * jump back to check if we need to allocate the screen again. */ 5755 + goto retry; 5756 + } 5757 #endif 5758 } 5759 4957 5760 diff -Naur vim72.orig/src/spell.c vim72/src/spell.c 4958 5761 --- vim72.orig/src/spell.c 2008-07-12 12:20:55.000000000 -0700 4959 +++ vim72/src/spell.c 2009-02- 15 23:30:03.705744656-08005762 +++ vim72/src/spell.c 2009-02-22 21:58:02.914775247 -0800 4960 5763 @@ -77,7 +77,7 @@ 4961 5764 … … 5828 6631 diff -Naur vim72.orig/src/structs.h vim72/src/structs.h 5829 6632 --- vim72.orig/src/structs.h 2008-07-30 13:02:50.000000000 -0700 5830 +++ vim72/src/structs.h 2009-02- 15 23:26:58.897901382-08006633 +++ vim72/src/structs.h 2009-02-22 21:57:36.281067746 -0800 5831 6634 @@ -459,7 +459,7 @@ 5832 6635 typedef struct … … 5857 6660 diff -Naur vim72.orig/src/tag.c vim72/src/tag.c 5858 6661 --- vim72.orig/src/tag.c 2008-07-16 14:31:30.000000000 -0700 5859 +++ vim72/src/tag.c 2009-02- 15 23:28:59.441624807-08006662 +++ vim72/src/tag.c 2009-02-22 21:58:03.130788378 -0800 5860 6663 @@ -515,7 +515,7 @@ 5861 6664 * If a count is supplied to the ":tag <name>" command, then … … 5867 6670 5868 6671 if (type == DT_SELECT || type == DT_JUMP 5869 @@ -2725,7 +2725,24 @@ 6672 @@ -618,7 +618,7 @@ 6673 taglen_advance(taglen); 6674 MSG_PUTS_ATTR(_("file\n"), hl_attr(HLF_T)); 6675 6676 - for (i = 0; i < num_matches; ++i) 6677 + for (i = 0; i < num_matches && !got_int; ++i) 6678 { 6679 parse_match(matches[i], &tagp); 6680 if (!new_tag && ( 6681 @@ -655,6 +655,8 @@ 6682 } 6683 if (msg_col > 0) 6684 msg_putchar('\n'); 6685 + if (got_int) 6686 + break; 6687 msg_advance(15); 6688 6689 /* print any extra fields */ 6690 @@ -689,6 +691,8 @@ 6691 if (msg_col + ptr2cells(p) >= Columns) 6692 { 6693 msg_putchar('\n'); 6694 + if (got_int) 6695 + break; 6696 msg_advance(15); 6697 } 6698 p = msg_outtrans_one(p, attr); 6699 @@ -704,6 +708,8 @@ 6700 if (msg_col > 15) 6701 { 6702 msg_putchar('\n'); 6703 + if (got_int) 6704 + break; 6705 msg_advance(15); 6706 } 6707 } 6708 @@ -734,6 +740,8 @@ 6709 { 6710 if (msg_col + (*p == TAB ? 1 : ptr2cells(p)) > Columns) 6711 msg_putchar('\n'); 6712 + if (got_int) 6713 + break; 6714 msg_advance(15); 6715 6716 /* skip backslash used for escaping command char */ 6717 @@ -760,12 +768,9 @@ 6718 if (msg_col) 6719 msg_putchar('\n'); 6720 ui_breakcheck(); 6721 - if (got_int) 6722 - { 6723 - got_int = FALSE; /* only stop the listing */ 6724 - break; 6725 - } 6726 } 6727 + if (got_int) 6728 + got_int = FALSE; /* only stop the listing */ 6729 ask_for_selection = TRUE; 6730 } 6731 #if defined(FEAT_QUICKFIX) && defined(FEAT_EVAL) 6732 @@ -2542,6 +2547,15 @@ 6733 { 6734 ga_clear_strings(&tag_fnames); 6735 do_tag(NULL, DT_FREE, 0, 0, 0); 6736 + tag_freematch(); 6737 + 6738 +# if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX) 6739 + if (ptag_entry.tagname) 6740 + { 6741 + vim_free(ptag_entry.tagname); 6742 + ptag_entry.tagname = NULL; 6743 + } 6744 +# endif 6745 } 6746 #endif 6747 6748 @@ -2725,7 +2739,24 @@ 5870 6749 */ 5871 6750 p_7f = vim_strchr(lbuf, 0x7f); … … 5892 6771 /* Find ^A. If not found the line number is after the 0x7f */ 5893 6772 p = vim_strchr(p_7f, Ctrl_A); 5894 @@ -2735,7 +27 52,7 @@6773 @@ -2735,7 +2766,7 @@ 5895 6774 ++p; 5896 6775 … … 5901 6780 5902 6781 5903 @@ -2749,7 +27 66,7 @@6782 @@ -2749,7 +2780,7 @@ 5904 6783 /* find end of tagname */ 5905 6784 for (p = p_7f - 1; !vim_iswordc(*p); --p) … … 5912 6791 diff -Naur vim72.orig/src/term.c vim72/src/term.c 5913 6792 --- vim72.orig/src/term.c 2008-07-27 04:48:06.000000000 -0700 5914 +++ vim72/src/term.c 2009-02- 15 23:29:04.669961167-08006793 +++ vim72/src/term.c 2009-02-22 21:57:51.754057829 -0800 5915 6794 @@ -4920,7 +4920,15 @@ 5916 6795 key_name[0] = KEY2TERMCAP0(key); … … 5932 6811 diff -Naur vim72.orig/src/testdir/Makefile vim72/src/testdir/Makefile 5933 6812 --- vim72.orig/src/testdir/Makefile 2008-06-19 13:29:46.000000000 -0700 5934 +++ vim72/src/testdir/Makefile 2009-02- 15 23:25:42.545008241-08006813 +++ vim72/src/testdir/Makefile 2009-02-22 21:57:28.688580807 -0800 5935 6814 @@ -26,15 +26,17 @@ 5936 6815 … … 5966 6845 diff -Naur vim72.orig/src/testdir/Make_ming.mak vim72/src/testdir/Make_ming.mak 5967 6846 --- vim72.orig/src/testdir/Make_ming.mak 1969-12-31 16:00:00.000000000 -0800 5968 +++ vim72/src/testdir/Make_ming.mak 2009-02- 15 23:26:03.078324067 -08006847 +++ vim72/src/testdir/Make_ming.mak 2009-02-22 21:57:28.764584997 -0800 5969 6848 @@ -0,0 +1,91 @@ 5970 6849 +# Makefile to run tests for Vim, on Dos-like machines … … 6061 6940 diff -Naur vim72.orig/src/testdir/test42.ok vim72/src/testdir/test42.ok 6062 6941 --- vim72.orig/src/testdir/test42.ok 2008-02-20 04:27:37.000000000 -0800 6063 +++ vim72/src/testdir/test42.ok 2009-02- 15 23:26:34.640348093-08006942 +++ vim72/src/testdir/test42.ok 2009-02-22 21:57:28.948596172 -0800 6064 6943 @@ -20,7 +20,7 @@ 6065 6944 ucs-2 … … 6073 6952 diff -Naur vim72.orig/src/ui.c vim72/src/ui.c 6074 6953 --- vim72.orig/src/ui.c 2008-07-14 11:14:56.000000000 -0700 6075 +++ vim72/src/ui.c 2009-02- 15 23:27:36.164291102-08006954 +++ vim72/src/ui.c 2009-02-22 21:57:40.653347953 -0800 6076 6955 @@ -1820,7 +1820,7 @@ 6077 6956 #ifdef HAVE_DUP … … 6181 7060 diff -Naur vim72.orig/src/version.c vim72/src/version.c 6182 7061 --- vim72.orig/src/version.c 2008-08-09 07:24:52.000000000 -0700 6183 +++ vim72/src/version.c 2009-02- 15 23:30:11.834265120-08006184 @@ -677,9 +677,2 16@@7062 +++ vim72/src/version.c 2009-02-22 21:58:03.130788378 -0800 7063 @@ -677,9 +677,248 @@ 6185 7064 static int included_patches[] = 6186 7065 { /* Add new patch number below this line */ 6187 7066 /**/ 7067 + 124, 7068 +/**/ 7069 + 123, 7070 +/**/ 7071 + 122, 7072 +/**/ 7073 + 121, 7074 +/**/ 7075 + 120, 7076 +/**/ 7077 + 119, 7078 +/**/ 7079 + 118, 7080 +/**/ 7081 + 117, 7082 +/**/ 7083 + 116, 7084 +/**/ 7085 + 115, 7086 +/**/ 7087 + 114, 7088 +/**/ 7089 + 113, 7090 +/**/ 7091 + 112, 7092 +/**/ 7093 + 111, 7094 +/**/ 7095 + 110, 7096 +/**/ 7097 + 109, 7098 +/**/ 6188 7099 + 108, 6189 7100 +/**/ … … 6399 7310 highest_patch() 6400 7311 { 6401 @@ -786,7 + 993,7 @@7312 @@ -786,7 +1025,7 @@ 6402 7313 MSG_PUTS(_("\nRISC OS version")); 6403 7314 #endif … … 6408 7319 if (*compiled_arch != NUL) 6409 7320 { 6410 @@ -825,6 +10 32,19 @@7321 @@ -825,6 +1064,19 @@ 6411 7322 } 6412 7323 } … … 6430 7341 diff -Naur vim72.orig/src/vim.h vim72/src/vim.h 6431 7342 --- vim72.orig/src/vim.h 2008-08-09 09:03:38.000000000 -0700 6432 +++ vim72/src/vim.h 2009-02- 15 23:27:12.174753177-08007343 +++ vim72/src/vim.h 2009-02-22 21:58:03.090785025 -0800 6433 7344 @@ -341,8 +341,14 @@ 6434 7345 #ifdef BACKSLASH_IN_FILENAME … … 6457 7368 typedef unsigned long __w64 long_u; 6458 7369 typedef long __w64 long_i; 6459 @@ -1728,7 +1734,8 @@ 7370 @@ -1051,6 +1057,7 @@ 7371 #define WSP_HELP 16 /* creating the help window */ 7372 #define WSP_BELOW 32 /* put new window below/right */ 7373 #define WSP_ABOVE 64 /* put new window above/left */ 7374 +#define WSP_NEWLOC 128 /* don't copy location list */ 7375 7376 /* 7377 * arguments for gui_set_shellsize() 7378 @@ -1728,7 +1735,8 @@ 6460 7379 #define VV_MOUSE_COL 51 6461 7380 #define VV_OP 52 … … 6467 7386 #ifdef FEAT_CLIPBOARD 6468 7387 6469 @@ -1979,6 +198 6,9 @@7388 @@ -1979,6 +1987,9 @@ 6470 7389 # endif 6471 7390 #endif … … 6477 7396 # include "nbdebug.h" 6478 7397 #else 6479 @@ -2054,4 +206 4,10 @@7398 @@ -2054,4 +2065,10 @@ 6480 7399 #define DOSO_VIMRC 1 /* loading vimrc file */ 6481 7400 #define DOSO_GVIMRC 2 /* loading gvimrc file */ … … 6490 7409 diff -Naur vim72.orig/src/window.c vim72/src/window.c 6491 7410 --- vim72.orig/src/window.c 2008-08-06 04:00:30.000000000 -0700 6492 +++ vim72/src/window.c 2009-02-15 23:27:36.164291102 -0800 6493 @@ -4028,14 +4028,14 @@ 7411 +++ vim72/src/window.c 2009-02-22 21:58:03.090785025 -0800 7412 @@ -12,7 +12,7 @@ 7413 static int path_is_url __ARGS((char_u *p)); 7414 #if defined(FEAT_WINDOWS) || defined(PROTO) 7415 static int win_split_ins __ARGS((int size, int flags, win_T *newwin, int dir)); 7416 -static void win_init __ARGS((win_T *newp, win_T *oldp)); 7417 +static void win_init __ARGS((win_T *newp, win_T *oldp, int flags)); 7418 static void frame_comp_pos __ARGS((frame_T *topfrp, int *row, int *col)); 7419 static void frame_setheight __ARGS((frame_T *curfrp, int height)); 7420 #ifdef FEAT_VERTSPLIT 7421 @@ -593,9 +593,7 @@ 7422 ++allow_keys; /* no mapping for xchar, but allow key codes */ 7423 if (xchar == NUL) 7424 xchar = plain_vgetc(); 7425 -#ifdef FEAT_LANGMAP 7426 LANGMAP_ADJUST(xchar, TRUE); 7427 -#endif 7428 --no_mapping; 7429 --allow_keys; 7430 #ifdef FEAT_CMDL_INFO 7431 @@ -912,7 +910,7 @@ 7432 return FAIL; 7433 7434 /* make the contents of the new window the same as the current one */ 7435 - win_init(wp, curwin); 7436 + win_init(wp, curwin, flags); 7437 } 7438 7439 /* 7440 @@ -1161,11 +1159,15 @@ 7441 * Initialize window "newp" from window "oldp". 7442 * Used when splitting a window and when creating a new tab page. 7443 * The windows will both edit the same buffer. 7444 + * WSP_NEWLOC may be specified in flags to prevent the location list from 7445 + * being copied. 7446 */ 7447 +/*ARGSUSED*/ 7448 static void 7449 -win_init(newp, oldp) 7450 +win_init(newp, oldp, flags) 7451 win_T *newp; 7452 win_T *oldp; 7453 + int flags; 7454 { 7455 int i; 7456 7457 @@ -1190,7 +1192,14 @@ 7458 copy_jumplist(oldp, newp); 7459 #endif 7460 #ifdef FEAT_QUICKFIX 7461 - copy_loclist(oldp, newp); 7462 + if (flags & WSP_NEWLOC) 7463 + { 7464 + /* Don't copy the location list. */ 7465 + newp->w_llist = NULL; 7466 + newp->w_llist_ref = NULL; 7467 + } 7468 + else 7469 + copy_loclist(oldp, newp); 7470 #endif 7471 if (oldp->w_localdir != NULL) 7472 newp->w_localdir = vim_strsave(oldp->w_localdir); 7473 @@ -3220,7 +3229,7 @@ 7474 else 7475 { 7476 /* First window in new tab page, initialize it from "oldwin". */ 7477 - win_init(curwin, oldwin); 7478 + win_init(curwin, oldwin, 0); 7479 7480 # ifdef FEAT_SCROLLBIND 7481 /* We don't want scroll-binding in the first window. */ 7482 @@ -4028,14 +4037,14 @@ 6494 7483 if (mch_dirname(cwd, MAXPATHL) == OK) 6495 7484 globaldir = vim_strsave(cwd); … … 6511 7500 diff -Naur vim72.orig/src/workshop.c vim72/src/workshop.c 6512 7501 --- vim72.orig/src/workshop.c 2008-06-21 11:53:26.000000000 -0700 6513 +++ vim72/src/workshop.c 2009-02- 15 23:27:29.719875680-08007502 +++ vim72/src/workshop.c 2009-02-22 21:57:40.565341248 -0800 6514 7503 @@ -1121,8 +1121,12 @@ 6515 7504 ? (char *)curbuf->b_sfname : "<None>");
Note:
See TracChangeset
for help on using the changeset viewer.