From d4a29d938602081a60a9646d0e20d0e76392a287 Mon Sep 17 00:00:00 2001
From: Tommy Olofsson <tommy.olofsson.90@gmail.com>
Date: Mon, 28 Apr 2014 12:30:50 +0200
Subject: [PATCH] Print better error messages on fatal error.

---
 lib/c/labcomm.c       | 4 ++--
 lib/c/labcomm_error.c | 9 ++++++++-
 2 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/lib/c/labcomm.c b/lib/c/labcomm.c
index cb48e47..ed4e617 100644
--- a/lib/c/labcomm.c
+++ b/lib/c/labcomm.c
@@ -246,7 +246,7 @@ void labcomm_set_local_index(struct labcomm_signature *signature)
 {
   if (signature->index != 0) {
     labcomm_error_fatal_global(LABCOMM_ERROR_SIGNATURE_ALREADY_SET,
-			       "%s", signature->name);
+			       "Signature already set: %s\n", signature->name);
   }
   signature->index = local_index;
   local_index++;
@@ -256,7 +256,7 @@ int labcomm_get_local_index(struct labcomm_signature *signature)
 {
   if (signature->index == 0) {
     labcomm_error_fatal_global(LABCOMM_ERROR_SIGNATURE_NOT_SET,
-			       "%s", signature->name);
+			       "Signature not set: %s\n", signature->name);
   }
   return signature->index;
 }
diff --git a/lib/c/labcomm_error.c b/lib/c/labcomm_error.c
index 278c5f3..5bfea6e 100644
--- a/lib/c/labcomm_error.c
+++ b/lib/c/labcomm_error.c
@@ -21,12 +21,19 @@
 
 #include <stdlib.h>
 #include <stdio.h>
+#include <stdarg.h>
 #include "labcomm_error.h"
- 
+
 void labcomm_error_fatal_global(enum labcomm_error error,
 				char *format,
 				...)
 {
+  va_list args;
+
   fprintf(stderr, "Fatal error %d\n", error);
+  va_start(args, format);
+  vprintf(format, args);
+  va_end(args);
+
   exit(1);
 }
-- 
GitLab