extern CAMLprim value ocaml_augeas_save (value tv);
extern CAMLprim value ocaml_augeas_load (value tv);
extern CAMLprim value ocaml_augeas_set (value tv, value pathv, value valuev);
+extern CAMLprim value ocaml_augeas_setm (value tv, value basev, value subv, value valv);
extern CAMLprim value ocaml_augeas_transform (value tv, value lensv, value filev, value modev);
extern CAMLprim value ocaml_augeas_source (value tv, value pathv)
#ifndef HAVE_AUG_SOURCE
CAMLreturn (Val_unit);
}
+/* val setm : t -> path -> string option -> value option -> int */
+CAMLprim value
+ocaml_augeas_setm (value tv, value basev, value subv, value valv)
+{
+ CAMLparam4 (tv, basev, subv, valv);
+ augeas_t t = Augeas_t_val (tv);
+ const char *base = String_val (basev);
+ const char *sub = Optstring_val (subv);
+ const char *val = Optstring_val (valv);
+ int r;
+
+ r = aug_setm (t, base, sub, val);
+ if (r == -1)
+ raise_error (t, "Augeas.setm");
+
+ CAMLreturn (Val_int (r));
+}
+
/* val transform : t -> string -> string -> transform_mode -> unit */
CAMLprim value
ocaml_augeas_transform (value tv, value lensv, value filev, value modev)