diff --git a/7.3.400 b/7.3.400 new file mode 100644 index 0000000..c621a88 --- /dev/null +++ b/7.3.400 @@ -0,0 +1,1762 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.400 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.400 +Problem: Compiler warnings for shadowed variables. +Solution: Remove or rename the variables. +Files: src/charset.c, src/digraph.c, src/edit.c, src/eval.c, src/fold.c, + src/getchar.c, src/message.c, src/misc2.c, src/move.c, + src/netbeans.c, src/option.c, src/os_unix.c, src/screen.c, + src/search.c, src/spell.c, src/syntax.c, src/tag.c, src/window.c + + +*** ../vim-7.3.399/src/charset.c 2010-08-15 21:57:25.000000000 +0200 +--- src/charset.c 2012-01-10 21:55:50.000000000 +0100 +*************** +*** 463,503 **** + if (enc_utf8) + { + int c = utf_ptr2char(STR_PTR(i)); +! int ol = utf_ptr2len(STR_PTR(i)); + int lc = utf_tolower(c); + + /* Only replace the character when it is not an invalid + * sequence (ASCII character or more than one byte) and + * utf_tolower() doesn't return the original character. */ +! if ((c < 0x80 || ol > 1) && c != lc) + { +! int nl = utf_char2len(lc); + + /* If the byte length changes need to shift the following + * characters forward or backward. */ +! if (ol != nl) + { +! if (nl > ol) + { +! if (buf == NULL ? ga_grow(&ga, nl - ol + 1) == FAIL +! : len + nl - ol >= buflen) + { + /* out of memory, keep old char */ + lc = c; +! nl = ol; + } + } +! if (ol != nl) + { + if (buf == NULL) + { +! STRMOVE(GA_PTR(i) + nl, GA_PTR(i) + ol); +! ga.ga_len += nl - ol; + } + else + { +! STRMOVE(buf + i + nl, buf + i + ol); +! len += nl - ol; + } + } + } +--- 463,504 ---- + if (enc_utf8) + { + int c = utf_ptr2char(STR_PTR(i)); +! int olen = utf_ptr2len(STR_PTR(i)); + int lc = utf_tolower(c); + + /* Only replace the character when it is not an invalid + * sequence (ASCII character or more than one byte) and + * utf_tolower() doesn't return the original character. */ +! if ((c < 0x80 || olen > 1) && c != lc) + { +! int nlen = utf_char2len(lc); + + /* If the byte length changes need to shift the following + * characters forward or backward. */ +! if (olen != nlen) + { +! if (nlen > olen) + { +! if (buf == NULL +! ? ga_grow(&ga, nlen - olen + 1) == FAIL +! : len + nlen - olen >= buflen) + { + /* out of memory, keep old char */ + lc = c; +! nlen = olen; + } + } +! if (olen != nlen) + { + if (buf == NULL) + { +! STRMOVE(GA_PTR(i) + nlen, GA_PTR(i) + olen); +! ga.ga_len += nlen - olen; + } + else + { +! STRMOVE(buf + i + nlen, buf + i + olen); +! len += nlen - olen; + } + } + } +*** ../vim-7.3.399/src/digraph.c 2010-08-15 21:57:28.000000000 +0200 +--- src/digraph.c 2012-01-10 21:57:16.000000000 +0100 +*************** +*** 2080,2092 **** + /* + * Lookup the pair "char1", "char2" in the digraph tables. + * If no match, return "char2". +! * If "meta" is TRUE and "char1" is a space, return "char2" | 0x80. + */ + static int +! getexactdigraph(char1, char2, meta) + int char1; + int char2; +! int meta; + { + int i; + int retval = 0; +--- 2080,2092 ---- + /* + * Lookup the pair "char1", "char2" in the digraph tables. + * If no match, return "char2". +! * If "meta_char" is TRUE and "char1" is a space, return "char2" | 0x80. + */ + static int +! getexactdigraph(char1, char2, meta_char) + int char1; + int char2; +! int meta_char; + { + int i; + int retval = 0; +*************** +*** 2159,2165 **** + + if (retval == 0) /* digraph deleted or not found */ + { +! if (char1 == ' ' && meta) /* --> meta-char */ + return (char2 | 0x80); + return char2; + } +--- 2159,2165 ---- + + if (retval == 0) /* digraph deleted or not found */ + { +! if (char1 == ' ' && meta_char) /* --> meta-char */ + return (char2 | 0x80); + return char2; + } +*************** +*** 2171,2186 **** + * Allow for both char1-char2 and char2-char1 + */ + int +! getdigraph(char1, char2, meta) + int char1; + int char2; +! int meta; + { + int retval; + +! if (((retval = getexactdigraph(char1, char2, meta)) == char2) + && (char1 != char2) +! && ((retval = getexactdigraph(char2, char1, meta)) == char1)) + return char2; + return retval; + } +--- 2171,2186 ---- + * Allow for both char1-char2 and char2-char1 + */ + int +! getdigraph(char1, char2, meta_char) + int char1; + int char2; +! int meta_char; + { + int retval; + +! if (((retval = getexactdigraph(char1, char2, meta_char)) == char2) + && (char1 != char2) +! && ((retval = getexactdigraph(char2, char1, meta_char)) == char1)) + return char2; + return retval; + } +*** ../vim-7.3.399/src/edit.c 2011-12-23 13:14:58.000000000 +0100 +--- src/edit.c 2012-01-10 21:58:28.000000000 +0100 +*************** +*** 4003,4026 **** + ins_compl_add_dict(dict) + dict_T *dict; + { +! dictitem_T *refresh; +! dictitem_T *words; + + /* Check for optional "refresh" item. */ + compl_opt_refresh_always = FALSE; +! refresh = dict_find(dict, (char_u *)"refresh", 7); +! if (refresh != NULL && refresh->di_tv.v_type == VAR_STRING) + { +! char_u *v = refresh->di_tv.vval.v_string; + + if (v != NULL && STRCMP(v, (char_u *)"always") == 0) + compl_opt_refresh_always = TRUE; + } + + /* Add completions from a "words" list. */ +! words = dict_find(dict, (char_u *)"words", 5); +! if (words != NULL && words->di_tv.v_type == VAR_LIST) +! ins_compl_add_list(words->di_tv.vval.v_list); + } + + /* +--- 4003,4026 ---- + ins_compl_add_dict(dict) + dict_T *dict; + { +! dictitem_T *di_refresh; +! dictitem_T *di_words; + + /* Check for optional "refresh" item. */ + compl_opt_refresh_always = FALSE; +! di_refresh = dict_find(dict, (char_u *)"refresh", 7); +! if (di_refresh != NULL && di_refresh->di_tv.v_type == VAR_STRING) + { +! char_u *v = di_refresh->di_tv.vval.v_string; + + if (v != NULL && STRCMP(v, (char_u *)"always") == 0) + compl_opt_refresh_always = TRUE; + } + + /* Add completions from a "words" list. */ +! di_words = dict_find(dict, (char_u *)"words", 5); +! if (di_words != NULL && di_words->di_tv.v_type == VAR_LIST) +! ins_compl_add_list(di_words->di_tv.vval.v_list); + } + + /* +*** ../vim-7.3.399/src/eval.c 2012-01-04 14:35:31.000000000 +0100 +--- src/eval.c 2012-01-10 22:00:50.000000000 +0100 +*************** +*** 6573,6587 **** + + /* + * Join list "l" into a string in "*gap", using separator "sep". +! * When "echo" is TRUE use String as echoed, otherwise as inside a List. + * Return FAIL or OK. + */ + static int +! list_join(gap, l, sep, echo, copyID) + garray_T *gap; + list_T *l; + char_u *sep; +! int echo; + int copyID; + { + int first = TRUE; +--- 6573,6587 ---- + + /* + * Join list "l" into a string in "*gap", using separator "sep". +! * When "echo_style" is TRUE use String as echoed, otherwise as inside a List. + * Return FAIL or OK. + */ + static int +! list_join(gap, l, sep, echo_style, copyID) + garray_T *gap; + list_T *l; + char_u *sep; +! int echo_style; + int copyID; + { + int first = TRUE; +*************** +*** 6597,6603 **** + else + ga_concat(gap, sep); + +! if (echo) + s = echo_string(&item->li_tv, &tofree, numbuf, copyID); + else + s = tv2string(&item->li_tv, &tofree, numbuf, copyID); +--- 6597,6603 ---- + else + ga_concat(gap, sep); + +! if (echo_style) + s = echo_string(&item->li_tv, &tofree, numbuf, copyID); + else + s = tv2string(&item->li_tv, &tofree, numbuf, copyID); +*************** +*** 17893,17899 **** + typval_T *argvars; + typval_T *rettv; + { +! char_u *instr; + char_u *fromstr; + char_u *tostr; + char_u *p; +--- 17893,17899 ---- + typval_T *argvars; + typval_T *rettv; + { +! char_u *in_str; + char_u *fromstr; + char_u *tostr; + char_u *p; +*************** +*** 17910,17916 **** + char_u buf2[NUMBUFLEN]; + garray_T ga; + +! instr = get_tv_string(&argvars[0]); + fromstr = get_tv_string_buf_chk(&argvars[1], buf); + tostr = get_tv_string_buf_chk(&argvars[2], buf2); + +--- 17910,17916 ---- + char_u buf2[NUMBUFLEN]; + garray_T ga; + +! in_str = get_tv_string(&argvars[0]); + fromstr = get_tv_string_buf_chk(&argvars[1], buf); + tostr = get_tv_string_buf_chk(&argvars[2], buf2); + +*************** +*** 17936,17954 **** + } + + /* fromstr and tostr have to contain the same number of chars */ +! while (*instr != NUL) + { + #ifdef FEAT_MBYTE + if (has_mbyte) + { +! inlen = (*mb_ptr2len)(instr); +! cpstr = instr; + cplen = inlen; + idx = 0; + for (p = fromstr; *p != NUL; p += fromlen) + { + fromlen = (*mb_ptr2len)(p); +! if (fromlen == inlen && STRNCMP(instr, p, inlen) == 0) + { + for (p = tostr; *p != NUL; p += tolen) + { +--- 17936,17954 ---- + } + + /* fromstr and tostr have to contain the same number of chars */ +! while (*in_str != NUL) + { + #ifdef FEAT_MBYTE + if (has_mbyte) + { +! inlen = (*mb_ptr2len)(in_str); +! cpstr = in_str; + cplen = inlen; + idx = 0; + for (p = fromstr; *p != NUL; p += fromlen) + { + fromlen = (*mb_ptr2len)(p); +! if (fromlen == inlen && STRNCMP(in_str, p, inlen) == 0) + { + for (p = tostr; *p != NUL; p += tolen) + { +*************** +*** 17967,17977 **** + ++idx; + } + +! if (first && cpstr == instr) + { + /* Check that fromstr and tostr have the same number of + * (multi-byte) characters. Done only once when a character +! * of instr doesn't appear in fromstr. */ + first = FALSE; + for (p = tostr; *p != NUL; p += tolen) + { +--- 17967,17977 ---- + ++idx; + } + +! if (first && cpstr == in_str) + { + /* Check that fromstr and tostr have the same number of + * (multi-byte) characters. Done only once when a character +! * of in_str doesn't appear in fromstr. */ + first = FALSE; + for (p = tostr; *p != NUL; p += tolen) + { +*************** +*** 17986,18003 **** + mch_memmove((char *)ga.ga_data + ga.ga_len, cpstr, (size_t)cplen); + ga.ga_len += cplen; + +! instr += inlen; + } + else + #endif + { + /* When not using multi-byte chars we can do it faster. */ +! p = vim_strchr(fromstr, *instr); + if (p != NULL) + ga_append(&ga, tostr[p - fromstr]); + else +! ga_append(&ga, *instr); +! ++instr; + } + } + +--- 17986,18003 ---- + mch_memmove((char *)ga.ga_data + ga.ga_len, cpstr, (size_t)cplen); + ga.ga_len += cplen; + +! in_str += inlen; + } + else + #endif + { + /* When not using multi-byte chars we can do it faster. */ +! p = vim_strchr(fromstr, *in_str); + if (p != NULL) + ga_append(&ga, tostr[p - fromstr]); + else +! ga_append(&ga, *in_str); +! ++in_str; + } + } + +*** ../vim-7.3.399/src/fold.c 2011-08-26 16:12:55.000000000 +0200 +--- src/fold.c 2012-01-10 22:01:26.000000000 +0100 +*************** +*** 1033,1042 **** + * Init the fold info in a new window. + */ + void +! foldInitWin(newwin) +! win_T *newwin; + { +! ga_init2(&newwin->w_folds, (int)sizeof(fold_T), 10); + } + + /* find_wl_entry() {{{2 */ +--- 1033,1042 ---- + * Init the fold info in a new window. + */ + void +! foldInitWin(new_win) +! win_T *new_win; + { +! ga_init2(&new_win->w_folds, (int)sizeof(fold_T), 10); + } + + /* find_wl_entry() {{{2 */ +*** ../vim-7.3.399/src/getchar.c 2011-12-23 14:54:01.000000000 +0100 +--- src/getchar.c 2012-01-10 22:02:30.000000000 +0100 +*************** +*** 418,429 **** + + /* + * Remove the contents of the stuff buffer and the mapped characters in the +! * typeahead buffer (used in case of an error). If 'typeahead' is true, + * flush all typeahead characters (used when interrupted by a CTRL-C). + */ + void +! flush_buffers(typeahead) +! int typeahead; + { + init_typebuf(); + +--- 418,429 ---- + + /* + * Remove the contents of the stuff buffer and the mapped characters in the +! * typeahead buffer (used in case of an error). If "flush_typeahead" is true, + * flush all typeahead characters (used when interrupted by a CTRL-C). + */ + void +! flush_buffers(flush_typeahead) +! int flush_typeahead; + { + init_typebuf(); + +*************** +*** 431,437 **** + while (read_stuff(TRUE) != NUL) + ; + +! if (typeahead) /* remove all typeahead */ + { + /* + * We have to get all characters, because we may delete the first part +--- 431,437 ---- + while (read_stuff(TRUE) != NUL) + ; + +! if (flush_typeahead) /* remove all typeahead */ + { + /* + * We have to get all characters, because we may delete the first part +*** ../vim-7.3.399/src/message.c 2011-12-30 14:14:16.000000000 +0100 +--- src/message.c 2012-01-10 22:03:56.000000000 +0100 +*************** +*** 2487,2493 **** + #ifdef FEAT_CON_DIALOG + int retval = FALSE; + #endif +! int scroll; + msgchunk_T *mp_last = NULL; + msgchunk_T *mp; + int i; +--- 2487,2493 ---- + #ifdef FEAT_CON_DIALOG + int retval = FALSE; + #endif +! int toscroll; + msgchunk_T *mp_last = NULL; + msgchunk_T *mp; + int i; +*************** +*** 2538,2586 **** + } + #endif + +! scroll = 0; + switch (c) + { + case BS: /* scroll one line back */ + case K_BS: + case 'k': + case K_UP: +! scroll = -1; + break; + + case CAR: /* one extra line */ + case NL: + case 'j': + case K_DOWN: +! scroll = 1; + break; + + case 'u': /* Up half a page */ +! scroll = -(Rows / 2); + break; + + case 'd': /* Down half a page */ +! scroll = Rows / 2; + break; + + case 'b': /* one page back */ + case K_PAGEUP: +! scroll = -(Rows - 1); + break; + + case ' ': /* one extra page */ + case 'f': + case K_PAGEDOWN: + case K_LEFTMOUSE: +! scroll = Rows - 1; + break; + + case 'g': /* all the way back to the start */ +! scroll = -999999; + break; + + case 'G': /* all the way to the end */ +! scroll = 999999; + lines_left = 999999; + break; + +--- 2538,2586 ---- + } + #endif + +! toscroll = 0; + switch (c) + { + case BS: /* scroll one line back */ + case K_BS: + case 'k': + case K_UP: +! toscroll = -1; + break; + + case CAR: /* one extra line */ + case NL: + case 'j': + case K_DOWN: +! toscroll = 1; + break; + + case 'u': /* Up half a page */ +! toscroll = -(Rows / 2); + break; + + case 'd': /* Down half a page */ +! toscroll = Rows / 2; + break; + + case 'b': /* one page back */ + case K_PAGEUP: +! toscroll = -(Rows - 1); + break; + + case ' ': /* one extra page */ + case 'f': + case K_PAGEDOWN: + case K_LEFTMOUSE: +! toscroll = Rows - 1; + break; + + case 'g': /* all the way back to the start */ +! toscroll = -999999; + break; + + case 'G': /* all the way to the end */ +! toscroll = 999999; + lines_left = 999999; + break; + +*************** +*** 2633,2641 **** + continue; + } + +! if (scroll != 0) + { +! if (scroll < 0) + { + /* go to start of last line */ + if (mp_last == NULL) +--- 2633,2641 ---- + continue; + } + +! if (toscroll != 0) + { +! if (toscroll < 0) + { + /* go to start of last line */ + if (mp_last == NULL) +*************** +*** 2653,2659 **** + if (mp != NULL && mp->sb_prev != NULL) + { + /* Find line to be displayed at top. */ +! for (i = 0; i > scroll; --i) + { + if (mp == NULL || mp->sb_prev == NULL) + break; +--- 2653,2659 ---- + if (mp != NULL && mp->sb_prev != NULL) + { + /* Find line to be displayed at top. */ +! for (i = 0; i > toscroll; --i) + { + if (mp == NULL || mp->sb_prev == NULL) + break; +*************** +*** 2664,2670 **** + mp_last = msg_sb_start(mp_last->sb_prev); + } + +! if (scroll == -1 && screen_ins_lines(0, 0, 1, + (int)Rows, NULL) == OK) + { + /* display line at top */ +--- 2664,2670 ---- + mp_last = msg_sb_start(mp_last->sb_prev); + } + +! if (toscroll == -1 && screen_ins_lines(0, 0, 1, + (int)Rows, NULL) == OK) + { + /* display line at top */ +*************** +*** 2680,2692 **** + ++msg_scrolled; + } + } +! scroll = 0; + } + } + else + { + /* First display any text that we scrolled back. */ +! while (scroll > 0 && mp_last != NULL) + { + /* scroll up, display line at bottom */ + msg_scroll_up(); +--- 2680,2692 ---- + ++msg_scrolled; + } + } +! toscroll = 0; + } + } + else + { + /* First display any text that we scrolled back. */ +! while (toscroll > 0 && mp_last != NULL) + { + /* scroll up, display line at bottom */ + msg_scroll_up(); +*************** +*** 2694,2704 **** + screen_fill((int)Rows - 2, (int)Rows - 1, 0, + (int)Columns, ' ', ' ', 0); + mp_last = disp_sb_line((int)Rows - 2, mp_last); +! --scroll; + } + } + +! if (scroll <= 0) + { + /* displayed the requested text, more prompt again */ + screen_fill((int)Rows - 1, (int)Rows, 0, +--- 2694,2704 ---- + screen_fill((int)Rows - 2, (int)Rows - 1, 0, + (int)Columns, ' ', ' ', 0); + mp_last = disp_sb_line((int)Rows - 2, mp_last); +! --toscroll; + } + } + +! if (toscroll <= 0) + { + /* displayed the requested text, more prompt again */ + screen_fill((int)Rows - 1, (int)Rows, 0, +*************** +*** 2708,2714 **** + } + + /* display more text, return to caller */ +! lines_left = scroll; + } + + break; +--- 2708,2714 ---- + } + + /* display more text, return to caller */ +! lines_left = toscroll; + } + + break; +*** ../vim-7.3.399/src/misc2.c 2012-01-10 16:28:41.000000000 +0100 +--- src/misc2.c 2012-01-10 22:04:25.000000000 +0100 +*************** +*** 1559,1565 **** + if (enc_utf8) + { + int c, uc; +! int nl; + char_u *s; + + c = utf_ptr2char(p); +--- 1559,1565 ---- + if (enc_utf8) + { + int c, uc; +! int newl; + char_u *s; + + c = utf_ptr2char(p); +*************** +*** 1568,1588 **** + /* Reallocate string when byte count changes. This is rare, + * thus it's OK to do another malloc()/free(). */ + l = utf_ptr2len(p); +! nl = utf_char2len(uc); +! if (nl != l) + { +! s = alloc((unsigned)STRLEN(res) + 1 + nl - l); + if (s == NULL) + break; + mch_memmove(s, res, p - res); +! STRCPY(s + (p - res) + nl, p + l); + p = s + (p - res); + vim_free(res); + res = s; + } + + utf_char2bytes(uc, p); +! p += nl; + } + else if (has_mbyte && (l = (*mb_ptr2len)(p)) > 1) + p += l; /* skip multi-byte character */ +--- 1568,1588 ---- + /* Reallocate string when byte count changes. This is rare, + * thus it's OK to do another malloc()/free(). */ + l = utf_ptr2len(p); +! newl = utf_char2len(uc); +! if (newl != l) + { +! s = alloc((unsigned)STRLEN(res) + 1 + newl - l); + if (s == NULL) + break; + mch_memmove(s, res, p - res); +! STRCPY(s + (p - res) + newl, p + l); + p = s + (p - res); + vim_free(res); + res = s; + } + + utf_char2bytes(uc, p); +! p += newl; + } + else if (has_mbyte && (l = (*mb_ptr2len)(p)) > 1) + p += l; /* skip multi-byte character */ +*** ../vim-7.3.399/src/move.c 2011-02-01 18:01:06.000000000 +0100 +--- src/move.c 2012-01-10 22:05:22.000000000 +0100 +*************** +*** 926,933 **** + * Also updates curwin->w_leftcol. + */ + void +! curs_columns(scroll) +! int scroll; /* when TRUE, may scroll horizontally */ + { + int diff; + int extra; /* offset for first screen line */ +--- 926,933 ---- + * Also updates curwin->w_leftcol. + */ + void +! curs_columns(may_scroll) +! int may_scroll; /* when TRUE, may scroll horizontally */ + { + int diff; + int extra; /* offset for first screen line */ +*************** +*** 1014,1020 **** + /* No line wrapping: compute curwin->w_leftcol if scrolling is on and line + * is not folded. + * If scrolling is off, curwin->w_leftcol is assumed to be 0 */ +! else if (scroll + #ifdef FEAT_FOLDING + && !curwin->w_cline_folded + #endif +--- 1014,1020 ---- + /* No line wrapping: compute curwin->w_leftcol if scrolling is on and line + * is not folded. + * If scrolling is off, curwin->w_leftcol is assumed to be 0 */ +! else if (may_scroll + #ifdef FEAT_FOLDING + && !curwin->w_cline_folded + #endif +*** ../vim-7.3.399/src/netbeans.c 2011-10-20 21:58:20.000000000 +0200 +--- src/netbeans.c 2012-01-10 22:16:26.000000000 +0100 +*************** +*** 1395,1401 **** + int cmdno, + char_u *args) /* points to space before arguments or NUL */ + { +! int doupdate = 0; + long off = 0; + nbbuf_T *buf = nb_get_buf(bufno); + static int skip = 0; +--- 1395,1401 ---- + int cmdno, + char_u *args) /* points to space before arguments or NUL */ + { +! int do_update = 0; + long off = 0; + nbbuf_T *buf = nb_get_buf(bufno); + static int skip = 0; +*************** +*** 1600,1606 **** + last.lnum, last.col)); + del_from_lnum = first.lnum; + del_to_lnum = last.lnum; +! doupdate = 1; + + /* Get the position of the first byte after the deleted + * section. "next" is NULL when deleting to the end of the +--- 1600,1606 ---- + last.lnum, last.col)); + del_from_lnum = first.lnum; + del_to_lnum = last.lnum; +! do_update = 1; + + /* Get the position of the first byte after the deleted + * section. "next" is NULL when deleting to the end of the +*************** +*** 1777,1783 **** + lnum = lnum_start; + + /* Loop over the "\n" separated lines of the argument. */ +! doupdate = 1; + while (*args != NUL) + { + nl = vim_strchr(args, '\n'); +--- 1777,1783 ---- + lnum = lnum_start; + + /* Loop over the "\n" separated lines of the argument. */ +! do_update = 1; + while (*args != NUL) + { + nl = vim_strchr(args, '\n'); +*************** +*** 1992,1998 **** + EMSG("E640: invalid buffer identifier in initDone"); + return FAIL; + } +! doupdate = 1; + buf->initDone = TRUE; + nb_set_curbuf(buf->bufp); + #if defined(FEAT_AUTOCMD) +--- 1992,1998 ---- + EMSG("E640: invalid buffer identifier in initDone"); + return FAIL; + } +! do_update = 1; + buf->initDone = TRUE; + nb_set_curbuf(buf->bufp); + #if defined(FEAT_AUTOCMD) +*************** +*** 2081,2087 **** + ECMD_HIDE + ECMD_OLDBUF, curwin); + buf->bufp = curbuf; + buf->initDone = TRUE; +! doupdate = 1; + #if defined(FEAT_TITLE) + maketitle(); + #endif +--- 2081,2087 ---- + ECMD_HIDE + ECMD_OLDBUF, curwin); + buf->bufp = curbuf; + buf->initDone = TRUE; +! do_update = 1; + #if defined(FEAT_TITLE) + maketitle(); + #endif +*************** +*** 2109,2115 **** + exarg.forceit = FALSE; + dosetvisible = TRUE; + goto_buffer(&exarg, DOBUF_FIRST, FORWARD, buf->bufp->b_fnum); +! doupdate = 1; + dosetvisible = FALSE; + + #ifdef FEAT_GUI +--- 2109,2115 ---- + exarg.forceit = FALSE; + dosetvisible = TRUE; + goto_buffer(&exarg, DOBUF_FIRST, FORWARD, buf->bufp->b_fnum); +! do_update = 1; + dosetvisible = FALSE; + + #ifdef FEAT_GUI +*************** +*** 2309,2315 **** + buf->bufp->b_fnum, TRUE); + buf->bufp = NULL; + buf->initDone = FALSE; +! doupdate = 1; + /* =====================================================================*/ + } + else if (streq((char *)cmd, "setStyle")) /* obsolete... */ +--- 2309,2315 ---- + buf->bufp->b_fnum, TRUE); + buf->bufp = NULL; + buf->initDone = FALSE; +! do_update = 1; + /* =====================================================================*/ + } + else if (streq((char *)cmd, "setStyle")) /* obsolete... */ +*************** +*** 2400,2406 **** + return FAIL; + } + +! doupdate = 1; + + cp = (char *)args; + serNum = strtol(cp, &cp, 10); +--- 2400,2406 ---- + return FAIL; + } + +! do_update = 1; + + cp = (char *)args; + serNum = strtol(cp, &cp, 10); +*************** +*** 2448,2454 **** + nbdebug((" invalid buffer identifier in removeAnno\n")); + return FAIL; + } +! doupdate = 1; + cp = (char *)args; + serNum = strtol(cp, &cp, 10); + args = (char_u *)cp; +--- 2448,2454 ---- + nbdebug((" invalid buffer identifier in removeAnno\n")); + return FAIL; + } +! do_update = 1; + cp = (char *)args; + serNum = strtol(cp, &cp, 10); + args = (char_u *)cp; +*************** +*** 2493,2499 **** + len = strtol(cp, NULL, 10); + args = (char_u *)cp; + pos = off2pos(buf->bufp, off); +! doupdate = 1; + if (!pos) + nbdebug((" no such start pos in %s, %ld\n", cmd, off)); + else +--- 2493,2499 ---- + len = strtol(cp, NULL, 10); + args = (char_u *)cp; + pos = off2pos(buf->bufp, off); +! do_update = 1; + if (!pos) + nbdebug((" no such start pos in %s, %ld\n", cmd, off)); + else +*************** +*** 2555,2561 **** + inAtomic = 0; + if (needupdate) + { +! doupdate = 1; + needupdate = 0; + } + /* =====================================================================*/ +--- 2555,2561 ---- + inAtomic = 0; + if (needupdate) + { +! do_update = 1; + needupdate = 0; + } + /* =====================================================================*/ +*************** +*** 2636,2653 **** + * Unrecognized command is ignored. + */ + } +! if (inAtomic && doupdate) + { + needupdate = 1; +! doupdate = 0; + } + + /* + * Is this needed? I moved the netbeans_Xt_connect() later during startup + * and it may no longer be necessary. If its not needed then needupdate +! * and doupdate can also be removed. + */ +! if (buf != NULL && buf->initDone && doupdate) + { + update_screen(NOT_VALID); + setcursor(); +--- 2636,2653 ---- + * Unrecognized command is ignored. + */ + } +! if (inAtomic && do_update) + { + needupdate = 1; +! do_update = 0; + } + + /* + * Is this needed? I moved the netbeans_Xt_connect() later during startup + * and it may no longer be necessary. If its not needed then needupdate +! * and do_update can also be removed. + */ +! if (buf != NULL && buf->initDone && do_update) + { + update_screen(NOT_VALID); + setcursor(); +*** ../vim-7.3.399/src/option.c 2012-01-04 19:34:32.000000000 +0100 +--- src/option.c 2012-01-10 22:06:03.000000000 +0100 +*************** +*** 8584,8591 **** + long_u flags; + { + /* Careful: P_RCLR and P_RALL are a combination of other P_ flags */ +! int clear = (flags & P_RCLR) == P_RCLR; +! int all = ((flags & P_RALL) == P_RALL || clear); + + #ifdef FEAT_WINDOWS + if ((flags & P_RSTAT) || all) /* mark all status lines dirty */ +--- 8584,8591 ---- + long_u flags; + { + /* Careful: P_RCLR and P_RALL are a combination of other P_ flags */ +! int doclear = (flags & P_RCLR) == P_RCLR; +! int all = ((flags & P_RALL) == P_RALL || doclear); + + #ifdef FEAT_WINDOWS + if ((flags & P_RSTAT) || all) /* mark all status lines dirty */ +*************** +*** 8596,8602 **** + changed_window_setting(); + if (flags & P_RBUF) + redraw_curbuf_later(NOT_VALID); +! if (clear) + redraw_all_later(CLEAR); + else if (all) + redraw_all_later(NOT_VALID); +--- 8596,8602 ---- + changed_window_setting(); + if (flags & P_RBUF) + redraw_curbuf_later(NOT_VALID); +! if (doclear) + redraw_all_later(CLEAR); + else if (all) + redraw_all_later(NOT_VALID); +*** ../vim-7.3.399/src/os_unix.c 2011-10-20 21:09:25.000000000 +0200 +--- src/os_unix.c 2012-01-10 21:48:49.000000000 +0100 +*************** +*** 3884,3890 **** + char_u *p_shcf_copy = NULL; + int i; + char_u *p; +- char_u *s; + int inquote; + int pty_master_fd = -1; /* for pty's */ + # ifdef FEAT_GUI +--- 3884,3889 ---- +*************** +*** 3963,3968 **** +--- 3962,3969 ---- + } + if (cmd != NULL) + { ++ char_u *s; ++ + if (extra_shell_arg != NULL) + argv[argc++] = (char *)extra_shell_arg; + +*************** +*** 4325,4331 **** + linenr_T lnum = curbuf->b_op_start.lnum; + int written = 0; + char_u *lp = ml_get(lnum); +- char_u *s; + size_t l; + + close(fromshell_fd); +--- 4326,4331 ---- +*************** +*** 4339,4345 **** + len = write(toshell_fd, "", (size_t)1); + else + { +! s = vim_strchr(lp + written, NL); + len = write(toshell_fd, (char *)lp + written, + s == NULL ? l + : (size_t)(s - (lp + written))); +--- 4339,4346 ---- + len = write(toshell_fd, "", (size_t)1); + else + { +! char_u *s = vim_strchr(lp + written, NL); +! + len = write(toshell_fd, (char *)lp + written, + s == NULL ? l + : (size_t)(s - (lp + written))); +*** ../vim-7.3.399/src/screen.c 2012-01-10 12:42:05.000000000 +0100 +--- src/screen.c 2012-01-10 22:06:51.000000000 +0100 +*************** +*** 7849,7863 **** + + /* + * screen_valid - allocate screen buffers if size changed +! * If "clear" is TRUE: clear screen if it has been resized. + * Returns TRUE if there is a valid screen to write to. + * Returns FALSE when starting up and screen not initialized yet. + */ + int +! screen_valid(clear) +! int clear; + { +! screenalloc(clear); /* allocate screen buffers if size changed */ + return (ScreenLines != NULL); + } + +--- 7849,7863 ---- + + /* + * screen_valid - allocate screen buffers if size changed +! * If "doclear" is TRUE: clear screen if it has been resized. + * Returns TRUE if there is a valid screen to write to. + * Returns FALSE when starting up and screen not initialized yet. + */ + int +! screen_valid(doclear) +! int doclear; + { +! screenalloc(doclear); /* allocate screen buffers if size changed */ + return (ScreenLines != NULL); + } + +*************** +*** 7872,7879 **** + * final size of the shell is needed. + */ + void +! screenalloc(clear) +! int clear; + { + int new_row, old_row; + #ifdef FEAT_GUI +--- 7872,7879 ---- + * final size of the shell is needed. + */ + void +! screenalloc(doclear) +! int doclear; + { + int new_row, old_row; + #ifdef FEAT_GUI +*************** +*** 8069,8075 **** + * (used when resizing the window at the "--more--" prompt or when + * executing an external command, for the GUI). + */ +! if (!clear) + { + (void)vim_memset(new_ScreenLines + new_row * Columns, + ' ', (size_t)Columns * sizeof(schar_T)); +--- 8069,8075 ---- + * (used when resizing the window at the "--more--" prompt or when + * executing an external command, for the GUI). + */ +! if (!doclear) + { + (void)vim_memset(new_ScreenLines + new_row * Columns, + ' ', (size_t)Columns * sizeof(schar_T)); +*************** +*** 8159,8165 **** + screen_Columns = Columns; + + must_redraw = CLEAR; /* need to clear the screen later */ +! if (clear) + screenclear2(); + + #ifdef FEAT_GUI +--- 8159,8165 ---- + screen_Columns = Columns; + + must_redraw = CLEAR; /* need to clear the screen later */ +! if (doclear) + screenclear2(); + + #ifdef FEAT_GUI +*** ../vim-7.3.399/src/search.c 2011-10-04 17:00:13.000000000 +0200 +--- src/search.c 2012-01-10 22:07:16.000000000 +0100 +*************** +*** 2402,2425 **** + { + if (vim_strchr(p, ';') != NULL) /* there may be comments */ + { +! int instr = FALSE; /* inside of string */ + + p = line; /* scan from start */ + while ((p = vim_strpbrk(p, (char_u *)"\";")) != NULL) + { + if (*p == '"') + { +! if (instr) + { + if (*(p - 1) != '\\') /* skip escaped quote */ +! instr = FALSE; + } + else if (p == line || ((p - line) >= 2 + /* skip #\" form */ + && *(p - 1) != '\\' && *(p - 2) != '#')) +! instr = TRUE; + } +! else if (!instr && ((p - line) < 2 + || (*(p - 1) != '\\' && *(p - 2) != '#'))) + break; /* found! */ + ++p; +--- 2402,2425 ---- + { + if (vim_strchr(p, ';') != NULL) /* there may be comments */ + { +! int in_str = FALSE; /* inside of string */ + + p = line; /* scan from start */ + while ((p = vim_strpbrk(p, (char_u *)"\";")) != NULL) + { + if (*p == '"') + { +! if (in_str) + { + if (*(p - 1) != '\\') /* skip escaped quote */ +! in_str = FALSE; + } + else if (p == line || ((p - line) >= 2 + /* skip #\" form */ + && *(p - 1) != '\\' && *(p - 2) != '#')) +! in_str = TRUE; + } +! else if (!in_str && ((p - line) < 2 + || (*(p - 1) != '\\' && *(p - 2) != '#'))) + break; /* found! */ + ++p; +*** ../vim-7.3.399/src/spell.c 2012-01-10 16:28:41.000000000 +0100 +--- src/spell.c 2012-01-10 22:09:23.000000000 +0100 +*************** +*** 5049,5055 **** + static int offset2bytes __ARGS((int nr, char_u *buf)); + static int bytes2offset __ARGS((char_u **pp)); + static void sug_write __ARGS((spellinfo_T *spin, char_u *fname)); +! static void mkspell __ARGS((int fcount, char_u **fnames, int ascii, int overwrite, int added_word)); + static void spell_message __ARGS((spellinfo_T *spin, char_u *str)); + static void init_spellfile __ARGS((void)); + +--- 5049,5055 ---- + static int offset2bytes __ARGS((int nr, char_u *buf)); + static int bytes2offset __ARGS((char_u **pp)); + static void sug_write __ARGS((spellinfo_T *spin, char_u *fname)); +! static void mkspell __ARGS((int fcount, char_u **fnames, int ascii, int over_write, int added_word)); + static void spell_message __ARGS((spellinfo_T *spin, char_u *str)); + static void init_spellfile __ARGS((void)); + +*************** +*** 9085,9095 **** + * and ".spl" is appended to make the output file name. + */ + static void +! mkspell(fcount, fnames, ascii, overwrite, added_word) + int fcount; + char_u **fnames; + int ascii; /* -ascii argument given */ +! int overwrite; /* overwrite existing output file */ + int added_word; /* invoked through "zg" */ + { + char_u *fname = NULL; +--- 9085,9095 ---- + * and ".spl" is appended to make the output file name. + */ + static void +! mkspell(fcount, fnames, ascii, over_write, added_word) + int fcount; + char_u **fnames; + int ascii; /* -ascii argument given */ +! int over_write; /* overwrite existing output file */ + int added_word; /* invoked through "zg" */ + { + char_u *fname = NULL; +*************** +*** 9173,9179 **** + { + /* Check for overwriting before doing things that may take a lot of + * time. */ +! if (!overwrite && mch_stat((char *)wfname, &st) >= 0) + { + EMSG(_(e_exists)); + goto theend; +--- 9173,9179 ---- + { + /* Check for overwriting before doing things that may take a lot of + * time. */ +! if (!over_write && mch_stat((char *)wfname, &st) >= 0) + { + EMSG(_(e_exists)); + goto theend; +*** ../vim-7.3.399/src/syntax.c 2011-06-19 04:54:17.000000000 +0200 +--- src/syntax.c 2012-01-10 22:10:23.000000000 +0100 +*************** +*** 4006,4022 **** + } + + static void +! syn_list_flags(nl, flags, attr) +! struct name_list *nl; + int flags; + int attr; + { + int i; + +! for (i = 0; nl[i].flag != 0; ++i) +! if (flags & nl[i].flag) + { +! msg_puts_attr((char_u *)nl[i].name, attr); + msg_putchar(' '); + } + } +--- 4006,4022 ---- + } + + static void +! syn_list_flags(nlist, flags, attr) +! struct name_list *nlist; + int flags; + int attr; + { + int i; + +! for (i = 0; nlist[i].flag != 0; ++i) +! if (flags & nlist[i].flag) + { +! msg_puts_attr((char_u *)nlist[i].name, attr); + msg_putchar(' '); + } + } +*** ../vim-7.3.399/src/tag.c 2011-12-14 14:15:12.000000000 +0100 +--- src/tag.c 2012-01-10 21:51:05.000000000 +0100 +*************** +*** 1353,1359 **** + int match_count = 0; /* number of matches found */ + char_u **matches; + int mtt; +- int len; + int help_save; + #ifdef FEAT_MULTI_LANG + int help_pri = 0; +--- 1353,1358 ---- +*************** +*** 2235,2240 **** +--- 2234,2241 ---- + */ + if (ga_grow(&ga_match[mtt], 1) == OK) + { ++ int len; ++ + if (help_only) + { + #ifdef FEAT_MULTI_LANG +*** ../vim-7.3.399/src/window.c 2011-12-30 15:01:55.000000000 +0100 +--- src/window.c 2012-01-10 22:11:41.000000000 +0100 +*************** +*** 683,701 **** + } + + /* +! * When "newwin" is NULL: split the current window in two. +! * When "newwin" is not NULL: insert this window at the far + * top/left/right/bottom. + * return FAIL for failure, OK otherwise + */ + int +! win_split_ins(size, flags, newwin, dir) + int size; + int flags; +! win_T *newwin; + int dir; + { +! win_T *wp = newwin; + win_T *oldwin; + int new_size = size; + int i; +--- 683,701 ---- + } + + /* +! * When "new_wp" is NULL: split the current window in two. +! * When "new_wp" is not NULL: insert this window at the far + * top/left/right/bottom. + * return FAIL for failure, OK otherwise + */ + int +! win_split_ins(size, flags, new_wp, dir) + int size; + int flags; +! win_T *new_wp; + int dir; + { +! win_T *wp = new_wp; + win_T *oldwin; + int new_size = size; + int i; +*************** +*** 718,724 **** + /* add a status line when p_ls == 1 and splitting the first window */ + if (lastwin == firstwin && p_ls == 1 && oldwin->w_status_height == 0) + { +! if (oldwin->w_height <= p_wmh && newwin == NULL) + { + EMSG(_(e_noroom)); + return FAIL; +--- 718,724 ---- + /* add a status line when p_ls == 1 and splitting the first window */ + if (lastwin == firstwin && p_ls == 1 && oldwin->w_status_height == 0) + { +! if (oldwin->w_height <= p_wmh && new_wp == NULL) + { + EMSG(_(e_noroom)); + return FAIL; +*************** +*** 751,757 **** + } + else + available = oldwin->w_width; +! if (available < needed && newwin == NULL) + { + EMSG(_(e_noroom)); + return FAIL; +--- 751,757 ---- + } + else + available = oldwin->w_width; +! if (available < needed && new_wp == NULL) + { + EMSG(_(e_noroom)); + return FAIL; +*************** +*** 815,821 **** + available = oldwin->w_height; + needed += p_wmh; + } +! if (available < needed && newwin == NULL) + { + EMSG(_(e_noroom)); + return FAIL; +--- 815,821 ---- + available = oldwin->w_height; + needed += p_wmh; + } +! if (available < needed && new_wp == NULL) + { + EMSG(_(e_noroom)); + return FAIL; +*************** +*** 888,907 **** + p_sb)))) + { + /* new window below/right of current one */ +! if (newwin == NULL) + wp = win_alloc(oldwin, FALSE); + else + win_append(oldwin, wp); + } + else + { +! if (newwin == NULL) + wp = win_alloc(oldwin->w_prev, FALSE); + else + win_append(oldwin->w_prev, wp); + } + +! if (newwin == NULL) + { + if (wp == NULL) + return FAIL; +--- 888,907 ---- + p_sb)))) + { + /* new window below/right of current one */ +! if (new_wp == NULL) + wp = win_alloc(oldwin, FALSE); + else + win_append(oldwin, wp); + } + else + { +! if (new_wp == NULL) + wp = win_alloc(oldwin->w_prev, FALSE); + else + win_append(oldwin->w_prev, wp); + } + +! if (new_wp == NULL) + { + if (wp == NULL) + return FAIL; +*************** +*** 972,981 **** + frp->fr_parent = curfrp; + } + +! if (newwin == NULL) + frp = wp->w_frame; + else +! frp = newwin->w_frame; + frp->fr_parent = curfrp->fr_parent; + + /* Insert the new frame at the right place in the frame list. */ +--- 972,981 ---- + frp->fr_parent = curfrp; + } + +! if (new_wp == NULL) + frp = wp->w_frame; + else +! frp = new_wp->w_frame; + frp->fr_parent = curfrp->fr_parent; + + /* Insert the new frame at the right place in the frame list. */ +*************** +*** 4284,4302 **** + win_T *after UNUSED; + int hidden UNUSED; + { +! win_T *newwin; + + /* + * allocate window structure and linesizes arrays + */ +! newwin = (win_T *)alloc_clear((unsigned)sizeof(win_T)); +! if (newwin != NULL && win_alloc_lines(newwin) == FAIL) + { +! vim_free(newwin); +! newwin = NULL; + } + +! if (newwin != NULL) + { + #ifdef FEAT_AUTOCMD + /* Don't execute autocommands while the window is not properly +--- 4284,4302 ---- + win_T *after UNUSED; + int hidden UNUSED; + { +! win_T *new_wp; + + /* + * allocate window structure and linesizes arrays + */ +! new_wp = (win_T *)alloc_clear((unsigned)sizeof(win_T)); +! if (new_wp != NULL && win_alloc_lines(new_wp) == FAIL) + { +! vim_free(new_wp); +! new_wp = NULL; + } + +! if (new_wp != NULL) + { + #ifdef FEAT_AUTOCMD + /* Don't execute autocommands while the window is not properly +*************** +*** 4309,4361 **** + */ + #ifdef FEAT_WINDOWS + if (!hidden) +! win_append(after, newwin); + #endif + #ifdef FEAT_VERTSPLIT +! newwin->w_wincol = 0; +! newwin->w_width = Columns; + #endif + + /* position the display and the cursor at the top of the file. */ +! newwin->w_topline = 1; + #ifdef FEAT_DIFF +! newwin->w_topfill = 0; + #endif +! newwin->w_botline = 2; +! newwin->w_cursor.lnum = 1; + #ifdef FEAT_SCROLLBIND +! newwin->w_scbind_pos = 1; + #endif + + /* We won't calculate w_fraction until resizing the window */ +! newwin->w_fraction = 0; +! newwin->w_prev_fraction_row = -1; + + #ifdef FEAT_GUI + if (gui.in_use) + { +! gui_create_scrollbar(&newwin->w_scrollbars[SBAR_LEFT], +! SBAR_LEFT, newwin); +! gui_create_scrollbar(&newwin->w_scrollbars[SBAR_RIGHT], +! SBAR_RIGHT, newwin); + } + #endif + #ifdef FEAT_EVAL + /* init w: variables */ +! init_var_dict(&newwin->w_vars, &newwin->w_winvar); + #endif + #ifdef FEAT_FOLDING +! foldInitWin(newwin); + #endif + #ifdef FEAT_AUTOCMD + unblock_autocmds(); + #endif + #ifdef FEAT_SEARCH_EXTRA +! newwin->w_match_head = NULL; +! newwin->w_next_match_id = 4; + #endif + } +! return newwin; + } + + #if defined(FEAT_WINDOWS) || defined(PROTO) +--- 4309,4361 ---- + */ + #ifdef FEAT_WINDOWS + if (!hidden) +! win_append(after, new_wp); + #endif + #ifdef FEAT_VERTSPLIT +! new_wp->w_wincol = 0; +! new_wp->w_width = Columns; + #endif + + /* position the display and the cursor at the top of the file. */ +! new_wp->w_topline = 1; + #ifdef FEAT_DIFF +! new_wp->w_topfill = 0; + #endif +! new_wp->w_botline = 2; +! new_wp->w_cursor.lnum = 1; + #ifdef FEAT_SCROLLBIND +! new_wp->w_scbind_pos = 1; + #endif + + /* We won't calculate w_fraction until resizing the window */ +! new_wp->w_fraction = 0; +! new_wp->w_prev_fraction_row = -1; + + #ifdef FEAT_GUI + if (gui.in_use) + { +! gui_create_scrollbar(&new_wp->w_scrollbars[SBAR_LEFT], +! SBAR_LEFT, new_wp); +! gui_create_scrollbar(&new_wp->w_scrollbars[SBAR_RIGHT], +! SBAR_RIGHT, new_wp); + } + #endif + #ifdef FEAT_EVAL + /* init w: variables */ +! init_var_dict(&new_wp->w_vars, &new_wp->w_winvar); + #endif + #ifdef FEAT_FOLDING +! foldInitWin(new_wp); + #endif + #ifdef FEAT_AUTOCMD + unblock_autocmds(); + #endif + #ifdef FEAT_SEARCH_EXTRA +! new_wp->w_match_head = NULL; +! new_wp->w_next_match_id = 4; + #endif + } +! return new_wp; + } + + #if defined(FEAT_WINDOWS) || defined(PROTO) +*** ../vim-7.3.399/src/version.c 2012-01-10 18:37:53.000000000 +0100 +--- src/version.c 2012-01-10 22:23:10.000000000 +0100 +*************** +*** 716,717 **** +--- 716,719 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 400, + /**/ + +-- +A parent can be arrested if his child cannot hold back a burp during a church +service. + [real standing law in Nebraska, United States of America] + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org ///