aboutsummaryrefslogtreecommitdiff
path: root/libwmc/src/errors.c
diff options
context:
space:
mode:
Diffstat (limited to 'libwmc/src/errors.c')
-rw-r--r--libwmc/src/errors.c93
1 files changed, 21 insertions, 72 deletions
diff --git a/libwmc/src/errors.c b/libwmc/src/errors.c
index a1d87ba1..0403b229 100644
--- a/libwmc/src/errors.c
+++ b/libwmc/src/errors.c
@@ -19,91 +19,40 @@
#include <stdlib.h>
#include <string.h>
-WmcError *
-wmc_error_new (u_int32_t domain,
- u_int32_t code,
- const char *format,
- ...)
-{
- WmcError *error;
- va_list args;
- int n;
-
- wmc_return_val_if_fail (format != NULL, NULL);
- wmc_return_val_if_fail (format[0] != '\0', NULL);
-
- error = malloc (sizeof (WmcError));
- wmc_assert (error != NULL);
-
- error->domain = domain;
- error->code = code;
-
- va_start (args, format);
- n = vasprintf (&error->message, format, args);
- va_end (args);
-
- if (n < 0) {
- free (error);
- return NULL;
- }
-
- return error;
-}
-
void
-wmc_error_set (WmcError **error,
- u_int32_t domain,
- u_int32_t code,
- const char *format,
- ...)
+_wmc_log (const char *file,
+ int line,
+ const char *func,
+ int level,
+ int domain,
+ const char *format,
+ ...)
{
va_list args;
+ char *message = NULL;
int n;
+ const char *prefix = "info";
- if (error == NULL)
- return;
- wmc_return_if_fail (*error == NULL);
+ wmc_return_if_fail (format != NULL);
wmc_return_if_fail (format[0] != '\0');
- *error = malloc (sizeof (WmcError));
- wmc_assert (*error != NULL);
+ /* level & domain ignored for now */
- (*error)->domain = domain;
- (*error)->code = code;
+ if (getenv ("WMC_DEBUG") == NULL)
+ return;
va_start (args, format);
- n = vasprintf (&(*error)->message, format, args);
+ n = vasprintf (&message, format, args);
va_end (args);
- if (n < 0) {
- free (*error);
- *error = NULL;
- }
-}
-
-static void
-free_error (WmcError *error)
-{
- if (error) {
- if (error->message)
- free (error->message);
- memset (error, 0, sizeof (*error));
- free (error);
- }
-}
+ if (level & LOGL_ERR)
+ prefix = "err";
+ else if (level & LOGL_DEBUG)
+ prefix = "dbg";
-void
-wmc_clear_error (WmcError **error)
-{
- if (error) {
- free_error (*error);
- *error = NULL;
+ if (n >= 0) {
+ fprintf (stderr, "<%s> [%s:%u] %s(): %s\n", prefix, file, line, func, message);
+ free (message);
}
}
-void
-wmc_free_error (WmcError *error)
-{
- free_error (error);
-}
-