Move C string truncation function to general utils module.
authorRichard W.M. Jones <rjones@redhat.com>
Wed, 6 Aug 2008 19:04:06 +0000 (20:04 +0100)
committerRichard W.M. Jones <rjones@redhat.com>
Wed, 6 Aug 2008 19:04:06 +0000 (20:04 +0100)
lib/virt_mem_utils.ml
lib/virt_mem_utsname.ml

index 0a3b687..a1eab8f 100644 (file)
@@ -117,6 +117,16 @@ let pad width str =
   if n >= width then str
   else (* if n < width then *) str ^ String.make (width-n) ' '
 
+(* Truncate an OCaml string at the first ASCII NUL character, ie. as
+ * if it were a C string.
+ *)
+let truncate_c_string str =
+  try
+    let i = String.index str '\000' in
+    String.sub str 0 i
+  with
+    Not_found -> str
+
 (** General binary tree type.  Data 'a is stored in the leaves and 'b
     is stored in the nodes. *)
 type ('a,'b) binary_tree =
index 084ba92..33ee969 100644 (file)
@@ -24,16 +24,6 @@ open Virt_mem_utils
 open Virt_mem_types
 open Virt_mem_mmap
 
-(* Truncate an OCaml string at the first ASCII NUL character, ie. as
- * if it were a C string.
- *)
-let truncate str =
-  try
-    let i = String.index str '\000' in
-    String.sub str 0 i
-  with
-    Not_found -> str
-
 let parse_utsname bits =
   (* Expect the first (sysname) field to always be "Linux", which is
    * also a good way to tell if we're synchronized to the right bit of
@@ -48,11 +38,11 @@ let parse_utsname bits =
       domainname : 65*8 : string } ->
       Some {
        kernel_name = "Linux";
-       nodename = truncate nodename;
-       kernel_release = truncate release;
-       kernel_version = truncate version;
-       machine = truncate machine;
-       domainname = truncate domainname
+       nodename = truncate_c_string nodename;
+       kernel_release = truncate_c_string release;
+       kernel_version = truncate_c_string version;
+       machine = truncate_c_string machine;
+       domainname = truncate_c_string domainname
       }
   | { _ } ->
       None