diff options
author | Richard W.M. Jones <rjones@redhat.com> | 2011-07-25 11:12:48 +0100 |
---|---|---|
committer | Richard W.M. Jones <rjones@redhat.com> | 2011-07-26 12:48:49 +0100 |
commit | 5d7dc0dfb65f367dab3560ee23e404fe21373f45 (patch) | |
tree | 3908ad8749f33863cdb3cc071d9dca2341189052 /src | |
parent | 41cd0e302d6554facd6b9f7daaa78304361efaef (diff) | |
download | libguestfs-5d7dc0dfb65f367dab3560ee23e404fe21373f45.tar.gz libguestfs-5d7dc0dfb65f367dab3560ee23e404fe21373f45.tar.xz libguestfs-5d7dc0dfb65f367dab3560ee23e404fe21373f45.zip |
launch: Add qemu_supports_re function.
This function is like qemu_supports, but allows us to grep
the help text using regular expressions.
Note the function is not used yet.
Diffstat (limited to 'src')
-rw-r--r-- | src/launch.c | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/src/launch.c b/src/launch.c index c89c69f8..56aa288b 100644 --- a/src/launch.c +++ b/src/launch.c @@ -63,6 +63,7 @@ #include <netinet/in.h> #include "c-ctype.h" +#include "ignore-value.h" #include "glthread/lock.h" #include "guestfs.h" @@ -75,6 +76,34 @@ static int64_t timeval_diff (const struct timeval *x, const struct timeval *y); static int connect_unix_socket (guestfs_h *g, const char *sock); static int qemu_supports (guestfs_h *g, const char *option); +#if 0 +static int qemu_supports_re (guestfs_h *g, const pcre *option_regex); + +static void compile_regexps (void) __attribute__((constructor)); +static void free_regexps (void) __attribute__((destructor)); + +static void +compile_regexps (void) +{ + const char *err; + int offset; + +#define COMPILE(re,pattern,options) \ + do { \ + re = pcre_compile ((pattern), (options), &err, &offset, NULL); \ + if (re == NULL) { \ + ignore_value (write (2, err, strlen (err))); \ + abort (); \ + } \ + } while (0) +} + +static void +free_regexps (void) +{ +} +#endif + /* Add a string to the current command line. */ static void incr_cmdline_size (guestfs_h *g) @@ -1130,6 +1159,20 @@ qemu_supports (guestfs_h *g, const char *option) return strstr (g->qemu_help, option) != NULL; } +#if 0 +/* As above but using a regex instead of a fixed string. */ +static int +qemu_supports_re (guestfs_h *g, const pcre *option_regex) +{ + if (!g->qemu_help) { + if (test_qemu (g) == -1) + return -1; + } + + return match (g, g->qemu_help, option_regex); +} +#endif + /* Check if a file can be opened. */ static int is_openable (guestfs_h *g, const char *path, int flags) |