To: vim-dev@vim.org Subject: Patch 7.0.070 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit ------------ Patch 7.0.070 Problem: Compiler warnings for shadowed variables and uninitialized variables. Solution: Rename variables such as "index", "msg" and "dup". Initialize variables. Files: src/edit.c, src/eval.c, src/ex_cmds.c, src/ex_cmds2.c, src/ex_docmd.c, src/gui_beval.c, src/gui_gtk.c, src/gui_gtk_x11.c, src/hardcopy.c, src/if_cscope.c, src/main.c, src/mbyte.c, src/memline.c, src/netbeans.c, src/normal.c, src/option.c, src/os_unix.c, src/quickfix.c, src/regexp.c, src/screen.c, src/search.c, src/spell.c, src/ui.c, src/undo.c, src/window.c, src/version.c *** ../vim-7.0.069/src/edit.c Tue Aug 29 16:33:23 2006 --- src/edit.c Tue Aug 29 14:57:46 2006 *************** *** 129,135 **** static void ins_ctrl_x __ARGS((void)); static int has_compl_option __ARGS((int dict_opt)); ! static int ins_compl_add __ARGS((char_u *str, int len, int icase, char_u *fname, char_u **cptext, int cdir, int flags, int dup)); static int ins_compl_equal __ARGS((compl_T *match, char_u *str, int len)); static void ins_compl_longest_match __ARGS((compl_T *match)); static void ins_compl_add_matches __ARGS((int num_matches, char_u **matches, int icase)); --- 129,135 ---- static void ins_ctrl_x __ARGS((void)); static int has_compl_option __ARGS((int dict_opt)); ! static int ins_compl_add __ARGS((char_u *str, int len, int icase, char_u *fname, char_u **cptext, int cdir, int flags, int adup)); static int ins_compl_equal __ARGS((compl_T *match, char_u *str, int len)); static void ins_compl_longest_match __ARGS((compl_T *match)); static void ins_compl_add_matches __ARGS((int num_matches, char_u **matches, int icase)); *************** *** 2118,2124 **** * maybe because alloc() returns NULL, then FAIL is returned. */ static int ! ins_compl_add(str, len, icase, fname, cptext, cdir, flags, dup) char_u *str; int len; int icase; --- 2118,2124 ---- * maybe because alloc() returns NULL, then FAIL is returned. */ static int ! ins_compl_add(str, len, icase, fname, cptext, cdir, flags, adup) char_u *str; int len; int icase; *************** *** 2126,2132 **** char_u **cptext; /* extra text for popup menu or NULL */ int cdir; int flags; ! int dup; /* accept duplicate match */ { compl_T *match; int dir = (cdir == 0 ? compl_direction : cdir); --- 2126,2132 ---- char_u **cptext; /* extra text for popup menu or NULL */ int cdir; int flags; ! int adup; /* accept duplicate match */ { compl_T *match; int dir = (cdir == 0 ? compl_direction : cdir); *************** *** 2140,2146 **** /* * If the same match is already present, don't add it. */ ! if (compl_first_match != NULL && !dup) { match = compl_first_match; do --- 2140,2146 ---- /* * If the same match is already present, don't add it. */ ! if (compl_first_match != NULL && !adup) { match = compl_first_match; do *************** *** 3608,3614 **** { char_u *word; int icase = FALSE; ! int dup = FALSE; char_u *(cptext[CPT_COUNT]); if (tv->v_type == VAR_DICT && tv->vval.v_dict != NULL) --- 3608,3614 ---- { char_u *word; int icase = FALSE; ! int adup = FALSE; char_u *(cptext[CPT_COUNT]); if (tv->v_type == VAR_DICT && tv->vval.v_dict != NULL) *************** *** 3625,3631 **** if (get_dict_string(tv->vval.v_dict, (char_u *)"icase", FALSE) != NULL) icase = get_dict_number(tv->vval.v_dict, (char_u *)"icase"); if (get_dict_string(tv->vval.v_dict, (char_u *)"dup", FALSE) != NULL) ! dup = get_dict_number(tv->vval.v_dict, (char_u *)"dup"); } else { --- 3625,3631 ---- if (get_dict_string(tv->vval.v_dict, (char_u *)"icase", FALSE) != NULL) icase = get_dict_number(tv->vval.v_dict, (char_u *)"icase"); if (get_dict_string(tv->vval.v_dict, (char_u *)"dup", FALSE) != NULL) ! adup = get_dict_number(tv->vval.v_dict, (char_u *)"dup"); } else { *************** *** 3634,3640 **** } if (word == NULL || *word == NUL) return FAIL; ! return ins_compl_add(word, -1, icase, NULL, cptext, dir, 0, dup); } #endif --- 3634,3640 ---- } if (word == NULL || *word == NUL) return FAIL; ! return ins_compl_add(word, -1, icase, NULL, cptext, dir, 0, adup); } #endif *** ../vim-7.0.069/src/eval.c Wed Aug 16 22:03:35 2006 --- src/eval.c Thu Aug 24 22:00:09 2006 *************** *** 454,460 **** static char_u *deref_func_name __ARGS((char_u *name, int *lenp)); static int get_func_tv __ARGS((char_u *name, int len, typval_T *rettv, char_u **arg, linenr_T firstline, linenr_T lastline, int *doesrange, int evaluate, dict_T *selfdict)); static int call_func __ARGS((char_u *name, int len, typval_T *rettv, int argcount, typval_T *argvars, linenr_T firstline, linenr_T lastline, int *doesrange, int evaluate, dict_T *selfdict)); ! static void emsg_funcname __ARGS((char *msg, char_u *name)); static void f_add __ARGS((typval_T *argvars, typval_T *rettv)); static void f_append __ARGS((typval_T *argvars, typval_T *rettv)); --- 454,460 ---- static char_u *deref_func_name __ARGS((char_u *name, int *lenp)); static int get_func_tv __ARGS((char_u *name, int len, typval_T *rettv, char_u **arg, linenr_T firstline, linenr_T lastline, int *doesrange, int evaluate, dict_T *selfdict)); static int call_func __ARGS((char_u *name, int len, typval_T *rettv, int argcount, typval_T *argvars, linenr_T firstline, linenr_T lastline, int *doesrange, int evaluate, dict_T *selfdict)); ! static void emsg_funcname __ARGS((char *ermsg, char_u *name)); static void f_add __ARGS((typval_T *argvars, typval_T *rettv)); static void f_append __ARGS((typval_T *argvars, typval_T *rettv)); *************** *** 2260,2266 **** EMSG(_(e_letunexp)); else { ! char_u *tofree = NULL; char_u *s; p = get_tv_string_chk(tv); --- 2260,2266 ---- EMSG(_(e_letunexp)); else { ! char_u *ptofree = NULL; char_u *s; p = get_tv_string_chk(tv); *************** *** 2269,2275 **** s = get_reg_contents(*arg == '@' ? '"' : *arg, TRUE, TRUE); if (s != NULL) { ! p = tofree = concat_str(s, p); vim_free(s); } } --- 2269,2275 ---- s = get_reg_contents(*arg == '@' ? '"' : *arg, TRUE, TRUE); if (s != NULL) { ! p = ptofree = concat_str(s, p); vim_free(s); } } *************** *** 2278,2284 **** write_reg_contents(*arg == '@' ? '"' : *arg, p, -1, FALSE); arg_end = arg + 1; } ! vim_free(tofree); } } --- 2278,2284 ---- write_reg_contents(*arg == '@' ? '"' : *arg, p, -1, FALSE); arg_end = arg + 1; } ! vim_free(ptofree); } } *************** *** 7595,7602 **** * Give an error message with a function name. Handle things. */ static void ! emsg_funcname(msg, name) ! char *msg; char_u *name; { char_u *p; --- 7595,7602 ---- * Give an error message with a function name. Handle things. */ static void ! emsg_funcname(ermsg, name) ! char *ermsg; char_u *name; { char_u *p; *************** *** 7605,7611 **** p = concat_str((char_u *)"", name + 3); else p = name; ! EMSG2(_(msg), p); if (p != name) vim_free(p); } --- 7605,7611 ---- p = concat_str((char_u *)"", name + 3); else p = name; ! EMSG2(_(ermsg), p); if (p != name) vim_free(p); } *************** *** 9179,9203 **** typval_T save_key; int rem; int todo; ! char_u *msg = map ? (char_u *)"map()" : (char_u *)"filter()"; int save_did_emsg; rettv->vval.v_number = 0; if (argvars[0].v_type == VAR_LIST) { if ((l = argvars[0].vval.v_list) == NULL ! || (map && tv_check_lock(l->lv_lock, msg))) return; } else if (argvars[0].v_type == VAR_DICT) { if ((d = argvars[0].vval.v_dict) == NULL ! || (map && tv_check_lock(d->dv_lock, msg))) return; } else { ! EMSG2(_(e_listdictarg), msg); return; } --- 9179,9203 ---- typval_T save_key; int rem; int todo; ! char_u *ermsg = map ? (char_u *)"map()" : (char_u *)"filter()"; int save_did_emsg; rettv->vval.v_number = 0; if (argvars[0].v_type == VAR_LIST) { if ((l = argvars[0].vval.v_list) == NULL ! || (map && tv_check_lock(l->lv_lock, ermsg))) return; } else if (argvars[0].v_type == VAR_DICT) { if ((d = argvars[0].vval.v_dict) == NULL ! || (map && tv_check_lock(d->dv_lock, ermsg))) return; } else { ! EMSG2(_(e_listdictarg), ermsg); return; } *************** *** 9229,9235 **** { --todo; di = HI2DI(hi); ! if (tv_check_lock(di->di_tv.v_lock, msg)) break; vimvars[VV_KEY].vv_str = vim_strsave(di->di_key); if (filter_map_one(&di->di_tv, expr, map, &rem) == FAIL --- 9229,9235 ---- { --todo; di = HI2DI(hi); ! if (tv_check_lock(di->di_tv.v_lock, ermsg)) break; vimvars[VV_KEY].vv_str = vim_strsave(di->di_key); if (filter_map_one(&di->di_tv, expr, map, &rem) == FAIL *************** *** 9248,9254 **** { for (li = l->lv_first; li != NULL; li = nli) { ! if (tv_check_lock(li->li_tv.v_lock, msg)) break; nli = li->li_next; if (filter_map_one(&li->li_tv, expr, map, &rem) == FAIL --- 9248,9254 ---- { for (li = l->lv_first; li != NULL; li = nli) { ! if (tv_check_lock(li->li_tv.v_lock, ermsg)) break; nli = li->li_next; if (filter_map_one(&li->li_tv, expr, map, &rem) == FAIL *************** *** 19789,19795 **** if (p_verbose >= 14) { char_u buf[MSG_BUF_LEN]; ! char_u numbuf[NUMBUFLEN]; char_u *tofree; msg_puts((char_u *)"("); --- 19789,19795 ---- if (p_verbose >= 14) { char_u buf[MSG_BUF_LEN]; ! char_u numbuf2[NUMBUFLEN]; char_u *tofree; msg_puts((char_u *)"("); *************** *** 19801,19808 **** msg_outnum((long)argvars[i].vval.v_number); else { ! trunc_string(tv2string(&argvars[i], &tofree, numbuf, 0), ! buf, MSG_BUF_CLEN); msg_puts(buf); vim_free(tofree); } --- 19801,19808 ---- msg_outnum((long)argvars[i].vval.v_number); else { ! trunc_string(tv2string(&argvars[i], &tofree, ! numbuf2, 0), buf, MSG_BUF_CLEN); msg_puts(buf); vim_free(tofree); } *************** *** 19880,19892 **** else { char_u buf[MSG_BUF_LEN]; ! char_u numbuf[NUMBUFLEN]; char_u *tofree; /* The value may be very long. Skip the middle part, so that we * have some idea how it starts and ends. smsg() would always * truncate it at the end. */ ! trunc_string(tv2string(fc.rettv, &tofree, numbuf, 0), buf, MSG_BUF_CLEN); smsg((char_u *)_("%s returning %s"), sourcing_name, buf); vim_free(tofree); --- 19880,19892 ---- else { char_u buf[MSG_BUF_LEN]; ! char_u numbuf2[NUMBUFLEN]; char_u *tofree; /* The value may be very long. Skip the middle part, so that we * have some idea how it starts and ends. smsg() would always * truncate it at the end. */ ! trunc_string(tv2string(fc.rettv, &tofree, numbuf2, 0), buf, MSG_BUF_CLEN); smsg((char_u *)_("%s returning %s"), sourcing_name, buf); vim_free(tofree); *** ../vim-7.0.069/src/ex_cmds.c Sun Apr 23 00:33:23 2006 --- src/ex_cmds.c Mon Aug 28 21:42:29 2006 *************** *** 185,190 **** --- 185,191 ---- new_indent = indent; else { + has_tab = FALSE; /* avoid uninit warnings */ len = linelen(eap->cmdidx == CMD_right ? &has_tab : NULL) - get_indent(); *************** *** 1772,1781 **** ? (st_old.st_mode & 0020) : (st_old.st_mode & 0002)))) { ! int tt; /* avoid a wait_return for this message, it's annoying */ - tt = msg_didany; EMSG2(_("E137: Viminfo file is not writable: %s"), fname); msg_didany = tt; fclose(fp_in); --- 1773,1781 ---- ? (st_old.st_mode & 0020) : (st_old.st_mode & 0002)))) { ! int tt = msg_didany; /* avoid a wait_return for this message, it's annoying */ EMSG2(_("E137: Viminfo file is not writable: %s"), fname); msg_didany = tt; fclose(fp_in); *** ../vim-7.0.069/src/ex_cmds2.c Tue Apr 18 00:10:47 2006 --- src/ex_cmds2.c Thu Aug 24 22:01:44 2006 *************** *** 3648,3660 **** * Return FALSE when not sourcing a file. */ int ! source_finished(getline, cookie) ! char_u *(*getline) __ARGS((int, void *, int)); void *cookie; { ! return (getline_equal(getline, cookie, getsourceline) && ((struct source_cookie *)getline_cookie( ! getline, cookie))->finished); } #endif --- 3648,3660 ---- * Return FALSE when not sourcing a file. */ int ! source_finished(fgetline, cookie) ! char_u *(*fgetline) __ARGS((int, void *, int)); void *cookie; { ! return (getline_equal(fgetline, cookie, getsourceline) && ((struct source_cookie *)getline_cookie( ! fgetline, cookie))->finished); } #endif *** ../vim-7.0.069/src/ex_docmd.c Wed Aug 16 17:06:22 2006 --- src/ex_docmd.c Thu Aug 24 22:03:17 2006 *************** *** 58,66 **** #endif #ifdef FEAT_EVAL ! static char_u *do_one_cmd __ARGS((char_u **, int, struct condstack *, char_u *(*getline)(int, void *, int), void *cookie)); #else ! static char_u *do_one_cmd __ARGS((char_u **, int, char_u *(*getline)(int, void *, int), void *cookie)); static int if_level = 0; /* depth in :if */ #endif static char_u *find_command __ARGS((exarg_T *eap, int *full)); --- 58,66 ---- #endif #ifdef FEAT_EVAL ! static char_u *do_one_cmd __ARGS((char_u **, int, struct condstack *, char_u *(*fgetline)(int, void *, int), void *cookie)); #else ! static char_u *do_one_cmd __ARGS((char_u **, int, char_u *(*fgetline)(int, void *, int), void *cookie)); static int if_level = 0; /* depth in :if */ #endif static char_u *find_command __ARGS((exarg_T *eap, int *full)); *************** *** 831,840 **** /* * If requested, store and reset the global values controlling the ! * exception handling (used when debugging). */ if (flags & DOCMD_EXCRESET) save_dbg_stuff(&debug_saved); initial_trylevel = trylevel; --- 831,843 ---- /* * If requested, store and reset the global values controlling the ! * exception handling (used when debugging). Otherwise clear it to avoid ! * a bogus compiler warning when the optimizer uses inline functions... */ if (flags & DOCMD_EXCRESET) save_dbg_stuff(&debug_saved); + else + memset(&debug_saved, 0, 1); initial_trylevel = trylevel; *************** *** 1574,1597 **** #endif /* ! * If "getline" is get_loop_line(), return TRUE if the getline it uses equals ! * "func". * Otherwise return TRUE when "getline" equals "func". */ /*ARGSUSED*/ int ! getline_equal(getline, cookie, func) ! char_u *(*getline) __ARGS((int, void *, int)); ! void *cookie; /* argument for getline() */ char_u *(*func) __ARGS((int, void *, int)); { #ifdef FEAT_EVAL char_u *(*gp) __ARGS((int, void *, int)); struct loop_cookie *cp; ! /* When "getline" is "get_loop_line()" use the "cookie" to find the * function that's orignally used to obtain the lines. This may be nested * several levels. */ ! gp = getline; cp = (struct loop_cookie *)cookie; while (gp == get_loop_line) { --- 1577,1600 ---- #endif /* ! * If "fgetline" is get_loop_line(), return TRUE if the getline it uses equals ! * "func". * Otherwise return TRUE when "fgetline" equals "func". */ /*ARGSUSED*/ int ! getline_equal(fgetline, cookie, func) ! char_u *(*fgetline) __ARGS((int, void *, int)); ! void *cookie; /* argument for fgetline() */ char_u *(*func) __ARGS((int, void *, int)); { #ifdef FEAT_EVAL char_u *(*gp) __ARGS((int, void *, int)); struct loop_cookie *cp; ! /* When "fgetline" is "get_loop_line()" use the "cookie" to find the * function that's orignally used to obtain the lines. This may be nested * several levels. */ ! gp = fgetline; cp = (struct loop_cookie *)cookie; while (gp == get_loop_line) { *************** *** 1600,1628 **** } return gp == func; #else ! return getline == func; #endif } #if defined(FEAT_EVAL) || defined(FEAT_MBYTE) || defined(PROTO) /* ! * If "getline" is get_loop_line(), return the cookie used by the original * getline function. Otherwise return "cookie". */ /*ARGSUSED*/ void * ! getline_cookie(getline, cookie) ! char_u *(*getline) __ARGS((int, void *, int)); ! void *cookie; /* argument for getline() */ { # ifdef FEAT_EVAL char_u *(*gp) __ARGS((int, void *, int)); struct loop_cookie *cp; ! /* When "getline" is "get_loop_line()" use the "cookie" to find the * cookie that's orignally used to obtain the lines. This may be nested * several levels. */ ! gp = getline; cp = (struct loop_cookie *)cookie; while (gp == get_loop_line) { --- 1603,1631 ---- } return gp == func; #else ! return fgetline == func; #endif } #if defined(FEAT_EVAL) || defined(FEAT_MBYTE) || defined(PROTO) /* ! * If "fgetline" is get_loop_line(), return the cookie used by the original * getline function. Otherwise return "cookie". */ /*ARGSUSED*/ void * ! getline_cookie(fgetline, cookie) ! char_u *(*fgetline) __ARGS((int, void *, int)); ! void *cookie; /* argument for fgetline() */ { # ifdef FEAT_EVAL char_u *(*gp) __ARGS((int, void *, int)); struct loop_cookie *cp; ! /* When "fgetline" is "get_loop_line()" use the "cookie" to find the * cookie that's orignally used to obtain the lines. This may be nested * several levels. */ ! gp = fgetline; cp = (struct loop_cookie *)cookie; while (gp == get_loop_line) { *************** *** 1648,1654 **** * 5. parse arguments * 6. switch on command name * ! * Note: "getline" can be NULL. * * This function may be called recursively! */ --- 1651,1657 ---- * 5. parse arguments * 6. switch on command name * ! * Note: "fgetline" can be NULL. * * This function may be called recursively! */ *************** *** 1663,1676 **** #ifdef FEAT_EVAL cstack, #endif ! getline, cookie) char_u **cmdlinep; int sourcing; #ifdef FEAT_EVAL struct condstack *cstack; #endif ! char_u *(*getline) __ARGS((int, void *, int)); ! void *cookie; /* argument for getline() */ { char_u *p; linenr_T lnum; --- 1666,1679 ---- #ifdef FEAT_EVAL cstack, #endif ! fgetline, cookie) char_u **cmdlinep; int sourcing; #ifdef FEAT_EVAL struct condstack *cstack; #endif ! char_u *(*fgetline) __ARGS((int, void *, int)); ! void *cookie; /* argument for fgetline() */ { char_u *p; linenr_T lnum; *************** *** 1698,1704 **** if (quitmore #ifdef FEAT_EVAL /* avoid that a function call in 'statusline' does this */ ! && !getline_equal(getline, cookie, get_func_line) #endif ) --quitmore; --- 1701,1707 ---- if (quitmore #ifdef FEAT_EVAL /* avoid that a function call in 'statusline' does this */ ! && !getline_equal(fgetline, cookie, get_func_line) #endif ) --quitmore; *************** *** 1728,1735 **** /* in ex mode, an empty line works like :+ */ if (*ea.cmd == NUL && exmode_active ! && (getline_equal(getline, cookie, getexmodeline) ! || getline_equal(getline, cookie, getexline)) && curwin->w_cursor.lnum < curbuf->b_ml.ml_line_count) { ea.cmd = (char_u *)"+"; --- 1731,1738 ---- /* in ex mode, an empty line works like :+ */ if (*ea.cmd == NUL && exmode_active ! && (getline_equal(fgetline, cookie, getexmodeline) ! || getline_equal(fgetline, cookie, getexline)) && curwin->w_cursor.lnum < curbuf->b_ml.ml_line_count) { ea.cmd = (char_u *)"+"; *************** *** 1918,1926 **** /* Count this line for profiling if ea.skip is FALSE. */ if (do_profiling == PROF_YES && !ea.skip) { ! if (getline_equal(getline, cookie, get_func_line)) ! func_line_exec(getline_cookie(getline, cookie)); ! else if (getline_equal(getline, cookie, getsourceline)) script_line_exec(); } #endif --- 1921,1929 ---- /* Count this line for profiling if ea.skip is FALSE. */ if (do_profiling == PROF_YES && !ea.skip) { ! if (getline_equal(fgetline, cookie, get_func_line)) ! func_line_exec(getline_cookie(fgetline, cookie)); ! else if (getline_equal(fgetline, cookie, getsourceline)) script_line_exec(); } #endif *************** *** 2589,2595 **** * The "ea" structure holds the arguments that can be used. */ ea.cmdlinep = cmdlinep; ! ea.getline = getline; ea.cookie = cookie; #ifdef FEAT_EVAL ea.cstack = cstack; --- 2592,2598 ---- * The "ea" structure holds the arguments that can be used. */ ea.cmdlinep = cmdlinep; ! ea.getline = fgetline; ea.cookie = cookie; #ifdef FEAT_EVAL ea.cstack = cstack; *************** *** 2627,2635 **** do_throw(cstack); else if (check_cstack) { ! if (source_finished(getline, cookie)) do_finish(&ea, TRUE); ! else if (getline_equal(getline, cookie, get_func_line) && current_func_returned()) do_return(&ea, TRUE, FALSE, NULL); } --- 2630,2638 ---- do_throw(cstack); else if (check_cstack) { ! if (source_finished(fgetline, cookie)) do_finish(&ea, TRUE); ! else if (getline_equal(fgetline, cookie, get_func_line) && current_func_returned()) do_return(&ea, TRUE, FALSE, NULL); } *** ../vim-7.0.069/src/gui_beval.c Thu May 4 23:57:11 2006 --- src/gui_beval.c Thu Aug 24 22:39:50 2006 *************** *** 926,932 **** # define IS_NONPRINTABLE(c) (((c) < 0x20 && (c) != TAB && (c) != NL) \ || (c) == DEL) static void ! set_printable_label_text(GtkLabel *label, char_u *msg) { char_u *convbuf = NULL; char_u *buf; --- 926,932 ---- # define IS_NONPRINTABLE(c) (((c) < 0x20 && (c) != TAB && (c) != NL) \ || (c) == DEL) static void ! set_printable_label_text(GtkLabel *label, char_u *text) { char_u *convbuf = NULL; char_u *buf; *************** *** 940,953 **** /* Convert to UTF-8 if it isn't already */ if (output_conv.vc_type != CONV_NONE) { ! convbuf = string_convert(&output_conv, msg, NULL); if (convbuf != NULL) ! msg = convbuf; } /* First let's see how much we need to allocate */ len = 0; ! for (p = msg; *p != NUL; p += charlen) { if ((*p & 0x80) == 0) /* be quick for ASCII */ { --- 940,953 ---- /* Convert to UTF-8 if it isn't already */ if (output_conv.vc_type != CONV_NONE) { ! convbuf = string_convert(&output_conv, text, NULL); if (convbuf != NULL) ! text = convbuf; } /* First let's see how much we need to allocate */ len = 0; ! for (p = text; *p != NUL; p += charlen) { if ((*p & 0x80) == 0) /* be quick for ASCII */ { *************** *** 992,998 **** (unsigned long)pixel, &color); pdest = buf; ! p = msg; while (*p != NUL) { /* Be quick for ASCII */ --- 992,998 ---- (unsigned long)pixel, &color); pdest = buf; ! p = text; while (*p != NUL) { /* Be quick for ASCII */ *** ../vim-7.0.069/src/gui_gtk.c Fri May 5 23:13:49 2006 --- src/gui_gtk.c Thu Aug 24 22:34:30 2006 *************** *** 957,971 **** get_menu_position(vimmenu_T *menu) { vimmenu_T *node; ! int index = 0; for (node = menu->parent->children; node != menu; node = node->next) { g_return_val_if_fail(node != NULL, -1); ! ++index; } ! return index; } #endif /* FEAT_TOOLBAR && HAVE_GTK2 */ --- 957,971 ---- get_menu_position(vimmenu_T *menu) { vimmenu_T *node; ! int idx = 0; for (node = menu->parent->children; node != menu; node = node->next) { g_return_val_if_fail(node != NULL, -1); ! ++idx; } ! return idx; } #endif /* FEAT_TOOLBAR && HAVE_GTK2 */ *************** *** 2127,2133 **** char **ync; /* "yes no cancel" */ char **buttons; int n_buttons = 0; ! int index; button_string = vim_strsave(button_string); /* must be writable */ if (button_string == NULL) --- 2128,2134 ---- char **ync; /* "yes no cancel" */ char **buttons; int n_buttons = 0; ! int idx; button_string = vim_strsave(button_string); /* must be writable */ if (button_string == NULL) *************** *** 2161,2172 **** * Well, apparently somebody changed his mind: with GTK 2.2.4 it works the * other way around... */ ! for (index = 1; index <= n_buttons; ++index) { char *label; char_u *label8; ! label = buttons[index - 1]; /* * Perform some guesswork to find appropriate stock items for the * buttons. We have to compare with a sample of the translated --- 2162,2173 ---- * Well, apparently somebody changed his mind: with GTK 2.2.4 it works the * other way around... */ ! for (idx = 1; idx <= n_buttons; ++idx) { char *label; char_u *label8; ! label = buttons[idx - 1]; /* * Perform some guesswork to find appropriate stock items for the * buttons. We have to compare with a sample of the translated *************** *** 2188,2194 **** else if (button_equal(label, "Cancel")) label = GTK_STOCK_CANCEL; } label8 = CONVERT_TO_UTF8((char_u *)label); ! gtk_dialog_add_button(dialog, (const gchar *)label8, index); CONVERT_TO_UTF8_FREE(label8); } --- 2189,2195 ---- else if (button_equal(label, "Cancel")) label = GTK_STOCK_CANCEL; } label8 = CONVERT_TO_UTF8((char_u *)label); ! gtk_dialog_add_button(dialog, (const gchar *)label8, idx); CONVERT_TO_UTF8_FREE(label8); } *** ../vim-7.0.069/src/gui_gtk_x11.c Fri May 5 23:16:59 2006 --- src/gui_gtk_x11.c Thu Aug 24 22:35:59 2006 *************** *** 3233,3244 **** on_select_tab( GtkNotebook *notebook, GtkNotebookPage *page, ! gint index, gpointer data) { if (!ignore_tabline_evt) { ! if (send_tabline_event(index + 1) && gtk_main_level() > 0) gtk_main_quit(); } } --- 3233,3244 ---- on_select_tab( GtkNotebook *notebook, GtkNotebookPage *page, ! gint idx, gpointer data) { if (!ignore_tabline_evt) { ! if (send_tabline_event(idx + 1) && gtk_main_level() > 0) gtk_main_quit(); } } *************** *** 5303,5315 **** # ifdef HAVE_GTK2 if (font != NOFONT) { ! char *name = pango_font_description_to_string(font); ! if (name != NULL) { ! char_u *s = vim_strsave((char_u *)name); ! g_free(name); return s; } } --- 5303,5315 ---- # ifdef HAVE_GTK2 if (font != NOFONT) { ! char *pangoname = pango_font_description_to_string(font); ! if (pangoname != NULL) { ! char_u *s = vim_strsave((char_u *)pangoname); ! g_free(pangoname); return s; } } *************** *** 6241,6264 **** { GdkGCValues values; GdkGC *invert_gc; - GdkColor foreground; - GdkColor background; if (gui.drawarea->window == NULL) return; ! foreground.pixel = gui.norm_pixel ^ gui.back_pixel; ! background.pixel = gui.norm_pixel ^ gui.back_pixel; ! ! values.foreground = foreground; ! values.background = background; values.function = GDK_XOR; invert_gc = gdk_gc_new_with_values(gui.drawarea->window, &values, GDK_GC_FOREGROUND | GDK_GC_BACKGROUND | GDK_GC_FUNCTION); ! gdk_gc_set_exposures(invert_gc, gui.visibility != GDK_VISIBILITY_UNOBSCURED); gdk_draw_rectangle(gui.drawarea->window, invert_gc, TRUE, FILL_X(c), FILL_Y(r), --- 6241,6260 ---- { GdkGCValues values; GdkGC *invert_gc; if (gui.drawarea->window == NULL) return; ! values.foreground.pixel = gui.norm_pixel ^ gui.back_pixel; ! values.background.pixel = gui.norm_pixel ^ gui.back_pixel; values.function = GDK_XOR; invert_gc = gdk_gc_new_with_values(gui.drawarea->window, &values, GDK_GC_FOREGROUND | GDK_GC_BACKGROUND | GDK_GC_FUNCTION); ! gdk_gc_set_exposures(invert_gc, gui.visibility != ! GDK_VISIBILITY_UNOBSCURED); gdk_draw_rectangle(gui.drawarea->window, invert_gc, TRUE, FILL_X(c), FILL_Y(r), *** ../vim-7.0.069/src/hardcopy.c Thu May 4 23:53:57 2006 --- src/hardcopy.c Thu Aug 24 22:04:32 2006 *************** *** 1794,1822 **** static int prt_resfile_next_line() { ! int index; /* Move to start of next line and then find end of line */ ! index = prt_resfile.line_end + 1; ! while (index < prt_resfile.len) { ! if (prt_resfile.buffer[index] != PSLF && prt_resfile.buffer[index] ! != PSCR) break; ! index++; } ! prt_resfile.line_start = index; ! while (index < prt_resfile.len) { ! if (prt_resfile.buffer[index] == PSLF || prt_resfile.buffer[index] ! == PSCR) break; ! index++; } ! prt_resfile.line_end = index; ! return (index < prt_resfile.len); } static int --- 1794,1820 ---- static int prt_resfile_next_line() { ! int idx; /* Move to start of next line and then find end of line */ ! idx = prt_resfile.line_end + 1; ! while (idx < prt_resfile.len) { ! if (prt_resfile.buffer[idx] != PSLF && prt_resfile.buffer[idx] != PSCR) break; ! idx++; } ! prt_resfile.line_start = idx; ! while (idx < prt_resfile.len) { ! if (prt_resfile.buffer[idx] == PSLF || prt_resfile.buffer[idx] == PSCR) break; ! idx++; } ! prt_resfile.line_end = idx; ! return (idx < prt_resfile.len); } static int *************** *** 1837,1850 **** prt_resfile_skip_nonws(offset) int offset; { ! int index; ! index = prt_resfile.line_start + offset; ! while (index < prt_resfile.line_end) { ! if (isspace(prt_resfile.buffer[index])) ! return index - prt_resfile.line_start; ! index++; } return -1; } --- 1835,1848 ---- prt_resfile_skip_nonws(offset) int offset; { ! int idx; ! idx = prt_resfile.line_start + offset; ! while (idx < prt_resfile.line_end) { ! if (isspace(prt_resfile.buffer[idx])) ! return idx - prt_resfile.line_start; ! idx++; } return -1; } *************** *** 1853,1866 **** prt_resfile_skip_ws(offset) int offset; { ! int index; ! index = prt_resfile.line_start + offset; ! while (index < prt_resfile.line_end) { ! if (!isspace(prt_resfile.buffer[index])) ! return index - prt_resfile.line_start; ! index++; } return -1; } --- 1851,1864 ---- prt_resfile_skip_ws(offset) int offset; { ! int idx; ! idx = prt_resfile.line_start + offset; ! while (idx < prt_resfile.line_end) { ! if (!isspace(prt_resfile.buffer[idx])) ! return idx - prt_resfile.line_start; ! idx++; } return -1; } *************** *** 2478,2484 **** char_u *p_encoding; struct prt_ps_encoding_S *p_mbenc; struct prt_ps_encoding_S *p_mbenc_first; ! struct prt_ps_charset_S *p_mbchar; #endif #if 0 --- 2476,2482 ---- char_u *p_encoding; struct prt_ps_encoding_S *p_mbenc; struct prt_ps_encoding_S *p_mbenc_first; ! struct prt_ps_charset_S *p_mbchar = NULL; #endif #if 0 *************** *** 2516,2522 **** if (!(props & ENC_8BIT) && ((*p_pmcs != NUL) || !(props & ENC_UNICODE))) { p_mbenc_first = NULL; - p_mbchar = NULL; for (cmap = 0; cmap < NUM_ELEMENTS(prt_ps_mbfonts); cmap++) if (prt_match_encoding((char *)p_encoding, &prt_ps_mbfonts[cmap], &p_mbenc)) --- 2514,2519 ---- *** ../vim-7.0.069/src/if_cscope.c Tue Apr 18 23:49:18 2006 --- src/if_cscope.c Sat Jul 8 22:34:46 2006 *************** *** 989,996 **** { int i; char *cmd; ! char **matches, **contexts; ! int nummatches[CSCOPE_MAX_CONNECTIONS], totmatches, matched; #ifdef FEAT_QUICKFIX char cmdletter; char *qfpos; --- 989,995 ---- { int i; char *cmd; ! int nummatches[CSCOPE_MAX_CONNECTIONS], totmatches; #ifdef FEAT_QUICKFIX char cmdletter; char *qfpos; *************** *** 1141,1146 **** --- 1140,1148 ---- else #endif /* FEAT_QUICKFIX */ { + char **matches = NULL, **contexts = NULL; + int matched = 0; + /* read output */ cs_fill_results((char *)pat, totmatches, nummatches, &matches, &contexts, &matched); *** ../vim-7.0.069/src/main.c Tue Aug 15 21:42:17 2006 --- src/main.c Thu Aug 24 22:05:09 2006 *************** *** 2285,2291 **** mparm_T *parmp; { #ifdef FEAT_WINDOWS ! int rewind; int done = 0; /* --- 2285,2291 ---- mparm_T *parmp; { #ifdef FEAT_WINDOWS ! int dorewind; int done = 0; /* *************** *** 2342,2351 **** ++autocmd_no_leave; #endif #ifdef FEAT_WINDOWS ! rewind = TRUE; while (done++ < 1000) { ! if (rewind) { if (parmp->window_layout == WIN_TABS) goto_tabpage(1); --- 2342,2351 ---- ++autocmd_no_leave; #endif #ifdef FEAT_WINDOWS ! dorewind = TRUE; while (done++ < 1000) { ! if (dorewind) { if (parmp->window_layout == WIN_TABS) goto_tabpage(1); *************** *** 2364,2370 **** break; curwin = curwin->w_next; } ! rewind = FALSE; #endif curbuf = curwin->w_buffer; if (curbuf->b_ml.ml_mfp == NULL) --- 2364,2370 ---- break; curwin = curwin->w_next; } ! dorewind = FALSE; #endif curbuf = curwin->w_buffer; if (curbuf->b_ml.ml_mfp == NULL) *************** *** 2385,2391 **** check_swap_exists_action(); #endif #ifdef FEAT_AUTOCMD ! rewind = TRUE; /* start again */ #endif } #ifdef FEAT_WINDOWS --- 2385,2391 ---- check_swap_exists_action(); #endif #ifdef FEAT_AUTOCMD ! dorewind = TRUE; /* start again */ #endif } #ifdef FEAT_WINDOWS *** ../vim-7.0.069/src/mbyte.c Tue Aug 29 16:10:54 2006 --- src/mbyte.c Tue Aug 29 14:41:45 2006 *************** *** 3861,3873 **** if (preedit_string != NULL && attr_list != NULL) { ! int index; /* Get the byte index as used by PangoAttrIterator */ ! for (index = 0; col > 0 && preedit_string[index] != '\0'; --col) ! index += utfc_ptr2len((char_u *)preedit_string + index); ! if (preedit_string[index] != '\0') { PangoAttrIterator *iter; int start, end; --- 3861,3873 ---- if (preedit_string != NULL && attr_list != NULL) { ! int idx; /* Get the byte index as used by PangoAttrIterator */ ! for (idx = 0; col > 0 && preedit_string[idx] != '\0'; --col) ! idx += utfc_ptr2len((char_u *)preedit_string + idx); ! if (preedit_string[idx] != '\0') { PangoAttrIterator *iter; int start, end; *************** *** 3880,3886 **** { pango_attr_iterator_range(iter, &start, &end); ! if (index >= start && index < end) char_attr |= translate_pango_attributes(iter); } while (pango_attr_iterator_next(iter)); --- 3880,3886 ---- { pango_attr_iterator_range(iter, &start, &end); ! if (idx >= start && idx < end) char_attr |= translate_pango_attributes(iter); } while (pango_attr_iterator_next(iter)); *** ../vim-7.0.069/src/memline.c Fri Apr 21 00:16:47 2006 --- src/memline.c Thu Aug 24 22:06:17 2006 *************** *** 215,221 **** #define ML_FLUSH 0x02 /* flush locked block */ #define ML_SIMPLE(x) (x & 0x10) /* DEL, INS or FIND */ ! static void ml_upd_block0 __ARGS((buf_T *buf, int setfname)); static void set_b0_fname __ARGS((ZERO_BL *, buf_T *buf)); static void set_b0_dir_flag __ARGS((ZERO_BL *b0p, buf_T *buf)); #ifdef FEAT_MBYTE --- 215,221 ---- #define ML_FLUSH 0x02 /* flush locked block */ #define ML_SIMPLE(x) (x & 0x10) /* DEL, INS or FIND */ ! static void ml_upd_block0 __ARGS((buf_T *buf, int set_fname)); static void set_b0_fname __ARGS((ZERO_BL *, buf_T *buf)); static void set_b0_dir_flag __ARGS((ZERO_BL *b0p, buf_T *buf)); #ifdef FEAT_MBYTE *************** *** 679,687 **** * Update the timestamp or the B0_SAME_DIR flag of the .swp file. */ static void ! ml_upd_block0(buf, setfname) buf_T *buf; ! int setfname; { memfile_T *mfp; bhdr_T *hp; --- 679,687 ---- * Update the timestamp or the B0_SAME_DIR flag of the .swp file. */ static void ! ml_upd_block0(buf, set_fname) buf_T *buf; ! int set_fname; { memfile_T *mfp; bhdr_T *hp; *************** *** 695,701 **** EMSG(_("E304: ml_upd_block0(): Didn't get block 0??")); else { ! if (setfname) set_b0_fname(b0p, buf); else set_b0_dir_flag(b0p, buf); --- 695,701 ---- EMSG(_("E304: ml_upd_block0(): Didn't get block 0??")); else { ! if (set_fname) set_b0_fname(b0p, buf); else set_b0_dir_flag(b0p, buf); *** ../vim-7.0.069/src/netbeans.c Tue Aug 8 21:36:15 2006 --- src/netbeans.c Thu Aug 24 22:42:09 2006 *************** *** 103,109 **** static int inputHandler = -1; /* simply ret.value of WSAAsyncSelect() */ extern HWND s_hwnd; /* Gvim's Window handle */ #endif ! static int cmdno; /* current command number for reply */ static int haveConnection = FALSE; /* socket is connected and initialization is done */ #ifdef FEAT_GUI_MOTIF --- 103,109 ---- static int inputHandler = -1; /* simply ret.value of WSAAsyncSelect() */ extern HWND s_hwnd; /* Gvim's Window handle */ #endif ! static int r_cmdno; /* current command number for reply */ static int haveConnection = FALSE; /* socket is connected and initialization is done */ #ifdef FEAT_GUI_MOTIF *************** *** 832,842 **** return; } ! cmdno = strtol(q, &q, 10); q = (char *)skipwhite((char_u *)q); ! if (nb_do_cmd(bufno, (char_u *)verb, isfunc, cmdno, (char_u *)q) == FAIL) { #ifdef NBDEBUG /* --- 832,842 ---- return; } ! r_cmdno = strtol(q, &q, 10); q = (char *)skipwhite((char_u *)q); ! if (nb_do_cmd(bufno, (char_u *)verb, isfunc, r_cmdno, (char_u *)q) == FAIL) { #ifdef NBDEBUG /* *************** *** 1008,1018 **** if (netbeansForcedQuit) { /* mark as unmodified so NetBeans won't put up dialog on "killed" */ ! sprintf(buf, "%d:unmodified=%d\n", i, cmdno); nbdebug(("EVT: %s", buf)); nb_send(buf, "netbeans_end"); } ! sprintf(buf, "%d:killed=%d\n", i, cmdno); nbdebug(("EVT: %s", buf)); /* nb_send(buf, "netbeans_end"); avoid "write failed" messages */ if (sd >= 0) --- 1008,1018 ---- if (netbeansForcedQuit) { /* mark as unmodified so NetBeans won't put up dialog on "killed" */ ! sprintf(buf, "%d:unmodified=%d\n", i, r_cmdno); nbdebug(("EVT: %s", buf)); nb_send(buf, "netbeans_end"); } ! sprintf(buf, "%d:killed=%d\n", i, r_cmdno); nbdebug(("EVT: %s", buf)); /* nb_send(buf, "netbeans_end"); avoid "write failed" messages */ if (sd >= 0) *************** *** 2563,2569 **** if (p != NULL) { vim_snprintf(buf, sizeof(buf), ! "0:balloonText=%d \"%s\"\n", cmdno, p); vim_free(p); } nbdebug(("EVT: %s", buf)); --- 2563,2569 ---- if (p != NULL) { vim_snprintf(buf, sizeof(buf), ! "0:balloonText=%d \"%s\"\n", r_cmdno, p); vim_free(p); } nbdebug(("EVT: %s", buf)); *************** *** 2617,2623 **** if (haveConnection) { ! sprintf(buf, "0:disconnect=%d\n", cmdno); nbdebug(("EVT: %s", buf)); nb_send(buf, "netbeans_disconnect"); } --- 2617,2623 ---- if (haveConnection) { ! sprintf(buf, "0:disconnect=%d\n", r_cmdno); nbdebug(("EVT: %s", buf)); nb_send(buf, "netbeans_disconnect"); } *************** *** 2636,2642 **** return; sprintf(buf, "0:geometry=%d %d %d %d %d\n", ! cmdno, (int)Columns, (int)Rows, new_x, new_y); /*nbdebug(("EVT: %s", buf)); happens too many times during a move */ nb_send(buf, "netbeans_frame_moved"); } --- 2636,2642 ---- return; sprintf(buf, "0:geometry=%d %d %d %d %d\n", ! r_cmdno, (int)Columns, (int)Rows, new_x, new_y); /*nbdebug(("EVT: %s", buf)); happens too many times during a move */ nb_send(buf, "netbeans_frame_moved"); } *************** *** 2745,2751 **** if (bufno <= 0) return; ! sprintf(buffer, "%d:killed=%d\n", bufno, cmdno); nbdebug(("EVT: %s", buffer)); --- 2745,2751 ---- if (bufno <= 0) return; ! sprintf(buffer, "%d:killed=%d\n", bufno, r_cmdno); nbdebug(("EVT: %s", buffer)); *************** *** 2819,2825 **** if (p != NULL) { buf = alloc(128 + 2*newlen); ! sprintf((char *)buf, "%d:insert=%d %ld \"%s\"\n", bufno, cmdno, off, p); nbdebug(("EVT: %s", buf)); nb_send((char *)buf, "netbeans_inserted"); vim_free(p); --- 2819,2826 ---- if (p != NULL) { buf = alloc(128 + 2*newlen); ! sprintf((char *)buf, "%d:insert=%d %ld \"%s\"\n", ! bufno, r_cmdno, off, p); nbdebug(("EVT: %s", buf)); nb_send((char *)buf, "netbeans_inserted"); vim_free(p); *************** *** 2861,2867 **** off = pos2off(bufp, &pos); ! sprintf((char *)buf, "%d:remove=%d %ld %ld\n", bufno, cmdno, off, len); nbdebug(("EVT: %s", buf)); nb_send((char *)buf, "netbeans_removed"); } --- 2862,2868 ---- off = pos2off(bufp, &pos); ! sprintf((char *)buf, "%d:remove=%d %ld %ld\n", bufno, r_cmdno, off, len); nbdebug(("EVT: %s", buf)); nb_send((char *)buf, "netbeans_removed"); } *************** *** 2886,2892 **** nbbuf->modified = 0; ! sprintf((char *)buf, "%d:unmodified=%d\n", bufno, cmdno); nbdebug(("EVT: %s", buf)); nb_send((char *)buf, "netbeans_unmodified"); #endif --- 2887,2893 ---- nbbuf->modified = 0; ! sprintf((char *)buf, "%d:unmodified=%d\n", bufno, r_cmdno); nbdebug(("EVT: %s", buf)); nb_send((char *)buf, "netbeans_unmodified"); #endif *************** *** 2910,2920 **** long off = pos2off(curbuf, &curwin->w_cursor); /* sync the cursor position */ ! sprintf(buf, "%d:newDotAndMark=%d %ld %ld\n", bufno, cmdno, off, off); nbdebug(("EVT: %s", buf)); nb_send(buf, "netbeans_button_release[newDotAndMark]"); ! sprintf(buf, "%d:buttonRelease=%d %d %ld %d\n", bufno, cmdno, button, (long)curwin->w_cursor.lnum, col); nbdebug(("EVT: %s", buf)); nb_send(buf, "netbeans_button_release"); --- 2911,2921 ---- long off = pos2off(curbuf, &curwin->w_cursor); /* sync the cursor position */ ! sprintf(buf, "%d:newDotAndMark=%d %ld %ld\n", bufno, r_cmdno, off, off); nbdebug(("EVT: %s", buf)); nb_send(buf, "netbeans_button_release[newDotAndMark]"); ! sprintf(buf, "%d:buttonRelease=%d %d %ld %d\n", bufno, r_cmdno, button, (long)curwin->w_cursor.lnum, col); nbdebug(("EVT: %s", buf)); nb_send(buf, "netbeans_button_release"); *************** *** 2975,2981 **** /* sync the cursor position */ off = pos2off(curbuf, &curwin->w_cursor); ! sprintf(buf, "%d:newDotAndMark=%d %ld %ld\n", bufno, cmdno, off, off); nbdebug(("EVT: %s", buf)); nb_send(buf, "netbeans_keycommand"); --- 2976,2982 ---- /* sync the cursor position */ off = pos2off(curbuf, &curwin->w_cursor); ! sprintf(buf, "%d:newDotAndMark=%d %ld %ld\n", bufno, r_cmdno, off, off); nbdebug(("EVT: %s", buf)); nb_send(buf, "netbeans_keycommand"); *************** *** 2986,2998 **** /* now send keyCommand event */ vim_snprintf(buf, sizeof(buf), "%d:keyCommand=%d \"%s\"\n", ! bufno, cmdno, keyName); nbdebug(("EVT: %s", buf)); nb_send(buf, "netbeans_keycommand"); /* New: do both at once and include the lnum/col. */ vim_snprintf(buf, sizeof(buf), "%d:keyAtPos=%d \"%s\" %ld %ld/%ld\n", ! bufno, cmdno, keyName, off, (long)curwin->w_cursor.lnum, (long)curwin->w_cursor.col); nbdebug(("EVT: %s", buf)); nb_send(buf, "netbeans_keycommand"); --- 2987,2999 ---- /* now send keyCommand event */ vim_snprintf(buf, sizeof(buf), "%d:keyCommand=%d \"%s\"\n", ! bufno, r_cmdno, keyName); nbdebug(("EVT: %s", buf)); nb_send(buf, "netbeans_keycommand"); /* New: do both at once and include the lnum/col. */ vim_snprintf(buf, sizeof(buf), "%d:keyAtPos=%d \"%s\" %ld %ld/%ld\n", ! bufno, r_cmdno, keyName, off, (long)curwin->w_cursor.lnum, (long)curwin->w_cursor.col); nbdebug(("EVT: %s", buf)); nb_send(buf, "netbeans_keycommand"); *************** *** 3015,3021 **** nbbuf->modified = 0; ! sprintf((char *)buf, "%d:save=%d\n", bufno, cmdno); nbdebug(("EVT: %s", buf)); nb_send((char *)buf, "netbeans_save_buffer"); } --- 3016,3022 ---- nbbuf->modified = 0; ! sprintf((char *)buf, "%d:save=%d\n", bufno, r_cmdno); nbdebug(("EVT: %s", buf)); nb_send((char *)buf, "netbeans_save_buffer"); } *************** *** 3039,3045 **** if (nbbuf->insertDone) nbbuf->modified = 1; ! sprintf((char *)buf, "%d:remove=%d 0 -1\n", bufno, cmdno); nbdebug(("EVT(suppressed): %s", buf)); /* nb_send(buf, "netbeans_deleted_all_lines"); */ } --- 3040,3046 ---- if (nbbuf->insertDone) nbbuf->modified = 1; ! sprintf((char *)buf, "%d:remove=%d 0 -1\n", bufno, r_cmdno); nbdebug(("EVT(suppressed): %s", buf)); /* nb_send(buf, "netbeans_deleted_all_lines"); */ } *** ../vim-7.0.069/src/normal.c Wed Aug 16 21:42:34 2006 --- src/normal.c Thu Aug 24 22:17:37 2006 *************** *** 4127,4133 **** int save_p_ws; int save_p_scs; int retval = OK; ! int incl; if ((pat = alloc(len + 7)) == NULL) return FAIL; --- 4127,4133 ---- int save_p_ws; int save_p_scs; int retval = OK; ! int incll; if ((pat = alloc(len + 7)) == NULL) return FAIL; *************** *** 4147,4153 **** * With "gd" Search back for the start of the current function, then go * back until a blank line. If this fails go to line 1. */ ! if (!locally || !findpar(&incl, BACKWARD, 1L, '{', FALSE)) { setpcmark(); /* Set in findpar() otherwise */ curwin->w_cursor.lnum = 1; --- 4147,4153 ---- * With "gd" Search back for the start of the current function, then go * back until a blank line. If this fails go to line 1. */ ! if (!locally || !findpar(&incll, BACKWARD, 1L, '{', FALSE)) { setpcmark(); /* Set in findpar() otherwise */ curwin->w_cursor.lnum = 1; *** ../vim-7.0.069/src/option.c Tue Aug 8 16:30:51 2006 --- src/option.c Wed Aug 16 21:54:45 2006 *************** *** 5268,5312 **** char_u *s; char_u **varp; int both = (opt_flags & (OPT_LOCAL | OPT_GLOBAL)) == 0; ! if (opt_idx == -1) /* use name */ { ! opt_idx = findoption(name); ! if (opt_idx < 0) /* not found (should not happen) */ { EMSG2(_(e_intern2), "set_string_option_direct()"); return; } } ! if (options[opt_idx].var == NULL) /* can't set hidden option */ return; s = vim_strsave(val); if (s != NULL) { ! varp = (char_u **)get_varp_scope(&(options[opt_idx]), both ? OPT_LOCAL : opt_flags); ! if ((opt_flags & OPT_FREE) && (options[opt_idx].flags & P_ALLOCED)) free_string_option(*varp); *varp = s; /* For buffer/window local option may also set the global value. */ if (both) ! set_string_option_global(opt_idx, varp); ! options[opt_idx].flags |= P_ALLOCED; /* When setting both values of a global option with a local value, * make the local value empty, so that the global value is used. */ ! if (((int)options[opt_idx].indir & PV_BOTH) && both) { free_string_option(*varp); *varp = empty_option; } # ifdef FEAT_EVAL if (set_sid != SID_NONE) ! set_option_scriptID_idx(opt_idx, opt_flags, set_sid == 0 ? current_SID : set_sid); # endif } --- 5268,5313 ---- char_u *s; char_u **varp; int both = (opt_flags & (OPT_LOCAL | OPT_GLOBAL)) == 0; + int idx = opt_idx; ! if (idx == -1) /* use name */ { ! idx = findoption(name); ! if (idx < 0) /* not found (should not happen) */ { EMSG2(_(e_intern2), "set_string_option_direct()"); return; } } ! if (options[idx].var == NULL) /* can't set hidden option */ return; s = vim_strsave(val); if (s != NULL) { ! varp = (char_u **)get_varp_scope(&(options[idx]), both ? OPT_LOCAL : opt_flags); ! if ((opt_flags & OPT_FREE) && (options[idx].flags & P_ALLOCED)) free_string_option(*varp); *varp = s; /* For buffer/window local option may also set the global value. */ if (both) ! set_string_option_global(idx, varp); ! options[idx].flags |= P_ALLOCED; /* When setting both values of a global option with a local value, * make the local value empty, so that the global value is used. */ ! if (((int)options[idx].indir & PV_BOTH) && both) { free_string_option(*varp); *varp = empty_option; } # ifdef FEAT_EVAL if (set_sid != SID_NONE) ! set_option_scriptID_idx(idx, opt_flags, set_sid == 0 ? current_SID : set_sid); # endif } *** ../vim-7.0.069/src/os_unix.c Thu Jun 22 19:47:11 2006 --- src/os_unix.c Thu Aug 24 22:21:56 2006 *************** *** 3934,3940 **** { linenr_T lnum = curbuf->b_op_start.lnum; int written = 0; ! char_u *p = ml_get(lnum); char_u *s; size_t l; --- 3934,3940 ---- { linenr_T lnum = curbuf->b_op_start.lnum; int written = 0; ! char_u *lp = ml_get(lnum); char_u *s; size_t l; *************** *** 3942,3958 **** close(fromshell_fd); for (;;) { ! l = STRLEN(p + written); if (l == 0) len = 0; ! else if (p[written] == NL) /* NL -> NUL translation */ len = write(toshell_fd, "", (size_t)1); else { ! s = vim_strchr(p + written, NL); ! len = write(toshell_fd, (char *)p + written, ! s == NULL ? l : s - (p + written)); } if (len == l) { --- 3942,3958 ---- close(fromshell_fd); for (;;) { ! l = STRLEN(lp + written); if (l == 0) len = 0; ! else if (lp[written] == NL) /* NL -> NUL translation */ len = write(toshell_fd, "", (size_t)1); else { ! s = vim_strchr(lp + written, NL); ! len = write(toshell_fd, (char *)lp + written, ! s == NULL ? l : s - (lp + written)); } if (len == l) { *************** *** 3973,3979 **** toshell_fd = -1; break; } ! p = ml_get(lnum); written = 0; } else if (len > 0) --- 3973,3979 ---- toshell_fd = -1; break; } ! lp = ml_get(lnum); written = 0; } else if (len > 0) *** ../vim-7.0.069/src/quickfix.c Wed Aug 16 19:34:59 2006 --- src/quickfix.c Thu Aug 24 22:23:31 2006 *************** *** 500,507 **** { if (tv != NULL) { - int len; - if (tv->v_type == VAR_STRING) { /* Get the next line from the supplied string */ --- 500,505 ---- *** ../vim-7.0.069/src/regexp.c Sun Apr 30 20:38:22 2006 --- src/regexp.c Thu Aug 24 22:25:15 2006 *************** *** 3912,3918 **** { colnr_T start, end; colnr_T start2, end2; ! colnr_T col; getvvcol(wp, &top, &start, NULL, &end); getvvcol(wp, &bot, &start2, NULL, &end2); --- 3919,3925 ---- { colnr_T start, end; colnr_T start2, end2; ! colnr_T cols; getvvcol(wp, &top, &start, NULL, &end); getvvcol(wp, &bot, &start2, NULL, &end2); *************** *** 3922,3930 **** end = end2; if (top.col == MAXCOL || bot.col == MAXCOL) end = MAXCOL; ! col = win_linetabsize(wp, regline, (colnr_T)(reginput - regline)); ! if (col < start || col > end - (*p_sel == 'e')) status = RA_NOMATCH; } } --- 3929,3937 ---- end = end2; if (top.col == MAXCOL || bot.col == MAXCOL) end = MAXCOL; ! cols = win_linetabsize(wp, regline, (colnr_T)(reginput - regline)); ! if (cols < start || cols > end - (*p_sel == 'e')) status = RA_NOMATCH; } } *************** *** 4253,4259 **** { int i, len; char_u *opnd; ! int opndc, inpc; opnd = OPERAND(scan); /* Safety check (just in case 'encoding' was changed since --- 4260,4266 ---- { int i, len; char_u *opnd; ! int opndc = 0, inpc; opnd = OPERAND(scan); /* Safety check (just in case 'encoding' was changed since *** ../vim-7.0.069/src/screen.c Tue Jul 11 22:59:04 2006 --- src/screen.c Thu Aug 24 22:26:16 2006 *************** *** 7099,7105 **** tabpage_T *tp; #endif static int entered = FALSE; /* avoid recursiveness */ ! static int did_outofmem_msg = FALSE; /* did outofmem message */ /* * Allocation of the screen buffers is done only when the size changes and --- 7099,7105 ---- tabpage_T *tp; #endif static int entered = FALSE; /* avoid recursiveness */ ! static int done_outofmem_msg = FALSE; /* did outofmem message */ /* * Allocation of the screen buffers is done only when the size changes and *************** *** 7207,7220 **** #endif || outofmem) { ! if (ScreenLines != NULL || !did_outofmem_msg) { /* guess the size */ do_outofmem_msg((long_u)((Rows + 1) * Columns)); /* Remember we did this to avoid getting outofmem messages over * and over again. */ ! did_outofmem_msg = TRUE; } vim_free(new_ScreenLines); new_ScreenLines = NULL; --- 7207,7220 ---- #endif || outofmem) { ! if (ScreenLines != NULL || !done_outofmem_msg) { /* guess the size */ do_outofmem_msg((long_u)((Rows + 1) * Columns)); /* Remember we did this to avoid getting outofmem messages over * and over again. */ ! done_outofmem_msg = TRUE; } vim_free(new_ScreenLines); new_ScreenLines = NULL; *************** *** 7242,7248 **** } else { ! did_outofmem_msg = FALSE; for (new_row = 0; new_row < Rows; ++new_row) { --- 7242,7248 ---- } else { ! done_outofmem_msg = FALSE; for (new_row = 0; new_row < Rows; ++new_row) { *** ../vim-7.0.069/src/search.c Tue Aug 29 16:33:23 2006 --- src/search.c Tue Aug 29 14:56:15 2006 *************** *** 4826,4840 **** if ((compl_cont_status & CONT_ADDING) && i == compl_length) { - /* get the next line */ /* IOSIZE > compl_length, so the STRNCPY works */ STRNCPY(IObuff, aux, i); ! if (!( depth < 0 ! && lnum < end_lnum ! && (line = ml_get(++lnum)) != NULL) ! && !( depth >= 0 ! && !vim_fgets(line = file_line, ! LSIZE, files[depth].fp))) goto exit_matched; /* we read a line, set "already" to check this "line" later --- 4826,4845 ---- if ((compl_cont_status & CONT_ADDING) && i == compl_length) { /* IOSIZE > compl_length, so the STRNCPY works */ STRNCPY(IObuff, aux, i); ! ! /* Get the next line: when "depth" < 0 from the current ! * buffer, otherwise from the included file. Jump to ! * exit_matched when past the last line. */ ! if (depth < 0) ! { ! if (lnum >= end_lnum) ! goto exit_matched; ! line = ml_get(++lnum); ! } ! else if (vim_fgets(line = file_line, ! LSIZE, files[depth].fp)) goto exit_matched; /* we read a line, set "already" to check this "line" later *** ../vim-7.0.069/src/spell.c Tue Aug 29 16:33:23 2006 --- src/spell.c Tue Aug 29 14:56:26 2006 *************** *** 2043,2050 **** int len; # ifdef FEAT_SYN_HL int has_syntax = syntax_present(wp->w_buffer); - int col; # endif int can_spell; char_u *buf = NULL; int buflen = 0; --- 2043,2050 ---- int len; # ifdef FEAT_SYN_HL int has_syntax = syntax_present(wp->w_buffer); # endif + int col; int can_spell; char_u *buf = NULL; int buflen = 0; *************** *** 2093,2101 **** capcol = (int)(skipwhite(line) - line); else if (curline && wp == curwin) { - int col = (int)(skipwhite(line) - line); - /* For spellbadword(): check if first word needs a capital. */ if (check_need_cap(lnum, col)) capcol = col; --- 2093,2100 ---- capcol = (int)(skipwhite(line) - line); else if (curline && wp == curwin) { /* For spellbadword(): check if first word needs a capital. */ + col = (int)(skipwhite(line) - line); if (check_need_cap(lnum, col)) capcol = col; *************** *** 5061,5067 **** int do_rep; int do_repsal; int do_sal; ! int do_map; int found_map = FALSE; hashitem_T *hi; int l; --- 5060,5066 ---- int do_rep; int do_repsal; int do_sal; ! int do_mapline; int found_map = FALSE; hashitem_T *hi; int l; *************** *** 5099,5105 **** do_sal = spin->si_sal.ga_len == 0; /* Only do MAP lines when not done in another .aff file already. */ ! do_map = spin->si_map.ga_len == 0; /* * Allocate and init the afffile_T structure. --- 5098,5104 ---- do_sal = spin->si_sal.ga_len == 0; /* Only do MAP lines when not done in another .aff file already. */ ! do_mapline = spin->si_map.ga_len == 0; /* * Allocate and init the afffile_T structure. *************** *** 5781,5787 **** smsg((char_u *)_("Expected MAP count in %s line %d"), fname, lnum); } ! else if (do_map) { int c; --- 5780,5786 ---- smsg((char_u *)_("Expected MAP count in %s line %d"), fname, lnum); } ! else if (do_mapline) { int c; *************** *** 7508,7514 **** { char_u *p = p_msm; long start = 0; ! long inc = 0; long added = 0; if (!VIM_ISDIGIT(*p)) --- 7507,7513 ---- { char_u *p = p_msm; long start = 0; ! long incr = 0; long added = 0; if (!VIM_ISDIGIT(*p)) *************** *** 7520,7526 **** ++p; if (!VIM_ISDIGIT(*p)) return FAIL; ! inc = (getdigits(&p) * 102) / (SBLOCKSIZE / 10); if (*p != ',') return FAIL; ++p; --- 7519,7525 ---- ++p; if (!VIM_ISDIGIT(*p)) return FAIL; ! incr = (getdigits(&p) * 102) / (SBLOCKSIZE / 10); if (*p != ',') return FAIL; ++p; *************** *** 7530,7540 **** if (*p != NUL) return FAIL; ! if (start == 0 || inc == 0 || added == 0 || inc > start) return FAIL; compress_start = start; ! compress_inc = inc; compress_added = added; return OK; } --- 7529,7539 ---- if (*p != NUL) return FAIL; ! if (start == 0 || incr == 0 || added == 0 || incr > start) return FAIL; compress_start = start; ! compress_inc = incr; compress_added = added; return OK; } *************** *** 8292,8305 **** * Returns the number of nodes used. */ static int ! put_node(fd, node, index, regionmask, prefixtree) FILE *fd; /* NULL when only counting */ wordnode_T *node; ! int index; int regionmask; int prefixtree; /* TRUE for PREFIXTREE */ { ! int newindex = index; int siblingcount = 0; wordnode_T *np; int flags; --- 8291,8304 ---- * Returns the number of nodes used. */ static int ! put_node(fd, node, idx, regionmask, prefixtree) FILE *fd; /* NULL when only counting */ wordnode_T *node; ! int idx; int regionmask; int prefixtree; /* TRUE for PREFIXTREE */ { ! int newindex = idx; int siblingcount = 0; wordnode_T *np; int flags; *************** *** 8309,8315 **** return 0; /* Store the index where this node is written. */ ! node->wn_u1.index = index; /* Count the number of siblings. */ for (np = node; np != NULL; np = np->wn_sibling) --- 8308,8314 ---- return 0; /* Store the index where this node is written. */ ! node->wn_u1.index = idx; /* Count the number of siblings. */ for (np = node; np != NULL; np = np->wn_sibling) *************** *** 9244,9254 **** * Add "word[len]" to 'spellfile' as a good or bad word. */ void ! spell_add_word(word, len, bad, index, undo) char_u *word; int len; int bad; ! int index; /* "zG" and "zW": zero, otherwise index in 'spellfile' */ int undo; /* TRUE for "zug", "zuG", "zuw" and "zuW" */ { --- 9243,9253 ---- * Add "word[len]" to 'spellfile' as a good or bad word. */ void ! spell_add_word(word, len, bad, idx, undo) char_u *word; int len; int bad; ! int idx; /* "zG" and "zW": zero, otherwise index in 'spellfile' */ int undo; /* TRUE for "zug", "zuG", "zuw" and "zuW" */ { *************** *** 9262,9268 **** int i; char_u *spf; ! if (index == 0) /* use internal wordlist */ { if (int_wordlist == NULL) { --- 9261,9267 ---- int i; char_u *spf; ! if (idx == 0) /* use internal wordlist */ { if (int_wordlist == NULL) { *************** *** 9290,9300 **** for (spf = curbuf->b_p_spf, i = 1; *spf != NUL; ++i) { copy_option_part(&spf, fnamebuf, MAXPATHL, ","); ! if (i == index) break; if (*spf == NUL) { ! EMSGN(_("E765: 'spellfile' does not have %ld entries"), index); return; } } --- 9289,9299 ---- for (spf = curbuf->b_p_spf, i = 1; *spf != NUL; ++i) { copy_option_part(&spf, fnamebuf, MAXPATHL, ","); ! if (i == idx) break; if (*spf == NUL) { ! EMSGN(_("E765: 'spellfile' does not have %ld entries"), idx); return; } } *************** *** 13581,13633 **** * the first "the" to itself. */ return; ! /* Check if the word is already there. Also check the length that is ! * being replaced "thes," -> "these" is a different suggestion from ! * "thes" -> "these". */ ! stp = &SUG(*gap, 0); ! for (i = gap->ga_len; --i >= 0; ++stp) ! if (stp->st_wordlen == goodlen ! && stp->st_orglen == badlen ! && STRNCMP(stp->st_word, goodword, goodlen) == 0) ! { ! /* ! * Found it. Remember the word with the lowest score. ! */ ! if (stp->st_slang == NULL) ! stp->st_slang = slang; ! new_sug.st_score = score; ! new_sug.st_altscore = altscore; ! new_sug.st_had_bonus = had_bonus; ! ! if (stp->st_had_bonus != had_bonus) ! { ! /* Only one of the two had the soundalike score computed. ! * Need to do that for the other one now, otherwise the ! * scores can't be compared. This happens because ! * suggest_try_change() doesn't compute the soundalike ! * word to keep it fast, while some special methods set ! * the soundalike score to zero. */ ! if (had_bonus) ! rescore_one(su, stp); ! else ! { ! new_sug.st_word = stp->st_word; ! new_sug.st_wordlen = stp->st_wordlen; ! new_sug.st_slang = stp->st_slang; ! new_sug.st_orglen = badlen; ! rescore_one(su, &new_sug); } - } ! if (stp->st_score > new_sug.st_score) ! { ! stp->st_score = new_sug.st_score; ! stp->st_altscore = new_sug.st_altscore; ! stp->st_had_bonus = new_sug.st_had_bonus; } ! break; ! } if (i < 0 && ga_grow(gap, 1) == OK) { --- 13580,13637 ---- * the first "the" to itself. */ return; ! if (gap->ga_len == 0) ! i = -1; ! else ! { ! /* Check if the word is already there. Also check the length that is ! * being replaced "thes," -> "these" is a different suggestion from ! * "thes" -> "these". */ ! stp = &SUG(*gap, 0); ! for (i = gap->ga_len; --i >= 0; ++stp) ! if (stp->st_wordlen == goodlen ! && stp->st_orglen == badlen ! && STRNCMP(stp->st_word, goodword, goodlen) == 0) ! { ! /* ! * Found it. Remember the word with the lowest score. ! */ ! if (stp->st_slang == NULL) ! stp->st_slang = slang; ! new_sug.st_score = score; ! new_sug.st_altscore = altscore; ! new_sug.st_had_bonus = had_bonus; ! ! if (stp->st_had_bonus != had_bonus) ! { ! /* Only one of the two had the soundalike score computed. ! * Need to do that for the other one now, otherwise the ! * scores can't be compared. This happens because ! * suggest_try_change() doesn't compute the soundalike ! * word to keep it fast, while some special methods set ! * the soundalike score to zero. */ ! if (had_bonus) ! rescore_one(su, stp); ! else ! { ! new_sug.st_word = stp->st_word; ! new_sug.st_wordlen = stp->st_wordlen; ! new_sug.st_slang = stp->st_slang; ! new_sug.st_orglen = badlen; ! rescore_one(su, &new_sug); ! } } ! if (stp->st_score > new_sug.st_score) ! { ! stp->st_score = new_sug.st_score; ! stp->st_altscore = new_sug.st_altscore; ! stp->st_had_bonus = new_sug.st_had_bonus; ! } ! break; } ! } if (i < 0 && ga_grow(gap, 1) == OK) { *** ../vim-7.0.069/src/ui.c Mon Mar 27 23:02:40 2006 --- src/ui.c Thu Aug 24 22:31:38 2006 *************** *** 1137,1143 **** int len; #ifdef FEAT_MBYTE char_u *p; - int i; #endif int row1 = clip_star.start.lnum; int col1 = clip_star.start.col; --- 1137,1142 ---- *************** *** 1218,1223 **** --- 1217,1224 ---- #ifdef FEAT_MBYTE if (enc_dbcs != 0) { + int i; + p = ScreenLines + LineOffset[row]; for (i = start_col; i < end_col; ++i) if (enc_dbcs == DBCS_JPNU && p[i] == 0x8e) *** ../vim-7.0.069/src/undo.c Wed Jul 12 21:48:56 2006 --- src/undo.c Thu Aug 24 22:32:41 2006 *************** *** 1187,1193 **** int did_undo; /* just did an undo */ int absolute; /* used ":undo N" */ { ! char *msg; u_header_T *uhp; char_u msgbuf[80]; --- 1187,1193 ---- int did_undo; /* just did an undo */ int absolute; /* used ":undo N" */ { ! char *msgstr; u_header_T *uhp; char_u msgbuf[80]; *************** *** 1205,1224 **** u_oldcount -= u_newcount; if (u_oldcount == -1) ! msg = N_("more line"); else if (u_oldcount < 0) ! msg = N_("more lines"); else if (u_oldcount == 1) ! msg = N_("line less"); else if (u_oldcount > 1) ! msg = N_("fewer lines"); else { u_oldcount = u_newcount; if (u_newcount == 1) ! msg = N_("change"); else ! msg = N_("changes"); } if (curbuf->b_u_curhead != NULL) --- 1205,1224 ---- u_oldcount -= u_newcount; if (u_oldcount == -1) ! msgstr = N_("more line"); else if (u_oldcount < 0) ! msgstr = N_("more lines"); else if (u_oldcount == 1) ! msgstr = N_("line less"); else if (u_oldcount > 1) ! msgstr = N_("fewer lines"); else { u_oldcount = u_newcount; if (u_newcount == 1) ! msgstr = N_("change"); else ! msgstr = N_("changes"); } if (curbuf->b_u_curhead != NULL) *************** *** 1244,1250 **** smsg((char_u *)_("%ld %s; %s #%ld %s"), u_oldcount < 0 ? -u_oldcount : u_oldcount, ! _(msg), did_undo ? _("before") : _("after"), uhp == NULL ? 0L : uhp->uh_seq, msgbuf); --- 1244,1250 ---- smsg((char_u *)_("%ld %s; %s #%ld %s"), u_oldcount < 0 ? -u_oldcount : u_oldcount, ! _(msgstr), did_undo ? _("before") : _("after"), uhp == NULL ? 0L : uhp->uh_seq, msgbuf); *** ../vim-7.0.069/src/window.c Sat May 6 23:37:40 2006 --- src/window.c Thu Aug 24 22:33:40 2006 *************** *** 340,349 **** { tabpage_T *oldtab = curtab; tabpage_T *newtab; - win_T *wp = curwin; /* First create a new tab with the window, then go back to * the old tab and close the window there. */ if (win_new_tabpage((int)Prenum) == OK && valid_tabpage(oldtab)) { --- 340,349 ---- { tabpage_T *oldtab = curtab; tabpage_T *newtab; /* First create a new tab with the window, then go back to * the old tab and close the window there. */ + wp = curwin; if (win_new_tabpage((int)Prenum) == OK && valid_tabpage(oldtab)) { *** ../vim-7.0.069/src/version.c Tue Aug 29 16:52:01 2006 --- src/version.c Tue Aug 29 17:02:00 2006 *************** *** 668,669 **** --- 668,671 ---- { /* Add new patch number below this line */ + /**/ + 70, /**/ -- hundred-and-one symptoms of being an internet addict: 267. You get an extra phone line so you can get phone calls. /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ download, build and distribute -- http://www.A-A-P.org /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///