mirror of
https://github.com/libguestfs/libguestfs.git
synced 2026-03-21 22:53:37 +00:00
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.
This commit is contained in:
@@ -718,7 +718,12 @@ AS_IF([test "x$enable_fuse" != "xno"],
|
||||
[PKG_CHECK_MODULES([FUSE],[fuse],
|
||||
[AC_SUBST([FUSE_CFLAGS])
|
||||
AC_SUBST([FUSE_LIBS])
|
||||
AC_DEFINE([HAVE_FUSE],[1],[Define to 1 if you have FUSE])],
|
||||
AC_DEFINE([HAVE_FUSE],[1],[Define to 1 if you have FUSE])
|
||||
old_LIBS="$LIBS"
|
||||
LIBS="$FUSE_LIBS $LIBS"
|
||||
AC_CHECK_FUNCS([fuse_opt_add_opt_escaped])
|
||||
LIBS="$old_LIBS"
|
||||
],
|
||||
[enable_fuse=no
|
||||
AC_MSG_WARN([FUSE library and headers are missing, so optional FUSE module won't be built])
|
||||
])
|
||||
|
||||
@@ -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 <miklos@szeredi.hu>
|
||||
* 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;
|
||||
|
||||
Reference in New Issue
Block a user