SF.net SVN: geany:[5583] trunk

colombanw at users.sourceforge.net colombanw at xxxxx
Mon Mar 7 02:44:18 UTC 2011


Revision: 5583
          http://geany.svn.sourceforge.net/geany/?rev=5583&view=rev
Author:   colombanw
Date:     2011-03-07 02:44:18 +0000 (Mon, 07 Mar 2011)

Log Message:
-----------
Import upstream MIO changes not to require a C99 compiler

Modified Paths:
--------------
    trunk/ChangeLog
    trunk/tagmanager/mio/mio-memory.c

Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog	2011-03-06 19:16:48 UTC (rev 5582)
+++ trunk/ChangeLog	2011-03-07 02:44:18 UTC (rev 5583)
@@ -1,3 +1,9 @@
+2011-03-07  Colomban Wendling  <colomban(at)geany(dot)org>
+
+ * tagmanager/mio/mio-memory.c:
+   Import upstream MIO changes not to require a C99 compiler.
+
+
 2011-03-06  Colomban Wendling  <colomban(at)geany(dot)org>
 
  * src/symbols.c:

Modified: trunk/tagmanager/mio/mio-memory.c
===================================================================
--- trunk/tagmanager/mio/mio-memory.c	2011-03-06 19:16:48 UTC (rev 5582)
+++ trunk/tagmanager/mio/mio-memory.c	2011-03-07 02:44:18 UTC (rev 5583)
@@ -247,28 +247,26 @@
              va_list      ap)
 {
   gint    rv = -1;
-  gint    n;
-  gchar   tmp;
+  gsize   n;
   gsize   old_pos;
   gsize   old_size;
   va_list ap_copy;
   
   old_pos = mio->impl.mem.pos;
   old_size = mio->impl.mem.size;
-  va_copy (ap_copy, ap);
+  G_VA_COPY (ap_copy, ap);
   /* compute the size we will need into the buffer */
-  n = vsnprintf (&tmp, 1, format, ap_copy);
+  n = g_printf_string_upper_bound (format, ap_copy);
   va_end (ap_copy);
-  if (n >= 0 && mem_try_ensure_space (mio, ((guint)n) + 1)) {
+  if (mem_try_ensure_space (mio, n)) {
     guchar c;
     
     /* backup character at n+1 that will be overwritten by a \0 ... */
-    c = mio->impl.mem.buf[mio->impl.mem.pos + (guint)n];
-    rv = vsnprintf ((gchar *)&mio->impl.mem.buf[mio->impl.mem.pos],
-                    (guint)n + 1, format, ap);
+    c = mio->impl.mem.buf[mio->impl.mem.pos + (n - 1)];
+    rv = vsprintf ((gchar *)&mio->impl.mem.buf[mio->impl.mem.pos], format, ap);
     /* ...and restore it */
-    mio->impl.mem.buf[mio->impl.mem.pos + (guint)n] = c;
-    if (G_LIKELY (rv >= 0 && rv == n)) {
+    mio->impl.mem.buf[mio->impl.mem.pos + (n - 1)] = c;
+    if (G_LIKELY (rv >= 0 && (gsize)rv == (n - 1))) {
       /* re-compute the actual size since we might have allocated one byte
        * more than needed */
       mio->impl.mem.size = MAX (old_size, old_pos + (guint)rv);


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.



More information about the Commits mailing list