aboutsummaryrefslogtreecommitdiffhomepage
path: root/util/error_util.h
diff options
context:
space:
mode:
authorGravatar David Bremner <bremner@debian.org>2011-10-23 12:05:13 -0300
committerGravatar David Bremner <bremner@debian.org>2011-10-30 23:09:49 -0300
commit1dedfc90f6eee7cad10f1a1ceb39a7a1c4dbd1b1 (patch)
tree79cb128de2cf3a5249b2c31e0d319ed14134505e /util/error_util.h
parenta1ca7e8ebb49ee92ebe8e4abe3db27491d7bbddf (diff)
xutil.c: remove duplicate copies, create new library libutil.a to contain xutil.
We keep the lib/xutil.c version. As a consequence, also factor out _internal_error and associated macros. It might be overkill to make a new file error_util.c for this, but _internal_error does not really belong in database.cc.
Diffstat (limited to 'util/error_util.h')
-rw-r--r--util/error_util.h45
1 files changed, 45 insertions, 0 deletions
diff --git a/util/error_util.h b/util/error_util.h
new file mode 100644
index 00000000..bb158220
--- /dev/null
+++ b/util/error_util.h
@@ -0,0 +1,45 @@
+/* error_util.h - Provide the INTERNAL_ERROR macro
+ *
+ * Copyright © 2009 Carl Worth
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see http://www.gnu.org/licenses/ .
+ *
+ * Author: Carl Worth <cworth@cworth.org>
+ */
+
+#ifndef ERROR_UTIL_H
+#define ERROR_UTIL_H
+
+#include <talloc.h>
+
+/* There's no point in continuing when we've detected that we've done
+ * something wrong internally (as opposed to the user passing in a
+ * bogus value).
+ *
+ * Note that PRINTF_ATTRIBUTE comes from talloc.h
+ */
+int
+_internal_error (const char *format, ...) PRINTF_ATTRIBUTE (1, 2);
+
+/* There's no point in continuing when we've detected that we've done
+ * something wrong internally (as opposed to the user passing in a
+ * bogus value).
+ *
+ * Note that __location__ comes from talloc.h.
+ */
+#define INTERNAL_ERROR(format, ...) \
+ _internal_error (format " (%s).\n", \
+ ##__VA_ARGS__, __location__)
+
+#endif