summaryrefslogtreecommitdiff
path: root/fitz/except.h
diff options
context:
space:
mode:
Diffstat (limited to 'fitz/except.h')
-rw-r--r--fitz/except.h46
1 files changed, 46 insertions, 0 deletions
diff --git a/fitz/except.h b/fitz/except.h
new file mode 100644
index 00000000..a964b94e
--- /dev/null
+++ b/fitz/except.h
@@ -0,0 +1,46 @@
+#ifndef EXCEPT_H
+#define EXCEPT_H
+
+#include "fitz.h"
+
+typedef struct fz_except {
+ char mess[256];
+} fz_except;
+
+#include "exceptxxx.h"
+/*
+ Macros for fz_try and fz_catch are defined in exceptxxx.h,
+ but their definitions are best ignored. Just use them as follows:
+
+ fz_var(..);
+ fz_var(..);
+
+ fz_try(ctx)
+ {
+ .
+ .
+ .
+ }
+ fz_catch(ctx)
+ {
+ .
+ .
+ .
+ }
+
+ and don't return from within the try clause.
+*/
+
+void fz_throw(fz_context *, char *, ...);
+
+fz_except *fz_caught(fz_context *);
+
+void fz_rethrow(fz_context *);
+
+#define fz_var(A) fz_var_xxx((void *)&(A))
+
+void fz_var_xxx(void *x);
+
+void fz_except_init(fz_context *);
+
+#endif /* EXCEPT */