summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOlivier Andrieu <oandrieu@gmail.com>2004-02-27 23:05:28 +0000
committerHezekiah M. Carty <hcarty@atmos.umd.edu>2009-06-18 13:54:40 -0400
commita329ec7eed9d37138cbc2e1047b8ef4a9be20130 (patch)
tree5091bb02dc0b2fc8da8b85dd33198b1dce464480
parentd2424bce677312dcc39205e4cbd545d3a9bf6a8a (diff)
use an Unsupported macro for unavailable functionscairo-ocaml-before-drop-oo-api
-rw-r--r--src/ml_cairo.c18
-rw-r--r--src/ml_cairo_lablgtk.c9
-rw-r--r--src/ml_cairo_wrappers.h3
3 files changed, 9 insertions, 21 deletions
diff --git a/src/ml_cairo.c b/src/ml_cairo.c
index c03cac1..0972c15 100644
--- a/src/ml_cairo.c
+++ b/src/ml_cairo.c
@@ -72,11 +72,7 @@ ml_cairo_set_target_ps(value v_cr, value v_file, value v_width_inches,
return Val_unit;
}
#else
-CAMLprim value
-ml_cairo_set_target_ps(value v_cr, value v_file, value v_width_inches,
- value v_height_inches, value v_x_pixels_per_inch,
- value v_y_pixels_per_inch)
-{ failwith("Cairo library does not support this backend") ; return Val_unit; }
+Unsupported(ml_cairo_set_target_ps)
#endif /* CAIRO_HAS_PS_SURFACE */
ML_bc6(cairo_set_target_ps)
@@ -932,9 +928,7 @@ ml_cairo_image_surface_create_for_data(value img)
#ifdef CAIRO_HAS_PS_SURFACE
ML_5(cairo_ps_surface_create, FILE_val, Double_val, Double_val, Double_val, Double_val, Val_cairo_surface_t)
#else
-CAMLprim value
-ml_cairo_ps_surface_create(value v1, value v2, value v3, value v4, value v5)
-{ failwith("Cairo library does not support this backend") ; return Val_unit; }
+Unsupported(ml_cairo_ps_surface_create)
#endif /* CAIRO_HAS_PS_SURFACE */
ML_0(cairo_matrix_create, Val_cairo_matrix_t)
@@ -1031,10 +1025,6 @@ ml_cairo_set_target_png(value v_cr, value v_file, value v_format,
}
ML_4(cairo_png_surface_create, FILE_val, cairo_format_t_val, Double_val, Double_val, Val_cairo_surface_t)
#else
-CAMLprim value
-ml_cairo_set_target_png(value v_cr, value v_file, value v_format,
- value v_width, value v_height)
-{ failwith("Cairo library does not support this backend") ; return Val_unit; }
-ml_cairo_png_surface_create(value v1, value v2, value v3, value v4, value v5)
-{ failwith("Cairo library does not support this backend") ; return Val_unit; }
+Unsupported(ml_cairo_set_target_png)
+Unsupported(ml_cairo_png_surface_create)
#endif /* CAIRO_HAS_PNG_SURFACE */
diff --git a/src/ml_cairo_lablgtk.c b/src/ml_cairo_lablgtk.c
index b4aebbf..6929e57 100644
--- a/src/ml_cairo_lablgtk.c
+++ b/src/ml_cairo_lablgtk.c
@@ -116,12 +116,7 @@ cairo_lablgtk_set_target_drawable(value cr, value d)
#else
-CAMLprim value
-cairo_lablgtk_surface_create_for_drawable(value d, value fmt)
-{ failwith("Cairo library does not support this backend") ; return Val_unit; }
-
-CAMLprim value
-cairo_lablgtk_set_target_drawable(value cr, value d)
-{ failwith("Cairo library does not support this backend") ; return Val_unit; }
+Unsupported(cairo_lablgtk_surface_create_for_drawable)
+Unsupported(cairo_lablgtk_set_target_drawable)
#endif /* CAIRO_HAS_XLIB_SURFACE */
diff --git a/src/ml_cairo_wrappers.h b/src/ml_cairo_wrappers.h
index ca60a27..036c72d 100644
--- a/src/ml_cairo_wrappers.h
+++ b/src/ml_cairo_wrappers.h
@@ -27,6 +27,9 @@ static inline value Val_ptr(void *p)
#define Ignore(x)
#define Unit(x) ((x), Val_unit)
+#define Unsupported(fun) \
+CAMLprim value fun() { failwith("Unsupported backend"); return Val_unit; }
+
#define ML_0(cname, conv) \
CAMLprim value ml_##cname (value unit) { return conv (cname ()); }
#define ML_1(cname, conv1, conv) \