SOURCES: 7.2.084 (NEW), 7.2.085 (NEW) - new

adamg adamg at pld-linux.org
Fri Feb 6 17:46:57 CET 2009


Author: adamg                        Date: Fri Feb  6 16:46:57 2009 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- new

---- Files affected:
SOURCES:
   7.2.084 (NONE -> 1.1)  (NEW)
SOURCES:
   7.2.085 (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: SOURCES/7.2.084
diff -u /dev/null SOURCES/7.2.084:1.1
--- /dev/null	Fri Feb  6 17:46:58 2009
+++ SOURCES/7.2.084	Fri Feb  6 17:46:52 2009
@@ -0,0 +1,144 @@
+To: vim-dev at vim.org
+Subject: Patch 7.2.084
+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.084
+Problem:    Recursive structures are not handled properly in Python
+	    vim.eval().
+Solution:   Keep track of references in a better way. (Yukihiro Nakadaira)
+Files:	    src/if_python.c
+
+
+*** ../vim-7.2.083/src/if_python.c	Thu Nov 20 11:04:01 2008
+--- src/if_python.c	Tue Jan 13 18:08:06 2009
+***************
+*** 1151,1164 ****
+  
+      /* Check if we run into a recursive loop.  The item must be in lookupDict
+       * then and we can use it again. */
+!     sprintf(ptrBuf, PRINTF_DECIMAL_LONG_U, (long_u)our_tv);
+!     result = PyDict_GetItemString(lookupDict, ptrBuf);
+!     if (result != NULL)
+! 	Py_INCREF(result);
+!     else if (our_tv->v_type == VAR_STRING)
+      {
+  	result = Py_BuildValue("s", our_tv->vval.v_string);
+- 	PyDict_SetItemString(lookupDict, ptrBuf, result);
+      }
+      else if (our_tv->v_type == VAR_NUMBER)
+      {
+--- 1151,1173 ----
+  
+      /* Check if we run into a recursive loop.  The item must be in lookupDict
+       * then and we can use it again. */
+!     if ((our_tv->v_type == VAR_LIST && our_tv->vval.v_list != NULL)
+! 	    || (our_tv->v_type == VAR_DICT && our_tv->vval.v_dict != NULL))
+!     {
+! 	sprintf(ptrBuf, PRINTF_DECIMAL_LONG_U,
+! 	        our_tv->v_type == VAR_LIST ? (long_u)our_tv->vval.v_list
+! 		                           : (long_u)our_tv->vval.v_dict);
+! 	result = PyDict_GetItemString(lookupDict, ptrBuf);
+! 	if (result != NULL)
+! 	{
+! 	    Py_INCREF(result);
+! 	    return result;
+! 	}
+!     }
+! 
+!     if (our_tv->v_type == VAR_STRING)
+      {
+  	result = Py_BuildValue("s", our_tv->vval.v_string);
+      }
+      else if (our_tv->v_type == VAR_NUMBER)
+      {
+***************
+*** 1167,1173 ****
+  	/* For backwards compatibility numbers are stored as strings. */
+  	sprintf(buf, "%ld", (long)our_tv->vval.v_number);
+  	result = Py_BuildValue("s", buf);
+- 	PyDict_SetItemString(lookupDict, ptrBuf, result);
+      }
+  # ifdef FEAT_FLOAT
+      else if (our_tv->v_type == VAR_FLOAT)
+--- 1176,1181 ----
+***************
+*** 1176,1182 ****
+  
+  	sprintf(buf, "%f", our_tv->vval.v_float);
+  	result = Py_BuildValue("s", buf);
+- 	PyDict_SetItemString(lookupDict, ptrBuf, result);
+      }
+  # endif
+      else if (our_tv->v_type == VAR_LIST)
+--- 1184,1189 ----
+***************
+*** 1185,1194 ****
+  	listitem_T	*curr;
+  
+  	result = PyList_New(0);
+- 	PyDict_SetItemString(lookupDict, ptrBuf, result);
+  
+  	if (list != NULL)
+  	{
+  	    for (curr = list->lv_first; curr != NULL; curr = curr->li_next)
+  	    {
+  		newObj = VimToPython(&curr->li_tv, depth + 1, lookupDict);
+--- 1192,1202 ----
+  	listitem_T	*curr;
+  
+  	result = PyList_New(0);
+  
+  	if (list != NULL)
+  	{
++ 	    PyDict_SetItemString(lookupDict, ptrBuf, result);
++ 
+  	    for (curr = list->lv_first; curr != NULL; curr = curr->li_next)
+  	    {
+  		newObj = VimToPython(&curr->li_tv, depth + 1, lookupDict);
+***************
+*** 1200,1206 ****
+      else if (our_tv->v_type == VAR_DICT)
+      {
+  	result = PyDict_New();
+- 	PyDict_SetItemString(lookupDict, ptrBuf, result);
+  
+  	if (our_tv->vval.v_dict != NULL)
+  	{
+--- 1208,1213 ----
+***************
+*** 1209,1214 ****
+--- 1216,1223 ----
+  	    hashitem_T	*hi;
+  	    dictitem_T	*di;
+  
++ 	    PyDict_SetItemString(lookupDict, ptrBuf, result);
++ 
+  	    for (hi = ht->ht_array; todo > 0; ++hi)
+  	    {
+  		if (!HASHITEM_EMPTY(hi))
+*** ../vim-7.2.083/src/version.c	Tue Jan 13 17:27:18 2009
+--- src/version.c	Tue Jan 13 17:54:14 2009
+***************
+*** 678,679 ****
+--- 678,681 ----
+  {   /* Add new patch number below this line */
++ /**/
++     84,
+  /**/
+
+-- 
+Article in the first Free Software Magazine: "Bram Moolenaar studied electrical
+engineering at the Technical University of Delft and graduated in 1985 on a
+multi-processor Unix architecture."
+Response by "dimator": Could the school not afford a proper stage for the
+ceremony?
+
+ /// Bram Moolenaar -- Bram at 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    ///

================================================================
Index: SOURCES/7.2.085
diff -u /dev/null SOURCES/7.2.085:1.1
--- /dev/null	Fri Feb  6 17:46:59 2009
+++ SOURCES/7.2.085	Fri Feb  6 17:46:55 2009
@@ -0,0 +1,62 @@
+To: vim-dev at vim.org
+Subject: Patch 7.2.085
+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.085
+Problem:    ":set <M-b>=<Esc>b" does not work when 'encoding' is utf-8.
+Solution:   Put the <M-b> character in the input buffer as valid utf-8.
+	    (partly by Matt Wosniski)
+Files:	    src/term.c
+
+
+*** ../vim-7.2.084/src/term.c	Tue Jul 29 12:22:12 2008
+--- src/term.c	Thu Jan 22 18:18:29 2009
+***************
+*** 4920,4926 ****
+  	key_name[0] = KEY2TERMCAP0(key);
+  	key_name[1] = KEY2TERMCAP1(key);
+  	if (key_name[0] == KS_KEY)
+! 	    string[new_slen++] = key_name[1];	/* from ":set <M-b>=xx" */
+  	else
+  	{
+  	    string[new_slen++] = K_SPECIAL;
+--- 4920,4934 ----
+  	key_name[0] = KEY2TERMCAP0(key);
+  	key_name[1] = KEY2TERMCAP1(key);
+  	if (key_name[0] == KS_KEY)
+! 	{
+! 	    /* from ":set <M-b>=xx" */
+! #ifdef FEAT_MBYTE
+! 	    if (has_mbyte)
+! 		new_slen += (*mb_char2bytes)(key_name[1], string + new_slen);
+! 	    else
+! #endif
+! 		string[new_slen++] = key_name[1];
+! 	}
+  	else
+  	{
+  	    string[new_slen++] = K_SPECIAL;
+*** ../vim-7.2.084/src/version.c	Tue Jan 13 18:10:21 2009
+--- src/version.c	Thu Jan 22 18:31:50 2009
+***************
+*** 678,679 ****
+--- 678,681 ----
+  {   /* Add new patch number below this line */
++ /**/
++     85,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+20. When looking at a pageful of someone else's links, you notice all of them
+    are already highlighted in purple.
+
+ /// Bram Moolenaar -- Bram at 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    ///
================================================================


More information about the pld-cvs-commit mailing list