From 4846b84476015874d569c14c2c30fcd71aa4d54c Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Mon, 18 Jun 2012 10:11:19 +0100 Subject: fuse: Add replacement for fuse_opt_add_opt_escaped. RHEL 5-era FUSE didn't have this function. I copied the function out of upstream FUSE, since the license is compatible. --- fuse/guestmount.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'fuse') diff --git a/fuse/guestmount.c b/fuse/guestmount.c index 2fe56ca4..b6c64671 100644 --- a/fuse/guestmount.c +++ b/fuse/guestmount.c @@ -42,6 +42,37 @@ #include "guestmount.h" #include "options.h" +#ifndef HAVE_FUSE_OPT_ADD_OPT_ESCAPED +/* Copied from lib/fuse_opt.c and modified. + * Copyright (C) 2001-2007 Miklos Szeredi + * This [function] can be distributed under the terms of the GNU LGPLv2. + */ +static int +fuse_opt_add_opt_escaped (char **opts, const char *opt) +{ + unsigned oldlen = *opts ? strlen(*opts) : 0; + char *d = realloc (*opts, oldlen + 1 + strlen(opt) * 2 + 1); + + if (!d) { + perror ("realloc"); + exit (EXIT_FAILURE); + } + + *opts = d; + if (oldlen) { + d += oldlen; + *d++ = ','; + } + + for (; *opt; opt++) { + if (*opt == ',' || *opt == '\\') + *d++ = '\\'; + *d++ = *opt; + } + *d = '\0'; +} +#endif + guestfs_h *g = NULL; int read_only = 0; int live = 0; -- cgit