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: [email protected]
+Subject: Patch 7.2.084
+Fcc: outbox
+From: Bram Moolenaar <[email protected]>
+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 -- [email protected] -- 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: [email protected]
+Subject: Patch 7.2.085
+Fcc: outbox
+From: Bram Moolenaar <[email protected]>
+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 -- [email protected] -- 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    ///
================================================================
_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to