SOURCES: 7.2.149 (NEW), 7.2.150 (NEW), 7.2.151 (NEW), 7.2.152 (NEW), 7.2.15...
adamg
adamg at pld-linux.org
Sat Apr 25 11:06:35 CEST 2009
Author: adamg Date: Sat Apr 25 09:06:35 2009 GMT
Module: SOURCES Tag: HEAD
---- Log message:
- new
---- Files affected:
SOURCES:
7.2.149 (NONE -> 1.1) (NEW), 7.2.150 (NONE -> 1.1) (NEW), 7.2.151 (NONE -> 1.1) (NEW), 7.2.152 (NONE -> 1.1) (NEW), 7.2.153 (NONE -> 1.1) (NEW), 7.2.154 (NONE -> 1.1) (NEW), 7.2.155 (NONE -> 1.1) (NEW), 7.2.156 (NONE -> 1.1) (NEW), 7.2.157 (NONE -> 1.1) (NEW), 7.2.158 (NONE -> 1.1) (NEW), 7.2.159 (NONE -> 1.1) (NEW), 7.2.160 (NONE -> 1.1) (NEW)
---- Diffs:
================================================================
Index: SOURCES/7.2.149
diff -u /dev/null SOURCES/7.2.149:1.1
--- /dev/null Sat Apr 25 11:06:36 2009
+++ SOURCES/7.2.149 Sat Apr 25 11:06:25 2009
@@ -0,0 +1,672 @@
+To: vim-dev at vim.org
+Subject: Patch 7.2.149
+Fcc: outbox
+From: Bram Moolenaar <Bram at moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.149
+Problem: Using return value of function that doesn't return a value results
+ in reading uninitialized memory.
+Solution: Set the default to return zero. Make cursor() return -1 on
+ failure. Let complete() return an empty string in case of an
+ error. (partly by Dominique Pelle)
+Files: runtime/doc/eval.txt, src/eval.c
+
+
+*** ../vim-7.2.148/runtime/doc/eval.txt Tue Dec 9 10:56:50 2008
+--- runtime/doc/eval.txt Sun Mar 22 14:28:49 2009
+***************
+*** 2414,2419 ****
+--- 2419,2425 ----
+ When 'virtualedit' is used {off} specifies the offset in
+ screen columns from the start of the character. E.g., a
+ position within a <Tab> or after the last character.
++ Returns 0 when the position could be set, -1 otherwise.
+
+
+ deepcopy({expr}[, {noref}]) *deepcopy()* *E698*
+***************
+*** 4516,4521 ****
+--- 4526,4532 ----
+ should also work to move files across file systems. The
+ result is a Number, which is 0 if the file was renamed
+ successfully, and non-zero when the renaming failed.
++ NOTE: If {to} exists it is overwritten without warning.
+ This function is not available in the |sandbox|.
+
+ repeat({expr}, {count}) *repeat()*
+*** ../vim-7.2.148/src/eval.c Wed Feb 4 16:25:53 2009
+--- src/eval.c Sun Mar 22 20:45:18 2009
+***************
+*** 1285,1291 ****
+--- 1285,1293 ----
+ typval_T tv;
+ char_u *retval;
+ garray_T ga;
++ #ifdef FEAT_FLOAT
+ char_u numbuf[NUMBUFLEN];
++ #endif
+
+ if (eval0(arg, &tv, nextcmd, TRUE) == FAIL)
+ retval = NULL;
+***************
+*** 8018,8024 ****
+ /* execute the function if no errors detected and executing */
+ if (evaluate && error == ERROR_NONE)
+ {
+! rettv->v_type = VAR_NUMBER; /* default is number rettv */
+ error = ERROR_UNKNOWN;
+
+ if (!builtin_function(fname))
+--- 8020,8027 ----
+ /* execute the function if no errors detected and executing */
+ if (evaluate && error == ERROR_NONE)
+ {
+! rettv->v_type = VAR_NUMBER; /* default rettv is number zero */
+! rettv->vval.v_number = 0;
+ error = ERROR_UNKNOWN;
+
+ if (!builtin_function(fname))
+***************
+*** 8268,8274 ****
+ return;
+ li = l->lv_first;
+ }
+- rettv->vval.v_number = 0; /* Default: Success */
+ for (;;)
+ {
+ if (l == NULL)
+--- 8271,8276 ----
+***************
+*** 8728,8734 ****
+ int dummy;
+ dict_T *selfdict = NULL;
+
+- rettv->vval.v_number = 0;
+ if (argvars[1].v_type != VAR_LIST)
+ {
+ EMSG(_(e_listreq));
+--- 8730,8735 ----
+***************
+*** 9036,9048 ****
+ if (buttons == NULL || *buttons == NUL)
+ buttons = (char_u *)_("&Ok");
+
+! if (error)
+! rettv->vval.v_number = 0;
+! else
+ rettv->vval.v_number = do_dialog(type, NULL, message, buttons,
+ def, NULL);
+- #else
+- rettv->vval.v_number = 0;
+ #endif
+ }
+
+--- 9037,9045 ----
+ if (buttons == NULL || *buttons == NUL)
+ buttons = (char_u *)_("&Ok");
+
+! if (!error)
+ rettv->vval.v_number = do_dialog(type, NULL, message, buttons,
+ def, NULL);
+ #endif
+ }
+
+***************
+*** 9181,9195 ****
+ }
+
+ rettv->vval.v_number = cs_connection(num, dbpath, prepend);
+- #else
+- rettv->vval.v_number = 0;
+ #endif
+ }
+
+ /*
+ * "cursor(lnum, col)" function
+ *
+! * Moves the cursor to the specified line and column
+ */
+ /*ARGSUSED*/
+ static void
+--- 9178,9191 ----
+ }
+
+ rettv->vval.v_number = cs_connection(num, dbpath, prepend);
+ #endif
+ }
+
+ /*
+ * "cursor(lnum, col)" function
+ *
+! * Moves the cursor to the specified line and column.
+! * Returns 0 when the position could be set, -1 otherwise.
+ */
+ /*ARGSUSED*/
+ static void
+***************
+*** 9202,9207 ****
+--- 9198,9204 ----
+ long coladd = 0;
+ #endif
+
++ rettv->vval.v_number = -1;
+ if (argvars[1].v_type == VAR_UNKNOWN)
+ {
+ pos_T pos;
+***************
+*** 9246,9251 ****
+--- 9243,9249 ----
+ #endif
+
+ curwin->w_set_curswant = TRUE;
++ rettv->vval.v_number = 0;
+ }
+
+ /*
+***************
+*** 9291,9298 ****
+ {
+ #ifdef FEAT_AUTOCMD
+ rettv->vval.v_number = did_filetype;
+- #else
+- rettv->vval.v_number = 0;
+ #endif
+ }
+
+--- 9289,9294 ----
+***************
+*** 9605,9611 ****
+ typval_T *argvars;
+ typval_T *rettv;
+ {
+- rettv->vval.v_number = 0;
+ if (argvars[0].v_type == VAR_LIST && argvars[1].v_type == VAR_LIST)
+ {
+ list_T *l1, *l2;
+--- 9601,9606 ----
+***************
+*** 9733,9739 ****
+ if (check_secure())
+ return;
+
+- rettv->vval.v_number = 0;
+ keys = get_tv_string(&argvars[0]);
+ if (*keys != NUL)
+ {
+--- 9728,9733 ----
+***************
+*** 9901,9907 ****
+ 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
+--- 9895,9900 ----
+***************
+*** 10084,10091 ****
+ else
+ rettv->vval.v_number = (varnumber_T)f;
+ }
+- else
+- rettv->vval.v_number = 0;
+ }
+
+ /*
+--- 10077,10082 ----
+***************
+*** 10219,10227 ****
+ lnum = get_tv_lnum(argvars);
+ if (lnum >= 1 && lnum <= curbuf->b_ml.ml_line_count)
+ rettv->vval.v_number = foldLevel(lnum);
+- else
+ #endif
+- rettv->vval.v_number = 0;
+ }
+
+ /*
+--- 10210,10216 ----
+***************
+*** 10337,10343 ****
+ typval_T *argvars;
+ typval_T *rettv;
+ {
+- rettv->vval.v_number = 0;
+ #ifdef FEAT_GUI
+ if (gui.in_use)
+ gui_mch_set_foreground();
+--- 10326,10331 ----
+***************
+*** 10359,10365 ****
+ {
+ char_u *s;
+
+- rettv->vval.v_number = 0;
+ s = get_tv_string(&argvars[0]);
+ if (s == NULL || *s == NUL || VIM_ISDIGIT(*s))
+ EMSG2(_(e_invarg2), s);
+--- 10347,10352 ----
+***************
+*** 10429,10437 ****
+
+ if (tv == NULL)
+ {
+! if (argvars[2].v_type == VAR_UNKNOWN)
+! rettv->vval.v_number = 0;
+! else
+ copy_tv(&argvars[2], rettv);
+ }
+ else
+--- 10416,10422 ----
+
+ if (tv == NULL)
+ {
+! if (argvars[2].v_type != VAR_UNKNOWN)
+ copy_tv(&argvars[2], rettv);
+ }
+ else
+***************
+*** 10456,10468 ****
+ {
+ char_u *p;
+
+! if (retlist)
+! {
+! if (rettv_list_alloc(rettv) == FAIL)
+! return;
+! }
+! else
+! rettv->vval.v_number = 0;
+
+ if (buf == NULL || buf->b_ml.ml_mfp == NULL || start < 0)
+ return;
+--- 10441,10448 ----
+ {
+ char_u *p;
+
+! if (retlist && rettv_list_alloc(rettv) == FAIL)
+! return;
+
+ if (buf == NULL || buf->b_ml.ml_mfp == NULL || start < 0)
+ return;
+***************
+*** 11009,11016 ****
+ dict_T *dict;
+ matchitem_T *cur = curwin->w_match_head;
+
+- rettv->vval.v_number = 0;
+-
+ if (rettv_list_alloc(rettv) == OK)
+ {
+ while (cur != NULL)
+--- 10989,10994 ----
+***************
+*** 11089,11095 ****
+ win_T *wp;
+ #endif
+
+- rettv->vval.v_number = 0;
+ #ifdef FEAT_QUICKFIX
+ if (rettv_list_alloc(rettv) == OK)
+ {
+--- 11067,11072 ----
+***************
+*** 11935,11941 ****
+ typval_T *argvars;
+ typval_T *rettv;
+ {
+- rettv->vval.v_number = 0;
+ if (argvars[0].v_type != VAR_DICT)
+ {
+ EMSG(_(e_dictreq));
+--- 11912,11917 ----
+***************
+*** 12052,12059 ****
+ n = del_history_entry(get_histtype(str),
+ get_tv_string_buf(&argvars[1], buf));
+ rettv->vval.v_number = n;
+- #else
+- rettv->vval.v_number = 0;
+ #endif
+ }
+
+--- 12028,12033 ----
+***************
+*** 12415,12421 ****
+ int selected;
+ int mouse_used;
+
+- rettv->vval.v_number = 0;
+ #ifdef NO_CONSOLE_INPUT
+ /* While starting up, there is no place to enter text. */
+ if (no_console_input())
+--- 12389,12394 ----
+***************
+*** 12464,12470 ****
+ --ga_userinput.ga_len;
+ restore_typeahead((tasave_T *)(ga_userinput.ga_data)
+ + ga_userinput.ga_len);
+! rettv->vval.v_number = 0; /* OK */
+ }
+ else if (p_verbose > 1)
+ {
+--- 12437,12443 ----
+ --ga_userinput.ga_len;
+ restore_typeahead((tasave_T *)(ga_userinput.ga_data)
+ + ga_userinput.ga_len);
+! /* default return is zero == OK */
+ }
+ else if (p_verbose > 1)
+ {
+***************
+*** 12488,12494 ****
+ save_typeahead((tasave_T *)(ga_userinput.ga_data)
+ + ga_userinput.ga_len);
+ ++ga_userinput.ga_len;
+! rettv->vval.v_number = 0; /* OK */
+ }
+ else
+ rettv->vval.v_number = 1; /* Failed */
+--- 12461,12467 ----
+ save_typeahead((tasave_T *)(ga_userinput.ga_data)
+ + ga_userinput.ga_len);
+ ++ga_userinput.ga_len;
+! /* default return is zero == OK */
+ }
+ else
+ rettv->vval.v_number = 1; /* Failed */
+***************
+*** 12522,12528 ****
+ list_T *l;
+ int error = FALSE;
+
+- rettv->vval.v_number = 0;
+ if (argvars[0].v_type != VAR_LIST)
+ EMSG2(_(e_listarg), "insert()");
+ else if ((l = argvars[0].vval.v_list) != NULL
+--- 12495,12500 ----
+***************
+*** 12641,12647 ****
+ dict_T *d;
+ int todo;
+
+- rettv->vval.v_number = 0;
+ if (argvars[0].v_type != VAR_DICT)
+ {
+ EMSG(_(e_dictreq));
+--- 12613,12618 ----
+***************
+*** 12729,12735 ****
+ garray_T ga;
+ char_u *sep;
+
+- rettv->vval.v_number = 0;
+ if (argvars[0].v_type != VAR_LIST)
+ {
+ EMSG(_(e_listreq));
+--- 12700,12705 ----
+***************
+*** 12827,12835 ****
+ #endif
+
+ rettv->v_type = type;
+! if (type == VAR_NUMBER)
+! rettv->vval.v_number = 0;
+! else
+ rettv->vval.v_string = NULL;
+
+ if (check_restricted() || check_secure())
+--- 12797,12803 ----
+ #endif
+
+ rettv->v_type = type;
+! if (type != VAR_NUMBER)
+ rettv->vval.v_string = NULL;
+
+ if (check_restricted() || check_secure())
+***************
+*** 13770,13776 ****
+ typval_T *argvars;
+ typval_T *rettv;
+ {
+- rettv->vval.v_number = 0;
+ #ifdef FEAT_INS_EXPAND
+ if (pum_visible())
+ rettv->vval.v_number = 1;
+--- 13738,13743 ----
+***************
+*** 13804,13810 ****
+ stride = get_tv_number_chk(&argvars[2], &error);
+ }
+
+- rettv->vval.v_number = 0;
+ if (error)
+ return; /* type error; errmsg already given */
+ if (stride == 0)
+--- 13771,13776 ----
+***************
+*** 14193,14199 ****
+ typval_T *argvars;
+ typval_T *rettv;
+ {
+- rettv->vval.v_number = 0;
+ #ifdef FEAT_CLIENTSERVER
+ # ifdef WIN32
+ /* On Win32 it's done in this application. */
+--- 14159,14164 ----
+***************
+*** 14249,14255 ****
+ rettv->vval.v_number = (s != NULL);
+ }
+ # else
+- rettv->vval.v_number = 0;
+ if (check_connection() == FAIL)
+ return;
+
+--- 14214,14219 ----
+***************
+*** 14338,14344 ****
+ dict_T *d;
+ dictitem_T *di;
+
+- rettv->vval.v_number = 0;
+ if (argvars[0].v_type == VAR_DICT)
+ {
+ if (argvars[2].v_type != VAR_UNKNOWN)
+--- 14302,14307 ----
+***************
+*** 14696,14702 ****
+ list_T *l;
+ listitem_T *li, *ni;
+
+- rettv->vval.v_number = 0;
+ if (argvars[0].v_type != VAR_LIST)
+ EMSG2(_(e_listarg), "reverse()");
+ else if ((l = argvars[0].vval.v_list) != NULL
+--- 14659,14664 ----
+***************
+*** 15048,15055 ****
+ int lnum = 0;
+ int col = 0;
+
+- rettv->vval.v_number = 0;
+-
+ if (rettv_list_alloc(rettv) == FAIL)
+ return;
+
+--- 15010,15015 ----
+***************
+*** 15236,15243 ****
+ int n;
+ int flags = 0;
+
+- rettv->vval.v_number = 0;
+-
+ if (rettv_list_alloc(rettv) == FAIL)
+ return;
+
+--- 15196,15201 ----
+***************
+*** 15323,15330 ****
+ typval_T *varp;
+ char_u nbuf[NUMBUFLEN];
+
+- rettv->vval.v_number = 0;
+-
+ if (check_restricted() || check_secure())
+ return;
+ (void)get_tv_number(&argvars[0]); /* issue errmsg if type error */
+--- 15281,15286 ----
+***************
+*** 15404,15410 ****
+ else
+ line = get_tv_string_chk(&argvars[1]);
+
+! rettv->vval.v_number = 0; /* OK */
+ for (;;)
+ {
+ if (l != NULL)
+--- 15360,15366 ----
+ else
+ line = get_tv_string_chk(&argvars[1]);
+
+! /* default result is zero == OK */
+ for (;;)
+ {
+ if (l != NULL)
+***************
+*** 15717,15722 ****
+--- 15673,15679 ----
+ /*
+ * "setwinvar()" and "settabwinvar()" functions
+ */
++ /*ARGSUSED*/
+ static void
+ setwinvar(argvars, rettv, off)
+ typval_T *argvars;
+***************
+*** 15733,15740 ****
+ char_u nbuf[NUMBUFLEN];
+ tabpage_T *tp;
+
+- rettv->vval.v_number = 0;
+-
+ if (check_restricted() || check_secure())
+ return;
+
+--- 15690,15695 ----
+***************
+*** 15947,15953 ****
+ long len;
+ long i;
+
+- rettv->vval.v_number = 0;
+ if (argvars[0].v_type != VAR_LIST)
+ EMSG2(_(e_listarg), "sort()");
+ else
+--- 15902,15907 ----
+***************
+*** 16870,16878 ****
+ typval_T *argvars;
+ typval_T *rettv;
+ {
+! #ifndef FEAT_WINDOWS
+! rettv->vval.v_number = 0;
+! #else
+ tabpage_T *tp;
+ win_T *wp = NULL;
+
+--- 16824,16830 ----
+ typval_T *argvars;
+ typval_T *rettv;
+ {
+! #ifdef FEAT_WINDOWS
+ tabpage_T *tp;
+ win_T *wp = NULL;
+
<<Diff was trimmed, longer than 597 lines>>
More information about the pld-cvs-commit
mailing list