[vim/f19] - patchlevel 895

Karsten Hopp karsten at fedoraproject.org
Mon Apr 15 15:09:03 UTC 2013


commit d1aaf17c79160dba71d21e40f33537c3ee3e1faf
Author: Karsten Hopp <karsten at redhat.com>
Date:   Mon Apr 15 17:02:43 2013 +0200

    - patchlevel 895

 7.3.895 |  189 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 189 insertions(+), 0 deletions(-)
---
diff --git a/7.3.895 b/7.3.895
new file mode 100644
index 0000000..676c972
--- /dev/null
+++ b/7.3.895
@@ -0,0 +1,189 @@
+To: vim_dev at googlegroups.com
+Subject: Patch 7.3.895
+Fcc: outbox
+From: Bram Moolenaar <Bram at moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.895
+Problem:    Valgrind error in test 91. (Issue 128)
+Solution:   Pass scope name to find_var_in_ht().
+Files:	    src/eval.c
+
+
+*** ../vim-7.3.894/src/eval.c	2013-04-15 12:27:30.000000000 +0200
+--- src/eval.c	2013-04-15 13:00:44.000000000 +0200
+***************
+*** 788,794 ****
+  static char_u *get_tv_string_buf __ARGS((typval_T *varp, char_u *buf));
+  static char_u *get_tv_string_buf_chk __ARGS((typval_T *varp, char_u *buf));
+  static dictitem_T *find_var __ARGS((char_u *name, hashtab_T **htp));
+! static dictitem_T *find_var_in_ht __ARGS((hashtab_T *ht, char_u *varname, int writing));
+  static hashtab_T *find_var_ht __ARGS((char_u *name, char_u **varname));
+  static void vars_clear_ext __ARGS((hashtab_T *ht, int free_val));
+  static void delete_var __ARGS((hashtab_T *ht, hashitem_T *hi));
+--- 788,794 ----
+  static char_u *get_tv_string_buf __ARGS((typval_T *varp, char_u *buf));
+  static char_u *get_tv_string_buf_chk __ARGS((typval_T *varp, char_u *buf));
+  static dictitem_T *find_var __ARGS((char_u *name, hashtab_T **htp));
+! static dictitem_T *find_var_in_ht __ARGS((hashtab_T *ht, int htname, char_u *varname, int writing));
+  static hashtab_T *find_var_ht __ARGS((char_u *name, char_u **varname));
+  static void vars_clear_ext __ARGS((hashtab_T *ht, int free_val));
+  static void delete_var __ARGS((hashtab_T *ht, hashitem_T *hi));
+***************
+*** 11150,11162 ****
+  	}
+  	else
+  	{
+! 	    if (*varname == NUL)
+! 		/* let getbufvar({nr}, "") return the "b:" dictionary.  The
+! 		 * scope prefix before the NUL byte is required by
+! 		 * find_var_in_ht(). */
+! 		varname = (char_u *)"b:" + 2;
+! 	    /* look up the variable */
+! 	    v = find_var_in_ht(&curbuf->b_vars->dv_hashtab, varname, FALSE);
+  	    if (v != NULL)
+  		copy_tv(&v->di_tv, rettv);
+  	}
+--- 11150,11159 ----
+  	}
+  	else
+  	{
+! 	    /* Look up the variable. */
+! 	    /* Let getbufvar({nr}, "") return the "b:" dictionary. */
+! 	    v = find_var_in_ht(&curbuf->b_vars->dv_hashtab,
+! 							 'b', varname, FALSE);
+  	    if (v != NULL)
+  		copy_tv(&v->di_tv, rettv);
+  	}
+***************
+*** 11779,11785 ****
+      if (tp != NULL && varname != NULL)
+      {
+  	/* look up the variable */
+! 	v = find_var_in_ht(&tp->tp_vars->dv_hashtab, varname, FALSE);
+  	if (v != NULL)
+  	    copy_tv(&v->di_tv, rettv);
+  	else if (argvars[2].v_type != VAR_UNKNOWN)
+--- 11776,11782 ----
+      if (tp != NULL && varname != NULL)
+      {
+  	/* look up the variable */
+! 	v = find_var_in_ht(&tp->tp_vars->dv_hashtab, 0, varname, FALSE);
+  	if (v != NULL)
+  	    copy_tv(&v->di_tv, rettv);
+  	else if (argvars[2].v_type != VAR_UNKNOWN)
+***************
+*** 11929,11941 ****
+  	    get_option_tv(&varname, rettv, 1);
+  	else
+  	{
+! 	    if (*varname == NUL)
+! 		/* let getwinvar({nr}, "") return the "w:" dictionary.  The
+! 		 * scope prefix before the NUL byte is required by
+! 		 * find_var_in_ht(). */
+! 		varname = (char_u *)"w:" + 2;
+! 	    /* look up the variable */
+! 	    v = find_var_in_ht(&win->w_vars->dv_hashtab, varname, FALSE);
+  	    if (v != NULL)
+  		copy_tv(&v->di_tv, rettv);
+  	}
+--- 11926,11934 ----
+  	    get_option_tv(&varname, rettv, 1);
+  	else
+  	{
+! 	    /* Look up the variable. */
+! 	    /* Let getwinvar({nr}, "") return the "w:" dictionary. */
+! 	    v = find_var_in_ht(&win->w_vars->dv_hashtab, 'w', varname, FALSE);
+  	    if (v != NULL)
+  		copy_tv(&v->di_tv, rettv);
+  	}
+***************
+*** 20041,20056 ****
+  	*htp = ht;
+      if (ht == NULL)
+  	return NULL;
+!     return find_var_in_ht(ht, varname, htp != NULL);
+  }
+  
+  /*
+!  * Find variable "varname" in hashtab "ht".
+   * Returns NULL if not found.
+   */
+      static dictitem_T *
+! find_var_in_ht(ht, varname, writing)
+      hashtab_T	*ht;
+      char_u	*varname;
+      int		writing;
+  {
+--- 20034,20050 ----
+  	*htp = ht;
+      if (ht == NULL)
+  	return NULL;
+!     return find_var_in_ht(ht, *name, varname, htp != NULL);
+  }
+  
+  /*
+!  * Find variable "varname" in hashtab "ht" with name "htname".
+   * Returns NULL if not found.
+   */
+      static dictitem_T *
+! find_var_in_ht(ht, htname, varname, writing)
+      hashtab_T	*ht;
++     int		htname;
+      char_u	*varname;
+      int		writing;
+  {
+***************
+*** 20059,20065 ****
+      if (*varname == NUL)
+      {
+  	/* Must be something like "s:", otherwise "ht" would be NULL. */
+! 	switch (varname[-2])
+  	{
+  	    case 's': return &SCRIPT_SV(current_SID)->sv_var;
+  	    case 'g': return &globvars_var;
+--- 20053,20059 ----
+      if (*varname == NUL)
+      {
+  	/* Must be something like "s:", otherwise "ht" would be NULL. */
+! 	switch (htname)
+  	{
+  	    case 's': return &SCRIPT_SV(current_SID)->sv_var;
+  	    case 'g': return &globvars_var;
+***************
+*** 20389,20395 ****
+  	EMSG2(_(e_illvar), name);
+  	return;
+      }
+!     v = find_var_in_ht(ht, varname, TRUE);
+  
+      if (tv->v_type == VAR_FUNC && var_check_func_name(name, v == NULL))
+  	return;
+--- 20383,20389 ----
+  	EMSG2(_(e_illvar), name);
+  	return;
+      }
+!     v = find_var_in_ht(ht, 0, varname, TRUE);
+  
+      if (tv->v_type == VAR_FUNC && var_check_func_name(name, v == NULL))
+  	return;
+*** ../vim-7.3.894/src/version.c	2013-04-15 12:36:14.000000000 +0200
+--- src/version.c	2013-04-15 13:04:54.000000000 +0200
+***************
+*** 730,731 ****
+--- 730,733 ----
+  {   /* Add new patch number below this line */
++ /**/
++     895,
+  /**/
+
+-- 
+        Very funny, Scotty.  Now beam down my clothes.
+
+ /// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///


More information about the scm-commits mailing list