]> sigrok.org Git - libsigrokdecode.git/blobdiff - exception.c
Fix srd_log() format warnings
[libsigrokdecode.git] / exception.c
index cd9d2b267efe49bac893eb380c5552cd94647e4d..96546f7d5537797bf45049159be70787e68aeaf5 100644 (file)
@@ -17,8 +17,8 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "sigrokdecode.h" /* First, so we avoid a _POSIX_C_SOURCE warning. */
-#include "sigrokdecode-internal.h"
+#include "libsigrokdecode-internal.h" /* First, so we avoid a _POSIX_C_SOURCE warning. */
+#include "libsigrokdecode.h"
 #include "config.h"
 #include <stdarg.h>
 #include <glib.h>
@@ -46,24 +46,23 @@ SRD_PRIV void srd_exception_catch(const char *format, ...)
                return;
        }
 
-       msg = g_string_sized_new(128);
-       va_start(args, format);
-       g_string_vprintf(msg, format, args);
-       va_end(args);
-
-       /* Can be NULL. */
+       /* Send the exception error message(s) to srd_err(). */
        if (evalue)
                ename = (char *)Py_TYPE(evalue)->tp_name;
        else
+               /* Can be NULL. */
                ename = "(unknown exception)";
 
-       /* Send the exception error message(s) to srd_err(). */
-       py_str_as_str(py_str, &str);
+       msg = g_string_sized_new(128);
        g_string_append(msg, ename);
        g_string_append(msg, ": ");
+       va_start(args, format);
+       g_string_append_vprintf(msg, format, args);
+       va_end(args);
+       py_str_as_str(py_str, &str);
        g_string_append(msg, str);
        Py_DecRef(py_str);
-       srd_err(msg->str);
+       srd_err("%s", msg->str);
 
        /* Send a more precise error location to srd_dbg(), if we have it. */
        if (etb && etb != Py_None) {
@@ -76,7 +75,7 @@ SRD_PRIV void srd_exception_catch(const char *format, ...)
                py_str_as_str(py_str, &tracestr);
                Py_DecRef(py_str);
                g_string_printf(msg, "%s in %s: %s", ename, tracestr, str);
-               srd_dbg(msg->str);
+               srd_dbg("%s", msg->str);
                g_free(tracestr);
        }
        g_free(str);