summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard W.M. Jones <rjones@redhat.com>2010-11-05 13:42:07 +0000
committerRichard W.M. Jones <rjones@redhat.com>2010-11-05 13:42:07 +0000
commit9f7926e7274aea9be43cf4bc1a9d1cf42ac6bec0 (patch)
treec451a82ffa04ff108cd4f0da9db17d69d5999390
parent12cf2f732a275928a7ce727840e1f5ba6684754d (diff)
downloadlibguestfs-9f7926e7274aea9be43cf4bc1a9d1cf42ac6bec0.tar.gz
libguestfs-9f7926e7274aea9be43cf4bc1a9d1cf42ac6bec0.tar.xz
libguestfs-9f7926e7274aea9be43cf4bc1a9d1cf42ac6bec0.zip
generator: Don't die if an API call isn't listed in API versions file.
For example, it may just have been added.
-rw-r--r--generator/generator_api_versions.ml5
-rw-r--r--generator/generator_api_versions.mli5
-rw-r--r--generator/generator_c.ml6
3 files changed, 9 insertions, 7 deletions
diff --git a/generator/generator_api_versions.ml b/generator/generator_api_versions.ml
index 5f9d96f7..1749752e 100644
--- a/generator/generator_api_versions.ml
+++ b/generator/generator_api_versions.ml
@@ -39,6 +39,5 @@ let load_api_versions filename =
close_in chan
let lookup_api_version sym =
- try Hashtbl.find hash sym
- with Not_found ->
- failwithf "API symbol \"%s\" not found in API versions file" sym
+ try Some (Hashtbl.find hash sym)
+ with Not_found -> None
diff --git a/generator/generator_api_versions.mli b/generator/generator_api_versions.mli
index 03e8777f..0932a671 100644
--- a/generator/generator_api_versions.mli
+++ b/generator/generator_api_versions.mli
@@ -25,7 +25,8 @@
val load_api_versions : string -> unit
(** Load the data from the named file. *)
-val lookup_api_version : string -> string
+val lookup_api_version : string -> string option
(** [lookup_api_version c_api] looks up the version that the C API call
(which must be the full C name, eg. ["guestfs_launch"]) was
- added. This returns the version string, eg. ["0.3"]. *)
+ added. This returns the version string, eg. [Some "0.3"], or
+ [None] if no version could be found. *)
diff --git a/generator/generator_c.ml b/generator/generator_c.ml
index 28cecdba..4480200a 100644
--- a/generator/generator_c.ml
+++ b/generator/generator_c.ml
@@ -255,8 +255,10 @@ L</KEYS AND PASSPHRASES> for more information.\n\n";
| None -> ()
| Some txt -> pr "%s\n\n" txt
);
- let version = lookup_api_version name in
- pr "(Added in %s)\n\n" version;
+ (match lookup_api_version name with
+ | Some version -> pr "(Added in %s)\n\n" version
+ | None -> ()
+ );
(* Handling of optional argument variants. *)
if optargs <> [] then (