about summary refs log tree commit diff
path: root/src/libutil/util.hh
diff options
context:
space:
mode:
Diffstat (limited to 'src/libutil/util.hh')
-rw-r--r--src/libutil/util.hh14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/libutil/util.hh b/src/libutil/util.hh
index aac2acd1730b..05cf777f1eb6 100644
--- a/src/libutil/util.hh
+++ b/src/libutil/util.hh
@@ -26,6 +26,7 @@ public:
     ~Error() throw () { };
     const char * what() const throw () { return err.c_str(); }
     const string & msg() const throw () { return err; }
+    Error & addPrefix(const format & f);
 };
 
 class SysError : public Error
@@ -34,11 +35,14 @@ public:
     SysError(const format & f);
 };
 
-class UsageError : public Error
-{
-public:
-    UsageError(const format & f) : Error(f) { };
-};
+#define MakeError(newClass, superClass) \
+    class newClass : public superClass                  \
+    {                                                   \
+    public:                                             \
+        newClass(const format & f) : superClass(f) { }; \
+    };
+
+MakeError(UsageError, Error)
 
 
 typedef list<string> Strings;