source:
patches/vim-7.0-fixes-5.patch@
af9e329
Last change on this file since af9e329 was f4f275f, checked in by , 18 years ago | |
---|---|
|
|
File size: 30.4 KB |
-
runtime/autoload/ccomplete.vim
Submitted By: Jim Gifford (jim at linuxfromscratch dot org) Date: 2006-06-22 Initial Package Version: 7.0 Origin: Upstream Upstream Status: Applied Description: Contains Patch 001-004, 006-026, and 028 from Upstream 005 and 027 is for the extras and Windows 32 only diff -Naur vim70.orig/runtime/autoload/ccomplete.vim vim70/runtime/autoload/ccomplete.vim
old new 1 1 " Vim completion script 2 2 " Language: C 3 3 " Maintainer: Bram Moolenaar <Bram@vim.org> 4 " Last Change: 2006 May 0 34 " Last Change: 2006 May 08 5 5 6 6 7 7 " This function is used for the 'omnifunc' option. … … 458 458 " member. 459 459 function! s:StructMembers(typename, items, all) 460 460 " Todo: What about local structures? 461 let fnames = join(map(tagfiles(), 'escape(v:val, " \\ ")'))461 let fnames = join(map(tagfiles(), 'escape(v:val, " \\#%")')) 462 462 if fnames == '' 463 463 return [] 464 464 endif -
runtime/autoload/spellfile.vim
diff -Naur vim70.orig/runtime/autoload/spellfile.vim vim70/runtime/autoload/spellfile.vim
old new 1 1 " Vim script to download a missing spell file 2 2 " Maintainer: Bram Moolenaar <Bram@vim.org> 3 " Last Change: 2006 Feb 013 " Last Change: 2006 May 10 4 4 5 5 if !exists('g:spellfile_URL') 6 let g:spellfile_URL = 'ftp://ftp.vim.org/pub/vim/ unstable/runtime/spell'6 let g:spellfile_URL = 'ftp://ftp.vim.org/pub/vim/runtime/spell' 7 7 endif 8 8 let s:spellfile_URL = '' " Start with nothing so that s:donedict is reset. 9 9 … … 61 61 new 62 62 setlocal bin 63 63 echo 'Downloading ' . fname . '...' 64 exe 'Nread ' g:spellfile_URL . '/' . fname64 call spellfile#Nread(fname) 65 65 if getline(2) !~ 'VIMspell' 66 66 " Didn't work, perhaps there is an ASCII one. 67 67 g/^/d 68 68 let fname = a:lang . '.ascii.spl' 69 69 echo 'Could not find it, trying ' . fname . '...' 70 exe 'Nread ' g:spellfile_URL . '/' . fname70 call spellfile#Nread(fname) 71 71 if getline(2) !~ 'VIMspell' 72 72 echo 'Sorry, downloading failed' 73 73 bwipe! … … 95 95 g/^/d 96 96 let fname = substitute(fname, '\.spl$', '.sug', '') 97 97 echo 'Downloading ' . fname . '...' 98 exe 'Nread ' g:spellfile_URL . '/' . fname98 call spellfile#Nread(fname) 99 99 if getline(2) !~ 'VIMsug' 100 100 echo 'Sorry, downloading failed' 101 101 else … … 109 109 bwipe 110 110 endif 111 111 endfunc 112 113 " Read "fname" from the ftp server. 114 function! spellfile#Nread(fname) 115 let machine = substitute(g:spellfile_URL, 'ftp://\([^/]*\).*', '\1', '') 116 let dir = substitute(g:spellfile_URL, 'ftp://[^/]*/\(.*\)', '\1', '') 117 exe 'Nread "' . machine . ' anonymous vim7user ' . dir . '/' . a:fname . '"' 118 endfunc -
runtime/plugin/matchparen.vim
diff -Naur vim70.orig/runtime/plugin/matchparen.vim vim70/runtime/plugin/matchparen.vim
old new 1 1 " Vim plugin for showing matching parens 2 2 " Maintainer: Bram Moolenaar <Bram@vim.org> 3 " Last Change: 2006 Apr 273 " Last Change: 2006 May 11 4 4 5 5 " Exit quickly when: 6 6 " - this plugin was already loaded (or disabled) … … 90 90 " Find the match. When it was just before the cursor move it there for a 91 91 " moment. 92 92 if before > 0 93 let save_cursor = getpos('.')93 let save_cursor = winsaveview() 94 94 call cursor(c_lnum, c_col - before) 95 95 endif 96 96 … … 102 102 let [m_lnum, m_col] = searchpairpos(c, '', c2, s_flags, s_skip, stopline) 103 103 104 104 if before > 0 105 call setpos('.',save_cursor)105 call winrestview(save_cursor) 106 106 endif 107 107 108 108 " If a match is found setup match highlighting. -
src/edit.c
diff -Naur vim70.orig/src/edit.c vim70/src/edit.c
old new 719 719 #ifdef FEAT_INS_EXPAND 720 720 /* 721 721 * Special handling of keys while the popup menu is visible or wanted 722 * and the cursor is still in the completed word. 722 * and the cursor is still in the completed word. Only when there is 723 * a match, skip this when no matches were found. 723 724 */ 724 if (compl_started && pum_wanted() && curwin->w_cursor.col >= compl_col) 725 if (compl_started 726 && pum_wanted() 727 && curwin->w_cursor.col >= compl_col 728 && (compl_shown_match == NULL 729 || compl_shown_match != compl_shown_match->cp_next)) 725 730 { 726 731 /* BS: Delete one character from "compl_leader". */ 727 732 if ((c == K_BS || c == Ctrl_H) … … 751 756 continue; 752 757 } 753 758 754 /* Pressing CTRL-Y selects the current match. Shen759 /* Pressing CTRL-Y selects the current match. When 755 760 * compl_enter_selects is set the Enter key does the same. */ 756 761 if (c == Ctrl_Y || (compl_enter_selects 757 762 && (c == CAR || c == K_KENTER || c == NL))) … … 3046 3051 ins_compl_delete(); 3047 3052 ins_bytes(compl_leader + curwin->w_cursor.col - compl_col); 3048 3053 compl_used_match = FALSE; 3049 compl_enter_selects = FALSE;3050 3054 3051 3055 if (compl_started) 3052 3056 ins_compl_set_original_text(compl_leader); … … 3076 3080 compl_restarting = FALSE; 3077 3081 } 3078 3082 3083 #if 0 /* disabled, made CTRL-L, BS and typing char jump to original text. */ 3079 3084 if (!compl_used_match) 3080 3085 { 3081 3086 /* Go to the original text, since none of the matches is inserted. */ … … 3087 3092 compl_curr_match = compl_shown_match; 3088 3093 compl_shows_dir = compl_direction; 3089 3094 } 3095 #endif 3096 compl_enter_selects = !compl_used_match; 3090 3097 3091 3098 /* Show the popup menu with a different set of matches. */ 3092 3099 ins_compl_show_pum(); … … 3175 3182 char_u *p; 3176 3183 int len = curwin->w_cursor.col - compl_col; 3177 3184 int c; 3185 compl_T *cp; 3178 3186 3179 3187 p = compl_shown_match->cp_str; 3180 3188 if ((int)STRLEN(p) <= len) /* the match is too short */ 3181 return; 3189 { 3190 /* When still at the original match use the first entry that matches 3191 * the leader. */ 3192 if (compl_shown_match->cp_flags & ORIGINAL_TEXT) 3193 { 3194 p = NULL; 3195 for (cp = compl_shown_match->cp_next; cp != NULL 3196 && cp != compl_first_match; cp = cp->cp_next) 3197 { 3198 if (ins_compl_equal(cp, compl_leader, 3199 (int)STRLEN(compl_leader))) 3200 { 3201 p = cp->cp_str; 3202 break; 3203 } 3204 } 3205 if (p == NULL || (int)STRLEN(p) <= len) 3206 return; 3207 } 3208 else 3209 return; 3210 } 3182 3211 p += len; 3183 3212 #ifdef FEAT_MBYTE 3184 3213 c = mb_ptr2char(p); … … 3369 3398 ptr = compl_leader; 3370 3399 else 3371 3400 ptr = compl_orig_text; 3372 p = compl_orig_text; 3373 for (temp = 0; p[temp] != NUL && p[temp] == ptr[temp]; ++temp) 3374 ; 3401 if (compl_orig_text != NULL) 3402 { 3403 p = compl_orig_text; 3404 for (temp = 0; p[temp] != NUL && p[temp] == ptr[temp]; 3405 ++temp) 3406 ; 3375 3407 #ifdef FEAT_MBYTE 3376 if (temp > 0)3377 3408 if (temp > 0) 3409 temp -= (*mb_head_off)(compl_orig_text, p + temp); 3378 3410 #endif 3379 for (p += temp; *p != NUL; mb_ptr_adv(p)) 3380 AppendCharToRedobuff(K_BS); 3381 AppendToRedobuffLit(ptr + temp, -1); 3411 for (p += temp; *p != NUL; mb_ptr_adv(p)) 3412 AppendCharToRedobuff(K_BS); 3413 } 3414 if (ptr != NULL) 3415 AppendToRedobuffLit(ptr + temp, -1); 3382 3416 } 3383 3417 3384 3418 #ifdef FEAT_CINDENT … … 4100 4134 && compl_shown_match->cp_next != NULL 4101 4135 && compl_shown_match->cp_next != compl_first_match) 4102 4136 compl_shown_match = compl_shown_match->cp_next; 4137 4138 /* If we didn't find it searching forward, and compl_shows_dir is 4139 * backward, find the last match. */ 4140 if (compl_shows_dir == BACKWARD 4141 && !ins_compl_equal(compl_shown_match, 4142 compl_leader, (int)STRLEN(compl_leader)) 4143 && (compl_shown_match->cp_next == NULL 4144 || compl_shown_match->cp_next == compl_first_match)) 4145 { 4146 while (!ins_compl_equal(compl_shown_match, 4147 compl_leader, (int)STRLEN(compl_leader)) 4148 && compl_shown_match->cp_prev != NULL 4149 && compl_shown_match->cp_prev != compl_first_match) 4150 compl_shown_match = compl_shown_match->cp_prev; 4151 } 4103 4152 } 4104 4153 4105 4154 if (allow_get_expansion && insert_match … … 4611 4660 (int)STRLEN(compl_pattern), curs_col); 4612 4661 if (compl_xp.xp_context == EXPAND_UNSUCCESSFUL 4613 4662 || compl_xp.xp_context == EXPAND_NOTHING) 4614 return FAIL; 4615 startcol = (int)(compl_xp.xp_pattern - compl_pattern); 4616 compl_col = startcol; 4617 compl_length = curs_col - startcol; 4663 { 4664 compl_col = curs_col; 4665 compl_length = 0; 4666 vim_free(compl_pattern); 4667 compl_pattern = NULL; 4668 } 4669 else 4670 { 4671 startcol = (int)(compl_xp.xp_pattern - compl_pattern); 4672 compl_col = startcol; 4673 compl_length = curs_col - startcol; 4674 } 4618 4675 } 4619 4676 else if (ctrl_x_mode == CTRL_X_FUNCTION || ctrl_x_mode == CTRL_X_OMNI) 4620 4677 { … … 4668 4725 else 4669 4726 compl_col = spell_word_start(startcol); 4670 4727 if (compl_col >= (colnr_T)startcol) 4671 return FAIL; 4672 spell_expand_check_cap(compl_col); 4728 { 4729 compl_length = 0; 4730 compl_col = curs_col; 4731 } 4732 else 4733 { 4734 spell_expand_check_cap(compl_col); 4735 compl_length = (int)curs_col - compl_col; 4736 } 4673 4737 /* Need to obtain "line" again, it may have become invalid. */ 4674 4738 line = ml_get(curwin->w_cursor.lnum); 4675 compl_length = (int)curs_col - compl_col;4676 4739 compl_pattern = vim_strnsave(line + compl_col, compl_length); 4677 4740 if (compl_pattern == NULL) 4678 4741 #endif -
src/eval.c
diff -Naur vim70.orig/src/eval.c vim70/src/eval.c
old new 11372 11372 if (argvars[2].v_type != VAR_UNKNOWN) 11373 11373 { 11374 11374 char_u *xp_name; 11375 int 11375 int xp_namelen; 11376 11376 long argt; 11377 11377 11378 11378 rettv->vval.v_string = NULL; … … 13250 13250 if (argvars[2].v_type != VAR_UNKNOWN) 13251 13251 EMSG2(_(e_toomanyarg), "remove()"); 13252 13252 else if ((d = argvars[0].vval.v_dict) != NULL 13253 && !tv_check_lock(d->dv_lock, (char_u *)"remove() "))13253 && !tv_check_lock(d->dv_lock, (char_u *)"remove() argument")) 13254 13254 { 13255 13255 key = get_tv_string_chk(&argvars[1]); 13256 13256 if (key != NULL) … … 13270 13270 else if (argvars[0].v_type != VAR_LIST) 13271 13271 EMSG2(_(e_listdictarg), "remove()"); 13272 13272 else if ((l = argvars[0].vval.v_list) != NULL 13273 && !tv_check_lock(l->lv_lock, (char_u *)"remove() "))13273 && !tv_check_lock(l->lv_lock, (char_u *)"remove() argument")) 13274 13274 { 13275 13275 int error = FALSE; 13276 13276 … … 17759 17759 } 17760 17760 else /* add a new variable */ 17761 17761 { 17762 /* Can't add "v:" variable. */ 17763 if (ht == &vimvarht) 17764 { 17765 EMSG2(_(e_illvar), name); 17766 return; 17767 } 17768 17762 17769 /* Make sure the variable name is valid. */ 17763 17770 for (p = varname; *p != NUL; ++p) 17764 17771 if (!eval_isnamec1(*p) && (p == varname || !VIM_ISDIGIT(*p)) … … 18963 18970 else if (lead > 0) 18964 18971 { 18965 18972 lead = 3; 18966 if (eval_fname_sid(lv.ll_exp_name != NULL ? lv.ll_exp_name : *pp)) 18973 if ((lv.ll_exp_name != NULL && eval_fname_sid(lv.ll_exp_name)) 18974 || eval_fname_sid(*pp)) 18967 18975 { 18968 18976 /* It's "s:" or "<SID>" */ 18969 18977 if (current_SID <= 0) … … 19685 19693 v->di_tv.vval.v_list = &fc.l_varlist; 19686 19694 vim_memset(&fc.l_varlist, 0, sizeof(list_T)); 19687 19695 fc.l_varlist.lv_refcount = 99999; 19696 fc.l_varlist.lv_lock = VAR_FIXED; 19688 19697 19689 19698 /* 19690 19699 * Set a:firstline to "firstline" and a:lastline to "lastline". -
src/ex_docmd.c
diff -Naur vim70.orig/src/ex_docmd.c vim70/src/ex_docmd.c
old new 833 833 * If requested, store and reset the global values controlling the 834 834 * exception handling (used when debugging). 835 835 */ 836 elseif (flags & DOCMD_EXCRESET)836 if (flags & DOCMD_EXCRESET) 837 837 save_dbg_stuff(&debug_saved); 838 838 839 839 initial_trylevel = trylevel; -
src/gui_at_fs.c
diff -Naur vim70.orig/src/gui_at_fs.c vim70/src/gui_at_fs.c
old new 1861 1861 XtPointer pnew; 1862 1862 { 1863 1863 SFDir *dir; 1864 int nw ;1864 int nw = (int)(long)pnew; 1865 1865 1866 1866 dir = &(SFdirs[SFdirPtr + (int)(long)n]); 1867 1867 1868 1868 #ifdef FEAT_GUI_NEXTAW 1869 if ( (int)(long)pnew < 0)1869 if (nw < 0) 1870 1870 { 1871 if ( (int)(long)pnew > -SFvScrollHeight)1872 (int)(long)pnew = -1;1871 if (nw > -SFvScrollHeight) 1872 nw = -1; 1873 1873 else 1874 (int)(long)pnew = -SFlistSize;1874 nw = -SFlistSize; 1875 1875 } 1876 else if ( (int)(long)pnew > 0)1876 else if (nw > 0) 1877 1877 { 1878 if ( (int)(long)pnew < SFvScrollHeight)1879 (int)(long)pnew = 1;1878 if (nw < SFvScrollHeight) 1879 nw = 1; 1880 1880 else 1881 (int)(long)pnew = SFlistSize;1881 nw = SFlistSize; 1882 1882 } 1883 1883 #endif 1884 nw = dir->vOrigin + (int)(long)pnew;1884 nw += dir->vOrigin; 1885 1885 1886 1886 if (nw > dir->nEntries - SFlistSize) 1887 1887 nw = dir->nEntries - SFlistSize; … … 1941 1941 XtPointer pnew; 1942 1942 { 1943 1943 SFDir *dir; 1944 int nw ;1944 int nw = (int)(long)pnew; 1945 1945 1946 1946 dir = &(SFdirs[SFdirPtr + (int)(long)n]); 1947 1947 1948 1948 #ifdef FEAT_GUI_NEXTAW 1949 if ( (int)(long)pnew < 0)1949 if (nw < 0) 1950 1950 { 1951 if ( (int)(long)pnew > -SFhScrollWidth)1952 (int)(long)pnew = -1;1951 if (nw > -SFhScrollWidth) 1952 nw = -1; 1953 1953 else 1954 (int)(long)pnew = -SFcharsPerEntry;1954 nw = -SFcharsPerEntry; 1955 1955 } 1956 else if ( (int)(long)pnew > 0)1956 else if (nw > 0) 1957 1957 { 1958 if ( (int)(long)pnew < SFhScrollWidth)1959 (int)(long)pnew = 1;1958 if (nw < SFhScrollWidth) 1959 nw = 1; 1960 1960 else 1961 (int)(long)pnew = SFcharsPerEntry;1961 nw = SFcharsPerEntry; 1962 1962 } 1963 1963 #endif 1964 nw = dir->hOrigin + (int)(long)pnew;1964 nw += dir->hOrigin; 1965 1965 1966 1966 if (nw > dir->nChars - SFcharsPerEntry) 1967 1967 nw = dir->nChars - SFcharsPerEntry; … … 2038 2038 XtPointer client_data; 2039 2039 XtPointer pnew; 2040 2040 { 2041 int nw ;2041 int nw = (int)(long)pnew; 2042 2042 float f; 2043 2043 2044 2044 #ifdef FEAT_GUI_NEXTAW 2045 if ( (int)(long)pnew < 0)2045 if (nw < 0) 2046 2046 { 2047 if ( (int)(long)pnew > -SFpathScrollWidth)2048 (int)(long)pnew = -1;2047 if (nw > -SFpathScrollWidth) 2048 nw = -1; 2049 2049 else 2050 (int)(long)pnew = -3;2050 nw = -3; 2051 2051 } 2052 else if ( (int)(long)pnew > 0)2052 else if (nw > 0) 2053 2053 { 2054 if ( (int)(long)pnew < SFpathScrollWidth)2055 (int)(long)pnew = 1;2054 if (nw < SFpathScrollWidth) 2055 nw = 1; 2056 2056 else 2057 (int)(long)pnew = 3;2057 nw = 3; 2058 2058 } 2059 2059 #endif 2060 nw = SFdirPtr + (int)(long)pnew;2060 nw += SFdirPtr; 2061 2061 2062 2062 if (nw > SFdirEnd - 3) 2063 2063 nw = SFdirEnd - 3; -
src/gui.c
diff -Naur vim70.orig/src/gui.c vim70/src/gui.c
old new 4515 4515 int y; 4516 4516 { 4517 4517 win_T *wp; 4518 char_u st[ 6];4518 char_u st[8]; 4519 4519 4520 4520 /* Ignore this while still starting up. */ 4521 4521 if (!gui.in_use || gui.starting) … … 4603 4603 /* Don't move the mouse when it's left or right of the Vim window */ 4604 4604 if (x < 0 || x > Columns * gui.char_width) 4605 4605 return; 4606 if (y >= 0 4606 4607 # ifdef FEAT_WINDOWS 4607 if (Y_2_ROW(y) >= tabline_height()) 4608 # else 4609 if (y >= 0) 4608 && Y_2_ROW(y) >= tabline_height() 4610 4609 # endif 4610 ) 4611 4611 wp = xy2win(x, y); 4612 4612 if (wp != curwin && wp != NULL) /* If in other than current window */ 4613 4613 { -
src/gui_xmebw.c
diff -Naur vim70.orig/src/gui_xmebw.c vim70/src/gui_xmebw.c
old new 47 47 #include "gui_xmebwp.h" 48 48 49 49 /* Provide some missing wrappers, which are missed from the LessTif 50 * implementation. 50 * implementation. Also missing in Motif 1.2 and earlier. 51 51 * 52 52 * We neither use XmeGetPixmapData or _XmGetPixmapData, since with LessTif the 53 53 * pixmap will not appear in it's caches properly. We cache the interresting 54 54 * values in XmEnhancedButtonPart instead ourself. 55 55 */ 56 #if def LESSTIF_VERSION56 #if defined(LESSTIF_VERSION) || (XmVersion <= 1002) 57 57 # ifndef Lab_IsMenupane 58 58 # define Lab_IsMenupane(w) (Lab_MenuType(w) == (int)XmMENU_POPUP || \ 59 59 Lab_MenuType(w) == (int)XmMENU_PULLDOWN) … … 480 480 || (eb->core.height <= 2 * eb->primitive.highlight_thickness)) 481 481 return; 482 482 483 #if ndef LESSTIF_VERSION483 #if !defined(LESSTIF_VERSION) && (XmVersion > 1002) 484 484 { 485 485 XmDisplay dpy; 486 486 … … 641 641 GC tmp_gc = NULL; 642 642 Boolean replaceGC = False; 643 643 Boolean deadjusted = False; 644 #if ndef LESSTIF_VERSION644 #if !defined(LESSTIF_VERSION) && (XmVersion > 1002) 645 645 XmDisplay dpy = (XmDisplay)XmGetXmDisplay(XtDisplay(eb)); 646 646 Boolean etched_in = dpy->display.enable_etched_in_menu; 647 647 #else … … 726 726 if ((((ShellWidget) XtParent(XtParent(eb)))->shell.popped_up) 727 727 && _XmGetInDragMode((Widget) eb)) 728 728 { 729 #if ndef LESSTIF_VERSION729 #if !defined(LESSTIF_VERSION) && (XmVersion > 1002) 730 730 XmDisplay dpy = (XmDisplay) XmGetXmDisplay(XtDisplay(wid)); 731 731 Boolean etched_in = dpy->display.enable_etched_in_menu; 732 732 #else … … 810 810 811 811 if (Lab_IsMenupane(eb)) 812 812 { 813 #if ndef LESSTIF_VERSION813 #if !defined(LESSTIF_VERSION) && (XmVersion > 1002) 814 814 XmDisplay dpy = (XmDisplay) XmGetXmDisplay(XtDisplay(wid)); 815 815 Boolean etched_in = dpy->display.enable_etched_in_menu; 816 816 #else … … 1150 1150 Redisplay(Widget w, XEvent *event, Region region) 1151 1151 { 1152 1152 XmEnhancedButtonWidget eb = (XmEnhancedButtonWidget) w; 1153 #if ndef LESSTIF_VERSION1153 #if !defined(LESSTIF_VERSION) && (XmVersion > 1002) 1154 1154 XmDisplay dpy; 1155 1155 XtEnum default_button_emphasis; 1156 1156 #endif … … 1162 1162 if (!XtIsRealized((Widget)eb)) 1163 1163 return; 1164 1164 1165 #if ndef LESSTIF_VERSION1165 #if !defined(LESSTIF_VERSION) && (XmVersion > 1002) 1166 1166 dpy = (XmDisplay)XmGetXmDisplay(XtDisplay(eb)); 1167 1167 default_button_emphasis = dpy->display.default_button_emphasis; 1168 1168 #endif … … 1241 1241 { 1242 1242 int adjust = 0; 1243 1243 1244 #if ndef LESSTIF_VERSION1244 #if !defined(LESSTIF_VERSION) && (XmVersion > 1002) 1245 1245 /* 1246 1246 * NOTE: PushButton has two types of shadows: primitive-shadow and 1247 1247 * default-button-shadow. If pushbutton is in a menu only primitive … … 1289 1289 adjust, adjust, rectwidth, rectheight, borderwidth); 1290 1290 } 1291 1291 1292 #if ndef LESSTIF_VERSION1292 #if !defined(LESSTIF_VERSION) && (XmVersion > 1002) 1293 1293 switch (default_button_emphasis) 1294 1294 { 1295 1295 case XmINTERNAL_HIGHLIGHT: … … 1365 1365 default_button_shadow_thickness = 1366 1366 eb->pushbutton.default_button_shadow_thickness; 1367 1367 1368 #if ndef LESSTIF_VERSION1368 #if !defined(LESSTIF_VERSION) && (XmVersion > 1002) 1369 1369 /* 1370 1370 * Compute location of bounding box to contain the 1371 1371 * defaultButtonShadow. -
src/if_ruby.c
diff -Naur vim70.orig/src/if_ruby.c vim70/src/if_ruby.c
old new 643 643 644 644 static VALUE set_buffer_line(buf_T *buf, linenr_T n, VALUE str) 645 645 { 646 buf_T *savebuf = curbuf; 647 char *line = STR2CSTR(str); 646 char *line = STR2CSTR(str); 647 #ifdef FEAT_AUTOCMD 648 aco_save_T aco; 649 #else 650 buf_T *save_curbuf = curbuf; 651 #endif 648 652 649 if (n > 0 && n <= buf->b_ml.ml_line_count && line != NULL) { 653 if (n > 0 && n <= buf->b_ml.ml_line_count && line != NULL) 654 { 655 #ifdef FEAT_AUTOCMD 656 /* set curwin/curbuf for "buf" and save some things */ 657 aucmd_prepbuf(&aco, buf); 658 #else 650 659 curbuf = buf; 660 curwin->w_buffer = buf; 661 #endif 662 651 663 if (u_savesub(n) == OK) { 652 664 ml_replace(n, (char_u *)line, TRUE); 653 665 changed(); … … 655 667 syn_changed(n); /* recompute syntax hl. for this line */ 656 668 #endif 657 669 } 658 curbuf = savebuf; 670 671 #ifdef FEAT_AUTOCMD 672 /* restore curwin/curbuf and a few other things */ 673 aucmd_restbuf(&aco); 674 /* Careful: autocommands may have made "buf" invalid! */ 675 #else 676 curwin->w_buffer = save_curbuf; 677 curbuf = save_curbuf; 678 #endif 659 679 update_curbuf(NOT_VALID); 660 680 } 661 else { 681 else 682 { 662 683 rb_raise(rb_eIndexError, "index %d out of buffer", n); 663 684 return Qnil; /* For stop warning */ 664 685 } … … 676 697 677 698 static VALUE buffer_delete(VALUE self, VALUE num) 678 699 { 679 buf_T *buf = get_buf(self); 680 buf_T *savebuf = curbuf; 681 long n = NUM2LONG(num); 700 buf_T *buf = get_buf(self); 701 long n = NUM2LONG(num); 702 #ifdef FEAT_AUTOCMD 703 aco_save_T aco; 704 #else 705 buf_T *save_curbuf = curbuf; 706 #endif 682 707 683 if (n > 0 && n <= buf->b_ml.ml_line_count) { 708 if (n > 0 && n <= buf->b_ml.ml_line_count) 709 { 710 #ifdef FEAT_AUTOCMD 711 /* set curwin/curbuf for "buf" and save some things */ 712 aucmd_prepbuf(&aco, buf); 713 #else 684 714 curbuf = buf; 715 curwin->w_buffer = buf; 716 #endif 717 685 718 if (u_savedel(n, 1) == OK) { 686 719 ml_delete(n, 0); 687 720 … … 691 724 692 725 changed(); 693 726 } 694 curbuf = savebuf; 727 728 #ifdef FEAT_AUTOCMD 729 /* restore curwin/curbuf and a few other things */ 730 aucmd_restbuf(&aco); 731 /* Careful: autocommands may have made "buf" invalid! */ 732 #else 733 curwin->w_buffer = save_curbuf; 734 curbuf = save_curbuf; 735 #endif 695 736 update_curbuf(NOT_VALID); 696 737 } 697 else { 738 else 739 { 698 740 rb_raise(rb_eIndexError, "index %d out of buffer", n); 699 741 } 700 742 return Qnil; … … 702 744 703 745 static VALUE buffer_append(VALUE self, VALUE num, VALUE str) 704 746 { 705 buf_T *buf = get_buf(self); 706 buf_T *savebuf = curbuf; 707 char *line = STR2CSTR(str); 708 long n = NUM2LONG(num); 747 buf_T *buf = get_buf(self); 748 char *line = STR2CSTR(str); 749 long n = NUM2LONG(num); 750 #ifdef FEAT_AUTOCMD 751 aco_save_T aco; 752 #else 753 buf_T *save_curbuf = curbuf; 754 #endif 709 755 710 if (n >= 0 && n <= buf->b_ml.ml_line_count && line != NULL) { 756 if (n >= 0 && n <= buf->b_ml.ml_line_count && line != NULL) 757 { 758 #ifdef FEAT_AUTOCMD 759 /* set curwin/curbuf for "buf" and save some things */ 760 aucmd_prepbuf(&aco, buf); 761 #else 711 762 curbuf = buf; 763 curwin->w_buffer = buf; 764 #endif 765 712 766 if (u_inssub(n + 1) == OK) { 713 767 ml_append(n, (char_u *) line, (colnr_T) 0, FALSE); 714 768 … … 718 772 719 773 changed(); 720 774 } 721 curbuf = savebuf; 775 776 #ifdef FEAT_AUTOCMD 777 /* restore curwin/curbuf and a few other things */ 778 aucmd_restbuf(&aco); 779 /* Careful: autocommands may have made "buf" invalid! */ 780 #else 781 curwin->w_buffer = save_curbuf; 782 curbuf = save_curbuf; 783 #endif 722 784 update_curbuf(NOT_VALID); 723 785 } 724 786 else { -
src/main.c
diff -Naur vim70.orig/src/main.c vim70/src/main.c
old new 564 564 */ 565 565 if (p_lpl) 566 566 { 567 # ifdef VMS /* Somehow VMS doesn't handle the "**". */ 568 source_runtime((char_u *)"plugin/*.vim", TRUE); 569 # else 567 570 source_runtime((char_u *)"plugin/**/*.vim", TRUE); 571 # endif 568 572 TIME_MSG("loading plugins"); 569 573 } 570 574 #endif -
src/Makefile
diff -Naur vim70.orig/src/Makefile vim70/src/Makefile
old new 2177 2177 cd $(SHADOWDIR)/xxd; ln -s ../../xxd/*.[ch] ../../xxd/Make* . 2178 2178 if test -d $(RSRC_DIR); then \ 2179 2179 cd $(SHADOWDIR); \ 2180 ln -s ../infplist.xml .; \ 2180 2181 ln -s ../$(RSRC_DIR) ../os_mac.rsr.hqx ../dehqx.py .; \ 2181 2182 fi 2182 2183 mkdir $(SHADOWDIR)/testdir -
src/mbyte.c
diff -Naur vim70.orig/src/mbyte.c vim70/src/mbyte.c
old new 311 311 312 312 #define IDX_MACROMAN 57 313 313 {"macroman", ENC_8BIT + ENC_MACROMAN, 0}, /* Mac OS */ 314 #define IDX_COUNT 58 314 #define IDX_DECMCS 58 315 {"dec-mcs", ENC_8BIT, 0}, /* DEC MCS */ 316 #define IDX_HPROMAN8 59 317 {"hp-roman8", ENC_8BIT, 0}, /* HP Roman8 */ 318 #define IDX_COUNT 60 315 319 }; 316 320 317 321 /* … … 386 390 {"950", IDX_BIG5}, 387 391 #endif 388 392 {"mac", IDX_MACROMAN}, 393 {"mac-roman", IDX_MACROMAN}, 389 394 {NULL, 0} 390 395 }; 391 396 -
src/message.c
diff -Naur vim70.orig/src/message.c vim70/src/message.c
old new 4175 4175 str_arg_l = 0; 4176 4176 else 4177 4177 { 4178 /* memchr on HP does not like n > 2^31 !!! */4179 char *q = memchr(str_arg, '\0',4178 /* Don't put the #if inside memchr(), it can be a 4179 * macro. */ 4180 4180 #if SIZEOF_INT <= 2 4181 precision4181 char *q = memchr(str_arg, '\0', precision); 4182 4182 #else 4183 precision <= (size_t)0x7fffffffL ? precision 4184 : (size_t)0x7fffffffL 4183 /* memchr on HP does not like n > 2^31 !!! */ 4184 char *q = memchr(str_arg, '\0', 4185 precision <= (size_t)0x7fffffffL ? precision 4186 : (size_t)0x7fffffffL); 4185 4187 #endif 4186 );4187 4188 str_arg_l = (q == NULL) ? precision : q - str_arg; 4188 4189 } 4189 4190 break; -
src/ops.c
diff -Naur vim70.orig/src/ops.c vim70/src/ops.c
old new 2413 2413 else 2414 2414 { 2415 2415 curwin->w_cursor = oap->end; 2416 check_cursor_col(); 2416 2417 2417 2418 /* Works just like an 'i'nsert on the next character. */ 2418 2419 if (!lineempty(curwin->w_cursor.lnum) -
src/option.c
diff -Naur vim70.orig/src/option.c vim70/src/option.c
old new 2294 2294 {(char_u *)0L, (char_u *)0L} 2295 2295 #endif 2296 2296 }, 2297 {"spellsuggest", "sps", P_STRING|P_VI_DEF|P_EXPAND|P_SECURE ,2297 {"spellsuggest", "sps", P_STRING|P_VI_DEF|P_EXPAND|P_SECURE|P_COMMA, 2298 2298 #ifdef FEAT_SPELL 2299 2299 (char_u *)&p_sps, PV_NONE, 2300 2300 {(char_u *)"best", (char_u *)0L} … … 5227 5227 case PV_STL: return &curwin->w_p_stl_flags; 5228 5228 #endif 5229 5229 #ifdef FEAT_EVAL 5230 # ifdef FEAT_FOLDING 5230 5231 case PV_FDE: return &curwin->w_p_fde_flags; 5231 5232 case PV_FDT: return &curwin->w_p_fdt_flags; 5233 # endif 5232 5234 # ifdef FEAT_BEVAL 5233 5235 case PV_BEXPR: return &curbuf->b_p_bexpr_flags; 5234 5236 # endif 5235 #endif5236 #if defined(FEAT_EVAL)5237 5237 # if defined(FEAT_CINDENT) 5238 5238 case PV_INDE: return &curbuf->b_p_inde_flags; 5239 5239 # endif -
src/os_unix.c
diff -Naur vim70.orig/src/os_unix.c vim70/src/os_unix.c
old new 4971 4971 if (((*file)[*num_file] = alloc(len + 2)) != NULL) 4972 4972 { 4973 4973 STRCPY((*file)[*num_file], p); 4974 if (!after_pathsep((*file)[*num_file] + len)) 4974 if (!after_pathsep((*file)[*num_file], 4975 (*file)[*num_file] + len)) 4975 4976 { 4976 4977 (*file)[*num_file][len] = psepc; 4977 4978 (*file)[*num_file][len + 1] = NUL; … … 5757 5758 int retval_int = 0; 5758 5759 int success = FALSE; 5759 5760 5760 /* Get a handle to the DLL module. */ 5761 /* 5762 * Get a handle to the DLL module. 5763 */ 5761 5764 # if defined(USE_DLOPEN) 5765 /* First clear any error, it's not cleared by the dlopen() call. */ 5766 (void)dlerror(); 5767 5762 5768 hinstLib = dlopen((char *)libname, RTLD_LAZY 5763 5769 # ifdef RTLD_LOCAL 5764 5770 | RTLD_LOCAL -
src/quickfix.c
diff -Naur vim70.orig/src/quickfix.c vim70/src/quickfix.c
old new 602 602 else 603 603 type = 0; 604 604 /* 605 * Extract error message data from matched line 605 * Extract error message data from matched line. 606 * We check for an actual submatch, because "\[" and "\]" in 607 * the 'errorformat' may cause the wrong submatch to be used. 606 608 */ 607 609 if ((i = (int)fmt_ptr->addr[0]) > 0) /* %f */ 608 610 { 609 int c = *regmatch.endp[i]; 611 int c; 612 613 if (regmatch.startp[i] == NULL || regmatch.endp[i] == NULL) 614 continue; 610 615 611 616 /* Expand ~/file and $HOME/file to full path. */ 617 c = *regmatch.endp[i]; 612 618 *regmatch.endp[i] = NUL; 613 619 expand_env(regmatch.startp[i], namebuf, CMDBUFFSIZE); 614 620 *regmatch.endp[i] = c; … … 618 624 continue; 619 625 } 620 626 if ((i = (int)fmt_ptr->addr[1]) > 0) /* %n */ 627 { 628 if (regmatch.startp[i] == NULL) 629 continue; 621 630 enr = (int)atol((char *)regmatch.startp[i]); 631 } 622 632 if ((i = (int)fmt_ptr->addr[2]) > 0) /* %l */ 633 { 634 if (regmatch.startp[i] == NULL) 635 continue; 623 636 lnum = atol((char *)regmatch.startp[i]); 637 } 624 638 if ((i = (int)fmt_ptr->addr[3]) > 0) /* %c */ 639 { 640 if (regmatch.startp[i] == NULL) 641 continue; 625 642 col = (int)atol((char *)regmatch.startp[i]); 643 } 626 644 if ((i = (int)fmt_ptr->addr[4]) > 0) /* %t */ 645 { 646 if (regmatch.startp[i] == NULL) 647 continue; 627 648 type = *regmatch.startp[i]; 649 } 628 650 if (fmt_ptr->flags == '+' && !multiscan) /* %+ */ 629 651 STRCPY(errmsg, IObuff); 630 652 else if ((i = (int)fmt_ptr->addr[5]) > 0) /* %m */ 631 653 { 654 if (regmatch.startp[i] == NULL || regmatch.endp[i] == NULL) 655 continue; 632 656 len = (int)(regmatch.endp[i] - regmatch.startp[i]); 633 657 vim_strncpy(errmsg, regmatch.startp[i], len); 634 658 } 635 659 if ((i = (int)fmt_ptr->addr[6]) > 0) /* %r */ 660 { 661 if (regmatch.startp[i] == NULL) 662 continue; 636 663 tail = regmatch.startp[i]; 664 } 637 665 if ((i = (int)fmt_ptr->addr[7]) > 0) /* %p */ 638 666 { 667 if (regmatch.startp[i] == NULL || regmatch.endp[i] == NULL) 668 continue; 639 669 col = (int)(regmatch.endp[i] - regmatch.startp[i] + 1); 640 670 if (*((char_u *)regmatch.startp[i]) != TAB) 641 671 use_viscol = TRUE; 642 672 } 643 673 if ((i = (int)fmt_ptr->addr[8]) > 0) /* %v */ 644 674 { 675 if (regmatch.startp[i] == NULL) 676 continue; 645 677 col = (int)atol((char *)regmatch.startp[i]); 646 678 use_viscol = TRUE; 647 679 } 648 680 if ((i = (int)fmt_ptr->addr[9]) > 0) /* %s */ 649 681 { 682 if (regmatch.startp[i] == NULL || regmatch.endp[i] == NULL) 683 continue; 650 684 len = (int)(regmatch.endp[i] - regmatch.startp[i]); 651 685 if (len > CMDBUFFSIZE - 5) 652 686 len = CMDBUFFSIZE - 5; -
src/spell.c
diff -Naur vim70.orig/src/spell.c vim70/src/spell.c
old new 2108 2108 * possible. */ 2109 2109 STRCPY(buf, line); 2110 2110 if (lnum < wp->w_buffer->b_ml.ml_line_count) 2111 spell_cat_line(buf + STRLEN(buf), ml_get(lnum + 1), MAXWLEN); 2111 spell_cat_line(buf + STRLEN(buf), 2112 ml_get_buf(wp->w_buffer, lnum + 1, FALSE), MAXWLEN); 2112 2113 2113 2114 p = buf + skip; 2114 2115 endp = buf + len; -
src/version.c
diff -Naur vim70.orig/src/version.c vim70/src/version.c
old new 667 667 static int included_patches[] = 668 668 { /* Add new patch number below this line */ 669 669 /**/ 670 28, 671 /**/ 672 26, 673 /**/ 674 25, 675 /**/ 676 24, 677 /**/ 678 23, 679 /**/ 680 22, 681 /**/ 682 21, 683 /**/ 684 20, 685 /**/ 686 19, 687 /**/ 688 18, 689 /**/ 690 17, 691 /**/ 692 16, 693 /**/ 694 15, 695 /**/ 696 14, 697 /**/ 698 13, 699 /**/ 700 12, 701 /**/ 702 11, 703 /**/ 704 10, 705 /**/ 706 9, 707 /**/ 708 8, 709 /**/ 710 7, 711 /**/ 712 6, 713 /**/ 714 4, 715 /**/ 716 3, 717 /**/ 718 2, 719 /**/ 720 1, 721 /**/ 670 722 0 671 723 }; 672 724 -
src/vim.h
diff -Naur vim70.orig/src/vim.h vim70/src/vim.h
old new 1983 1983 /* values for vim_handle_signal() that are not a signal */ 1984 1984 #define SIGNAL_BLOCK -1 1985 1985 #define SIGNAL_UNBLOCK -2 1986 #if !defined(UNIX) && !defined(VMS) 1986 #if !defined(UNIX) && !defined(VMS) && !defined(OS2) 1987 1987 # define vim_handle_signal(x) 0 1988 1988 #endif 1989 1989
Note:
See TracBrowser
for help on using the repository browser.