[Libguestfs] [PATCH] osinfo: use guestfs_int_version_from_x_y to parse the os version

Richard W.M. Jones rjones at redhat.com
Thu May 26 15:49:02 UTC 2016


On Thu, May 26, 2016 at 05:40:10PM +0200, Pino Toscano wrote:
> Make use of the common version code, and avoid a separate regexp.
> ---
>  src/osinfo.c | 17 +++++++----------
>  1 file changed, 7 insertions(+), 10 deletions(-)
> 
> diff --git a/src/osinfo.c b/src/osinfo.c
> index 4a4cbfc..f4e2c71 100644
> --- a/src/osinfo.c
> +++ b/src/osinfo.c
> @@ -65,8 +65,6 @@
>  #include "guestfs.h"
>  #include "guestfs-internal.h"
>  
> -COMPILE_REGEXP (re_major_minor, "(\\d+)\\.(\\d+)", 0)
> -
>  gl_lock_define_initialized (static, osinfo_db_lock);
>  static ssize_t osinfo_db_size = 0; /* 0 = unread, -1 = error, >= 1 = #records */
>  static struct osinfo *osinfo_db = NULL;
> @@ -436,17 +434,16 @@ static int
>  parse_version (guestfs_h *g, xmlNodePtr node, struct osinfo *osinfo)
>  {
>    CLEANUP_FREE char *content = NULL;
> -  CLEANUP_FREE char *major = NULL, *minor = NULL;
>  
>    content = (char *) xmlNodeGetContent (node);
>    if (content) {
> -    if (match2 (g, content, re_major_minor, &major, &minor)) {
> -      osinfo->major_version = guestfs_int_parse_unsigned_int (g, major);
> -      if (osinfo->major_version == -1)
> -        return -1;
> -      osinfo->minor_version = guestfs_int_parse_unsigned_int (g, minor);
> -      if (osinfo->minor_version == -1)
> -        return -1;
> +    struct version version;
> +    int res = guestfs_int_version_from_x_y (g, &version, content);
> +    if (res < 0)
> +      return -1;
> +    else if (res > 0) {
> +      osinfo->major_version = version.v_major;
> +      osinfo->minor_version = version.v_minor;
>      }
>    }

ACK.

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
libguestfs lets you edit virtual machines.  Supports shell scripting,
bindings from many languages.  http://libguestfs.org




More information about the Libguestfs mailing list