X-Git-Url: http://git.annexia.org/?p=libguestfs.git;a=blobdiff_plain;f=generator%2Fgenerator_c.ml;h=4480200a1fd6923c9183296eea1acedb1c770dfe;hp=ca14d1425ad812940c72e887ca331959ac54d5e9;hb=bf3b9e2e236b4dd2216200993ba39545ad5160bb;hpb=f661db2c393d1b7e4211c55682b7fac82a70e36d diff --git a/generator/generator_c.ml b/generator/generator_c.ml index ca14d14..4480200 100644 --- a/generator/generator_c.ml +++ b/generator/generator_c.ml @@ -24,6 +24,7 @@ open Generator_types open Generator_utils open Generator_pr open Generator_docstrings +open Generator_api_versions open Generator_optgroups open Generator_actions open Generator_structs @@ -84,9 +85,11 @@ let rec generate_prototype ?(extern = true) ?(static = false) let next () = if !comma then ( if single_line then pr ", " - else - pr ",\n%s%s" - indent (spaces (String.length prefix + String.length name + 2)) + else ( + let namelen = String.length prefix + String.length name + + String.length suffix + 2 in + pr ",\n%s%s" indent (spaces namelen) + ) ); comma := true in @@ -252,20 +255,22 @@ L for more information.\n\n"; | None -> () | Some txt -> pr "%s\n\n" txt ); + (match lookup_api_version name with + | Some version -> pr "(Added in %s)\n\n" version + | None -> () + ); (* Handling of optional argument variants. *) if optargs <> [] then ( pr "=head2 %s_va\n\n" name; - pr " "; - generate_prototype ~extern:false ~handle:"g" + generate_prototype ~extern:false ~indent:" " ~handle:"g" ~prefix:"guestfs_" ~suffix:"_va" ~optarg_proto:VA shortname style; pr "\n\n"; pr "This is the \"va_list variant\" of L.\n\n" name; pr "See L.\n\n"; pr "=head2 %s_argv\n\n" name; - pr " "; - generate_prototype ~extern:false ~handle:"g" + generate_prototype ~extern:false ~indent:" " ~handle:"g" ~prefix:"guestfs_" ~suffix:"_argv" ~optarg_proto:Argv shortname style; pr "\n\n"; @@ -607,10 +612,12 @@ check_state (guestfs_h *g, const char *caller) | Pathname n | Dev_or_Path n | FileIn n - | FileOut n - | Key n -> + | FileOut n -> (* guestfish doesn't support string escaping, so neither do we *) pr " fprintf (stderr, \" \\\"%%s\\\"\", %s);\n" n + | Key n -> + (* don't print keys *) + pr " fprintf (stderr, \" \\\"***\\\"\");\n" | OptString n -> (* string option *) pr " if (%s) fprintf (stderr, \" \\\"%%s\\\"\", %s);\n" n n; pr " else fprintf (stderr, \" null\");\n"