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