| To: vim-dev@vim.org |
| Subject: Patch 7.0.070 |
| Fcc: outbox |
| From: Bram Moolenaar <Bram@moolenaar.net> |
| 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 |
| |
| |
| |
| |
| |
| *** 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 |
| |
| |
| |
| |
| *** 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 <SNR> 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 <SNR> things. |
| */ |
| static void |
| ! emsg_funcname(ermsg, name) |
| ! char *ermsg; |
| char_u *name; |
| { |
| char_u *p; |
| |
| *** 7605,7611 **** |
| p = concat_str((char_u *)"<SNR>", name + 3); |
| else |
| p = name; |
| ! EMSG2(_(msg), p); |
| if (p != name) |
| vim_free(p); |
| } |
| --- 7605,7611 ---- |
| p = concat_str((char_u *)"<SNR>", 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); |
| |
| |
| |
| *** 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); |
| |
| |
| |
| *** 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 |
| |
| |
| |
| |
| *** 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); |
| } |
| |
| |
| |
| *** 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 */ |
| |
| |
| |
| *** 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); |
| } |
| |
| |
| |
| |
| *** 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), |
| |
| |
| |
| *** 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 ---- |
| |
| |
| |
| *** 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); |
| |
| |
| |
| *** 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 |
| |
| |
| |
| *** 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)); |
| |
| |
| |
| *** 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); |
| |
| |
| |
| *** 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"); */ |
| } |
| |
| |
| |
| *** 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; |
| |
| |
| |
| *** 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 |
| } |
| |
| |
| |
| *** 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) |
| |
| |
| |
| *** 500,507 **** |
| { |
| if (tv != NULL) |
| { |
| - int len; |
| - |
| if (tv->v_type == VAR_STRING) |
| { |
| /* Get the next line from the supplied string */ |
| --- 500,505 ---- |
| |
| |
| |
| *** 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 |
| |
| |
| |
| *** 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) |
| { |
| |
| |
| |
| *** 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 |
| |
| |
| |
| *** 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) |
| { |
| |
| |
| |
| *** 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) |
| |
| |
| |
| *** 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); |
| |
| |
| |
| *** 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)) |
| { |
| |
| |
| |
| *** 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 /// |