Controls whether or not we print the parentheses around the function
parameters.
---
generator/C.ml | 26 ++++++++++++++------------
generator/C.mli | 5 +++--
2 files changed, 17 insertions(+), 14 deletions(-)
diff --git a/generator/C.ml b/generator/C.ml
index e79ac42..568e3f1 100644
--- a/generator/C.ml
+++ b/generator/C.ml
@@ -96,16 +96,17 @@ let rec name_of_arg = function
| UInt32 n -> [n]
| UInt64 n -> [n]
-let rec print_arg_list ?(wrap = false) ?maxcol ?handle ?types args optargs =
- pr "(";
+let rec print_arg_list ?(wrap = false) ?maxcol ?handle ?types ?(parens = true)
+ args optargs =
+ if parens then pr "(";
if wrap then
pr_wrap ?maxcol ','
- (fun () -> print_arg_list_no_parens ?handle ?types args optargs)
+ (fun () -> print_arg_list' ?handle ?types args optargs)
else
- print_arg_list_no_parens ?handle ?types args optargs;
- pr ")"
+ print_arg_list' ?handle ?types args optargs;
+ if parens then pr ")"
-and print_arg_list_no_parens ?(handle = false) ?(types = true) args optargs =
+and print_arg_list' ?(handle = false) ?(types = true) args optargs =
let comma = ref false in
if handle then (
comma := true;
@@ -191,16 +192,17 @@ let print_extern ?wrap name args optargs ret =
print_call ?wrap name args optargs ret;
pr ";\n"
-let rec print_cbarg_list ?(wrap = false) ?maxcol ?types cbargs =
- pr "(";
+let rec print_cbarg_list ?(wrap = false) ?maxcol ?types ?(parens = true)
+ cbargs =
+ if parens then pr "(";
if wrap then
pr_wrap ?maxcol ','
- (fun () -> print_cbarg_list_no_parens ?types cbargs)
+ (fun () -> print_cbarg_list' ?types cbargs)
else
- print_cbarg_list_no_parens ?types cbargs;
- pr ")"
+ print_cbarg_list' ?types cbargs;
+ if parens then pr ")"
-and print_cbarg_list_no_parens ?(types = true) cbargs =
+and print_cbarg_list' ?(types = true) cbargs =
if types then pr "void *";
pr "user_data";
diff --git a/generator/C.mli b/generator/C.mli
index 7748bc7..c8268c1 100644
--- a/generator/C.mli
+++ b/generator/C.mli
@@ -25,9 +25,10 @@ val generate_docs_api_links_pod : unit -> unit
val generate_docs_api_flag_links_pod : unit -> unit
val generate_docs_nbd_pod : string -> API.call -> unit -> unit
val print_arg_list : ?wrap:bool -> ?maxcol:int ->
- ?handle:bool -> ?types:bool ->
+ ?handle:bool -> ?types:bool -> ?parens:bool ->
API.arg list -> API.optarg list -> unit
-val print_cbarg_list : ?wrap:bool -> ?maxcol:int -> ?types:bool ->
+val print_cbarg_list : ?wrap:bool -> ?maxcol:int ->
+ ?types:bool -> ?parens:bool ->
API.cbarg list -> unit
val errcode_of_ret : API.ret -> string option
val type_of_ret : API.ret -> string
--
2.25.0