diff --git a/ChangeLog b/ChangeLog index 44fe2f36d..1823f9704 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +1999-04-18 Havoc Pennington + + * gutils.c (g_snprintf): When using the vsnprintf() + implementation, '\0'-terminate the resulting string + and return its length rather than -1. + Fri Apr 16 06:52:07 1999 Tim Janik * gscanner.c (g_scanner_unexp_token): feature G_TOKEN_EOF as a valid diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0 index 44fe2f36d..1823f9704 100644 --- a/ChangeLog.pre-2-0 +++ b/ChangeLog.pre-2-0 @@ -1,3 +1,9 @@ +1999-04-18 Havoc Pennington + + * gutils.c (g_snprintf): When using the vsnprintf() + implementation, '\0'-terminate the resulting string + and return its length rather than -1. + Fri Apr 16 06:52:07 1999 Tim Janik * gscanner.c (g_scanner_unexp_token): feature G_TOKEN_EOF as a valid diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 44fe2f36d..1823f9704 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,9 @@ +1999-04-18 Havoc Pennington + + * gutils.c (g_snprintf): When using the vsnprintf() + implementation, '\0'-terminate the resulting string + and return its length rather than -1. + Fri Apr 16 06:52:07 1999 Tim Janik * gscanner.c (g_scanner_unexp_token): feature G_TOKEN_EOF as a valid diff --git a/ChangeLog.pre-2-12 b/ChangeLog.pre-2-12 index 44fe2f36d..1823f9704 100644 --- a/ChangeLog.pre-2-12 +++ b/ChangeLog.pre-2-12 @@ -1,3 +1,9 @@ +1999-04-18 Havoc Pennington + + * gutils.c (g_snprintf): When using the vsnprintf() + implementation, '\0'-terminate the resulting string + and return its length rather than -1. + Fri Apr 16 06:52:07 1999 Tim Janik * gscanner.c (g_scanner_unexp_token): feature G_TOKEN_EOF as a valid diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index 44fe2f36d..1823f9704 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,9 @@ +1999-04-18 Havoc Pennington + + * gutils.c (g_snprintf): When using the vsnprintf() + implementation, '\0'-terminate the resulting string + and return its length rather than -1. + Fri Apr 16 06:52:07 1999 Tim Janik * gscanner.c (g_scanner_unexp_token): feature G_TOKEN_EOF as a valid diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index 44fe2f36d..1823f9704 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,9 @@ +1999-04-18 Havoc Pennington + + * gutils.c (g_snprintf): When using the vsnprintf() + implementation, '\0'-terminate the resulting string + and return its length rather than -1. + Fri Apr 16 06:52:07 1999 Tim Janik * gscanner.c (g_scanner_unexp_token): feature G_TOKEN_EOF as a valid diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 44fe2f36d..1823f9704 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,9 @@ +1999-04-18 Havoc Pennington + + * gutils.c (g_snprintf): When using the vsnprintf() + implementation, '\0'-terminate the resulting string + and return its length rather than -1. + Fri Apr 16 06:52:07 1999 Tim Janik * gscanner.c (g_scanner_unexp_token): feature G_TOKEN_EOF as a valid diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 44fe2f36d..1823f9704 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,9 @@ +1999-04-18 Havoc Pennington + + * gutils.c (g_snprintf): When using the vsnprintf() + implementation, '\0'-terminate the resulting string + and return its length rather than -1. + Fri Apr 16 06:52:07 1999 Tim Janik * gscanner.c (g_scanner_unexp_token): feature G_TOKEN_EOF as a valid diff --git a/glib/gutils.c b/glib/gutils.c index b36181401..715643ac3 100644 --- a/glib/gutils.c +++ b/glib/gutils.c @@ -139,7 +139,13 @@ g_snprintf (gchar *str, va_start (args, fmt); retval = vsnprintf (str, n, fmt, args); va_end (args); - + + if (retval < 0) + { + str[n-1] = '\0'; + retval = strlen (str); + } + return retval; #else /* !HAVE_VSNPRINTF */ gchar *printed; diff --git a/gutils.c b/gutils.c index b36181401..715643ac3 100644 --- a/gutils.c +++ b/gutils.c @@ -139,7 +139,13 @@ g_snprintf (gchar *str, va_start (args, fmt); retval = vsnprintf (str, n, fmt, args); va_end (args); - + + if (retval < 0) + { + str[n-1] = '\0'; + retval = strlen (str); + } + return retval; #else /* !HAVE_VSNPRINTF */ gchar *printed;