Convert all TABs-as-indentation to spaces.
authorJim Meyering <meyering@redhat.com>
Mon, 3 Aug 2009 15:10:13 +0000 (11:10 -0400)
committerJim Meyering <meyering@redhat.com>
Mon, 3 Aug 2009 15:17:57 +0000 (17:17 +0200)
Do it by running this command:
[exempted files are matched via .x-sc_TAB_in_indentation]

  git ls-files \
    | pcregrep -vf .x-sc_TAB_in_indentation \
    | xargs pcregrep -l '^ *\t' \
    | xargs perl -MText::Tabs -ni -le \
      '$m=/^( *\t[ \t]*)(.*)/; print $m ? expand($1) . $2 : $_'

50 files changed:
HACKING
appliance/libguestfs-supermin-helper.in
appliance/supermin-split.sh.in
bootstrap
cat/virt-cat.pl
configure.ac
contrib/README
daemon/configure.ac
daemon/daemon.h
daemon/debug.c
daemon/devsparts.c
daemon/dir.c
daemon/ext2.c
daemon/file.c
daemon/guestfsd.c
daemon/inotify.c
daemon/link.c
daemon/lvm.c
daemon/mount.c
daemon/proto.c
daemon/readdir.c
daemon/sfdisk.c
daemon/xattr.c
df/virt-df.pl
examples/to-xml.c
fish/destpaths.c
fish/fish.c
fish/fish.h
fish/glob.c
fish/rc.c
fish/tilde.c
fish/time.c
inspector/virt-inspector.pl
java/com/redhat/et/libguestfs/LibGuestFSException.java
java/t/GuestFS005Load.java
java/t/GuestFS010Launch.java
java/t/GuestFS050LVCreate.java
m4/ocaml.m4
make-recipes.sh
ocaml/t/guestfs_060_readdir.ml
perl/lib/Sys/Guestfs/Lib.pm
perl/t/500-lib-load.t
perl/t/510-lib-file-arch.t
perl/typemap
recipes/squashfs.example
src/generator.ml
src/gettext.h
src/guestfs.c
test-tool/test-tool.c
v2v/virt-v2v.pl

diff --git a/HACKING b/HACKING
index 336fc7c..c6a3022 100644 (file)
--- a/HACKING
+++ b/HACKING
@@ -28,74 +28,74 @@ Directories
 ----------------------------------------------------------------------
 
 appliance/
 ----------------------------------------------------------------------
 
 appliance/
-       The qemu appliance, build scripts and so on.
+        The qemu appliance, build scripts and so on.
 
 cat/
 
 cat/
-       The virt-cat tool.
+        The virt-cat tool.
 
 capitests/
 
 capitests/
-       Automated tests of the C API.
+        Automated tests of the C API.
 
 contrib/
 
 contrib/
-       Outside contributions, experimental parts.
+        Outside contributions, experimental parts.
 
 daemon/
 
 daemon/
-       The daemon that runs inside the guest and carries out actions.
+        The daemon that runs inside the guest and carries out actions.
 
 df/
 
 df/
-       The virt-df tool.
+        The virt-df tool.
 
 examples/
 
 examples/
-       The examples.
+        The examples.
 
 fish/
 
 fish/
-       Guestfish (the command-line program / shell)
+        Guestfish (the command-line program / shell)
 
 haskell/
 
 haskell/
-       Haskell bindings.
+        Haskell bindings.
 
 images/
 
 images/
-       Some guest images to test against.  These are gzipped to save
-       space.  You have to unzip them before use.
+        Some guest images to test against.  These are gzipped to save
+        space.  You have to unzip them before use.
 
 
-       Also contains some files used by the test suite.
+        Also contains some files used by the test suite.
 
 inspector/
 
 inspector/
-       Virtual machine image inspector (virt-inspector).
+        Virtual machine image inspector (virt-inspector).
 
 java/
 
 java/
-       Java bindings.
+        Java bindings.
 
 m4/
 
 m4/
-       M4 macros used by autoconf.
+        M4 macros used by autoconf.
 
 ocaml/
 
 ocaml/
-       OCaml bindings.
+        OCaml bindings.
 
 po/
 
 po/
-       Translations.
+        Translations.
 
 perl/
 
 perl/
-       Perl bindings.
+        Perl bindings.
 
 python/
 
 python/
-       Python bindings.
+        Python bindings.
 
 regressions/
 
 regressions/
-       Regression tests.
+        Regression tests.
 
 ruby/
 
 ruby/
-       Ruby bindings.
+        Ruby bindings.
 
 src/
 
 src/
-       Source code to the C library.
-       Also contains the crucial generator program.
+        Source code to the C library.
+        Also contains the crucial generator program.
 
 test-tool/
 
 test-tool/
-       Interactive qemu/kernel test tool.
+        Interactive qemu/kernel test tool.
 
 v2v/
 
 v2v/
-       Xen to KVM (V2V) conversion tool.
+        Xen to KVM (V2V) conversion tool.
 
 Debugging
 ----------------------------------------------------------------------
 
 Debugging
 ----------------------------------------------------------------------
index e521020..a096ea4 100755 (executable)
@@ -44,8 +44,8 @@ for f in $kernels; do
     b=$(echo "$b" | sed 's,vmlinuz-,,')
     modpath="/lib/modules/$b"
     if [ -d "$modpath" ]; then
     b=$(echo "$b" | sed 's,vmlinuz-,,')
     modpath="/lib/modules/$b"
     if [ -d "$modpath" ]; then
-       ln -sf "$f" "$kernel"
-       break
+        ln -sf "$f" "$kernel"
+        break
     fi
     modpath=
 done
     fi
     modpath=
 done
index fe4ab6e..61df891 100755 (executable)
@@ -54,40 +54,40 @@ for path in $(find -not -name fakeroot.log); do
     # All we're going to keep are the special files /init, the daemon,
     # configuration files (/etc), devices and modifiable stuff (/var).
     if [ "$path" = "./init" -o "$file" = "guestfsd" ]; then
     # All we're going to keep are the special files /init, the daemon,
     # configuration files (/etc), devices and modifiable stuff (/var).
     if [ "$path" = "./init" -o "$file" = "guestfsd" ]; then
-       echo "$path" >&5
+        echo "$path" >&5
 
     elif [[ "$path" =~ '^\./etc' || "$path" =~ '^./dev' || "$path" =~ '^\./var' ]]; then
 
     elif [[ "$path" =~ '^\./etc' || "$path" =~ '^./dev' || "$path" =~ '^\./var' ]]; then
-       echo "$path" >&5
+        echo "$path" >&5
 
     # Kernel modules are always copied in from the host, including all
     # the dependency files.
     elif [[ "$path" =~ '^\./lib/modules/' ]]; then
 
     # Kernel modules are always copied in from the host, including all
     # the dependency files.
     elif [[ "$path" =~ '^\./lib/modules/' ]]; then
-       :
+        :
 
     elif [ -d "$path" ]; then
 
     elif [ -d "$path" ]; then
-       # Always write directory names to both output files.
-       echo "$path" >&5
-       echo "$path" >&6
+        # Always write directory names to both output files.
+        echo "$path" >&5
+        echo "$path" >&6
 
     # Some libraries need fixed version numbers replaced by wildcards.
 
     elif [[ "$file" =~ '^ld-[.0-9]+\.so$' ]]; then
 
     # Some libraries need fixed version numbers replaced by wildcards.
 
     elif [[ "$file" =~ '^ld-[.0-9]+\.so$' ]]; then
-       echo "$dir/ld-*.so" >&6
+        echo "$dir/ld-*.so" >&6
 
     # libfoo-1.2.3.so
     elif [[ "$file" =~ '^lib(.*)-[-.0-9]+\.so$' ]]; then
 
     # libfoo-1.2.3.so
     elif [[ "$file" =~ '^lib(.*)-[-.0-9]+\.so$' ]]; then
-       echo "$dir/lib${BASH_REMATCH[1]}-*.so" >&6
+        echo "$dir/lib${BASH_REMATCH[1]}-*.so" >&6
 
     # libfoo-1.2.3.so.1.2.3 (but NOT '*.so.N')
     elif [[ "$file" =~ '^lib(.*)-[-.0-9]+\.so\.([0-9]+)\.' ]]; then
 
     # libfoo-1.2.3.so.1.2.3 (but NOT '*.so.N')
     elif [[ "$file" =~ '^lib(.*)-[-.0-9]+\.so\.([0-9]+)\.' ]]; then
-       echo "$dir/lib${BASH_REMATCH[1]}-*.so.${BASH_REMATCH[2]}.*" >&6
+        echo "$dir/lib${BASH_REMATCH[1]}-*.so.${BASH_REMATCH[2]}.*" >&6
 
     # libfoo.so.1.2.3 (but NOT '*.so.N')
     elif [[ "$file" =~ '^lib(.*)\.so\.([0-9]+)\.' ]]; then
 
     # libfoo.so.1.2.3 (but NOT '*.so.N')
     elif [[ "$file" =~ '^lib(.*)\.so\.([0-9]+)\.' ]]; then
-       echo "$dir/lib${BASH_REMATCH[1]}.so.${BASH_REMATCH[2]}.*" >&6
+        echo "$dir/lib${BASH_REMATCH[1]}.so.${BASH_REMATCH[2]}.*" >&6
 
     else
 
     else
-       # Anything else comes from the host directly.
-       echo "$path" >&6
+        # Anything else comes from the host directly.
+        echo "$path" >&6
     fi
 done
     fi
 done
index 73a5e04..e4ddf85 100755 (executable)
--- a/bootstrap
+++ b/bootstrap
@@ -46,7 +46,7 @@ case ${GNULIB_SRCDIR--} in
   # Redirect the gnulib submodule to the directory on the command line
   # if possible.
   if test -d "$GNULIB_SRCDIR"/.git && \
   # Redirect the gnulib submodule to the directory on the command line
   # if possible.
   if test -d "$GNULIB_SRCDIR"/.git && \
-       git config --file .gitmodules submodule.gnulib.url >/dev/null; then
+        git config --file .gitmodules submodule.gnulib.url >/dev/null; then
     git submodule init
     GNULIB_SRCDIR=`cd $GNULIB_SRCDIR && pwd`
     git config --replace-all submodule.gnulib.url $GNULIB_SRCDIR
     git submodule init
     GNULIB_SRCDIR=`cd $GNULIB_SRCDIR && pwd`
     git config --replace-all submodule.gnulib.url $GNULIB_SRCDIR
index 1ac720c..1017876 100755 (executable)
@@ -116,8 +116,8 @@ at all.
 =cut
 
 GetOptions ("help|?" => \$help,
 =cut
 
 GetOptions ("help|?" => \$help,
-           "version" => \$version,
-           "connect|c=s" => \$uri,
+            "version" => \$version,
+            "connect|c=s" => \$uri,
     ) or pod2usage (2);
 pod2usage (1) if $help;
 if ($version) {
     ) or pod2usage (2);
 pod2usage (1) if $help;
 if ($version) {
index df466fa..28514b6 100644 (file)
@@ -62,8 +62,8 @@ dnl Check for rpcgen and XDR library.  rpcgen is optional.
 AC_CHECK_PROG([RPCGEN],[rpcgen],[rpcgen],[no])
 AM_CONDITIONAL([HAVE_RPCGEN],[test "x$RPCGEN" != "xno"])
 AC_CHECK_LIB([portablexdr],[xdrmem_create],[],[
 AC_CHECK_PROG([RPCGEN],[rpcgen],[rpcgen],[no])
 AM_CONDITIONAL([HAVE_RPCGEN],[test "x$RPCGEN" != "xno"])
 AC_CHECK_LIB([portablexdr],[xdrmem_create],[],[
-       AC_SEARCH_LIBS([xdrmem_create],[rpc xdr nsl])
-       ])
+        AC_SEARCH_LIBS([xdrmem_create],[rpc xdr nsl])
+        ])
 
 dnl Check for pod2man and pod2text.
 AC_CHECK_PROG([POD2MAN],[pod2man],[pod2man],[no])
 
 dnl Check for pod2man and pod2text.
 AC_CHECK_PROG([POD2MAN],[pod2man],[pod2man],[no])
@@ -75,19 +75,19 @@ test "x$POD2TEXT" = "xno" &&
 
 dnl Check for mksquashfs.
 AC_PATH_PROGS([MKSQUASHFS],[mksquashfs],[no],
 
 dnl Check for mksquashfs.
 AC_PATH_PROGS([MKSQUASHFS],[mksquashfs],[no],
-       [$PATH$PATH_SEPARATOR/usr/sbin$PATH_SEPARATOR/sbin])
+        [$PATH$PATH_SEPARATOR/usr/sbin$PATH_SEPARATOR/sbin])
 test "x$MKSQUASHFS" = "xno" && AC_MSG_ERROR([mksquashfs must be installed])
 
 dnl Check for QEMU for running binaries on this $host_cpu, fall
 dnl back to basic 'qemu'.  Allow the user to override it.
 default_qemu="qemu-kvm qemu-system-$host_cpu qemu"
 AC_ARG_WITH([qemu],
 test "x$MKSQUASHFS" = "xno" && AC_MSG_ERROR([mksquashfs must be installed])
 
 dnl Check for QEMU for running binaries on this $host_cpu, fall
 dnl back to basic 'qemu'.  Allow the user to override it.
 default_qemu="qemu-kvm qemu-system-$host_cpu qemu"
 AC_ARG_WITH([qemu],
-       [AS_HELP_STRING([--with-qemu],
-         [set default QEMU binary @<:@default=[qemu-kvm] qemu-system-<host> qemu@:>@])],
-       [],
-       [with_qemu="$default_qemu"])
+        [AS_HELP_STRING([--with-qemu],
+          [set default QEMU binary @<:@default=[qemu-kvm] qemu-system-<host> qemu@:>@])],
+        [],
+        [with_qemu="$default_qemu"])
 AC_PATH_PROGS([QEMU],[$with_qemu],[no],
 AC_PATH_PROGS([QEMU],[$with_qemu],[no],
-       [$PATH$PATH_SEPARATOR/usr/sbin$PATH_SEPARATOR/sbin$PATH_SEPARATOR/usr/libexec])
+        [$PATH$PATH_SEPARATOR/usr/sbin$PATH_SEPARATOR/sbin$PATH_SEPARATOR/usr/libexec])
 test "x$QEMU" = "xno" && AC_MSG_ERROR([qemu must be installed])
 AC_DEFINE_UNQUOTED([QEMU],["$QEMU"],[Location of qemu binary.])
 
 test "x$QEMU" = "xno" && AC_MSG_ERROR([qemu must be installed])
 AC_DEFINE_UNQUOTED([QEMU],["$QEMU"],[Location of qemu binary.])
 
@@ -100,13 +100,13 @@ if test "x$vmchannel_test" != "xno"; then
     else
         AC_MSG_RESULT([no])
         AC_MSG_CHECKING([for "-net channel" support in $QEMU])
     else
         AC_MSG_RESULT([no])
         AC_MSG_CHECKING([for "-net channel" support in $QEMU])
-       vmchannelout=`$QEMU -net channel /dev/zero 2>&1 ||:`
-       echo "vmchannel test command output: $vmchannelout" >&AS_MESSAGE_LOG_FD
-       if echo "$vmchannelout" | grep -sq "vmchannel wrong port number" ; then
-           AC_MSG_RESULT([yes])
-       else
-           AC_MSG_RESULT([no])
-           AC_MSG_FAILURE(
+        vmchannelout=`$QEMU -net channel /dev/zero 2>&1 ||:`
+        echo "vmchannel test command output: $vmchannelout" >&AS_MESSAGE_LOG_FD
+        if echo "$vmchannelout" | grep -sq "vmchannel wrong port number" ; then
+            AC_MSG_RESULT([yes])
+        else
+            AC_MSG_RESULT([no])
+            AC_MSG_FAILURE(
 [I did not find vmchannel support in $QEMU.
 
 vmchannel support is vital for libguestfs to operate.  You need a version
 [I did not find vmchannel support in $QEMU.
 
 vmchannel support is vital for libguestfs to operate.  You need a version
@@ -122,7 +122,7 @@ If I am using the wrong qemu or you want to compile qemu from source
 and install it in another location, then you should configure with
 the --with-qemu option.
 ])
 and install it in another location, then you should configure with
 the --with-qemu option.
 ])
-       fi
+        fi
     fi
 fi
 
     fi
 fi
 
@@ -132,37 +132,37 @@ dnl
 dnl NB. We will change the default in future to virtio, but at the
 dnl moment this causes a performance problem, RHBZ#509383.
 AC_ARG_WITH([drive-if],
 dnl NB. We will change the default in future to virtio, but at the
 dnl moment this causes a performance problem, RHBZ#509383.
 AC_ARG_WITH([drive-if],
-       [AS_HELP_STRING([--with-drive-if],
-         [set default driver (ide|scsi|virtio) @<:@default=ide@:>@])],
-       [],
-       [with_drive_if=ide])
+        [AS_HELP_STRING([--with-drive-if],
+          [set default driver (ide|scsi|virtio) @<:@default=ide@:>@])],
+        [],
+        [with_drive_if=ide])
 AC_DEFINE_UNQUOTED([DRIVE_IF],["$with_drive_if"],[Default drive interface.])
 
 dnl Check for febootstrap etc.
 AC_CHECK_PROG([FEBOOTSTRAP],
 AC_DEFINE_UNQUOTED([DRIVE_IF],["$with_drive_if"],[Default drive interface.])
 
 dnl Check for febootstrap etc.
 AC_CHECK_PROG([FEBOOTSTRAP],
-       [febootstrap],[febootstrap],[no])
+        [febootstrap],[febootstrap],[no])
 if test "x$FEBOOTSTRAP" != "xno"; then
   AC_CHECK_PROG([FEBOOTSTRAP_RUN],
 if test "x$FEBOOTSTRAP" != "xno"; then
   AC_CHECK_PROG([FEBOOTSTRAP_RUN],
-       [febootstrap-run],[febootstrap-run],[no])
+        [febootstrap-run],[febootstrap-run],[no])
   test "x$FEBOOTSTRAP_RUN" = "xno" && \
      AC_MSG_ERROR([febootstrap-run must be installed])
   AC_CHECK_PROG([FEBOOTSTRAP_INSTALL],
   test "x$FEBOOTSTRAP_RUN" = "xno" && \
      AC_MSG_ERROR([febootstrap-run must be installed])
   AC_CHECK_PROG([FEBOOTSTRAP_INSTALL],
-       [febootstrap-install],[febootstrap-install],[no])
+        [febootstrap-install],[febootstrap-install],[no])
   test "x$FEBOOTSTRAP_INSTALL" = "xno" && \
      AC_MSG_ERROR([febootstrap-install must be installed])
   AC_CHECK_PROG([FEBOOTSTRAP_MINIMIZE],
   test "x$FEBOOTSTRAP_INSTALL" = "xno" && \
      AC_MSG_ERROR([febootstrap-install must be installed])
   AC_CHECK_PROG([FEBOOTSTRAP_MINIMIZE],
-       [febootstrap-minimize],[febootstrap-minimize],[no])
+        [febootstrap-minimize],[febootstrap-minimize],[no])
   test "x$FEBOOTSTRAP_MINIMIZE" = "xno" && \
      AC_MSG_ERROR([febootstrap-minimize must be installed])
   AC_CHECK_PROG([FEBOOTSTRAP_TO_INITRAMFS],
   test "x$FEBOOTSTRAP_MINIMIZE" = "xno" && \
      AC_MSG_ERROR([febootstrap-minimize must be installed])
   AC_CHECK_PROG([FEBOOTSTRAP_TO_INITRAMFS],
-       [febootstrap-to-initramfs],[febootstrap-to-initramfs],[no])
+        [febootstrap-to-initramfs],[febootstrap-to-initramfs],[no])
   test "x$FEBOOTSTRAP_TO_INITRAMFS" = "xno" && \
      AC_MSG_ERROR([febootstrap-to-initramfs must be installed])
 
   dnl Check we have fakechroot >= 2.9 (it's an indirect requirement
   dnl of febootstrap, but old versions will fail with yum).
   AC_CHECK_PROG([FAKECHROOT],
   test "x$FEBOOTSTRAP_TO_INITRAMFS" = "xno" && \
      AC_MSG_ERROR([febootstrap-to-initramfs must be installed])
 
   dnl Check we have fakechroot >= 2.9 (it's an indirect requirement
   dnl of febootstrap, but old versions will fail with yum).
   AC_CHECK_PROG([FAKECHROOT],
-       [fakechroot],[fakechroot],[no])
+        [fakechroot],[fakechroot],[no])
   test "x$FAKECHROOT" = "xno" && \
     AC_MSG_ERROR([fakechroot must be installed])
 
   test "x$FAKECHROOT" = "xno" && \
     AC_MSG_ERROR([fakechroot must be installed])
 
@@ -184,9 +184,9 @@ if test "x$FEBOOTSTRAP" != "xno"; then
 else
   # check for debootstrap and debirf
   AC_CHECK_PROG([DEBOOTSTRAP],
 else
   # check for debootstrap and debirf
   AC_CHECK_PROG([DEBOOTSTRAP],
-       [debootstrap],[debootstrap],[no])
+        [debootstrap],[debootstrap],[no])
   test "x$DEBOOTSTRAP" = "xno" && \
   test "x$DEBOOTSTRAP" = "xno" && \
-       AC_MSG_ERROR([Either febootstrap or debootstrap must be installed])
+        AC_MSG_ERROR([Either febootstrap or debootstrap must be installed])
   AC_CHECK_PROG([DEBIRF],[debirf],[debirf],[no])
   test "x$DEBIRF" = "xno" &&
         AC_MSG_ERROR([debirf must be installed])
   AC_CHECK_PROG([DEBIRF],[debirf],[debirf],[no])
   test "x$DEBIRF" = "xno" &&
         AC_MSG_ERROR([debirf must be installed])
@@ -209,20 +209,20 @@ AC_SUBST(DIST)
 
 dnl --with-repo to specify a Fedora repository.
 AC_ARG_WITH([repo],
 
 dnl --with-repo to specify a Fedora repository.
 AC_ARG_WITH([repo],
-       [AS_HELP_STRING([--with-repo],
-         [set name of Fedora repository @<:@default=fedora-11@:>@])],
-       [],
-       [with_repo=fedora-11])
+        [AS_HELP_STRING([--with-repo],
+          [set name of Fedora repository @<:@default=fedora-11@:>@])],
+        [],
+        [with_repo=fedora-11])
 REPO="$with_repo"
 AC_SUBST(REPO)
 AC_DEFINE_UNQUOTED([REPO],["$REPO"],[Name of Fedora repository.])
 
 dnl --with-updates to specify a Fedora updates repository.
 AC_ARG_WITH([updates],
 REPO="$with_repo"
 AC_SUBST(REPO)
 AC_DEFINE_UNQUOTED([REPO],["$REPO"],[Name of Fedora repository.])
 
 dnl --with-updates to specify a Fedora updates repository.
 AC_ARG_WITH([updates],
-       [AS_HELP_STRING([--with-updates],
-         [set name of Fedora updates repository @<:@default=updates-released-f11@:>@])],
-       [],
-       [with_updates=updates-released-f11])
+        [AS_HELP_STRING([--with-updates],
+          [set name of Fedora updates repository @<:@default=updates-released-f11@:>@])],
+        [],
+        [with_updates=updates-released-f11])
 UPDATES="$with_updates"
 AC_SUBST(UPDATES)
 
 UPDATES="$with_updates"
 AC_SUBST(UPDATES)
 
@@ -231,20 +231,20 @@ AC_DEFINE_UNQUOTED([host_cpu],["$host_cpu"],[Host architecture.])
 
 dnl --with-mirror to specify a local Fedora mirror.
 AC_ARG_WITH([mirror],
 
 dnl --with-mirror to specify a local Fedora mirror.
 AC_ARG_WITH([mirror],
-       [AS_HELP_STRING([--with-mirror],
-         [set URI of a local Fedora mirror])],
-       [],
-       [with_mirror=])
+        [AS_HELP_STRING([--with-mirror],
+          [set URI of a local Fedora mirror])],
+        [],
+        [with_mirror=])
 MIRROR="$with_mirror"
 AC_SUBST(MIRROR)
 
 dnl Build the supermin appliance?  Please see README file before
 dnl enabling this option.
 AC_ARG_ENABLE([supermin],
 MIRROR="$with_mirror"
 AC_SUBST(MIRROR)
 
 dnl Build the supermin appliance?  Please see README file before
 dnl enabling this option.
 AC_ARG_ENABLE([supermin],
-       [AS_HELP_STRING([--enable-supermin],
-         [enable supermin appliance (see README) @<:@default=no@:>@])],
-       [],
-       [enable_supermin=no])
+        [AS_HELP_STRING([--enable-supermin],
+          [enable supermin appliance (see README) @<:@default=no@:>@])],
+        [],
+        [enable_supermin=no])
 AM_CONDITIONAL([SUPERMIN],[test "x$enable_supermin" = "xyes"])
 
 if test "x$enable_supermin" = "xyes"; then
 AM_CONDITIONAL([SUPERMIN],[test "x$enable_supermin" = "xyes"])
 
 if test "x$enable_supermin" = "xyes"; then
@@ -255,7 +255,7 @@ if test "x$enable_supermin" = "xyes"; then
     echo "febootstrap_to_initramfs test command output: $out" >&AS_MESSAGE_LOG_FD
     if ! echo "$out" | grep -sq -e --files ; then
         AC_MSG_RESULT([no])
     echo "febootstrap_to_initramfs test command output: $out" >&AS_MESSAGE_LOG_FD
     if ! echo "$out" | grep -sq -e --files ; then
         AC_MSG_RESULT([no])
-       AC_MSG_FAILURE(
+        AC_MSG_FAILURE(
 [febootstrap-to-initramfs does not support the --files option.
 
 To build the supermin appliance, you need to upgrade to the latest
 [febootstrap-to-initramfs does not support the --files option.
 
 To build the supermin appliance, you need to upgrade to the latest
@@ -271,7 +271,7 @@ version of febootstrap.
     echo "febootstrap_to_initramfs test command output: $out" >&AS_MESSAGE_LOG_FD
     if ! echo "$out" | grep -sq -e --nocompress ; then
         AC_MSG_RESULT([no])
     echo "febootstrap_to_initramfs test command output: $out" >&AS_MESSAGE_LOG_FD
     if ! echo "$out" | grep -sq -e --nocompress ; then
         AC_MSG_RESULT([no])
-       AC_MSG_FAILURE(
+        AC_MSG_FAILURE(
 [febootstrap-to-initramfs does not support the --nocompress option.
 
 To build the supermin appliance, you need to upgrade to the latest
 [febootstrap-to-initramfs does not support the --nocompress option.
 
 To build the supermin appliance, you need to upgrade to the latest
@@ -351,11 +351,11 @@ if test "x$PYTHON" != "xno"; then
     do
         AC_MSG_CHECKING([Python.h in $d])
         if test -r "$d/Python.h"; then
     do
         AC_MSG_CHECKING([Python.h in $d])
         if test -r "$d/Python.h"; then
-           AC_MSG_RESULT([found])
-           PYTHON_INCLUDEDIR=$d
-           break
-       fi
-       AC_MSG_RESULT([not found])
+            AC_MSG_RESULT([found])
+            PYTHON_INCLUDEDIR=$d
+            break
+        fi
+        AC_MSG_RESULT([not found])
     done
     for d in \
         $PYTHON_PREFIX/lib64/python$PYTHON_VERSION/site-packages \
     done
     for d in \
         $PYTHON_PREFIX/lib64/python$PYTHON_VERSION/site-packages \
@@ -366,11 +366,11 @@ if test "x$PYTHON" != "xno"; then
     do
         AC_MSG_CHECKING([for $d])
         if test -d "$d"; then
     do
         AC_MSG_CHECKING([for $d])
         if test -d "$d"; then
-           AC_MSG_RESULT([found])
-           PYTHON_SITE_PACKAGES=$d
-           break
-       fi
-       AC_MSG_RESULT([not found])
+            AC_MSG_RESULT([found])
+            PYTHON_SITE_PACKAGES=$d
+            break
+        fi
+        AC_MSG_RESULT([not found])
     done
 fi
 
     done
 fi
 
@@ -399,46 +399,46 @@ AC_ARG_WITH(java_home,
 if test "x$with_java_home" != "xno"; then
     if test "x$with_java_home" != "xyes" -a "x$with_java_home" != "xcheck"
     then
 if test "x$with_java_home" != "xno"; then
     if test "x$with_java_home" != "xyes" -a "x$with_java_home" != "xcheck"
     then
-       # Reject unsafe characters in $JAVA_HOME
-       jh_lf='
+        # Reject unsafe characters in $JAVA_HOME
+        jh_lf='
 '
 '
-       case $JAVA_HOME in
-         *[\\\"\#\$\&\'\`$jh_lf\ \     ]*)
+        case $JAVA_HOME in
+          *[\\\"\#\$\&\'\`$jh_lf\ \    ]*)
             AC_MSG_FAILURE([unsafe \$JAVA_HOME directory (use --with-java-home=no to disable Java support)]);;
             AC_MSG_FAILURE([unsafe \$JAVA_HOME directory (use --with-java-home=no to disable Java support)]);;
-       esac
+        esac
         if test -d "$with_java_home"; then
         if test -d "$with_java_home"; then
-           JAVA_HOME="$with_java_home"
-       else
+            JAVA_HOME="$with_java_home"
+        else
             AC_MSG_FAILURE([$with_java_home is not a directory (use --with-java-home=no to disable Java support)])
             AC_MSG_FAILURE([$with_java_home is not a directory (use --with-java-home=no to disable Java support)])
-       fi
+        fi
     fi
 
     if test "x$JAVA_HOME" = "x"; then
         # Look for Java in some likely locations.
     fi
 
     if test "x$JAVA_HOME" = "x"; then
         # Look for Java in some likely locations.
-       for d in \
-           /usr/lib/jvm/java \
-           /usr/lib/jvm/java-6-openjdk
-       do
-           if test -d $d -a -f $d/bin/java; then
+        for d in \
+            /usr/lib/jvm/java \
+            /usr/lib/jvm/java-6-openjdk
+        do
+            if test -d $d -a -f $d/bin/java; then
                 JAVA_HOME=$d
                 JAVA_HOME=$d
-               break
-           fi
-       done
+                break
+            fi
+        done
     fi
 
     if test "x$JAVA_HOME" != "x"; then
         AC_MSG_CHECKING(for JDK in $JAVA_HOME)
     fi
 
     if test "x$JAVA_HOME" != "x"; then
         AC_MSG_CHECKING(for JDK in $JAVA_HOME)
-       if test ! -x "$JAVA_HOME/bin/java"; then
+        if test ! -x "$JAVA_HOME/bin/java"; then
             AC_MSG_ERROR([missing $JAVA_HOME/bin/java binary (use --with-java-home=no to disable Java support)])
             AC_MSG_ERROR([missing $JAVA_HOME/bin/java binary (use --with-java-home=no to disable Java support)])
-       else
-           JAVA="$JAVA_HOME/bin/java"
-       fi
-       if test ! -x "$JAVA_HOME/bin/javac"; then
+        else
+            JAVA="$JAVA_HOME/bin/java"
+        fi
+        if test ! -x "$JAVA_HOME/bin/javac"; then
             AC_MSG_ERROR([missing $JAVA_HOME/bin/javac binary])
             AC_MSG_ERROR([missing $JAVA_HOME/bin/javac binary])
-       else
-           JAVAC="$JAVA_HOME/bin/javac"
+        else
+            JAVAC="$JAVA_HOME/bin/javac"
         fi
         fi
-       if test ! -x "$JAVA_HOME/bin/javah"; then
+        if test ! -x "$JAVA_HOME/bin/javah"; then
             AC_MSG_ERROR([missing $JAVA_HOME/bin/javah binary])
         else
             JAVAH="$JAVA_HOME/bin/javah"
             AC_MSG_ERROR([missing $JAVA_HOME/bin/javah binary])
         else
             JAVAH="$JAVA_HOME/bin/javah"
@@ -463,10 +463,10 @@ if test "x$with_java_home" != "xno"; then
         else
             if test "`find $JAVA_HOME -name jni.h`" != ""; then
                 head=`find $JAVA_HOME -name jni.h | tail -1`
         else
             if test "`find $JAVA_HOME -name jni.h`" != ""; then
                 head=`find $JAVA_HOME -name jni.h | tail -1`
-               dir=`dirname "$head"`
-               JNI_CFLAGS="-I$dir"
+                dir=`dirname "$head"`
+                JNI_CFLAGS="-I$dir"
             else
             else
-               AC_MSG_FAILURE([missing jni.h header file])
+                AC_MSG_FAILURE([missing jni.h header file])
             fi
         fi
         AC_MSG_RESULT([$JNI_CFLAGS])
             fi
         fi
         AC_MSG_RESULT([$JNI_CFLAGS])
@@ -570,37 +570,37 @@ dnl Produce output files.
 AC_CONFIG_HEADERS([config.h])
 dnl http://www.mail-archive.com/automake@gnu.org/msg10204.html
 AC_CONFIG_FILES([appliance/make.sh],
 AC_CONFIG_HEADERS([config.h])
 dnl http://www.mail-archive.com/automake@gnu.org/msg10204.html
 AC_CONFIG_FILES([appliance/make.sh],
-               [chmod +x appliance/make.sh])
+                [chmod +x appliance/make.sh])
 AC_CONFIG_FILES([appliance/update.sh],
 AC_CONFIG_FILES([appliance/update.sh],
-               [chmod +x appliance/update.sh])
+                [chmod +x appliance/update.sh])
 AC_CONFIG_FILES([appliance/supermin-split.sh],
 AC_CONFIG_FILES([appliance/supermin-split.sh],
-               [chmod +x appliance/supermin-split.sh])
+                [chmod +x appliance/supermin-split.sh])
 AC_CONFIG_FILES([appliance/supermin-make.sh],
 AC_CONFIG_FILES([appliance/supermin-make.sh],
-               [chmod +x appliance/supermin-make.sh])
+                [chmod +x appliance/supermin-make.sh])
 AC_CONFIG_FILES([appliance/libguestfs-supermin-helper],
 AC_CONFIG_FILES([appliance/libguestfs-supermin-helper],
-               [chmod +x appliance/libguestfs-supermin-helper])
+                [chmod +x appliance/libguestfs-supermin-helper])
 AC_CONFIG_FILES([Makefile
 AC_CONFIG_FILES([Makefile
-                src/Makefile fish/Makefile po/Makefile.in examples/Makefile
-                appliance/Makefile
-                appliance/debian/debirf.conf
-                images/Makefile
-                capitests/Makefile
-                regressions/Makefile
-                test-tool/Makefile
-                ocaml/Makefile ocaml/examples/Makefile
-                perl/Makefile
-                python/Makefile
-                ruby/Makefile ruby/Rakefile
-                java/Makefile
-                haskell/Makefile
-                cat/Makefile
-                df/Makefile
-                inspector/Makefile
-                v2v/Makefile
-                libguestfs.pc
-                gnulib/lib/Makefile
-                gnulib/tests/Makefile
-                ocaml/META perl/Makefile.PL])
+                 src/Makefile fish/Makefile po/Makefile.in examples/Makefile
+                 appliance/Makefile
+                 appliance/debian/debirf.conf
+                 images/Makefile
+                 capitests/Makefile
+                 regressions/Makefile
+                 test-tool/Makefile
+                 ocaml/Makefile ocaml/examples/Makefile
+                 perl/Makefile
+                 python/Makefile
+                 ruby/Makefile ruby/Rakefile
+                 java/Makefile
+                 haskell/Makefile
+                 cat/Makefile
+                 df/Makefile
+                 inspector/Makefile
+                 v2v/Makefile
+                 libguestfs.pc
+                 gnulib/lib/Makefile
+                 gnulib/tests/Makefile
+                 ocaml/META perl/Makefile.PL])
 AC_OUTPUT
 
 dnl Produce summary.
 AC_OUTPUT
 
 dnl Produce summary.
index 0d9bf0b..4f7329f 100644 (file)
@@ -1,15 +1,15 @@
 centos5.3-libguestfs.spec
 centos5.3-libguestfs.spec
-       [REMOVED]
-       This used to be a centos5.3 specfile.  Please use the specfile
-       from EL-5 here:
-       http://cvs.fedoraproject.org/viewvc/rpms/libguestfs/EL-5/
+        [REMOVED]
+        This used to be a centos5.3 specfile.  Please use the specfile
+        from EL-5 here:
+        http://cvs.fedoraproject.org/viewvc/rpms/libguestfs/EL-5/
 
 febootstrap/
 
 febootstrap/
-       An experimental, non-working attempt to use febootstrap
-       to install operating systems.
+        An experimental, non-working attempt to use febootstrap
+        to install operating systems.
 
 fedora-libguestfs.spec
 
 fedora-libguestfs.spec
-       [REMOVED]
-       This used to be a Fedora 10+ specfile.  Please use the specfile
-       from Fedora instead:
-       http://cvs.fedoraproject.org/viewvc/rpms/libguestfs/devel/
+        [REMOVED]
+        This used to be a Fedora 10+ specfile.  Please use the specfile
+        from Fedora instead:
+        http://cvs.fedoraproject.org/viewvc/rpms/libguestfs/devel/
index 243f353..3bfd2ed 100644 (file)
@@ -48,19 +48,19 @@ AM_PROG_CC_C_O
 
 dnl Check for Augeas (now optional).
 AC_CHECK_LIB([augeas],[aug_match],[
 
 dnl Check for Augeas (now optional).
 AC_CHECK_LIB([augeas],[aug_match],[
-       LIBS="-laugeas $LIBS"
-       have_augeas=yes
-       dnl Check for functions not available in earlier versions of Augeas.
-       AC_CHECK_FUNCS([aug_load aug_defvar aug_defnode])
-       ],[have_augeas=no])
+        LIBS="-laugeas $LIBS"
+        have_augeas=yes
+        dnl Check for functions not available in earlier versions of Augeas.
+        AC_CHECK_FUNCS([aug_load aug_defvar aug_defnode])
+        ],[have_augeas=no])
 if test "x$have_augeas" = "xyes"; then
 if test "x$have_augeas" = "xyes"; then
-       AC_DEFINE([HAVE_AUGEAS],[1],[Define to 1 if you have Augeas])
+        AC_DEFINE([HAVE_AUGEAS],[1],[Define to 1 if you have Augeas])
 fi
 
 dnl Check for XDR library.
 AC_CHECK_LIB([portablexdr],[xdrmem_create],[],[
 fi
 
 dnl Check for XDR library.
 AC_CHECK_LIB([portablexdr],[xdrmem_create],[],[
-       AC_SEARCH_LIBS([xdrmem_create],[rpc xdr nsl])
-       ])
+        AC_SEARCH_LIBS([xdrmem_create],[rpc xdr nsl])
+        ])
 
 dnl Functions which may not be available in older distributions.
 AC_CHECK_FUNCS([futimens listxattr llistxattr getxattr lgetxattr setxattr lsetxattr removexattr lremovexattr])
 
 dnl Functions which may not be available in older distributions.
 AC_CHECK_FUNCS([futimens listxattr llistxattr getxattr lgetxattr setxattr lsetxattr removexattr lremovexattr])
@@ -68,14 +68,14 @@ AC_CHECK_FUNCS([futimens listxattr llistxattr getxattr lgetxattr setxattr lsetxa
 dnl For modified printf, we need glibc either (old-style)
 dnl register_printf_function or (new-style) register_printf_specifier.
 AC_CHECK_FUNC([register_printf_specifier],[
 dnl For modified printf, we need glibc either (old-style)
 dnl register_printf_function or (new-style) register_printf_specifier.
 AC_CHECK_FUNC([register_printf_specifier],[
-       AC_DEFINE([HAVE_REGISTER_PRINTF_SPECIFIER],[1],
-               [Define to 1 if you have new-style register_printf_specifier])
-       ],[
-       AC_CHECK_FUNC([register_printf_function],[
-               AC_DEFINE([HAVE_REGISTER_PRINTF_FUNCTION],[1],
-                       [Define to 1 if you have old-style register_printf_function])
-               ],[
-               AC_MSG_FAILURE(
+        AC_DEFINE([HAVE_REGISTER_PRINTF_SPECIFIER],[1],
+                [Define to 1 if you have new-style register_printf_specifier])
+        ],[
+        AC_CHECK_FUNC([register_printf_function],[
+                AC_DEFINE([HAVE_REGISTER_PRINTF_FUNCTION],[1],
+                        [Define to 1 if you have old-style register_printf_function])
+                ],[
+                AC_MSG_FAILURE(
 [No support for glibc-style extended printf formatters.
 
 This means you either have a very old glibc (pre-2.0) or you
 [No support for glibc-style extended printf formatters.
 
 This means you either have a very old glibc (pre-2.0) or you
index 9aa831a..70a2351 100644 (file)
@@ -48,9 +48,9 @@ extern void free_stringslen (char **argv, int len);
 extern int command (char **stdoutput, char **stderror, const char *name, ...);
 extern int commandr (char **stdoutput, char **stderror, const char *name, ...);
 extern int commandv (char **stdoutput, char **stderror,
 extern int command (char **stdoutput, char **stderror, const char *name, ...);
 extern int commandr (char **stdoutput, char **stderror, const char *name, ...);
 extern int commandv (char **stdoutput, char **stderror,
-                    char * const* const argv);
+                     char * const* const argv);
 extern int commandrv (char **stdoutput, char **stderror,
 extern int commandrv (char **stdoutput, char **stderror,
-                     char * const* const argv);
+                      char * const* const argv);
 
 extern char **split_lines (char *str);
 
 
 extern char **split_lines (char *str);
 
index 68320a3..13b7240 100644 (file)
@@ -157,11 +157,11 @@ debug_fds (const char *subcmd, int argc, char *const *const argv)
     if (S_ISLNK (statbuf.st_mode)) {
       r = readlink (fname, link, sizeof link - 1);
       if (r == -1) {
     if (S_ISLNK (statbuf.st_mode)) {
       r = readlink (fname, link, sizeof link - 1);
       if (r == -1) {
-       reply_with_perror ("readline: %s", fname);
-       fclose (fp);
-       free (out);
-       closedir (dir);
-       return NULL;
+        reply_with_perror ("readline: %s", fname);
+        fclose (fp);
+        free (out);
+        closedir (dir);
+        return NULL;
       }
       link[r] = '\0';
 
       }
       link[r] = '\0';
 
index 33579ba..1970e7d 100644 (file)
@@ -46,8 +46,8 @@ do_list_devices (void)
 
   while ((d = readdir (dir)) != NULL) {
     if (strncmp (d->d_name, "sd", 2) == 0 ||
 
   while ((d = readdir (dir)) != NULL) {
     if (strncmp (d->d_name, "sd", 2) == 0 ||
-       strncmp (d->d_name, "hd", 2) == 0 ||
-       strncmp (d->d_name, "vd", 2) == 0) {
+        strncmp (d->d_name, "hd", 2) == 0 ||
+        strncmp (d->d_name, "vd", 2) == 0) {
       snprintf (buf, sizeof buf, "/dev/%s", d->d_name);
 
       /* RHBZ#514505: Some versions of qemu <= 0.10 add a
       snprintf (buf, sizeof buf, "/dev/%s", d->d_name);
 
       /* RHBZ#514505: Some versions of qemu <= 0.10 add a
@@ -56,14 +56,14 @@ do_list_devices (void)
        */
       int fd = open (buf, O_RDONLY);
       if (fd == -1) {
        */
       int fd = open (buf, O_RDONLY);
       if (fd == -1) {
-       perror (buf);
-       continue;
+        perror (buf);
+        continue;
       }
       close (fd);
 
       if (add_string (&r, &size, &alloc, buf) == -1) {
       }
       close (fd);
 
       if (add_string (&r, &size, &alloc, buf) == -1) {
-       closedir (dir);
-       return NULL;
+        closedir (dir);
+        return NULL;
       }
     }
   }
       }
     }
   }
@@ -100,8 +100,8 @@ do_list_partitions (void)
 
   while ((d = readdir (dir)) != NULL) {
     if (strncmp (d->d_name, "sd", 2) == 0 ||
 
   while ((d = readdir (dir)) != NULL) {
     if (strncmp (d->d_name, "sd", 2) == 0 ||
-       strncmp (d->d_name, "hd", 2) == 0 ||
-       strncmp (d->d_name, "vd", 2) == 0) {
+        strncmp (d->d_name, "hd", 2) == 0 ||
+        strncmp (d->d_name, "vd", 2) == 0) {
       snprintf (buf, sizeof buf, "/dev/%s", d->d_name);
 
       /* RHBZ#514505: Some versions of qemu <= 0.10 add a
       snprintf (buf, sizeof buf, "/dev/%s", d->d_name);
 
       /* RHBZ#514505: Some versions of qemu <= 0.10 add a
@@ -110,8 +110,8 @@ do_list_partitions (void)
        */
       int fd = open (buf, O_RDONLY);
       if (fd == -1) {
        */
       int fd = open (buf, O_RDONLY);
       if (fd == -1) {
-       perror (buf);
-       continue;
+        perror (buf);
+        continue;
       }
       close (fd);
 
       }
       close (fd);
 
@@ -122,26 +122,26 @@ do_list_partitions (void)
 
       dir2 = opendir (buf);
       if (!dir2) {
 
       dir2 = opendir (buf);
       if (!dir2) {
-       reply_with_perror ("opendir: %s", buf);
-       free_stringslen (r, size);
-       return NULL;
+        reply_with_perror ("opendir: %s", buf);
+        free_stringslen (r, size);
+        return NULL;
       }
       while ((d = readdir (dir2)) != NULL) {
       }
       while ((d = readdir (dir2)) != NULL) {
-       if (strncmp (d->d_name, devname, strlen (devname)) == 0) {
-         snprintf (buf, sizeof buf, "/dev/%s", d->d_name);
-
-         if (add_string (&r, &size, &alloc, buf) == -1) {
-           closedir (dir2);
-           closedir (dir);
-           return NULL;
-         }
-       }
+        if (strncmp (d->d_name, devname, strlen (devname)) == 0) {
+          snprintf (buf, sizeof buf, "/dev/%s", d->d_name);
+
+          if (add_string (&r, &size, &alloc, buf) == -1) {
+            closedir (dir2);
+            closedir (dir);
+            return NULL;
+          }
+        }
       }
 
       if (closedir (dir2) == -1) {
       }
 
       if (closedir (dir2) == -1) {
-       reply_with_perror ("closedir: /sys/block/%s", devname);
-       free_stringslen (r, size);
-       return NULL;
+        reply_with_perror ("closedir: /sys/block/%s", devname);
+        free_stringslen (r, size);
+        return NULL;
       }
     }
   }
       }
     }
   }
index a8f066f..5945862 100644 (file)
@@ -123,8 +123,8 @@ recursive_mkdir (const char *path)
       r = lstat (path, &buf);
       if (r == -1) return -1;
       if (!S_ISDIR (buf.st_mode)) {
       r = lstat (path, &buf);
       if (r == -1) return -1;
       if (!S_ISDIR (buf.st_mode)) {
-       errno = ENOTDIR;
-       return -1;
+        errno = ENOTDIR;
+        return -1;
       }
       return 0;                        /* OK - directory exists here already. */
     }
       }
       return 0;                        /* OK - directory exists here already. */
     }
index 5a1d0fd..0f7a66c 100644 (file)
@@ -77,31 +77,31 @@ do_tune2fs_l (char *device)
       do { colon++; } while (*colon && isspace (*colon));
 
       if (add_string (&ret, &size, &alloc, p) == -1) {
       do { colon++; } while (*colon && isspace (*colon));
 
       if (add_string (&ret, &size, &alloc, p) == -1) {
-       free (out);
-       return NULL;
+        free (out);
+        return NULL;
       }
       if (strcmp (colon, "<none>") == 0 ||
       }
       if (strcmp (colon, "<none>") == 0 ||
-         strcmp (colon, "<not available>") == 0 ||
-         strcmp (colon, "(none)") == 0) {
-       if (add_string (&ret, &size, &alloc, "") == -1) {
-         free (out);
-         return NULL;
-       }
+          strcmp (colon, "<not available>") == 0 ||
+          strcmp (colon, "(none)") == 0) {
+        if (add_string (&ret, &size, &alloc, "") == -1) {
+          free (out);
+          return NULL;
+        }
       } else {
       } else {
-       if (add_string (&ret, &size, &alloc, colon) == -1) {
-         free (out);
-         return NULL;
-       }
+        if (add_string (&ret, &size, &alloc, colon) == -1) {
+          free (out);
+          return NULL;
+        }
       }
     }
     else {
       if (add_string (&ret, &size, &alloc, p) == -1) {
       }
     }
     else {
       if (add_string (&ret, &size, &alloc, p) == -1) {
-       free (out);
-       return NULL;
+        free (out);
+        return NULL;
       }
       if (add_string (&ret, &size, &alloc, "") == -1) {
       }
       if (add_string (&ret, &size, &alloc, "") == -1) {
-       free (out);
-       return NULL;
+        free (out);
+        return NULL;
       }
     }
 
       }
     }
 
index aab7e93..63d8dd2 100644 (file)
@@ -97,18 +97,18 @@ do_cat (char *path)
     if (size >= alloc) {
       alloc += 8192;
       if (alloc > max) {
     if (size >= alloc) {
       alloc += 8192;
       if (alloc > max) {
-       reply_with_error ("cat: %s: file is too large for message buffer",
-                         path);
-       free (buf);
-       close (fd);
-       return NULL;
+        reply_with_error ("cat: %s: file is too large for message buffer",
+                          path);
+        free (buf);
+        close (fd);
+        return NULL;
       }
       buf2 = realloc (buf, alloc);
       if (buf2 == NULL) {
       }
       buf2 = realloc (buf, alloc);
       if (buf2 == NULL) {
-       reply_with_perror ("realloc");
-       free (buf);
-       close (fd);
-       return NULL;
+        reply_with_perror ("realloc");
+        free (buf);
+        close (fd);
+        return NULL;
       }
       buf = buf2;
     }
       }
       buf = buf2;
     }
index e8fb48f..07a1c5e 100644 (file)
@@ -159,11 +159,11 @@ main (int argc, char *argv[])
       p += 8;
       p2 = strchr (p, ':');
       if (p2) {
       p += 8;
       p2 = strchr (p, ':');
       if (p2) {
-       *p2++ = '\0';
-       host = p;
-       r = strcspn (p2, " \n");
-       p2[r] = '\0';
-       port = p2;
+        *p2++ = '\0';
+        host = p;
+        r = strcspn (p2, " \n");
+        p2[r] = '\0';
+        port = p2;
       }
     }
   }
       }
     }
   }
@@ -209,7 +209,7 @@ main (int argc, char *argv[])
     sock = socket (rr->ai_family, rr->ai_socktype, rr->ai_protocol);
     if (sock != -1) {
       if (connect (sock, rr->ai_addr, rr->ai_addrlen) == 0)
     sock = socket (rr->ai_family, rr->ai_socktype, rr->ai_protocol);
     if (sock != -1) {
       if (connect (sock, rr->ai_addr, rr->ai_addrlen) == 0)
-       break;
+        break;
       perror ("connect");
 
       close (sock);
       perror ("connect");
 
       close (sock);
@@ -578,40 +578,40 @@ commandrv (char **stdoutput, char **stderror, char * const* const argv)
     if (FD_ISSET (so_fd[0], &rset2)) { /* something on stdout */
       r = read (so_fd[0], buf, sizeof buf);
       if (r == -1) {
     if (FD_ISSET (so_fd[0], &rset2)) { /* something on stdout */
       r = read (so_fd[0], buf, sizeof buf);
       if (r == -1) {
-       perror ("read");
-       goto quit;
+        perror ("read");
+        goto quit;
       }
       if (r == 0) { FD_CLR (so_fd[0], &rset); quit++; }
 
       if (r > 0 && stdoutput) {
       }
       if (r == 0) { FD_CLR (so_fd[0], &rset); quit++; }
 
       if (r > 0 && stdoutput) {
-       so_size += r;
-       p = realloc (*stdoutput, so_size);
-       if (p == NULL) {
-         perror ("realloc");
-         goto quit;
-       }
-       *stdoutput = p;
-       memcpy (*stdoutput + so_size - r, buf, r);
+        so_size += r;
+        p = realloc (*stdoutput, so_size);
+        if (p == NULL) {
+          perror ("realloc");
+          goto quit;
+        }
+        *stdoutput = p;
+        memcpy (*stdoutput + so_size - r, buf, r);
       }
     }
 
     if (FD_ISSET (se_fd[0], &rset2)) { /* something on stderr */
       r = read (se_fd[0], buf, sizeof buf);
       if (r == -1) {
       }
     }
 
     if (FD_ISSET (se_fd[0], &rset2)) { /* something on stderr */
       r = read (se_fd[0], buf, sizeof buf);
       if (r == -1) {
-       perror ("read");
-       goto quit;
+        perror ("read");
+        goto quit;
       }
       if (r == 0) { FD_CLR (se_fd[0], &rset); quit++; }
 
       if (r > 0 && stderror) {
       }
       if (r == 0) { FD_CLR (se_fd[0], &rset); quit++; }
 
       if (r > 0 && stderror) {
-       se_size += r;
-       p = realloc (*stderror, se_size);
-       if (p == NULL) {
-         perror ("realloc");
-         goto quit;
-       }
-       *stderror = p;
-       memcpy (*stderror + se_size - r, buf, r);
+        se_size += r;
+        p = realloc (*stderror, se_size);
+        if (p == NULL) {
+          perror ("realloc");
+          goto quit;
+        }
+        *stderror = p;
+        memcpy (*stderror + se_size - r, buf, r);
       }
     }
   }
       }
     }
   }
@@ -643,7 +643,7 @@ commandrv (char **stdoutput, char **stderror, char * const* const argv)
       (*stderror)[se_size] = '\0';
       se_size--;
       while (se_size >= 0 && (*stderror)[se_size] == '\n')
       (*stderror)[se_size] = '\0';
       se_size--;
       while (se_size >= 0 && (*stderror)[se_size] == '\n')
-       (*stderror)[se_size--] = '\0';
+        (*stderror)[se_size--] = '\0';
     }
   }
 
     }
   }
 
@@ -722,7 +722,7 @@ print_shell_quote (FILE *stream,
                    const void *const *args)
 {
 #define SAFE(c) (isalnum((c)) ||                                       \
                    const void *const *args)
 {
 #define SAFE(c) (isalnum((c)) ||                                       \
-                (c) == '/' || (c) == '-' || (c) == '_' || (c) == '.')
+                 (c) == '/' || (c) == '-' || (c) == '_' || (c) == '.')
   int i, len;
   const char *str = *((const char **) (args[0]));
 
   int i, len;
   const char *str = *((const char **) (args[0]));
 
@@ -740,11 +740,11 @@ print_shell_quote (FILE *stream,
 
 static int
 print_sysroot_shell_quote (FILE *stream,
 
 static int
 print_sysroot_shell_quote (FILE *stream,
-                          const struct printf_info *info,
-                          const void *const *args)
+                           const struct printf_info *info,
+                           const void *const *args)
 {
 #define SAFE(c) (isalnum((c)) ||                                       \
 {
 #define SAFE(c) (isalnum((c)) ||                                       \
-                (c) == '/' || (c) == '-' || (c) == '_' || (c) == '.')
+                 (c) == '/' || (c) == '-' || (c) == '_' || (c) == '.')
   fputs (sysroot, stream);
   return sysroot_len + print_shell_quote (stream, info, args);
 }
   fputs (sysroot, stream);
   return sysroot_len + print_shell_quote (stream, info, args);
 }
@@ -752,7 +752,7 @@ print_sysroot_shell_quote (FILE *stream,
 #ifdef HAVE_REGISTER_PRINTF_SPECIFIER
 static int
 print_arginfo (const struct printf_info *info,
 #ifdef HAVE_REGISTER_PRINTF_SPECIFIER
 static int
 print_arginfo (const struct printf_info *info,
-              size_t n, int *argtypes, int *size)
+               size_t n, int *argtypes, int *size)
 {
   if (n > 0) {
     argtypes[0] = PA_STRING;
 {
   if (n > 0) {
     argtypes[0] = PA_STRING;
index 43f282d..4bc6f17 100644 (file)
@@ -165,10 +165,10 @@ do_inotify_read (void)
     int n, r;
 
     r = read (inotify_fd, inotify_buf + inotify_posn,
     int n, r;
 
     r = read (inotify_fd, inotify_buf + inotify_posn,
-             sizeof (inotify_buf) - inotify_posn);
+              sizeof (inotify_buf) - inotify_posn);
     if (r == -1) {
       if (errno == EWOULDBLOCK || errno == EAGAIN) /* End of list. */
     if (r == -1) {
       if (errno == EWOULDBLOCK || errno == EAGAIN) /* End of list. */
-       break;
+        break;
       reply_with_perror ("read");
       goto error;
     }
       reply_with_perror ("read");
       goto error;
     }
@@ -190,18 +190,18 @@ do_inotify_read (void)
       /* Have we got a complete event in the buffer? */
 #ifdef __GNUC__
       if (n + sizeof (struct inotify_event) > inotify_posn ||
       /* Have we got a complete event in the buffer? */
 #ifdef __GNUC__
       if (n + sizeof (struct inotify_event) > inotify_posn ||
-         n + sizeof (struct inotify_event) + event->len > inotify_posn)
-       break;
+          n + sizeof (struct inotify_event) + event->len > inotify_posn)
+        break;
 #else
 #error "this code needs fixing so it works on non-GCC compilers"
 #endif
 
       np = realloc (ret->guestfs_int_inotify_event_list_val,
 #else
 #error "this code needs fixing so it works on non-GCC compilers"
 #endif
 
       np = realloc (ret->guestfs_int_inotify_event_list_val,
-                   (ret->guestfs_int_inotify_event_list_len + 1) *
-                   sizeof (guestfs_int_inotify_event));
+                    (ret->guestfs_int_inotify_event_list_len + 1) *
+                    sizeof (guestfs_int_inotify_event));
       if (np == NULL) {
       if (np == NULL) {
-       reply_with_perror ("realloc");
-       goto error;
+        reply_with_perror ("realloc");
+        goto error;
       }
       ret->guestfs_int_inotify_event_list_val = np;
       in = &ret->guestfs_int_inotify_event_list_val[ret->guestfs_int_inotify_event_list_len];
       }
       ret->guestfs_int_inotify_event_list_val = np;
       in = &ret->guestfs_int_inotify_event_list_val[ret->guestfs_int_inotify_event_list_len];
@@ -212,12 +212,12 @@ do_inotify_read (void)
       in->in_cookie = event->cookie;
 
       if (event->len > 0)
       in->in_cookie = event->cookie;
 
       if (event->len > 0)
-       in->in_name = strdup (event->name);
+        in->in_name = strdup (event->name);
       else
       else
-       in->in_name = strdup (""); /* Should have optional string fields XXX. */
+        in->in_name = strdup (""); /* Should have optional string fields XXX. */
       if (in->in_name == NULL) {
       if (in->in_name == NULL) {
-       reply_with_perror ("strdup");
-       goto error;
+        reply_with_perror ("strdup");
+        goto error;
       }
 
       /* Estimate space used by this event in the message. */
       }
 
       /* Estimate space used by this event in the message. */
@@ -279,7 +279,7 @@ do_inotify_files (void)
       const char *name = events->guestfs_int_inotify_event_list_val[i].in_name;
 
       if (name[0] != '\0')
       const char *name = events->guestfs_int_inotify_event_list_val[i].in_name;
 
       if (name[0] != '\0')
-       fprintf (fp, "%s\n", name);
+        fprintf (fp, "%s\n", name);
     }
 
     xdr_free ((xdrproc_t) xdr_guestfs_int_inotify_event_list, (char *) events);
     }
 
     xdr_free ((xdrproc_t) xdr_guestfs_int_inotify_event_list, (char *) events);
index 57e3538..29ae679 100644 (file)
@@ -90,19 +90,19 @@ _link (const char *flag, int symbolic, const char *target, const char *linkname)
 
   if (flag)
     r = command (NULL, &err,
 
   if (flag)
     r = command (NULL, &err,
-                "ln", flag, "--", /* target could begin with '-' */
-                buf_target ? : target, buf_linkname, NULL);
+                 "ln", flag, "--", /* target could begin with '-' */
+                 buf_target ? : target, buf_linkname, NULL);
   else
     r = command (NULL, &err,
   else
     r = command (NULL, &err,
-                "ln", "--",
-                buf_target ? : target, buf_linkname, NULL);
+                 "ln", "--",
+                 buf_target ? : target, buf_linkname, NULL);
   free (buf_linkname);
   free (buf_target);
   if (r == -1) {
     reply_with_error ("ln%s%s: %s: %s: %s",
   free (buf_linkname);
   free (buf_target);
   if (r == -1) {
     reply_with_error ("ln%s%s: %s: %s: %s",
-                     flag ? " " : "",
-                     flag ? : "",
-                     target, linkname, err);
+                      flag ? " " : "",
+                      flag ? : "",
+                      target, linkname, err);
     free (err);
     return -1;
   }
     free (err);
     return -1;
   }
index 01b6435..624dcf3 100644 (file)
@@ -93,7 +93,7 @@ do_pvs (void)
   int r;
 
   r = command (&out, &err,
   int r;
 
   r = command (&out, &err,
-              "/sbin/lvm", "pvs", "-o", "pv_name", "--noheadings", NULL);
+               "/sbin/lvm", "pvs", "-o", "pv_name", "--noheadings", NULL);
   if (r == -1) {
     reply_with_error ("%s", err);
     free (out);
   if (r == -1) {
     reply_with_error ("%s", err);
     free (out);
@@ -113,7 +113,7 @@ do_vgs (void)
   int r;
 
   r = command (&out, &err,
   int r;
 
   r = command (&out, &err,
-              "/sbin/lvm", "vgs", "-o", "vg_name", "--noheadings", NULL);
+               "/sbin/lvm", "vgs", "-o", "vg_name", "--noheadings", NULL);
   if (r == -1) {
     reply_with_error ("%s", err);
     free (out);
   if (r == -1) {
     reply_with_error ("%s", err);
     free (out);
@@ -133,9 +133,9 @@ do_lvs (void)
   int r;
 
   r = command (&out, &err,
   int r;
 
   r = command (&out, &err,
-              "/sbin/lvm", "lvs",
-              "-o", "vg_name,lv_name", "--noheadings",
-              "--separator", "/", NULL);
+               "/sbin/lvm", "lvs",
+               "-o", "vg_name,lv_name", "--noheadings",
+               "--separator", "/", NULL);
   if (r == -1) {
     reply_with_error ("%s", err);
     free (out);
   if (r == -1) {
     reply_with_error ("%s", err);
     free (out);
@@ -179,7 +179,7 @@ do_pvcreate (char *device)
   IS_DEVICE (device, -1);
 
   r = command (NULL, &err,
   IS_DEVICE (device, -1);
 
   r = command (NULL, &err,
-              "/sbin/lvm", "pvcreate", device, NULL);
+               "/sbin/lvm", "pvcreate", device, NULL);
   if (r == -1) {
     reply_with_error ("%s", err);
     free (err);
   if (r == -1) {
     reply_with_error ("%s", err);
     free (err);
@@ -240,8 +240,8 @@ do_lvcreate (char *logvol, char *volgroup, int mbytes)
   snprintf (size, sizeof size, "%d", mbytes);
 
   r = command (NULL, &err,
   snprintf (size, sizeof size, "%d", mbytes);
 
   r = command (NULL, &err,
-              "/sbin/lvm", "lvcreate",
-              "-L", size, "-n", logvol, volgroup, NULL);
+               "/sbin/lvm", "lvcreate",
+               "-L", size, "-n", logvol, volgroup, NULL);
   if (r == -1) {
     reply_with_error ("%s", err);
     free (err);
   if (r == -1) {
     reply_with_error ("%s", err);
     free (err);
@@ -267,8 +267,8 @@ do_lvresize (char *logvol, int mbytes)
   snprintf (size, sizeof size, "%d", mbytes);
 
   r = command (NULL, &err,
   snprintf (size, sizeof size, "%d", mbytes);
 
   r = command (NULL, &err,
-              "/sbin/lvm", "lvresize",
-              "-L", size, logvol, NULL);
+               "/sbin/lvm", "lvresize",
+               "-L", size, logvol, NULL);
   if (r == -1) {
     reply_with_error ("lvresize: %s", err);
     free (err);
   if (r == -1) {
     reply_with_error ("lvresize: %s", err);
     free (err);
@@ -355,7 +355,7 @@ do_lvremove (char *device)
   IS_DEVICE (device, -1);
 
   r = command (NULL, &err,
   IS_DEVICE (device, -1);
 
   r = command (NULL, &err,
-              "/sbin/lvm", "lvremove", "-f", device, NULL);
+               "/sbin/lvm", "lvremove", "-f", device, NULL);
   if (r == -1) {
     reply_with_error ("%s", err);
     free (err);
   if (r == -1) {
     reply_with_error ("%s", err);
     free (err);
@@ -376,7 +376,7 @@ do_vgremove (char *device)
   int r;
 
   r = command (NULL, &err,
   int r;
 
   r = command (NULL, &err,
-              "/sbin/lvm", "vgremove", "-f", device, NULL);
+               "/sbin/lvm", "vgremove", "-f", device, NULL);
   if (r == -1) {
     reply_with_error ("%s", err);
     free (err);
   if (r == -1) {
     reply_with_error ("%s", err);
     free (err);
@@ -399,7 +399,7 @@ do_pvremove (char *device)
   IS_DEVICE (device, -1);
 
   r = command (NULL, &err,
   IS_DEVICE (device, -1);
 
   r = command (NULL, &err,
-              "/sbin/lvm", "pvremove", "-ff", device, NULL);
+               "/sbin/lvm", "pvremove", "-ff", device, NULL);
   if (r == -1) {
     reply_with_error ("%s", err);
     free (err);
   if (r == -1) {
     reply_with_error ("%s", err);
     free (err);
@@ -422,7 +422,7 @@ do_pvresize (char *device)
   IS_DEVICE (device, -1);
 
   r = command (NULL, &err,
   IS_DEVICE (device, -1);
 
   r = command (NULL, &err,
-              "/sbin/lvm", "pvresize", device, NULL);
+               "/sbin/lvm", "pvresize", device, NULL);
   if (r == -1) {
     reply_with_error ("pvresize: %s: %s", device, err);
     free (err);
   if (r == -1) {
     reply_with_error ("pvresize: %s: %s", device, err);
     free (err);
index e7265fe..9754ca9 100644 (file)
@@ -42,7 +42,7 @@ int root_mounted = 0;
 
 int
 do_mount_vfs (char *options, char *vfstype,
 
 int
 do_mount_vfs (char *options, char *vfstype,
-             char *device, char *mountpoint)
+              char *device, char *mountpoint)
 {
   int r, is_root;
   char *mp;
 {
   int r, is_root;
   char *mp;
@@ -65,10 +65,10 @@ do_mount_vfs (char *options, char *vfstype,
 
   if (vfstype)
     r = command (NULL, &error,
 
   if (vfstype)
     r = command (NULL, &error,
-                "mount", "-o", options, "-t", vfstype, device, mp, NULL);
+                 "mount", "-o", options, "-t", vfstype, device, mp, NULL);
   else
     r = command (NULL, &error,
   else
     r = command (NULL, &error,
-                "mount", "-o", options, device, mp, NULL);
+                 "mount", "-o", options, device, mp, NULL);
   free (mp);
   if (r == -1) {
     reply_with_error ("mount: %s on %s: %s", device, mountpoint, error);
   free (mp);
   if (r == -1) {
     reply_with_error ("mount: %s on %s: %s", device, mountpoint, error);
@@ -96,7 +96,7 @@ do_mount_ro (char *device, char *mountpoint)
 
 int
 do_mount_options (char *options, char *device,
 
 int
 do_mount_options (char *options, char *device,
-                 char *mountpoint)
+                  char *mountpoint)
 {
   return do_mount_vfs (options, NULL, device, mountpoint);
 }
 {
   return do_mount_vfs (options, NULL, device, mountpoint);
 }
@@ -176,22 +176,22 @@ mounts_or_mountpoints (int mp)
     if (p2 != NULL) {
       *p2 = '\0';
       if (add_string (&ret, &size, &alloc, p) == -1) {
     if (p2 != NULL) {
       *p2 = '\0';
       if (add_string (&ret, &size, &alloc, p) == -1) {
-       free (out);
-       return NULL;
+        free (out);
+        return NULL;
       }
       if (mp) {
       }
       if (mp) {
-       p2 += 4 + sysroot_len;  /* skip " on /sysroot" */
-       len = strcspn (p2, " ");
-
-       if (len == 0)           /* .. just /sysroot, so we turn it into "/" */
-         p2 = (char *) "/";
-       else
-         p2[len] = '\0';
-
-       if (add_string (&ret, &size, &alloc, p2) == -1) {
-         free (out);
-         return NULL;
-       }
+        p2 += 4 + sysroot_len; /* skip " on /sysroot" */
+        len = strcspn (p2, " ");
+
+        if (len == 0)          /* .. just /sysroot, so we turn it into "/" */
+          p2 = (char *) "/";
+        else
+          p2[len] = '\0';
+
+        if (add_string (&ret, &size, &alloc, p2) == -1) {
+          free (out);
+          return NULL;
+        }
       }
     }
 
       }
     }
 
@@ -277,8 +277,8 @@ do_umount_all (void)
       p3 = p2 + strcspn (p2, " ");
       *p3 = '\0';
       if (add_string (&mounts, &size, &alloc, p2) == -1) {
       p3 = p2 + strcspn (p2, " ");
       *p3 = '\0';
       if (add_string (&mounts, &size, &alloc, p2) == -1) {
-       free (out);
-       return -1;
+        free (out);
+        return -1;
       }
     }
 
       }
     }
 
index acd6601..709f978 100644 (file)
@@ -69,7 +69,7 @@ main_loop (int _sock)
 
     if (len > GUESTFS_MESSAGE_MAX) {
       fprintf (stderr, "guestfsd: incoming message is too long (%u bytes)\n",
 
     if (len > GUESTFS_MESSAGE_MAX) {
       fprintf (stderr, "guestfsd: incoming message is too long (%u bytes)\n",
-              len);
+               len);
       exit (1);
     }
 
       exit (1);
     }
 
@@ -86,20 +86,20 @@ main_loop (int _sock)
       int i, j;
 
       for (i = 0; i < len; i += 16) {
       int i, j;
 
       for (i = 0; i < len; i += 16) {
-       printf ("%04x: ", i);
-       for (j = i; j < MIN (i+16, len); ++j)
-         printf ("%02x ", (unsigned char) buf[j]);
-       for (; j < i+16; ++j)
-         printf ("   ");
-       printf ("|");
-       for (j = i; j < MIN (i+16, len); ++j)
-         if (isprint (buf[j]))
-           printf ("%c", buf[j]);
-         else
-           printf (".");
-       for (; j < i+16; ++j)
-         printf (" ");
-       printf ("|\n");
+        printf ("%04x: ", i);
+        for (j = i; j < MIN (i+16, len); ++j)
+          printf ("%02x ", (unsigned char) buf[j]);
+        for (; j < i+16; ++j)
+          printf ("   ");
+        printf ("|");
+        for (j = i; j < MIN (i+16, len); ++j)
+          if (isprint (buf[j]))
+            printf ("%c", buf[j]);
+          else
+            printf (".");
+        for (; j < i+16; ++j)
+          printf (" ");
+        printf ("|\n");
       }
     }
 #endif
       }
     }
 #endif
@@ -147,11 +147,11 @@ main_loop (int _sock)
       end_us = (int64_t) end_t.tv_sec * 1000000 + end_t.tv_usec;
       elapsed_us = end_us - start_us;
       fprintf (stderr, "proc %d (%s) took %d.%02d seconds\n",
       end_us = (int64_t) end_t.tv_sec * 1000000 + end_t.tv_usec;
       elapsed_us = end_us - start_us;
       fprintf (stderr, "proc %d (%s) took %d.%02d seconds\n",
-              proc_nr,
-              proc_nr >= 0 && proc_nr < GUESTFS_PROC_NR_PROCS
-              ? function_names[proc_nr] : "UNKNOWN PROCEDURE",
-              (int) (elapsed_us / 1000000),
-              (int) ((elapsed_us / 10000) % 100));
+               proc_nr,
+               proc_nr >= 0 && proc_nr < GUESTFS_PROC_NR_PROCS
+               ? function_names[proc_nr] : "UNKNOWN PROCEDURE",
+               (int) (elapsed_us / 1000000),
+               (int) ((elapsed_us / 10000) % 100));
     }
 
   cont:
     }
 
   cont:
@@ -317,7 +317,7 @@ receive_file (receive_cb cb, void *opaque)
 
     if (len > GUESTFS_MESSAGE_MAX) {
       fprintf (stderr, "guestfsd: incoming message is too long (%u bytes)\n",
 
     if (len > GUESTFS_MESSAGE_MAX) {
       fprintf (stderr, "guestfsd: incoming message is too long (%u bytes)\n",
-              len);
+               len);
       exit (1);
     }
 
       exit (1);
     }
 
@@ -341,7 +341,7 @@ receive_file (receive_cb cb, void *opaque)
 
     if (verbose)
       printf ("receive_file: got chunk: cancel = %d, len = %d, buf = %p\n",
 
     if (verbose)
       printf ("receive_file: got chunk: cancel = %d, len = %d, buf = %p\n",
-             chunk.cancel, chunk.data.data_len, chunk.data.data_val);
+              chunk.cancel, chunk.data.data_len, chunk.data.data_val);
 
     if (chunk.cancel) {
       fprintf (stderr, "receive_file: received cancellation from library\n");
 
     if (chunk.cancel) {
       fprintf (stderr, "receive_file: received cancellation from library\n");
@@ -397,7 +397,7 @@ send_file_write (const void *buf, int len)
 
   if (len > GUESTFS_MAX_CHUNK_SIZE) {
     fprintf (stderr, "send_file_write: len (%d) > GUESTFS_MAX_CHUNK_SIZE (%d)\n",
 
   if (len > GUESTFS_MAX_CHUNK_SIZE) {
     fprintf (stderr, "send_file_write: len (%d) > GUESTFS_MAX_CHUNK_SIZE (%d)\n",
-            len, GUESTFS_MAX_CHUNK_SIZE);
+             len, GUESTFS_MAX_CHUNK_SIZE);
     return -1;
   }
 
     return -1;
   }
 
@@ -455,7 +455,7 @@ check_for_library_cancellation (void)
 
   if (flag != GUESTFS_CANCEL_FLAG) {
     fprintf (stderr, "check_for_library_cancellation: read 0x%x from library, expected 0x%x\n",
 
   if (flag != GUESTFS_CANCEL_FLAG) {
     fprintf (stderr, "check_for_library_cancellation: read 0x%x from library, expected 0x%x\n",
-            flag, GUESTFS_CANCEL_FLAG);
+             flag, GUESTFS_CANCEL_FLAG);
     return 0;
   }
 
     return 0;
   }
 
index e3851db..17fc619 100644 (file)
@@ -63,7 +63,7 @@ do_readdir (char *path)
     guestfs_int_dirent *p;
 
     p = realloc (ret->guestfs_int_dirent_list_val,
     guestfs_int_dirent *p;
 
     p = realloc (ret->guestfs_int_dirent_list_val,
-                sizeof (guestfs_int_dirent) * (i+1));
+                 sizeof (guestfs_int_dirent) * (i+1));
     v.name = strdup (d->d_name);
     if (!p || !v.name) {
       reply_with_perror ("allocate");
     v.name = strdup (d->d_name);
     if (!p || !v.name) {
       reply_with_perror ("allocate");
index f512e26..e06d0bf 100644 (file)
@@ -31,8 +31,8 @@
 
 static int
 sfdisk (char *device, int n, int cyls, int heads, int sectors,
 
 static int
 sfdisk (char *device, int n, int cyls, int heads, int sectors,
-       const char *extra_flag,
-       char * const* const lines)
+        const char *extra_flag,
+        char * const* const lines)
 {
   FILE *fp;
   char buf[256];
 {
   FILE *fp;
   char buf[256];
@@ -85,14 +85,14 @@ sfdisk (char *device, int n, int cyls, int heads, int sectors,
 
 int
 do_sfdisk (char *device, int cyls, int heads, int sectors,
 
 int
 do_sfdisk (char *device, int cyls, int heads, int sectors,
-          char **lines)
+           char **lines)
 {
   return sfdisk (device, 0, cyls, heads, sectors, NULL, lines);
 }
 
 int
 do_sfdisk_N (char *device, int n, int cyls, int heads, int sectors,
 {
   return sfdisk (device, 0, cyls, heads, sectors, NULL, lines);
 }
 
 int
 do_sfdisk_N (char *device, int n, int cyls, int heads, int sectors,
-            char *line)
+             char *line)
 {
   const char *lines[2] = { line, NULL };
 
 {
   const char *lines[2] = { line, NULL };
 
index 23b00d8..a908a44 100644 (file)
@@ -107,9 +107,9 @@ do_lremovexattr (char *xattr, char *path)
 
 static guestfs_int_xattr_list *
 getxattrs (char *path,
 
 static guestfs_int_xattr_list *
 getxattrs (char *path,
-          ssize_t (*listxattr) (const char *path, char *list, size_t size),
-          ssize_t (*getxattr) (const char *path, const char *name,
-                               void *value, size_t size))
+           ssize_t (*listxattr) (const char *path, char *list, size_t size),
+           ssize_t (*getxattr) (const char *path, const char *name,
+                                void *value, size_t size))
 {
   ssize_t len, vlen;
   char *buf = NULL;
 {
   ssize_t len, vlen;
   char *buf = NULL;
@@ -175,15 +175,15 @@ getxattrs (char *path,
     r->guestfs_int_xattr_list_val[j].attrval.attrval_len = vlen;
 
     if (r->guestfs_int_xattr_list_val[j].attrname == NULL ||
     r->guestfs_int_xattr_list_val[j].attrval.attrval_len = vlen;
 
     if (r->guestfs_int_xattr_list_val[j].attrname == NULL ||
-       r->guestfs_int_xattr_list_val[j].attrval.attrval_val == NULL) {
+        r->guestfs_int_xattr_list_val[j].attrval.attrval_val == NULL) {
       reply_with_perror ("malloc");
       goto error;
     }
 
     CHROOT_IN;
     vlen = getxattr (path, &buf[i],
       reply_with_perror ("malloc");
       goto error;
     }
 
     CHROOT_IN;
     vlen = getxattr (path, &buf[i],
-                    r->guestfs_int_xattr_list_val[j].attrval.attrval_val,
-                    vlen);
+                     r->guestfs_int_xattr_list_val[j].attrval.attrval_val,
+                     vlen);
     CHROOT_OUT;
     if (vlen == -1) {
       reply_with_perror ("getxattr");
     CHROOT_OUT;
     if (vlen == -1) {
       reply_with_perror ("getxattr");
@@ -200,8 +200,8 @@ getxattrs (char *path,
   if (r) {
     if (r->guestfs_int_xattr_list_val)
       for (i = 0; i < r->guestfs_int_xattr_list_len; ++i) {
   if (r) {
     if (r->guestfs_int_xattr_list_val)
       for (i = 0; i < r->guestfs_int_xattr_list_len; ++i) {
-       free (r->guestfs_int_xattr_list_val[i].attrname);
-       free (r->guestfs_int_xattr_list_val[i].attrval.attrval_val);
+        free (r->guestfs_int_xattr_list_val[i].attrname);
+        free (r->guestfs_int_xattr_list_val[i].attrval.attrval_val);
       }
     free (r->guestfs_int_xattr_list_val);
   }
       }
     free (r->guestfs_int_xattr_list_val);
   }
@@ -211,8 +211,8 @@ getxattrs (char *path,
 
 static int
 _setxattr (char *xattr, char *val, int vallen, char *path,
 
 static int
 _setxattr (char *xattr, char *val, int vallen, char *path,
-          int (*setxattr) (const char *path, const char *name,
-                           const void *value, size_t size, int flags))
+           int (*setxattr) (const char *path, const char *name,
+                            const void *value, size_t size, int flags))
 {
   int r;
 
 {
   int r;
 
@@ -229,7 +229,7 @@ _setxattr (char *xattr, char *val, int vallen, char *path,
 
 static int
 _removexattr (char *xattr, char *path,
 
 static int
 _removexattr (char *xattr, char *path,
-             int (*removexattr) (const char *path, const char *name))
+              int (*removexattr) (const char *path, const char *name))
 {
   int r;
 
 {
   int r;
 
index 25fd6a8..a1b2228 100755 (executable)
@@ -131,8 +131,8 @@ Print inodes instead of blocks.
 =cut
 
 GetOptions ("help|?" => \$help,
 =cut
 
 GetOptions ("help|?" => \$help,
-           "version" => \$version,
-           "connect|c=s" => \$uri,
+            "version" => \$version,
+            "connect|c=s" => \$uri,
             "csv" => \$csv,
             "human-readable|human|h" => \$human,
             "inodes|i" => \$inodes,
             "csv" => \$csv,
             "human-readable|human|h" => \$human,
             "inodes|i" => \$inodes,
@@ -151,9 +151,9 @@ if (@ARGV == 0) {
     my $conn;
 
     if ($uri) {
     my $conn;
 
     if ($uri) {
-       $conn = Sys::Virt->new (readonly => 1, address => $uri);
+        $conn = Sys::Virt->new (readonly => 1, address => $uri);
     } else {
     } else {
-       $conn = Sys::Virt->new (readonly => 1);
+        $conn = Sys::Virt->new (readonly => 1);
     }
 
     my @doms = $conn->list_defined_domains ();
     }
 
     my @doms = $conn->list_defined_domains ();
@@ -162,10 +162,10 @@ if (@ARGV == 0) {
     my @domnames = map { $_->get_name () } @doms;
 
     if (@domnames) {
     my @domnames = map { $_->get_name () } @doms;
 
     if (@domnames) {
-       print_title ();
-       foreach (@domnames) {
-           do_df ($_);
-       }
+        print_title ();
+        foreach (@domnames) {
+            do_df ($_);
+        }
     }
 } else {
     print_title ();
     }
 } else {
     print_title ();
@@ -177,9 +177,9 @@ sub do_df
     my $g;
 
     if ($uri) {
     my $g;
 
     if ($uri) {
-       $g = open_guest (\@_, address => $uri);
+        $g = open_guest (\@_, address => $uri);
     } else {
     } else {
-       $g = open_guest (\@_);
+        $g = open_guest (\@_);
     }
 
     $g->launch ();
     }
 
     $g->launch ();
@@ -195,15 +195,15 @@ sub do_df
 
     # Mount each partition in turn, and if mountable, do a statvfs on it.
     foreach my $partition (@partitions) {
 
     # Mount each partition in turn, and if mountable, do a statvfs on it.
     foreach my $partition (@partitions) {
-       my %stat;
-       eval {
-           $g->mount_ro ($partition, "/");
-           %stat = $g->statvfs ("/");
-       };
-       if (!$@) {
-           print_stat ($domname, $partition, \%stat);
-       }
-       $g->umount_all ();
+        my %stat;
+        eval {
+            $g->mount_ro ($partition, "/");
+            %stat = $g->statvfs ("/");
+        };
+        if (!$@) {
+            print_stat ($domname, $partition, \%stat);
+        }
+        $g->umount_all ();
     }
 }
 
     }
 }
 
@@ -216,38 +216,38 @@ sub print_stat
     my @cols = ($domname, $partition);
 
     if (!$inodes) {
     my @cols = ($domname, $partition);
 
     if (!$inodes) {
-       my $bsize = $stat->{bsize};     # block size
-       my $blocks = $stat->{blocks};   # total number of blocks
-       my $bfree = $stat->{bfree};     # blocks free (total)
-       my $bavail = $stat->{bavail};   # blocks free (for non-root users)
-
-       my $factor = $bsize / 1024;
-
-       push @cols, $blocks*$factor;    # total 1K blocks
-       push @cols, ($blocks-$bfree)*$factor; # total 1K blocks used
-       push @cols, $bavail*$factor;    # total 1K blocks available
-
-       # XXX %used column comes out different from the native 'df'
-       # program.  Need to check how 'df' calculates this.
-       push @cols, 100.0 - 100.0 * $bavail / $blocks;
-
-       if ($human) {
-           $cols[2] = human_size ($cols[2]);
-           $cols[3] = human_size ($cols[3]);
-           $cols[4] = human_size ($cols[4]);
-       }
+        my $bsize = $stat->{bsize};    # block size
+        my $blocks = $stat->{blocks};  # total number of blocks
+        my $bfree = $stat->{bfree};    # blocks free (total)
+        my $bavail = $stat->{bavail};  # blocks free (for non-root users)
+
+        my $factor = $bsize / 1024;
+
+        push @cols, $blocks*$factor;   # total 1K blocks
+        push @cols, ($blocks-$bfree)*$factor; # total 1K blocks used
+        push @cols, $bavail*$factor;   # total 1K blocks available
+
+        # XXX %used column comes out different from the native 'df'
+        # program.  Need to check how 'df' calculates this.
+        push @cols, 100.0 - 100.0 * $bavail / $blocks;
+
+        if ($human) {
+            $cols[2] = human_size ($cols[2]);
+            $cols[3] = human_size ($cols[3]);
+            $cols[4] = human_size ($cols[4]);
+        }
     } else {
     } else {
-       my $files = $stat->{files};     # total number of inodes
-       my $ffree = $stat->{ffree};     # inodes free (total)
-       my $favail = $stat->{favail};   # inodes free (for non-root users)
+        my $files = $stat->{files};    # total number of inodes
+        my $ffree = $stat->{ffree};    # inodes free (total)
+        my $favail = $stat->{favail};  # inodes free (for non-root users)
 
 
-       push @cols, $files;
-       push @cols, $files-$ffree;
-       push @cols, $ffree;
+        push @cols, $files;
+        push @cols, $files-$ffree;
+        push @cols, $ffree;
 
 
-       # XXX %used column comes out different from the native 'df'
-       # program.  Need to check how 'df' calculates this.
-       push @cols, 100.0 - 100.0 * $favail / $files;
+        # XXX %used column comes out different from the native 'df'
+        # program.  Need to check how 'df' calculates this.
+        push @cols, 100.0 - 100.0 * $favail / $files;
     }
 
     print_cols (@cols);
     }
 
     print_cols (@cols);
@@ -257,42 +257,42 @@ sub print_title
 {
     my @cols = (__"Virtual Machine", __"Filesystem");
     if (!$inodes) {
 {
     my @cols = (__"Virtual Machine", __"Filesystem");
     if (!$inodes) {
-       if (!$human) {
-           push @cols, __"1K-blocks";
-       } else {
-           push @cols, __"Size";
-       }
-       push @cols, __"Used";
-       push @cols, __"Available";
-       push @cols, __"Use%";
+        if (!$human) {
+            push @cols, __"1K-blocks";
+        } else {
+            push @cols, __"Size";
+        }
+        push @cols, __"Used";
+        push @cols, __"Available";
+        push @cols, __"Use%";
     } else {
     } else {
-       push @cols, __"Inodes";
-       push @cols, __"IUsed";
-       push @cols, __"IFree";
-       push @cols, __"IUse%";
+        push @cols, __"Inodes";
+        push @cols, __"IUsed";
+        push @cols, __"IFree";
+        push @cols, __"IUse%";
     }
 
     if (!$csv) {
     }
 
     if (!$csv) {
-       # ignore $cols[0] in this mode
-       printf "%-36s%10s %10s %10s %5s\n",
-         $cols[1], $cols[2], $cols[3], $cols[4], $cols[5];
+        # ignore $cols[0] in this mode
+        printf "%-36s%10s %10s %10s %5s\n",
+          $cols[1], $cols[2], $cols[3], $cols[4], $cols[5];
     } else {
     } else {
-       print (join (",", @cols), "\n");
+        print (join (",", @cols), "\n");
     }
 }
 
 sub print_cols
 {
     if (!$csv) {
     }
 }
 
 sub print_cols
 {
     if (!$csv) {
-       my $label = sprintf "%s:%s", $_[0], $_[1];
+        my $label = sprintf "%s:%s", $_[0], $_[1];
 
 
-       printf ("%-36s", $label);
-       print "\n"," "x36 if length ($label) > 36;
+        printf ("%-36s", $label);
+        print "\n"," "x36 if length ($label) > 36;
 
 
-       my $percent = sprintf "%3.1f%%", $_[5];
-       printf ("%10s %10s %10s %5s\n", $_[2], $_[3], $_[4], $percent);
+        my $percent = sprintf "%3.1f%%", $_[5];
+        printf ("%10s %10s %10s %5s\n", $_[2], $_[3], $_[4], $percent);
     } else {
     } else {
-       printf ("\"%s\",\"%s\",%d,%d,%d,%.1f%%\n", @_);
+        printf ("\"%s\",\"%s\",%d,%d,%d,%.1f%%\n", @_);
     }
 }
 
     }
 }
 
@@ -302,11 +302,11 @@ sub human_size
     local $_ = shift;
 
     if ($_ < 1024) {
     local $_ = shift;
 
     if ($_ < 1024) {
-       sprintf "%dK", $_;
+        sprintf "%dK", $_;
     } elsif ($_ < 1024 * 1024) {
     } elsif ($_ < 1024 * 1024) {
-       sprintf "%.1fM", ($_ / 1024);
+        sprintf "%.1fM", ($_ / 1024);
     } else {
     } else {
-       sprintf "%.1fG", ($_ / 1024 / 1024);
+        sprintf "%.1fG", ($_ / 1024 / 1024);
     }
 }
 
     }
 }
 
index a62660c..2cf3de8 100644 (file)
@@ -89,14 +89,14 @@ main (int argc, char *argv[])
     int j;
     for (j = 0; lvs[j] != NULL; ++j) {
       if (strncmp (lvs[j], "/dev/", 5) == 0 &&
     int j;
     for (j = 0; lvs[j] != NULL; ++j) {
       if (strncmp (lvs[j], "/dev/", 5) == 0 &&
-         strncmp (&lvs[j][5], vgs[i], len) == 0 &&
-         lvs[j][len+5] == '/') {
-       int64_t size;
-       CALL (size = guestfs_blockdev_getsize64 (g, lvs[j]), -1);
-       printf ("<logvol name=\"%s\" size=\"%" PRIi64 "\">\n", lvs[j], size);
-       display_partition (g, lvs[j]);
-       printf ("</logvol>\n");
-       free (lvs[j]);
+          strncmp (&lvs[j][5], vgs[i], len) == 0 &&
+          lvs[j][len+5] == '/') {
+        int64_t size;
+        CALL (size = guestfs_blockdev_getsize64 (g, lvs[j]), -1);
+        printf ("<logvol name=\"%s\" size=\"%" PRIi64 "\">\n", lvs[j], size);
+        display_partition (g, lvs[j]);
+        printf ("</logvol>\n");
+        free (lvs[j]);
       }
     }
 
       }
     }
 
index a9d65a5..f4f1318 100644 (file)
@@ -112,24 +112,24 @@ complete_dest_paths_generator (const char *text, int state)
     if (strs) {                                                                \
       size_t i;                                                                \
       size_t n = count_strings (strs);                                 \
     if (strs) {                                                                \
       size_t i;                                                                \
       size_t n = count_strings (strs);                                 \
-                                                                       \
+                                                                        \
       if ( ! xalloc_oversized (nr_words + n, sizeof (struct word))) {  \
       if ( ! xalloc_oversized (nr_words + n, sizeof (struct word))) {  \
-       struct word *w;                                                 \
-       w = realloc (words, sizeof (struct word) * (nr_words + n));     \
-                                                                       \
-       if (w == NULL) {                                                \
-         free_words (words, nr_words);                                 \
-         words = NULL;                                                 \
-         nr_words = 0;                                                 \
-       } else {                                                        \
-         words = w;                                                    \
-         for (i = 0; i < n; ++i) {                                     \
-           words[nr_words].name = strs[i];                             \
-           words[nr_words].is_dir = 0;                                 \
-           nr_words++;                                                 \
-                                                                     \
-                                                                     \
-       free (strs);                                                    \
+        struct word *w;                                                        \
+        w = realloc (words, sizeof (struct word) * (nr_words + n));    \
+                                                                        \
+        if (w == NULL) {                                               \
+          free_words (words, nr_words);                                        \
+          words = NULL;                                                        \
+          nr_words = 0;                                                        \
+        } else {                                                       \
+          words = w;                                                   \
+          for (i = 0; i < n; ++i) {                                    \
+            words[nr_words].name = strs[i];                            \
+            words[nr_words].is_dir = 0;                                        \
+            nr_words++;                                                        \
+          }                                                            \
+        }                                                              \
+        free (strs);                                                   \
       }                                                                        \
     }                                                                  \
   } while (0)
       }                                                                        \
     }                                                                  \
   } while (0)
@@ -157,46 +157,46 @@ complete_dest_paths_generator (const char *text, int state)
       p = strrchr (text, '/');
       dir = p && p > text ? strndup (text, p - text) : strdup ("/");
       if (dir) {
       p = strrchr (text, '/');
       dir = p && p > text ? strndup (text, p - text) : strdup ("/");
       if (dir) {
-       dirents = guestfs_readdir (g, dir);
-
-       /* Prepend directory to names before adding them to the list
-        * of words.
-        */
-       if (dirents) {
-         size_t i;
-
-         for (i = 0; i < dirents->len; ++i) {
-           int err;
-
-           if (strcmp (dirents->val[i].name, ".") != 0 &&
-               strcmp (dirents->val[i].name, "..") != 0) {
-             if (strcmp (dir, "/") == 0)
-               err = asprintf (&p, "/%s", dirents->val[i].name);
-             else
-               err = asprintf (&p, "%s/%s", dir, dirents->val[i].name);
-             if (err >= 0) {
-               if (!xalloc_oversized (nr_words+1, sizeof (struct word))) {
-                 struct word *w;
-
-                 w = realloc (words, sizeof (struct word) * (nr_words+1));
-                 if (w == NULL) {
-                   free_words (words, nr_words);
-                   words = NULL;
-                   nr_words = 0;
-                 }
-                 else {
-                   words = w;
-                   words[nr_words].name = p;
-                   words[nr_words].is_dir = dirents->val[i].ftyp == 'd';
-                   nr_words++;
-                 }
-               }
-             }
-           }
-         }
-
-         guestfs_free_dirent_list (dirents);
-       }
+        dirents = guestfs_readdir (g, dir);
+
+        /* Prepend directory to names before adding them to the list
+         * of words.
+         */
+        if (dirents) {
+          size_t i;
+
+          for (i = 0; i < dirents->len; ++i) {
+            int err;
+
+            if (strcmp (dirents->val[i].name, ".") != 0 &&
+                strcmp (dirents->val[i].name, "..") != 0) {
+              if (strcmp (dir, "/") == 0)
+                err = asprintf (&p, "/%s", dirents->val[i].name);
+              else
+                err = asprintf (&p, "%s/%s", dir, dirents->val[i].name);
+              if (err >= 0) {
+                if (!xalloc_oversized (nr_words+1, sizeof (struct word))) {
+                  struct word *w;
+
+                  w = realloc (words, sizeof (struct word) * (nr_words+1));
+                  if (w == NULL) {
+                    free_words (words, nr_words);
+                    words = NULL;
+                    nr_words = 0;
+                  }
+                  else {
+                    words = w;
+                    words[nr_words].name = p;
+                    words[nr_words].is_dir = dirents->val[i].ftyp == 'd';
+                    nr_words++;
+                  }
+                }
+              }
+            }
+          }
+
+          guestfs_free_dirent_list (dirents);
+        }
       }
     }
 
       }
     }
 
@@ -219,7 +219,7 @@ complete_dest_paths_generator (const char *text, int state)
 
     if (strncasecmp (word->name, text, len) == 0) {
       if (word->is_dir)
 
     if (strncasecmp (word->name, text, len) == 0) {
       if (word->is_dir)
-       rl_completion_append_character = '/';
+        rl_completion_append_character = '/';
 
       return strdup (word->name);
     }
 
       return strdup (word->name);
     }
index b0d123d..f245de1 100644 (file)
@@ -91,36 +91,36 @@ static void
 usage (void)
 {
   fprintf (stderr,
 usage (void)
 {
   fprintf (stderr,
-          _("guestfish: guest filesystem shell\n"
-            "guestfish lets you edit virtual machine filesystems\n"
-            "Copyright (C) 2009 Red Hat Inc.\n"
-            "Usage:\n"
-            "  guestfish [--options] cmd [: cmd : cmd ...]\n"
-            "  guestfish -i libvirt-domain\n"
-            "  guestfish -i disk-image(s)\n"
-            "or for interactive use:\n"
-            "  guestfish\n"
-            "or from a shell script:\n"
-            "  guestfish <<EOF\n"
-            "  cmd\n"
-            "  ...\n"
-            "  EOF\n"
-            "Options:\n"
-            "  -h|--cmd-help        List available commands\n"
-            "  -h|--cmd-help cmd    Display detailed help on 'cmd'\n"
-            "  -a|--add image       Add image\n"
-            "  -D|--no-dest-paths   Don't tab-complete paths from guest fs\n"
-            "  -f|--file file       Read commands from file\n"
-            "  -i|--inspector       Run virt-inspector to get disk mountpoints\n"
-            "  --listen             Listen for remote commands\n"
-            "  -m|--mount dev[:mnt] Mount dev on mnt (if omitted, /)\n"
-            "  -n|--no-sync         Don't autosync\n"
-            "  --remote[=pid]       Send commands to remote guestfish\n"
-            "  -r|--ro              Mount read-only\n"
-            "  -v|--verbose         Verbose messages\n"
-            "  -x                   Echo each command before executing it\n"
-            "  -V|--version         Display version and exit\n"
-            "For more information,  see the manpage guestfish(1).\n"));
+           _("guestfish: guest filesystem shell\n"
+             "guestfish lets you edit virtual machine filesystems\n"
+             "Copyright (C) 2009 Red Hat Inc.\n"
+             "Usage:\n"
+             "  guestfish [--options] cmd [: cmd : cmd ...]\n"
+             "  guestfish -i libvirt-domain\n"
+             "  guestfish -i disk-image(s)\n"
+             "or for interactive use:\n"
+             "  guestfish\n"
+             "or from a shell script:\n"
+             "  guestfish <<EOF\n"
+             "  cmd\n"
+             "  ...\n"
+             "  EOF\n"
+             "Options:\n"
+             "  -h|--cmd-help        List available commands\n"
+             "  -h|--cmd-help cmd    Display detailed help on 'cmd'\n"
+             "  -a|--add image       Add image\n"
+             "  -D|--no-dest-paths   Don't tab-complete paths from guest fs\n"
+             "  -f|--file file       Read commands from file\n"
+             "  -i|--inspector       Run virt-inspector to get disk mountpoints\n"
+             "  --listen             Listen for remote commands\n"
+             "  -m|--mount dev[:mnt] Mount dev on mnt (if omitted, /)\n"
+             "  -n|--no-sync         Don't autosync\n"
+             "  --remote[=pid]       Send commands to remote guestfish\n"
+             "  -r|--ro              Mount read-only\n"
+             "  -v|--verbose         Verbose messages\n"
+             "  -x                   Echo each command before executing it\n"
+             "  -V|--version         Display version and exit\n"
+             "For more information,  see the manpage guestfish(1).\n"));
 }
 
 int
 }
 
 int
@@ -191,31 +191,31 @@ main (int argc, char *argv[])
     switch (c) {
     case 0:                    /* options which are long only */
       if (strcmp (long_options[option_index].name, "listen") == 0)
     switch (c) {
     case 0:                    /* options which are long only */
       if (strcmp (long_options[option_index].name, "listen") == 0)
-       remote_control_listen = 1;
+        remote_control_listen = 1;
       else if (strcmp (long_options[option_index].name, "remote") == 0) {
       else if (strcmp (long_options[option_index].name, "remote") == 0) {
-       if (optarg) {
-         if (sscanf (optarg, "%d", &remote_control) != 1) {
-           fprintf (stderr, _("guestfish: --listen=PID: PID was not a number: %s\n"), optarg);
-           exit (1);
-         }
-       } else {
-         p = getenv ("GUESTFISH_PID");
-         if (!p || sscanf (p, "%d", &remote_control) != 1) {
-           fprintf (stderr, _("guestfish: remote: $GUESTFISH_PID must be set to the PID of the remote process\n"));
-           exit (1);
-         }
-       }
+        if (optarg) {
+          if (sscanf (optarg, "%d", &remote_control) != 1) {
+            fprintf (stderr, _("guestfish: --listen=PID: PID was not a number: %s\n"), optarg);
+            exit (1);
+          }
+        } else {
+          p = getenv ("GUESTFISH_PID");
+          if (!p || sscanf (p, "%d", &remote_control) != 1) {
+            fprintf (stderr, _("guestfish: remote: $GUESTFISH_PID must be set to the PID of the remote process\n"));
+            exit (1);
+          }
+        }
       } else {
       } else {
-       fprintf (stderr, _("guestfish: unknown long option: %s (%d)\n"),
-                long_options[option_index].name, option_index);
-       exit (1);
+        fprintf (stderr, _("guestfish: unknown long option: %s (%d)\n"),
+                 long_options[option_index].name, option_index);
+        exit (1);
       }
       break;
 
     case 'a':
       if (access (optarg, R_OK) != 0) {
       }
       break;
 
     case 'a':
       if (access (optarg, R_OK) != 0) {
-       perror (optarg);
-       exit (1);
+        perror (optarg);
+        exit (1);
       }
       drv = malloc (sizeof (struct drv));
       if (!drv) {
       }
       drv = malloc (sizeof (struct drv));
       if (!drv) {
@@ -233,19 +233,19 @@ main (int argc, char *argv[])
 
     case 'f':
       if (file) {
 
     case 'f':
       if (file) {
-       fprintf (stderr, _("guestfish: only one -f parameter can be given\n"));
-       exit (1);
+        fprintf (stderr, _("guestfish: only one -f parameter can be given\n"));
+        exit (1);
       }
       file = optarg;
       break;
 
     case 'h':
       if (optarg)
       }
       file = optarg;
       break;
 
     case 'h':
       if (optarg)
-       display_command (optarg);
+        display_command (optarg);
       else if (argv[optind] && argv[optind][0] != '-')
       else if (argv[optind] && argv[optind][0] != '-')
-       display_command (argv[optind++]);
+        display_command (argv[optind++]);
       else
       else
-       list_commands ();
+        list_commands ();
       exit (0);
 
     case 'i':
       exit (0);
 
     case 'i':
@@ -255,15 +255,15 @@ main (int argc, char *argv[])
     case 'm':
       mp = malloc (sizeof (struct mp));
       if (!mp) {
     case 'm':
       mp = malloc (sizeof (struct mp));
       if (!mp) {
-       perror ("malloc");
-       exit (1);
+        perror ("malloc");
+        exit (1);
       }
       p = strchr (optarg, ':');
       if (p) {
       }
       p = strchr (optarg, ':');
       if (p) {
-       *p = '\0';
-       mp->mountpoint = p+1;
+        *p = '\0';
+        mp->mountpoint = p+1;
       } else
       } else
-       mp->mountpoint = "/";
+        mp->mountpoint = "/";
       mp->device = optarg;
       mp->next = mps;
       mps = mp;
       mp->device = optarg;
       mp->next = mps;
       mps = mp;
@@ -296,7 +296,7 @@ main (int argc, char *argv[])
 
     default:
       fprintf (stderr, _("guestfish: unexpected command line option 0x%x\n"),
 
     default:
       fprintf (stderr, _("guestfish: unexpected command line option 0x%x\n"),
-              c);
+               c);
       exit (1);
     }
   }
       exit (1);
     }
   }
@@ -318,9 +318,9 @@ main (int argc, char *argv[])
     strcpy (cmd, "a=`virt-inspector");
     while (optind < argc) {
       if (strlen (cmd) + strlen (argv[optind]) + strlen (argv[0]) + 60
     strcpy (cmd, "a=`virt-inspector");
     while (optind < argc) {
       if (strlen (cmd) + strlen (argv[optind]) + strlen (argv[0]) + 60
-         >= sizeof cmd) {
-       fprintf (stderr, _("guestfish: virt-inspector command too long for fixed-size buffer\n"));
-       exit (1);
+          >= sizeof cmd) {
+        fprintf (stderr, _("guestfish: virt-inspector command too long for fixed-size buffer\n"));
+        exit (1);
       }
       strcat (cmd, " '");
       strcat (cmd, argv[optind]);
       }
       strcat (cmd, " '");
       strcat (cmd, argv[optind]);
@@ -342,7 +342,7 @@ main (int argc, char *argv[])
 
     if (verbose)
       fprintf (stderr,
 
     if (verbose)
       fprintf (stderr,
-              "guestfish -i: running virt-inspector command:\n%s\n", cmd);
+               "guestfish -i: running virt-inspector command:\n%s\n", cmd);
 
     r = system (cmd);
     if (r == -1) {
 
     r = system (cmd);
     if (r == -1) {
@@ -518,12 +518,12 @@ script (int prompt)
 
   if (prompt)
     printf (_("\n"
 
   if (prompt)
     printf (_("\n"
-             "Welcome to guestfish, the libguestfs filesystem interactive shell for\n"
-             "editing virtual machine filesystems.\n"
-             "\n"
-             "Type: 'help' for help with commands\n"
-             "      'quit' to quit the shell\n"
-             "\n"));
+              "Welcome to guestfish, the libguestfs filesystem interactive shell for\n"
+              "editing virtual machine filesystems.\n"
+              "\n"
+              "Type: 'help' for help with commands\n"
+              "      'quit' to quit the shell\n"
+              "\n"));
 
   while (!quit) {
     char *pipe = NULL;
 
   while (!quit) {
     char *pipe = NULL;
@@ -552,11 +552,11 @@ script (int prompt)
 
       r = system (buf+1);
       if (exit_on_error) {
 
       r = system (buf+1);
       if (exit_on_error) {
-       if (r == -1 ||
-           (WIFSIGNALED (r) &&
-            (WTERMSIG (r) == SIGINT || WTERMSIG (r) == SIGQUIT)) ||
-           WEXITSTATUS (r) != 0)
-         exit (1);
+        if (r == -1 ||
+            (WIFSIGNALED (r) &&
+             (WTERMSIG (r) == SIGINT || WTERMSIG (r) == SIGQUIT)) ||
+            WEXITSTATUS (r) != 0)
+          exit (1);
       }
       continue;
     }
       }
       continue;
     }
@@ -594,88 +594,88 @@ script (int prompt)
        * specially.  Bare parameters are delimited by whitespace.
        */
       if (*p == '"') {
        * specially.  Bare parameters are delimited by whitespace.
        */
       if (*p == '"') {
-       p++;
-       len = strcspn (p, "\"");
-       if (p[len] == '\0') {
-         fprintf (stderr, _("guestfish: unterminated double quote\n"));
-         if (exit_on_error) exit (1);
-         goto next_command;
-       }
-       if (p[len+1] && (p[len+1] != ' ' && p[len+1] != '\t')) {
-         fprintf (stderr, _("guestfish: command arguments not separated by whitespace\n"));
-         if (exit_on_error) exit (1);
-         goto next_command;
-       }
-       p[len] = '\0';
-       pend = p[len+1] ? &p[len+2] : &p[len+1];
+        p++;
+        len = strcspn (p, "\"");
+        if (p[len] == '\0') {
+          fprintf (stderr, _("guestfish: unterminated double quote\n"));
+          if (exit_on_error) exit (1);
+          goto next_command;
+        }
+        if (p[len+1] && (p[len+1] != ' ' && p[len+1] != '\t')) {
+          fprintf (stderr, _("guestfish: command arguments not separated by whitespace\n"));
+          if (exit_on_error) exit (1);
+          goto next_command;
+        }
+        p[len] = '\0';
+        pend = p[len+1] ? &p[len+2] : &p[len+1];
       } else if (*p == '\'') {
       } else if (*p == '\'') {
-       p++;
-       len = strcspn (p, "'");
-       if (p[len] == '\0') {
-         fprintf (stderr, _("guestfish: unterminated single quote\n"));
-         if (exit_on_error) exit (1);
-         goto next_command;
-       }
-       if (p[len+1] && (p[len+1] != ' ' && p[len+1] != '\t')) {
-         fprintf (stderr, _("guestfish: command arguments not separated by whitespace\n"));
-         if (exit_on_error) exit (1);
-         goto next_command;
-       }
-       p[len] = '\0';
-       pend = p[len+1] ? &p[len+2] : &p[len+1];
+        p++;
+        len = strcspn (p, "'");
+        if (p[len] == '\0') {
+          fprintf (stderr, _("guestfish: unterminated single quote\n"));
+          if (exit_on_error) exit (1);
+          goto next_command;
+        }
+        if (p[len+1] && (p[len+1] != ' ' && p[len+1] != '\t')) {
+          fprintf (stderr, _("guestfish: command arguments not separated by whitespace\n"));
+          if (exit_on_error) exit (1);
+          goto next_command;
+        }
+        p[len] = '\0';
+        pend = p[len+1] ? &p[len+2] : &p[len+1];
       } else if (*p == '|') {
       } else if (*p == '|') {
-       *p = '\0';
-       pipe = p+1;
-       continue;
-       /*
+        *p = '\0';
+        pipe = p+1;
+        continue;
+        /*
       } else if (*p == '[') {
       } else if (*p == '[') {
-       int c = 1;
-       p++;
-       pend = p;
-       while (*pend && c != 0) {
-         if (*pend == '[') c++;
-         else if (*pend == ']') c--;
-         pend++;
-       }
-       if (c != 0) {
-         fprintf (stderr, _("guestfish: unterminated \"[...]\" sequence\n"));
-         if (exit_on_error) exit (1);
-         goto next_command;
-       }
-       if (*pend && (*pend != ' ' && *pend != '\t')) {
-         fprintf (stderr, _("guestfish: command arguments not separated by whitespace\n"));
-         if (exit_on_error) exit (1);
-         goto next_command;
-       }
-       *(pend-1) = '\0';
-       */
+        int c = 1;
+        p++;
+        pend = p;
+        while (*pend && c != 0) {
+          if (*pend == '[') c++;
+          else if (*pend == ']') c--;
+          pend++;
+        }
+        if (c != 0) {
+          fprintf (stderr, _("guestfish: unterminated \"[...]\" sequence\n"));
+          if (exit_on_error) exit (1);
+          goto next_command;
+        }
+        if (*pend && (*pend != ' ' && *pend != '\t')) {
+          fprintf (stderr, _("guestfish: command arguments not separated by whitespace\n"));
+          if (exit_on_error) exit (1);
+          goto next_command;
+        }
+        *(pend-1) = '\0';
+        */
       } else if (*p != ' ' && *p != '\t') {
       } else if (*p != ' ' && *p != '\t') {
-       /* If the first character is a ~ then note that this parameter
-        * is a candidate for ~username expansion.  NB this does not
-        * apply to quoted parameters.
-        */
-       tilde_candidate = *p == '~';
-       len = strcspn (p, " \t");
-       if (p[len]) {
-         p[len] = '\0';
-         pend = &p[len+1];
-       } else
-         pend = &p[len];
+        /* If the first character is a ~ then note that this parameter
+         * is a candidate for ~username expansion.  NB this does not
+         * apply to quoted parameters.
+         */
+        tilde_candidate = *p == '~';
+        len = strcspn (p, " \t");
+        if (p[len]) {
+          p[len] = '\0';
+          pend = &p[len+1];
+        } else
+          pend = &p[len];
       } else {
       } else {
-       fprintf (stderr, _("guestfish: internal error parsing string at '%s'\n"),
-                p);
-       abort ();
+        fprintf (stderr, _("guestfish: internal error parsing string at '%s'\n"),
+                 p);
+        abort ();
       }
 
       if (!tilde_candidate)
       }
 
       if (!tilde_candidate)
-       argv[i] = p;
+        argv[i] = p;
       else
       else
-       argv[i] = try_tilde_expansion (p);
+        argv[i] = try_tilde_expansion (p);
       i++;
       p = pend;
 
       if (*p)
       i++;
       p = pend;
 
       if (*p)
-       p += strspn (p, " \t");
+        p += strspn (p, " \t");
     }
 
     if (i == sizeof argv / sizeof argv[0]) {
     }
 
     if (i == sizeof argv / sizeof argv[0]) {
@@ -759,8 +759,8 @@ issue_command (const char *cmd, char *argv[], const char *pipecmd)
 
       r = system (pipecmd);
       if (r == -1) {
 
       r = system (pipecmd);
       if (r == -1) {
-       perror (pipecmd);
-       _exit (1);
+        perror (pipecmd);
+        _exit (1);
       }
       _exit (WEXITSTATUS (r));
     }
       }
       _exit (WEXITSTATUS (r));
     }
@@ -787,26 +787,26 @@ issue_command (const char *cmd, char *argv[], const char *pipecmd)
     r = 0;
   }
   else if (strcasecmp (cmd, "quit") == 0 ||
     r = 0;
   }
   else if (strcasecmp (cmd, "quit") == 0 ||
-          strcasecmp (cmd, "exit") == 0 ||
-          strcasecmp (cmd, "q") == 0) {
+           strcasecmp (cmd, "exit") == 0 ||
+           strcasecmp (cmd, "q") == 0) {
     quit = 1;
     r = 0;
   }
   else if (strcasecmp (cmd, "alloc") == 0 ||
     quit = 1;
     r = 0;
   }
   else if (strcasecmp (cmd, "alloc") == 0 ||
-          strcasecmp (cmd, "allocate") == 0)
+           strcasecmp (cmd, "allocate") == 0)
     r = do_alloc (cmd, argc, argv);
   else if (strcasecmp (cmd, "echo") == 0)
     r = do_echo (cmd, argc, argv);
   else if (strcasecmp (cmd, "edit") == 0 ||
     r = do_alloc (cmd, argc, argv);
   else if (strcasecmp (cmd, "echo") == 0)
     r = do_echo (cmd, argc, argv);
   else if (strcasecmp (cmd, "edit") == 0 ||
-          strcasecmp (cmd, "vi") == 0 ||
-          strcasecmp (cmd, "emacs") == 0)
+           strcasecmp (cmd, "vi") == 0 ||
+           strcasecmp (cmd, "emacs") == 0)
     r = do_edit (cmd, argc, argv);
   else if (strcasecmp (cmd, "lcd") == 0)
     r = do_lcd (cmd, argc, argv);
   else if (strcasecmp (cmd, "glob") == 0)
     r = do_glob (cmd, argc, argv);
   else if (strcasecmp (cmd, "more") == 0 ||
     r = do_edit (cmd, argc, argv);
   else if (strcasecmp (cmd, "lcd") == 0)
     r = do_lcd (cmd, argc, argv);
   else if (strcasecmp (cmd, "glob") == 0)
     r = do_glob (cmd, argc, argv);
   else if (strcasecmp (cmd, "more") == 0 ||
-          strcasecmp (cmd, "less") == 0)
+           strcasecmp (cmd, "less") == 0)
     r = do_more (cmd, argc, argv);
   else if (strcasecmp (cmd, "reopen") == 0)
     r = do_reopen (cmd, argc, argv);
     r = do_more (cmd, argc, argv);
   else if (strcasecmp (cmd, "reopen") == 0)
     r = do_reopen (cmd, argc, argv);
@@ -835,26 +835,26 @@ list_builtin_commands (void)
 {
   /* help and quit should appear at the top */
   printf ("%-20s %s\n",
 {
   /* help and quit should appear at the top */
   printf ("%-20s %s\n",
-         "help", _("display a list of commands or help on a command"));
+          "help", _("display a list of commands or help on a command"));
   printf ("%-20s %s\n",
   printf ("%-20s %s\n",
-         "quit", _("quit guestfish"));
+          "quit", _("quit guestfish"));
 
   printf ("%-20s %s\n",
 
   printf ("%-20s %s\n",
-         "alloc", _("allocate an image"));
+          "alloc", _("allocate an image"));
   printf ("%-20s %s\n",
   printf ("%-20s %s\n",
-         "echo", _("display a line of text"));
+          "echo", _("display a line of text"));
   printf ("%-20s %s\n",
   printf ("%-20s %s\n",
-         "edit", _("edit a file in the image"));
+          "edit", _("edit a file in the image"));
   printf ("%-20s %s\n",
   printf ("%-20s %s\n",
-         "lcd", _("local change directory"));
+          "lcd", _("local change directory"));
   printf ("%-20s %s\n",
   printf ("%-20s %s\n",
-         "glob", _("expand wildcards in command"));
+          "glob", _("expand wildcards in command"));
   printf ("%-20s %s\n",
   printf ("%-20s %s\n",
-         "more", _("view a file in the pager"));
+          "more", _("view a file in the pager"));
   printf ("%-20s %s\n",
   printf ("%-20s %s\n",
-         "reopen", _("close and reopen libguestfs handle"));
+          "reopen", _("close and reopen libguestfs handle"));
   printf ("%-20s %s\n",
   printf ("%-20s %s\n",
-         "time", _("measure time taken to run command"));
+          "time", _("measure time taken to run command"));
 
   /* actions are printed after this (see list_commands) */
 }
 
   /* actions are printed after this (see list_commands) */
 }
@@ -867,95 +867,95 @@ display_builtin_command (const char *cmd)
   if (strcasecmp (cmd, "alloc") == 0 ||
       strcasecmp (cmd, "allocate") == 0)
     printf (_("alloc - allocate an image\n"
   if (strcasecmp (cmd, "alloc") == 0 ||
       strcasecmp (cmd, "allocate") == 0)
     printf (_("alloc - allocate an image\n"
-             "     alloc <filename> <size>\n"
-             "\n"
-             "    This creates an empty (zeroed) file of the given size,\n"
-             "    and then adds so it can be further examined.\n"
-             "\n"
-             "    For more advanced image creation, see qemu-img utility.\n"
-             "\n"
-             "    Size can be specified (where <nn> means a number):\n"
-             "    <nn>             number of kilobytes\n"
-             "      eg: 1440       standard 3.5\" floppy\n"
-             "    <nn>K or <nn>KB  number of kilobytes\n"
-             "    <nn>M or <nn>MB  number of megabytes\n"
-             "    <nn>G or <nn>GB  number of gigabytes\n"
-             "    <nn>sects        number of 512 byte sectors\n"));
+              "     alloc <filename> <size>\n"
+              "\n"
+              "    This creates an empty (zeroed) file of the given size,\n"
+              "    and then adds so it can be further examined.\n"
+              "\n"
+              "    For more advanced image creation, see qemu-img utility.\n"
+              "\n"
+              "    Size can be specified (where <nn> means a number):\n"
+              "    <nn>             number of kilobytes\n"
+              "      eg: 1440       standard 3.5\" floppy\n"
+              "    <nn>K or <nn>KB  number of kilobytes\n"
+              "    <nn>M or <nn>MB  number of megabytes\n"
+              "    <nn>G or <nn>GB  number of gigabytes\n"
+              "    <nn>sects        number of 512 byte sectors\n"));
   else if (strcasecmp (cmd, "echo") == 0)
     printf (_("echo - display a line of text\n"
   else if (strcasecmp (cmd, "echo") == 0)
     printf (_("echo - display a line of text\n"
-             "     echo [<params> ...]\n"
-             "\n"
-             "    This echos the parameters to the terminal.\n"));
+              "     echo [<params> ...]\n"
+              "\n"
+              "    This echos the parameters to the terminal.\n"));
   else if (strcasecmp (cmd, "edit") == 0 ||
   else if (strcasecmp (cmd, "edit") == 0 ||
-          strcasecmp (cmd, "vi") == 0 ||
-          strcasecmp (cmd, "emacs") == 0)
+           strcasecmp (cmd, "vi") == 0 ||
+           strcasecmp (cmd, "emacs") == 0)
     printf (_("edit - edit a file in the image\n"
     printf (_("edit - edit a file in the image\n"
-             "     edit <filename>\n"
-             "\n"
-             "    This is used to edit a file.\n"
-             "\n"
-             "    It is the equivalent of (and is implemented by)\n"
-             "    running \"cat\", editing locally, and then \"write-file\".\n"
-             "\n"
-             "    Normally it uses $EDITOR, but if you use the aliases\n"
-             "    \"vi\" or \"emacs\" you will get those editors.\n"
-             "\n"
-             "    NOTE: This will not work reliably for large files\n"
-             "    (> 2 MB) or binary files containing \\0 bytes.\n"));
+              "     edit <filename>\n"
+              "\n"
+              "    This is used to edit a file.\n"
+              "\n"
+              "    It is the equivalent of (and is implemented by)\n"
+              "    running \"cat\", editing locally, and then \"write-file\".\n"
+              "\n"
+              "    Normally it uses $EDITOR, but if you use the aliases\n"
+              "    \"vi\" or \"emacs\" you will get those editors.\n"
+              "\n"
+              "    NOTE: This will not work reliably for large files\n"
+              "    (> 2 MB) or binary files containing \\0 bytes.\n"));
   else if (strcasecmp (cmd, "lcd") == 0)
     printf (_("lcd - local change directory\n"
   else if (strcasecmp (cmd, "lcd") == 0)
     printf (_("lcd - local change directory\n"
-             "    lcd <directory>\n"
-             "\n"
-             "    Change guestfish's current directory. This command is\n"
-             "    useful if you want to download files to a particular\n"
-             "    place.\n"));
+              "    lcd <directory>\n"
+              "\n"
+              "    Change guestfish's current directory. This command is\n"
+              "    useful if you want to download files to a particular\n"
+              "    place.\n"));
   else if (strcasecmp (cmd, "glob") == 0)
     printf (_("glob - expand wildcards in command\n"
   else if (strcasecmp (cmd, "glob") == 0)
     printf (_("glob - expand wildcards in command\n"
-             "    glob <command> [<args> ...]\n"
-             "\n"
-             "    Glob runs <command> with wildcards expanded in any\n"
-             "    command args.  Note that the command is run repeatedly\n"
-             "    once for each expanded argument.\n"));
+              "    glob <command> [<args> ...]\n"
+              "\n"
+              "    Glob runs <command> with wildcards expanded in any\n"
+              "    command args.  Note that the command is run repeatedly\n"
+              "    once for each expanded argument.\n"));
   else if (strcasecmp (cmd, "help") == 0)
     printf (_("help - display a list of commands or help on a command\n"
   else if (strcasecmp (cmd, "help") == 0)
     printf (_("help - display a list of commands or help on a command\n"
-             "     help cmd\n"
-             "     help\n"));
+              "     help cmd\n"
+              "     help\n"));
   else if (strcasecmp (cmd, "more") == 0 ||
   else if (strcasecmp (cmd, "more") == 0 ||
-          strcasecmp (cmd, "less") == 0)
+           strcasecmp (cmd, "less") == 0)
     printf (_("more - view a file in the pager\n"
     printf (_("more - view a file in the pager\n"
-             "     more <filename>\n"
-             "\n"
-             "    This is used to view a file in the pager.\n"
-             "\n"
-             "    It is the equivalent of (and is implemented by)\n"
-             "    running \"cat\" and using the pager.\n"
-             "\n"
-             "    Normally it uses $PAGER, but if you use the alias\n"
-             "    \"less\" then it always uses \"less\".\n"
-             "\n"
-             "    NOTE: This will not work reliably for large files\n"
-             "    (> 2 MB) or binary files containing \\0 bytes.\n"));
+              "     more <filename>\n"
+              "\n"
+              "    This is used to view a file in the pager.\n"
+              "\n"
+              "    It is the equivalent of (and is implemented by)\n"
+              "    running \"cat\" and using the pager.\n"
+              "\n"
+              "    Normally it uses $PAGER, but if you use the alias\n"
+              "    \"less\" then it always uses \"less\".\n"
+              "\n"
+              "    NOTE: This will not work reliably for large files\n"
+              "    (> 2 MB) or binary files containing \\0 bytes.\n"));
   else if (strcasecmp (cmd, "quit") == 0 ||
   else if (strcasecmp (cmd, "quit") == 0 ||
-          strcasecmp (cmd, "exit") == 0 ||
-          strcasecmp (cmd, "q") == 0)
+           strcasecmp (cmd, "exit") == 0 ||
+           strcasecmp (cmd, "q") == 0)
     printf (_("quit - quit guestfish\n"
     printf (_("quit - quit guestfish\n"
-             "     quit\n"));
+              "     quit\n"));
   else if (strcasecmp (cmd, "reopen") == 0)
     printf (_("reopen - close and reopen the libguestfs handle\n"
   else if (strcasecmp (cmd, "reopen") == 0)
     printf (_("reopen - close and reopen the libguestfs handle\n"
-             "     reopen\n"
-             "\n"
-             "Close and reopen the libguestfs handle.  It is not necessary to use\n"
-             "this normally, because the handle is closed properly when guestfish\n"
-             "exits.  However this is occasionally useful for testing.\n"));
+              "     reopen\n"
+              "\n"
+              "Close and reopen the libguestfs handle.  It is not necessary to use\n"
+              "this normally, because the handle is closed properly when guestfish\n"
+              "exits.  However this is occasionally useful for testing.\n"));
   else if (strcasecmp (cmd, "time") == 0)
     printf (_("time - measure time taken to run command\n"
   else if (strcasecmp (cmd, "time") == 0)
     printf (_("time - measure time taken to run command\n"
-             "    time <command> [<args> ...]\n"
-             "\n"
-             "    This runs <command> as usual, and prints the elapsed\n"
-             "    time afterwards.\n"));
+              "    time <command> [<args> ...]\n"
+              "\n"
+              "    This runs <command> as usual, and prints the elapsed\n"
+              "    time afterwards.\n"));
   else
     fprintf (stderr, _("%s: command not known, use -h to list all commands\n"),
   else
     fprintf (stderr, _("%s: command not known, use -h to list all commands\n"),
-            cmd);
+             cmd);
 }
 
 void
 }
 
 void
index a65fe1b..772d200 100644 (file)
@@ -80,7 +80,7 @@ extern int do_more (const char *cmd, int argc, char *argv[]);
 /* in rc.c (remote control) */
 extern void rc_listen (void);
 extern int rc_remote (int pid, const char *cmd, int argc, char *argv[],
 /* in rc.c (remote control) */
 extern void rc_listen (void);
 extern int rc_remote (int pid, const char *cmd, int argc, char *argv[],
-                     int exit_on_error);
+                      int exit_on_error);
 
 /* in reopen.c */
 extern int do_reopen (const char *cmd, int argc, char *argv[]);
 
 /* in reopen.c */
 extern int do_reopen (const char *cmd, int argc, char *argv[]);
index 581bc28..2731b2f 100644 (file)
@@ -69,46 +69,46 @@ do_glob (const char *cmd, int argc, char *argv[])
     if (argv[i][0] == '/') {
       pp = guestfs_glob_expand (g, argv[i]);
       if (pp == NULL) {                /* real error in glob_expand */
     if (argv[i][0] == '/') {
       pp = guestfs_glob_expand (g, argv[i]);
       if (pp == NULL) {                /* real error in glob_expand */
-       fprintf (stderr, _("glob: guestfs_glob_expand call failed: %s\n"),
-                argv[i]);
-       goto error0;
+        fprintf (stderr, _("glob: guestfs_glob_expand call failed: %s\n"),
+                 argv[i]);
+        goto error0;
       }
 
       /* If there were no matches, then we add a single element list
        * containing just the original argv[i] string.
        */
       if (pp[0] == NULL) {
       }
 
       /* If there were no matches, then we add a single element list
        * containing just the original argv[i] string.
        */
       if (pp[0] == NULL) {
-       char **pp2;
-
-       pp2 = realloc (pp, sizeof (char *) * 2);
-       if (pp2 == NULL) {
-         perror ("realloc");
-         free (pp);
-         goto error0;
-       }
-       pp = pp2;
-
-       pp[0] = strdup (argv[i]);
-       if (pp[0] == NULL) {
-         perror ("strdup");
-         free (pp);
-         goto error0;
-       }
-       pp[1] = NULL;
+        char **pp2;
+
+        pp2 = realloc (pp, sizeof (char *) * 2);
+        if (pp2 == NULL) {
+          perror ("realloc");
+          free (pp);
+          goto error0;
+        }
+        pp = pp2;
+
+        pp[0] = strdup (argv[i]);
+        if (pp[0] == NULL) {
+          perror ("strdup");
+          free (pp);
+          goto error0;
+        }
+        pp[1] = NULL;
       }
     }
     /* Doesn't begin with '/' */
     else {
       pp = malloc (sizeof (char *) * 2);
       if (pp == NULL) {
       }
     }
     /* Doesn't begin with '/' */
     else {
       pp = malloc (sizeof (char *) * 2);
       if (pp == NULL) {
-       perror ("malloc");
-       goto error0;
+        perror ("malloc");
+        goto error0;
       }
       pp[0] = strdup (argv[i]);
       if (pp[0] == NULL) {
       }
       pp[0] = strdup (argv[i]);
       if (pp[0] == NULL) {
-       perror ("strdup");
-       free (pp);
-       goto error0;
+        perror ("strdup");
+        free (pp);
+        goto error0;
       }
       pp[1] = NULL;
     }
       }
       pp[1] = NULL;
     }
@@ -130,8 +130,8 @@ do_glob (const char *cmd, int argc, char *argv[])
 
 static void
 glob_issue (char *cmd, int argc,
 
 static void
 glob_issue (char *cmd, int argc,
-           char ***globs, int *posn, int *count,
-           int *r)
+            char ***globs, int *posn, int *count,
+            int *r)
 {
   int i;
   char *argv[argc+1];
 {
   int i;
   char *argv[argc+1];
index 0d67a62..e88716c 100644 (file)
--- a/fish/rc.c
+++ b/fish/rc.c
@@ -131,52 +131,52 @@ rc_listen (void)
       xdrstdio_create (&xdr, fp, XDR_DECODE);
 
       if (!xdr_guestfish_hello (&xdr, &hello)) {
       xdrstdio_create (&xdr, fp, XDR_DECODE);
 
       if (!xdr_guestfish_hello (&xdr, &hello)) {
-       fprintf (stderr, _("guestfish: protocol error: could not read 'hello' message\n"));
-       goto error;
+        fprintf (stderr, _("guestfish: protocol error: could not read 'hello' message\n"));
+        goto error;
       }
 
       if (strcmp (hello.vers, PACKAGE_VERSION) != 0) {
       }
 
       if (strcmp (hello.vers, PACKAGE_VERSION) != 0) {
-       fprintf (stderr, _("guestfish: protocol error: version mismatch, server version '%s' does not match client version '%s'.  The two versions must match exactly.\n"),
-                PACKAGE_VERSION,
-                hello.vers);
-       xdr_free ((xdrproc_t) xdr_guestfish_hello, (char *) &hello);
-       goto error;
+        fprintf (stderr, _("guestfish: protocol error: version mismatch, server version '%s' does not match client version '%s'.  The two versions must match exactly.\n"),
+                 PACKAGE_VERSION,
+                 hello.vers);
+        xdr_free ((xdrproc_t) xdr_guestfish_hello, (char *) &hello);
+        goto error;
       }
       xdr_free ((xdrproc_t) xdr_guestfish_hello, (char *) &hello);
 
       while (xdr_guestfish_call (&xdr, &call)) {
       }
       xdr_free ((xdrproc_t) xdr_guestfish_hello, (char *) &hello);
 
       while (xdr_guestfish_call (&xdr, &call)) {
-       /* We have to extend and NULL-terminate the argv array. */
-       argc = call.args.args_len;
-       argv = realloc (call.args.args_val, (argc+1) * sizeof (char *));
-       if (argv == NULL) {
-         perror ("realloc");
-         exit (1);
-       }
-       call.args.args_val = argv;
-       argv[argc] = NULL;
-
-       if (verbose) {
-         fprintf (stderr, "guestfish(%d): %s", pid, call.cmd);
-         for (i = 0; i < argc; ++i)
-           fprintf (stderr, " %s", argv[i]);
-         fprintf (stderr, "\n");
-       }
-
-       /* Run the command. */
-       reply.r = issue_command (call.cmd, argv, NULL);
-
-       xdr_free ((xdrproc_t) xdr_guestfish_call, (char *) &call);
-
-       /* Send the reply. */
-       xdrstdio_create (&xdr2, fp, XDR_ENCODE);
-       (void) xdr_guestfish_reply (&xdr2, &reply);
-       xdr_destroy (&xdr2);
-
-       /* Exit on error? */
-       if (call.exit_on_error && reply.r == -1) {
-         unlink (sockpath);
-         exit (1);
-       }
+        /* We have to extend and NULL-terminate the argv array. */
+        argc = call.args.args_len;
+        argv = realloc (call.args.args_val, (argc+1) * sizeof (char *));
+        if (argv == NULL) {
+          perror ("realloc");
+          exit (1);
+        }
+        call.args.args_val = argv;
+        argv[argc] = NULL;
+
+        if (verbose) {
+          fprintf (stderr, "guestfish(%d): %s", pid, call.cmd);
+          for (i = 0; i < argc; ++i)
+            fprintf (stderr, " %s", argv[i]);
+          fprintf (stderr, "\n");
+        }
+
+        /* Run the command. */
+        reply.r = issue_command (call.cmd, argv, NULL);
+
+        xdr_free ((xdrproc_t) xdr_guestfish_call, (char *) &call);
+
+        /* Send the reply. */
+        xdrstdio_create (&xdr2, fp, XDR_ENCODE);
+        (void) xdr_guestfish_reply (&xdr2, &reply);
+        xdr_destroy (&xdr2);
+
+        /* Exit on error? */
+        if (call.exit_on_error && reply.r == -1) {
+          unlink (sockpath);
+          exit (1);
+        }
       }
 
     error:
       }
 
     error:
@@ -192,7 +192,7 @@ rc_listen (void)
 /* Remote control client. */
 int
 rc_remote (int pid, const char *cmd, int argc, char *argv[],
 /* Remote control client. */
 int
 rc_remote (int pid, const char *cmd, int argc, char *argv[],
-          int exit_on_error)
+           int exit_on_error)
 {
   guestfish_hello hello;
   guestfish_call call;
 {
   guestfish_hello hello;
   guestfish_call call;
index 13e6cd8..f0a2259 100644 (file)
@@ -64,8 +64,8 @@ try_tilde_expansion (char *str)
       len = strlen (home) + strlen (rest);
       str = malloc (len);
       if (str == NULL) {
       len = strlen (home) + strlen (rest);
       str = malloc (len);
       if (str == NULL) {
-       perror ("malloc");
-       exit (1);
+        perror ("malloc");
+        exit (1);
       }
       strcpy (str, home);
       strcat (str, rest);
       }
       strcpy (str, home);
       strcat (str, rest);
@@ -113,7 +113,7 @@ find_home_for_username (const char *username, int ulen)
   setpwent ();
   while ((pw = getpwent ()) != NULL) {
     if (strlen (pw->pw_name) == ulen &&
   setpwent ();
   while ((pw = getpwent ()) != NULL) {
     if (strlen (pw->pw_name) == ulen &&
-       strncmp (username, pw->pw_name, ulen) == 0)
+        strncmp (username, pw->pw_name, ulen) == 0)
       return pw->pw_dir;
   }
 
       return pw->pw_dir;
   }
 
index aae9afe..ed00c18 100644 (file)
@@ -47,8 +47,8 @@ do_time (const char *cmd, int argc, char *argv[])
   end_us = (int64_t) end_t.tv_sec * 1000000 + end_t.tv_usec;
   elapsed_us = end_us - start_us;
   printf ("elapsed time: %d.%02d seconds\n",
   end_us = (int64_t) end_t.tv_sec * 1000000 + end_t.tv_usec;
   elapsed_us = end_us - start_us;
   printf ("elapsed time: %d.%02d seconds\n",
-         (int) (elapsed_us / 1000000),
-         (int) ((elapsed_us / 10000) % 100));
+          (int) (elapsed_us / 1000000),
+          (int) ((elapsed_us / 10000) % 100));
 
   return 0;
 }
 
   return 0;
 }
index 17c6375..943f32e 100755 (executable)
@@ -181,19 +181,19 @@ default.
 =cut
 
 GetOptions ("help|?" => \$help,
 =cut
 
 GetOptions ("help|?" => \$help,
-           "version" => \$version,
-           "connect|c=s" => \$uri,
-           "text" => sub { $output = "text" },
-           "none" => sub { $output = "none" },
-           "xml" => sub { $output = "xml" },
-           "yaml" => sub { $output = "yaml" },
-           "perl" => sub { $output = "perl" },
-           "fish" => sub { $output = "fish" },
-           "guestfish" => sub { $output = "fish" },
-           "ro-fish" => sub { $output = "ro-fish" },
-           "ro-guestfish" => sub { $output = "ro-fish" },
-           "query" => sub { $output = "query" },
-           "windows-registry" => \$windows_registry,
+            "version" => \$version,
+            "connect|c=s" => \$uri,
+            "text" => sub { $output = "text" },
+            "none" => sub { $output = "none" },
+            "xml" => sub { $output = "xml" },
+            "yaml" => sub { $output = "yaml" },
+            "perl" => sub { $output = "perl" },
+            "fish" => sub { $output = "fish" },
+            "guestfish" => sub { $output = "fish" },
+            "ro-fish" => sub { $output = "ro-fish" },
+            "ro-guestfish" => sub { $output = "ro-fish" },
+            "query" => sub { $output = "query" },
+            "windows-registry" => \$windows_registry,
     ) or pod2usage (2);
 pod2usage (1) if $help;
 if ($version) {
     ) or pod2usage (2);
 pod2usage (1) if $help;
 if ($version) {
@@ -211,11 +211,11 @@ my @images;
 if ($uri) {
     my ($conn, $dom);
     ($g, $conn, $dom, @images) =
 if ($uri) {
     my ($conn, $dom);
     ($g, $conn, $dom, @images) =
-       open_guest (\@ARGV, rw => $rw, address => $uri);
+        open_guest (\@ARGV, rw => $rw, address => $uri);
 } else {
     my ($conn, $dom);
     ($g, $conn, $dom, @images) =
 } else {
     my ($conn, $dom);
     ($g, $conn, $dom, @images) =
-       open_guest (\@ARGV, rw => $rw);
+        open_guest (\@ARGV, rw => $rw);
 }
 
 $g->launch ();
 }
 
 $g->launch ();
@@ -286,10 +286,10 @@ my $oses = inspect_operating_systems ($g, \%fses);
 if ($output !~ /.*fish$/) {
     my $root_dev;
     foreach $root_dev (sort keys %$oses) {
 if ($output !~ /.*fish$/) {
     my $root_dev;
     foreach $root_dev (sort keys %$oses) {
-       my $os = $oses->{$root_dev};
-       mount_operating_system ($g, $os);
-       inspect_in_detail ($g, $os);
-       $g->umount_all ();
+        my $os = $oses->{$root_dev};
+        mount_operating_system ($g, $os);
+        inspect_in_detail ($g, $os);
+        $g->umount_all ();
     }
 }
 
     }
 }
 
@@ -304,7 +304,7 @@ if ($output eq "fish" || $output eq "ro-fish") {
     my $root_dev = $osdevs[0];
 
     if ($output eq "ro-fish") {
     my $root_dev = $osdevs[0];
 
     if ($output eq "ro-fish") {
-       print "--ro ";
+        print "--ro ";
     }
 
     print "-a $_ " foreach @images;
     }
 
     print "-a $_ " foreach @images;
@@ -313,7 +313,7 @@ if ($output eq "fish" || $output eq "ro-fish") {
     # Have to mount / first.  Luckily '/' is early in the ASCII
     # character set, so this should be OK.
     foreach (sort keys %$mounts) {
     # Have to mount / first.  Luckily '/' is early in the ASCII
     # character set, so this should be OK.
     foreach (sort keys %$mounts) {
-       print "-m $mounts->{$_}:$_ " if $_ ne "swap" && $_ ne "none";
+        print "-m $mounts->{$_}:$_ " if $_ ne "swap" && $_ ne "none";
     }
     print "\n"
 }
     }
     print "\n"
 }
@@ -326,7 +326,7 @@ elsif ($output eq "perl") {
 # YAML output
 elsif ($output eq "yaml") {
     die __"virt-inspector: no YAML support\n"
 # YAML output
 elsif ($output eq "yaml") {
     die __"virt-inspector: no YAML support\n"
-       unless exists $INC{"YAML/Any.pm"};
+        unless exists $INC{"YAML/Any.pm"};
 
     print Dump(%$oses);
 }
 
     print Dump(%$oses);
 }
@@ -366,69 +366,69 @@ sub output_text_os
     print __"  Mountpoints:\n";
     my $mounts = $os->{mounts};
     foreach (sort keys %$mounts) {
     print __"  Mountpoints:\n";
     my $mounts = $os->{mounts};
     foreach (sort keys %$mounts) {
-       printf "    %-30s %s\n", $mounts->{$_}, $_
+        printf "    %-30s %s\n", $mounts->{$_}, $_
     }
 
     print __"  Filesystems:\n";
     my $filesystems = $os->{filesystems};
     foreach (sort keys %$filesystems) {
     }
 
     print __"  Filesystems:\n";
     my $filesystems = $os->{filesystems};
     foreach (sort keys %$filesystems) {
-       print "    $_:\n";
-       print "      label: $filesystems->{$_}{label}\n"
-           if exists $filesystems->{$_}{label};
-       print "      UUID: $filesystems->{$_}{uuid}\n"
-           if exists $filesystems->{$_}{uuid};
-       print "      type: $filesystems->{$_}{fstype}\n"
-           if exists $filesystems->{$_}{fstype};
-       print "      content: $filesystems->{$_}{content}\n"
-           if exists $filesystems->{$_}{content};
+        print "    $_:\n";
+        print "      label: $filesystems->{$_}{label}\n"
+            if exists $filesystems->{$_}{label};
+        print "      UUID: $filesystems->{$_}{uuid}\n"
+            if exists $filesystems->{$_}{uuid};
+        print "      type: $filesystems->{$_}{fstype}\n"
+            if exists $filesystems->{$_}{fstype};
+        print "      content: $filesystems->{$_}{content}\n"
+            if exists $filesystems->{$_}{content};
     }
 
     if (exists $os->{modprobe_aliases}) {
     }
 
     if (exists $os->{modprobe_aliases}) {
-       my %aliases = %{$os->{modprobe_aliases}};
-       my @keys = sort keys %aliases;
-       if (@keys) {
-           print __"  Modprobe aliases:\n";
-           foreach (@keys) {
-               printf "    %-30s %s\n", $_, $aliases{$_}->{modulename}
-           }
-       }
+        my %aliases = %{$os->{modprobe_aliases}};
+        my @keys = sort keys %aliases;
+        if (@keys) {
+            print __"  Modprobe aliases:\n";
+            foreach (@keys) {
+                printf "    %-30s %s\n", $_, $aliases{$_}->{modulename}
+            }
+        }
     }
 
     if (exists $os->{initrd_modules}) {
     }
 
     if (exists $os->{initrd_modules}) {
-       my %modvers = %{$os->{initrd_modules}};
-       my @keys = sort keys %modvers;
-       if (@keys) {
-           print __"  Initrd modules:\n";
-           foreach (@keys) {
-               my @modules = @{$modvers{$_}};
-               print "    $_:\n";
-               print "      $_\n" foreach @modules;
-           }
-       }
+        my %modvers = %{$os->{initrd_modules}};
+        my @keys = sort keys %modvers;
+        if (@keys) {
+            print __"  Initrd modules:\n";
+            foreach (@keys) {
+                my @modules = @{$modvers{$_}};
+                print "    $_:\n";
+                print "      $_\n" foreach @modules;
+            }
+        }
     }
 
     print __"  Applications:\n";
     my @apps =  @{$os->{apps}};
     foreach (@apps) {
     }
 
     print __"  Applications:\n";
     my @apps =  @{$os->{apps}};
     foreach (@apps) {
-       print "    $_->{name} $_->{version}\n"
+        print "    $_->{name} $_->{version}\n"
     }
 
     print __"  Kernels:\n";
     my @kernels = @{$os->{kernels}};
     foreach (@kernels) {
     }
 
     print __"  Kernels:\n";
     my @kernels = @{$os->{kernels}};
     foreach (@kernels) {
-       print "    $_->{version} ($_->{arch})\n";
-       my @modules = @{$_->{modules}};
-       foreach (@modules) {
-           print "      $_\n";
-       }
+        print "    $_->{version} ($_->{arch})\n";
+        my @modules = @{$_->{modules}};
+        foreach (@modules) {
+            print "      $_\n";
+        }
     }
 
     if (exists $os->{root}->{registry}) {
     }
 
     if (exists $os->{root}->{registry}) {
-       print __"  Windows Registry entries:\n";
-       # These are just lumps of text - dump them out.
-       foreach (@{$os->{root}->{registry}}) {
-           print "$_\n";
-       }
+        print __"  Windows Registry entries:\n";
+        # These are just lumps of text - dump them out.
+        foreach (@{$os->{root}->{registry}}) {
+            print "$_\n";
+        }
     }
 }
 
     }
 }
 
@@ -486,11 +486,11 @@ sub output_xml_os
     $xml->endTag("filesystems");
 
     if (exists $os->{modprobe_aliases}) {
     $xml->endTag("filesystems");
 
     if (exists $os->{modprobe_aliases}) {
-       my %aliases = %{$os->{modprobe_aliases}};
-       my @keys = sort keys %aliases;
-       if (@keys) {
+        my %aliases = %{$os->{modprobe_aliases}};
+        my @keys = sort keys %aliases;
+        if (@keys) {
             $xml->startTag("modprobealiases");
             $xml->startTag("modprobealiases");
-           foreach (@keys) {
+            foreach (@keys) {
                 $xml->startTag("alias", "device" => $_);
 
                 foreach my $field ( [ "modulename" => "modulename" ],
                 $xml->startTag("alias", "device" => $_);
 
                 foreach my $field ( [ "modulename" => "modulename" ],
@@ -500,24 +500,24 @@ sub output_xml_os
                 }
 
                 $xml->endTag("alias");
                 }
 
                 $xml->endTag("alias");
-           }
+            }
             $xml->endTag("modprobealiases");
             $xml->endTag("modprobealiases");
-       }
+        }
     }
 
     if (exists $os->{initrd_modules}) {
     }
 
     if (exists $os->{initrd_modules}) {
-       my %modvers = %{$os->{initrd_modules}};
-       my @keys = sort keys %modvers;
-       if (@keys) {
+        my %modvers = %{$os->{initrd_modules}};
+        my @keys = sort keys %modvers;
+        if (@keys) {
             $xml->startTag("initrds");
             $xml->startTag("initrds");
-           foreach (@keys) {
-               my @modules = @{$modvers{$_}};
+            foreach (@keys) {
+                my @modules = @{$modvers{$_}};
                 $xml->startTag("initrd", "version" => $_);
                 $xml->dataElement("module", $_) foreach @modules;
                 $xml->endTag("initrd");
                 $xml->startTag("initrd", "version" => $_);
                 $xml->dataElement("module", $_) foreach @modules;
                 $xml->endTag("initrd");
-           }
+            }
             $xml->endTag("initrds");
             $xml->endTag("initrds");
-       }
+        }
     }
 
     $xml->startTag("applications");
     }
 
     $xml->startTag("applications");
@@ -555,13 +555,13 @@ sub output_xml_os
     my @kernels = @{$os->{kernels}};
     foreach (@kernels) {
         $xml->startTag("kernel",
     my @kernels = @{$os->{kernels}};
     foreach (@kernels) {
         $xml->startTag("kernel",
-                      "version" => $_->{version},
-                      "arch" => $_->{arch});
+                       "version" => $_->{version},
+                       "arch" => $_->{arch});
         $xml->startTag("modules");
         $xml->startTag("modules");
-       my @modules = @{$_->{modules}};
-       foreach (@modules) {
+        my @modules = @{$_->{modules}};
+        foreach (@modules) {
             $xml->dataElement("module", $_);
             $xml->dataElement("module", $_);
-       }
+        }
         $xml->endTag("modules");
         $xml->dataElement("path", $_->{path}) if(defined($_->{path}));
         $xml->dataElement("package", $_->{package}) if(defined($_->{package}));
         $xml->endTag("modules");
         $xml->dataElement("path", $_->{path}) if(defined($_->{path}));
         $xml->dataElement("package", $_->{package}) if(defined($_->{package}));
@@ -571,10 +571,10 @@ sub output_xml_os
 
     if (exists $os->{root}->{registry}) {
         $xml->startTag("windowsregistryentries");
 
     if (exists $os->{root}->{registry}) {
         $xml->startTag("windowsregistryentries");
-       # These are just lumps of text - dump them out.
-       foreach (@{$os->{root}->{registry}}) {
+        # These are just lumps of text - dump them out.
+        foreach (@{$os->{root}->{registry}}) {
             $xml->dataElement("windowsregistryentry", $_);
             $xml->dataElement("windowsregistryentry", $_);
-       }
+        }
         $xml->endTag("windowsregistryentries");
     }
 
         $xml->endTag("windowsregistryentries");
     }
 
@@ -632,7 +632,7 @@ sub output_query_windows
 {
     my $windows = "no";
     foreach my $os (keys %$oses) {
 {
     my $windows = "no";
     foreach my $os (keys %$oses) {
-       $windows="yes" if $oses->{$os}->{os} eq "windows";
+        $windows="yes" if $oses->{$os}->{os} eq "windows";
     }
     print "windows=$windows\n";
 }
     }
     print "windows=$windows\n";
 }
@@ -647,7 +647,7 @@ sub output_query_linux
 {
     my $linux = "no";
     foreach my $os (keys %$oses) {
 {
     my $linux = "no";
     foreach my $os (keys %$oses) {
-       $linux="yes" if $oses->{$os}->{os} eq "linux";
+        $linux="yes" if $oses->{$os}->{os} eq "linux";
     }
     print "linux=$linux\n";
 }
     }
     print "linux=$linux\n";
 }
@@ -662,7 +662,7 @@ sub output_query_rhel
 {
     my $rhel = "no";
     foreach my $os (keys %$oses) {
 {
     my $rhel = "no";
     foreach my $os (keys %$oses) {
-       $rhel="yes" if ($oses->{$os}->{os} eq "linux" &&
+        $rhel="yes" if ($oses->{$os}->{os} eq "linux" &&
                         $oses->{$os}->{distro} eq "rhel");
     }
     print "rhel=$rhel\n";
                         $oses->{$os}->{distro} eq "rhel");
     }
     print "rhel=$rhel\n";
@@ -678,7 +678,7 @@ sub output_query_fedora
 {
     my $fedora = "no";
     foreach my $os (keys %$oses) {
 {
     my $fedora = "no";
     foreach my $os (keys %$oses) {
-       $fedora="yes" if $oses->{$os}->{os} eq "linux" && $oses->{$os}->{distro} eq "fedora";
+        $fedora="yes" if $oses->{$os}->{os} eq "linux" && $oses->{$os}->{distro} eq "fedora";
     }
     print "fedora=$fedora\n";
 }
     }
     print "fedora=$fedora\n";
 }
@@ -693,7 +693,7 @@ sub output_query_debian
 {
     my $debian = "no";
     foreach my $os (keys %$oses) {
 {
     my $debian = "no";
     foreach my $os (keys %$oses) {
-       $debian="yes" if $oses->{$os}->{os} eq "linux" && $oses->{$os}->{distro} eq "debian";
+        $debian="yes" if $oses->{$os}->{os} eq "linux" && $oses->{$os}->{distro} eq "debian";
     }
     print "debian=$debian\n";
 }
     }
     print "debian=$debian\n";
 }
@@ -712,13 +712,13 @@ sub output_query_fullvirt
     # are identified as paravirt.
     # XXX Fails on Windows guests.
     foreach my $os (keys %$oses) {
     # are identified as paravirt.
     # XXX Fails on Windows guests.
     foreach my $os (keys %$oses) {
-       foreach my $kernel (@{$oses->{$os}->{kernels}}) {
-           my $is_pv = $kernel->{version} =~ m/xen/;
-           unless ($is_pv) {
-               print "fullvirt=yes\n";
-               return;
-           }
-       }
+        foreach my $kernel (@{$oses->{$os}->{kernels}}) {
+            my $is_pv = $kernel->{version} =~ m/xen/;
+            unless ($is_pv) {
+                print "fullvirt=yes\n";
+                return;
+            }
+        }
     }
     print "fullvirt=no\n";
 }
     }
     print "fullvirt=no\n";
 }
@@ -734,13 +734,13 @@ guest).
 sub output_query_xen_domU_kernel
 {
     foreach my $os (keys %$oses) {
 sub output_query_xen_domU_kernel
 {
     foreach my $os (keys %$oses) {
-       foreach my $kernel (@{$oses->{$os}->{kernels}}) {
-           my $is_xen = $kernel->{version} =~ m/xen/;
-           if ($is_xen) {
-               print "xen_domU_kernel=yes\n";
-               return;
-           }
-       }
+        foreach my $kernel (@{$oses->{$os}->{kernels}}) {
+            my $is_xen = $kernel->{version} =~ m/xen/;
+            if ($is_xen) {
+                print "xen_domU_kernel=yes\n";
+                return;
+            }
+        }
     }
     print "xen_domU_kernel=no\n";
 }
     }
     print "xen_domU_kernel=no\n";
 }
@@ -757,14 +757,14 @@ reasons).
 sub output_query_xen_pv_drivers
 {
     foreach my $os (keys %$oses) {
 sub output_query_xen_pv_drivers
 {
     foreach my $os (keys %$oses) {
-       foreach my $kernel (@{$oses->{$os}->{kernels}}) {
-           foreach my $module (@{$kernel->{modules}}) {
-               if ($module =~ m/xen-/) {
-                   print "xen_pv_drivers=yes\n";
-                   return;
-               }
-           }
-       }
+        foreach my $kernel (@{$oses->{$os}->{kernels}}) {
+            foreach my $module (@{$kernel->{modules}}) {
+                if ($module =~ m/xen-/) {
+                    print "xen_pv_drivers=yes\n";
+                    return;
+                }
+            }
+        }
     }
     print "xen_pv_drivers=no\n";
 }
     }
     print "xen_pv_drivers=no\n";
 }
@@ -780,14 +780,14 @@ performance of KVM.
 sub output_query_virtio_drivers
 {
     foreach my $os (keys %$oses) {
 sub output_query_virtio_drivers
 {
     foreach my $os (keys %$oses) {
-       foreach my $kernel (@{$oses->{$os}->{kernels}}) {
-           foreach my $module (@{$kernel->{modules}}) {
-               if ($module =~ m/virtio_/) {
-                   print "virtio_drivers=yes\n";
-                   return;
-               }
-           }
-       }
+        foreach my $kernel (@{$oses->{$os}->{kernels}}) {
+            foreach my $module (@{$kernel->{modules}}) {
+                if ($module =~ m/virtio_/) {
+                    print "virtio_drivers=yes\n";
+                    return;
+                }
+            }
+        }
     }
     print "virtio_drivers=no\n";
 }
     }
     print "virtio_drivers=no\n";
 }
@@ -805,11 +805,11 @@ sub output_query_userspace_arch
     my %arches;
 
     foreach my $os (keys %$oses) {
     my %arches;
 
     foreach my $os (keys %$oses) {
-       $arches{$oses->{$os}->{arch}} = 1 if exists $oses->{$os}->{arch};
+        $arches{$oses->{$os}->{arch}} = 1 if exists $oses->{$os}->{arch};
     }
 
     foreach (sort keys %arches) {
     }
 
     foreach (sort keys %arches) {
-       print "userspace_arch=$_\n";
+        print "userspace_arch=$_\n";
     }
 }
 
     }
 }
 
@@ -826,13 +826,13 @@ sub output_query_kernel_arch
     my %arches;
 
     foreach my $os (keys %$oses) {
     my %arches;
 
     foreach my $os (keys %$oses) {
-       foreach my $kernel (@{$oses->{$os}->{kernels}}) {
-           $arches{$kernel->{arch}} = 1 if exists $kernel->{arch};
-       }
+        foreach my $kernel (@{$oses->{$os}->{kernels}}) {
+            $arches{$kernel->{arch}} = 1 if exists $kernel->{arch};
+        }
     }
 
     foreach (sort keys %arches) {
     }
 
     foreach (sort keys %arches) {
-       print "kernel_arch=$_\n";
+        print "kernel_arch=$_\n";
     }
 }
 
     }
 }
 
index 1c7a224..c7bcc05 100644 (file)
@@ -31,6 +31,6 @@ public class LibGuestFSException extends Exception {
 
     public LibGuestFSException (String msg)
     {
 
     public LibGuestFSException (String msg)
     {
-       super (msg);
+        super (msg);
     }
 }
     }
 }
index a1d1c07..23f1611 100644 (file)
@@ -21,13 +21,13 @@ import com.redhat.et.libguestfs.*;
 public class GuestFS005Load {
     public static void main (String[] argv)
     {
 public class GuestFS005Load {
     public static void main (String[] argv)
     {
-       try {
-           GuestFS g = new GuestFS ();
-           g.close ();
-       }
-       catch (Exception exn) {
-           System.err.println (exn);
-           System.exit (1);
-       }
+        try {
+            GuestFS g = new GuestFS ();
+            g.close ();
+        }
+        catch (Exception exn) {
+            System.err.println (exn);
+            System.exit (1);
+        }
     }
 }
     }
 }
index 3d145bb..198ea85 100644 (file)
@@ -22,21 +22,21 @@ import com.redhat.et.libguestfs.*;
 public class GuestFS010Launch {
     public static void main (String[] argv)
     {
 public class GuestFS010Launch {
     public static void main (String[] argv)
     {
-       try {
-           GuestFS g = new GuestFS ();
-           RandomAccessFile f = new RandomAccessFile ("test.img", "rw");
-           f.setLength (500 * 1024 * 1024);
-           f.close ();
-           g.add_drive ("test.img");
-           g.launch ();
-           g.wait_ready ();
-           g.close ();
-           File f2 = new File ("test.img");
-           f2.delete ();
-       }
-       catch (Exception exn) {
-           System.err.println (exn);
-           System.exit (1);
-       }
+        try {
+            GuestFS g = new GuestFS ();
+            RandomAccessFile f = new RandomAccessFile ("test.img", "rw");
+            f.setLength (500 * 1024 * 1024);
+            f.close ();
+            g.add_drive ("test.img");
+            g.launch ();
+            g.wait_ready ();
+            g.close ();
+            File f2 = new File ("test.img");
+            f2.delete ();
+        }
+        catch (Exception exn) {
+            System.err.println (exn);
+            System.exit (1);
+        }
     }
 }
     }
 }
index 7430386..012d68b 100644 (file)
@@ -22,35 +22,35 @@ import com.redhat.et.libguestfs.*;
 public class GuestFS050LVCreate {
     public static void main (String[] argv)
     {
 public class GuestFS050LVCreate {
     public static void main (String[] argv)
     {
-       try {
-           GuestFS g = new GuestFS ();
-
-           RandomAccessFile f = new RandomAccessFile ("test.img", "rw");
-           f.setLength (500 * 1024 * 1024);
-           f.close ();
-
-           g.add_drive ("test.img");
-           g.launch ();
-           g.wait_ready ();
-
-           g.pvcreate ("/dev/sda");
-           g.vgcreate ("VG", new String[] {"/dev/sda"});
-           g.lvcreate ("LV1", "VG", 200);
-           g.lvcreate ("LV2", "VG", 200);
-
-           String[] lvs = g.lvs ();
-           assert lvs[0].equals ("/dev/VG/LV1");
-           assert lvs[1].equals ("/dev/VG/LV2");
-
-           g.sync ();
-           g.close ();
-
-           File f2 = new File ("test.img");
-           f2.delete ();
-       }
-       catch (Exception exn) {
-           System.err.println (exn);
-           System.exit (1);
-       }
+        try {
+            GuestFS g = new GuestFS ();
+
+            RandomAccessFile f = new RandomAccessFile ("test.img", "rw");
+            f.setLength (500 * 1024 * 1024);
+            f.close ();
+
+            g.add_drive ("test.img");
+            g.launch ();
+            g.wait_ready ();
+
+            g.pvcreate ("/dev/sda");
+            g.vgcreate ("VG", new String[] {"/dev/sda"});
+            g.lvcreate ("LV1", "VG", 200);
+            g.lvcreate ("LV2", "VG", 200);
+
+            String[] lvs = g.lvs ();
+            assert lvs[0].equals ("/dev/VG/LV1");
+            assert lvs[1].equals ("/dev/VG/LV2");
+
+            g.sync ();
+            g.close ();
+
+            File f2 = new File ("test.img");
+            f2.delete ();
+        }
+        catch (Exception exn) {
+            System.err.println (exn);
+            System.exit (1);
+        }
     }
 }
     }
 }
index fa8c4ce..fddd6a0 100644 (file)
@@ -26,15 +26,15 @@ AC_DEFUN([AC_PROG_OCAML],
      AC_CHECK_TOOL([OCAMLOPT],[ocamlopt],[no])
      OCAMLBEST=byte
      if test "$OCAMLOPT" = "no"; then
      AC_CHECK_TOOL([OCAMLOPT],[ocamlopt],[no])
      OCAMLBEST=byte
      if test "$OCAMLOPT" = "no"; then
-       AC_MSG_WARN([Cannot find ocamlopt; bytecode compilation only.])
+        AC_MSG_WARN([Cannot find ocamlopt; bytecode compilation only.])
      else
      else
-       TMPVERSION=`$OCAMLOPT -v | sed -n -e 's|.*version* *\(.*\)$|\1|p' `
-       if test "$TMPVERSION" != "$OCAMLVERSION" ; then
-           AC_MSG_RESULT([versions differs from ocamlc; ocamlopt discarded.])
-           OCAMLOPT=no
-       else
-           OCAMLBEST=opt
-       fi
+        TMPVERSION=`$OCAMLOPT -v | sed -n -e 's|.*version* *\(.*\)$|\1|p' `
+        if test "$TMPVERSION" != "$OCAMLVERSION" ; then
+            AC_MSG_RESULT([versions differs from ocamlc; ocamlopt discarded.])
+            OCAMLOPT=no
+        else
+            OCAMLBEST=opt
+        fi
      fi
 
      AC_SUBST([OCAMLBEST])
      fi
 
      AC_SUBST([OCAMLBEST])
@@ -42,24 +42,24 @@ AC_DEFUN([AC_PROG_OCAML],
      # checking for ocamlc.opt
      AC_CHECK_TOOL([OCAMLCDOTOPT],[ocamlc.opt],[no])
      if test "$OCAMLCDOTOPT" != "no"; then
      # checking for ocamlc.opt
      AC_CHECK_TOOL([OCAMLCDOTOPT],[ocamlc.opt],[no])
      if test "$OCAMLCDOTOPT" != "no"; then
-       TMPVERSION=`$OCAMLCDOTOPT -v | sed -n -e 's|.*version* *\(.*\)$|\1|p' `
-       if test "$TMPVERSION" != "$OCAMLVERSION" ; then
-           AC_MSG_RESULT([versions differs from ocamlc; ocamlc.opt discarded.])
-       else
-           OCAMLC=$OCAMLCDOTOPT
-       fi
+        TMPVERSION=`$OCAMLCDOTOPT -v | sed -n -e 's|.*version* *\(.*\)$|\1|p' `
+        if test "$TMPVERSION" != "$OCAMLVERSION" ; then
+            AC_MSG_RESULT([versions differs from ocamlc; ocamlc.opt discarded.])
+        else
+            OCAMLC=$OCAMLCDOTOPT
+        fi
      fi
 
      # checking for ocamlopt.opt
      if test "$OCAMLOPT" != "no" ; then
      fi
 
      # checking for ocamlopt.opt
      if test "$OCAMLOPT" != "no" ; then
-       AC_CHECK_TOOL([OCAMLOPTDOTOPT],[ocamlopt.opt],[no])
-       if test "$OCAMLOPTDOTOPT" != "no"; then
-          TMPVERSION=`$OCAMLOPTDOTOPT -v | sed -n -e 's|.*version* *\(.*\)$|\1|p' `
-          if test "$TMPVERSION" != "$OCAMLVERSION" ; then
-             AC_MSG_RESULT([version differs from ocamlc; ocamlopt.opt discarded.])
-          else
-             OCAMLOPT=$OCAMLOPTDOTOPT
-          fi
+        AC_CHECK_TOOL([OCAMLOPTDOTOPT],[ocamlopt.opt],[no])
+        if test "$OCAMLOPTDOTOPT" != "no"; then
+           TMPVERSION=`$OCAMLOPTDOTOPT -v | sed -n -e 's|.*version* *\(.*\)$|\1|p' `
+           if test "$TMPVERSION" != "$OCAMLVERSION" ; then
+              AC_MSG_RESULT([version differs from ocamlc; ocamlopt.opt discarded.])
+           else
+              OCAMLOPT=$OCAMLOPTDOTOPT
+           fi
         fi
      fi
 
         fi
      fi
 
@@ -92,7 +92,7 @@ AC_DEFUN([AC_PROG_OCAMLLEX],
   if test "$OCAMLLEX" != "no"; then
     AC_CHECK_TOOL([OCAMLLEXDOTOPT],[ocamllex.opt],[no])
     if test "$OCAMLLEXDOTOPT" != "no"; then
   if test "$OCAMLLEX" != "no"; then
     AC_CHECK_TOOL([OCAMLLEXDOTOPT],[ocamllex.opt],[no])
     if test "$OCAMLLEXDOTOPT" != "no"; then
-       OCAMLLEX=$OCAMLLEXDOTOPT
+        OCAMLLEX=$OCAMLLEXDOTOPT
     fi
   fi
   AC_SUBST([OCAMLLEX])
     fi
   fi
   AC_SUBST([OCAMLLEX])
@@ -114,7 +114,7 @@ AC_DEFUN([AC_PROG_CAMLP4],
   if test "$CAMLP4" != "no"; then
      TMPVERSION=`$CAMLP4 -v 2>&1| sed -n -e 's|.*version *\(.*\)$|\1|p'`
      if test "$TMPVERSION" != "$OCAMLVERSION" ; then
   if test "$CAMLP4" != "no"; then
      TMPVERSION=`$CAMLP4 -v 2>&1| sed -n -e 's|.*version *\(.*\)$|\1|p'`
      if test "$TMPVERSION" != "$OCAMLVERSION" ; then
-       AC_MSG_RESULT([versions differs from ocamlc])
+        AC_MSG_RESULT([versions differs from ocamlc])
         CAMLP4=no
      fi
   fi
         CAMLP4=no
      fi
   fi
index ebed325..b93b0b2 100755 (executable)
@@ -43,8 +43,8 @@ for f in recipes/*.sh; do
     b=`basename $f .sh`
     echo -n '    <li> <a href="#'$b'">'$b.sh
     if [ -r recipes/$b.title ]; then
     b=`basename $f .sh`
     echo -n '    <li> <a href="#'$b'">'$b.sh
     if [ -r recipes/$b.title ]; then
-       echo -n ': '
-       cat recipes/$b.title
+        echo -n ': '
+        cat recipes/$b.title
     fi
     echo '</a> </li>'
 done
     fi
     echo '</a> </li>'
 done
@@ -57,23 +57,23 @@ for f in recipes/*.sh; do
     echo -n '<a name="'$b'"></a>'
     echo -n '<h2>'$b'.sh'
     if [ -r recipes/$b.title ]; then
     echo -n '<a name="'$b'"></a>'
     echo -n '<h2>'$b'.sh'
     if [ -r recipes/$b.title ]; then
-       echo -n ': '
-       cat recipes/$b.title
+        echo -n ': '
+        cat recipes/$b.title
     fi
     echo -n '<small style="font-size: 8pt; margin-left: 2em;"><a href="#'$b'">permalink</a></small>'
     echo '</h2>'
     if [ -r recipes/$b.html ]; then
     fi
     echo -n '<small style="font-size: 8pt; margin-left: 2em;"><a href="#'$b'">permalink</a></small>'
     echo '</h2>'
     if [ -r recipes/$b.html ]; then
-       cat recipes/$b.html
+        cat recipes/$b.html
     fi
     echo '<h3>'$b'.sh</h3>'
     echo '<pre class="example">'
     sed -e 's,&,\&amp;,g' -e 's,<,\&lt;,g' -e 's,>,\&gt;,g' < $f
     echo '</pre>'
     if [ -r recipes/$b.example ]; then
     fi
     echo '<h3>'$b'.sh</h3>'
     echo '<pre class="example">'
     sed -e 's,&,\&amp;,g' -e 's,<,\&lt;,g' -e 's,>,\&gt;,g' < $f
     echo '</pre>'
     if [ -r recipes/$b.example ]; then
-       echo '<h3>Example output</h3>'
-       echo '<pre>'
-       sed -e 's,&,\&amp;,g' -e 's,<,\&lt;,g' -e 's,>,\&gt;,g' < recipes/$b.example
-       echo '</pre>'
+        echo '<h3>Example output</h3>'
+        echo '<pre>'
+        sed -e 's,&,\&amp;,g' -e 's,<,\&lt;,g' -e 's,>,\&gt;,g' < recipes/$b.example
+        echo '</pre>'
     fi
 done
 
     fi
 done
 
index f333810..e9368a8 100644 (file)
@@ -44,10 +44,10 @@ let () =
   ) dirs in
 
   if dirs <> [ ".", 'd';
   ) dirs in
 
   if dirs <> [ ".", 'd';
-              "..", 'd';
-              "lost+found", 'd';
-              "p", 'd';
-              "q", 'r' ] then
+               "..", 'd';
+               "lost+found", 'd';
+               "p", 'd';
+               "q", 'r' ] then
     failwith "Guestfs.readdir returned incorrect result";
 
   Guestfs.close g;
     failwith "Guestfs.readdir returned incorrect result";
 
   Guestfs.close g;
index 8e20593..72b0f7d 100644 (file)
@@ -128,80 +128,80 @@ sub open_guest
 
     my @images = ();
     if (ref ($first) eq "ARRAY") {
 
     my @images = ();
     if (ref ($first) eq "ARRAY") {
-       @images = @$first;
+        @images = @$first;
     } elsif (ref ($first) eq "SCALAR") {
     } elsif (ref ($first) eq "SCALAR") {
-       @images = ($first);
+        @images = ($first);
     } else {
     } else {
-       die __"open_guest: first parameter must be a string or an arrayref"
+        die __"open_guest: first parameter must be a string or an arrayref"
     }
 
     my ($conn, $dom);
 
     if (-e $images[0]) {
     }
 
     my ($conn, $dom);
 
     if (-e $images[0]) {
-       foreach (@images) {
-           die __x("guest image {imagename} does not exist or is not readable",
-                   imagename => $_)
-               unless -r $_;
-       }
+        foreach (@images) {
+            die __x("guest image {imagename} does not exist or is not readable",
+                    imagename => $_)
+                unless -r $_;
+        }
     } else {
     } else {
-       die __"open_guest: no libvirt support (install Sys::Virt, XML::XPath and XML::XPath::XMLParser)"
-           unless exists $INC{"Sys/Virt.pm"} &&
-           exists $INC{"XML/XPath.pm"} &&
-           exists $INC{"XML/XPath/XMLParser.pm"};
-
-       die __"open_guest: too many domains listed on command line"
-           if @images > 1;
-
-       $conn = Sys::Virt->new (readonly => 1, @_);
-       die __"open_guest: cannot connect to libvirt" unless $conn;
-
-       my @doms = $conn->list_defined_domains ();
-       my $isitinactive = 1;
-       unless ($readwrite) {
-           # In the case where we want read-only access to a domain,
-           # allow the user to specify an active domain too.
-           push @doms, $conn->list_domains ();
-           $isitinactive = 0;
-       }
-       foreach (@doms) {
-           if ($_->get_name () eq $images[0]) {
-               $dom = $_;
-               last;
-           }
-       }
-
-       unless ($dom) {
-           if ($isitinactive) {
-               die __x("{imagename} is not the name of an inactive libvirt domain\n",
-                       imagename => $images[0]);
-           } else {
-               die __x("{imagename} is not the name of a libvirt domain\n",
-                       imagename => $images[0]);
-           }
-       }
-
-       # Get the names of the image(s).
-       my $xml = $dom->get_xml_description ();
-
-       my $p = XML::XPath->new (xml => $xml);
-       my @disks = $p->findnodes ('//devices/disk/source/@dev');
-       push (@disks, $p->findnodes ('//devices/disk/source/@file'));
-
-       die __x("{imagename} seems to have no disk devices\n",
-               imagename => $images[0])
-           unless @disks;
-
-       @images = map { $_->getData } @disks;
+        die __"open_guest: no libvirt support (install Sys::Virt, XML::XPath and XML::XPath::XMLParser)"
+            unless exists $INC{"Sys/Virt.pm"} &&
+            exists $INC{"XML/XPath.pm"} &&
+            exists $INC{"XML/XPath/XMLParser.pm"};
+
+        die __"open_guest: too many domains listed on command line"
+            if @images > 1;
+
+        $conn = Sys::Virt->new (readonly => 1, @_);
+        die __"open_guest: cannot connect to libvirt" unless $conn;
+
+        my @doms = $conn->list_defined_domains ();
+        my $isitinactive = 1;
+        unless ($readwrite) {
+            # In the case where we want read-only access to a domain,
+            # allow the user to specify an active domain too.
+            push @doms, $conn->list_domains ();
+            $isitinactive = 0;
+        }
+        foreach (@doms) {
+            if ($_->get_name () eq $images[0]) {
+                $dom = $_;
+                last;
+            }
+        }
+
+        unless ($dom) {
+            if ($isitinactive) {
+                die __x("{imagename} is not the name of an inactive libvirt domain\n",
+                        imagename => $images[0]);
+            } else {
+                die __x("{imagename} is not the name of a libvirt domain\n",
+                        imagename => $images[0]);
+            }
+        }
+
+        # Get the names of the image(s).
+        my $xml = $dom->get_xml_description ();
+
+        my $p = XML::XPath->new (xml => $xml);
+        my @disks = $p->findnodes ('//devices/disk/source/@dev');
+        push (@disks, $p->findnodes ('//devices/disk/source/@file'));
+
+        die __x("{imagename} seems to have no disk devices\n",
+                imagename => $images[0])
+            unless @disks;
+
+        @images = map { $_->getData } @disks;
     }
 
     # We've now got the list of @images, so feed them to libguestfs.
     my $g = Sys::Guestfs->new ();
     foreach (@images) {
     }
 
     # We've now got the list of @images, so feed them to libguestfs.
     my $g = Sys::Guestfs->new ();
     foreach (@images) {
-       if ($readwrite) {
-           $g->add_drive ($_);
-       } else {
-           $g->add_drive_ro ($_);
-       }
+        if ($readwrite) {
+            $g->add_drive ($_);
+        } else {
+            $g->add_drive_ro ($_);
+        }
     }
 
     return wantarray ? ($g, $conn, $dom, @images) : $g
     }
 
     return wantarray ? ($g, $conn, $dom, @images) : $g
@@ -239,7 +239,7 @@ sub _is_pv {
     my $t = shift;
 
     foreach (@_) {
     my $t = shift;
 
     foreach (@_) {
-       return 1 if $_ eq $t;
+        return 1 if $_ eq $t;
     }
     0;
 }
     }
     0;
 }
@@ -271,8 +271,8 @@ sub resolve_windows_path
     my $path = shift;
 
     if (substr ($path, 0, 1) ne "/") {
     my $path = shift;
 
     if (substr ($path, 0, 1) ne "/") {
-       warn __"resolve_windows_path: path must start with a / character";
-       return undef;
+        warn __"resolve_windows_path: path must start with a / character";
+        return undef;
     }
 
     my @elems = split (/\//, $path);
     }
 
     my @elems = split (/\//, $path);
@@ -282,19 +282,19 @@ sub resolve_windows_path
     $path = "/";
 
     foreach my $dir (@elems) {
     $path = "/";
 
     foreach my $dir (@elems) {
-       my $found = 0;
-       foreach ($g->ls ($path)) {
-           if (lc ($_) eq lc ($dir)) {
-               if ($path eq "/") {
-                   $path = "/$_";
-                   $found = 1;
-               } else {
-                   $path = "$path/$_";
-                   $found = 1;
-               }
-           }
-       }
-       return undef unless $found;
+        my $found = 0;
+        foreach ($g->ls ($path)) {
+            if (lc ($_) eq lc ($dir)) {
+                if ($path eq "/") {
+                    $path = "/$_";
+                    $found = 1;
+                } else {
+                    $path = "$path/$_";
+                    $found = 1;
+                }
+            }
+        }
+        return undef unless $found;
     }
 
     return $path;
     }
 
     return $path;
@@ -376,27 +376,27 @@ sub _elf_arch_to_canonical
     local $_ = shift;
 
     if ($_ eq "Intel 80386") {
     local $_ = shift;
 
     if ($_ eq "Intel 80386") {
-       return "i386";
+        return "i386";
     } elsif ($_ eq "Intel 80486") {
     } elsif ($_ eq "Intel 80486") {
-       return "i486";  # probably not in the wild
+        return "i486"; # probably not in the wild
     } elsif ($_ eq "x86-64") {
     } elsif ($_ eq "x86-64") {
-       return "x86_64";
+        return "x86_64";
     } elsif ($_ eq "AMD x86-64") {
     } elsif ($_ eq "AMD x86-64") {
-       return "x86_64";
+        return "x86_64";
     } elsif (/SPARC32/) {
     } elsif (/SPARC32/) {
-       return "sparc";
+        return "sparc";
     } elsif (/SPARC V9/) {
     } elsif (/SPARC V9/) {
-       return "sparc64";
+        return "sparc64";
     } elsif ($_ eq "IA-64") {
     } elsif ($_ eq "IA-64") {
-       return "ia64";
+        return "ia64";
     } elsif (/64.*PowerPC/) {
     } elsif (/64.*PowerPC/) {
-       return "ppc64";
+        return "ppc64";
     } elsif (/PowerPC/) {
     } elsif (/PowerPC/) {
-       return "ppc";
+        return "ppc";
     } else {
     } else {
-       warn __x("returning non-canonical architecture type '{arch}'",
-                arch => $_);
-       return $_;
+        warn __x("returning non-canonical architecture type '{arch}'",
+                 arch => $_);
+        return $_;
     }
 }
 
     }
 }
 
@@ -412,49 +412,49 @@ sub file_architecture
     my $file = $g->file ($path);
 
     if ($file =~ /ELF.*(?:executable|shared object|relocatable), (.+?),/) {
     my $file = $g->file ($path);
 
     if ($file =~ /ELF.*(?:executable|shared object|relocatable), (.+?),/) {
-       # ELF executable or shared object.  We need to convert
-       # what file(1) prints into the canonical form.
-       return _elf_arch_to_canonical ($1);
+        # ELF executable or shared object.  We need to convert
+        # what file(1) prints into the canonical form.
+        return _elf_arch_to_canonical ($1);
     } elsif ($file =~ /PE32 executable/) {
     } elsif ($file =~ /PE32 executable/) {
-       return "i386";          # Win32 executable or DLL
+        return "i386";         # Win32 executable or DLL
     } elsif ($file =~ /PE32\+ executable/) {
     } elsif ($file =~ /PE32\+ executable/) {
-       return "x86_64";        # Win64 executable or DLL
+        return "x86_64";       # Win64 executable or DLL
     }
 
     elsif ($file =~ /cpio archive/) {
     }
 
     elsif ($file =~ /cpio archive/) {
-       # Probably an initrd.
-       my $zcat = "cat";
-       if ($file =~ /gzip/) {
-           $zcat = "zcat";
-       } elsif ($file =~ /bzip2/) {
-           $zcat = "bzcat";
-       }
-
-       # Download and unpack it to find a binary file.
-       my $dir = tempdir (CLEANUP => 1);
-       $g->download ($path, "$dir/initrd");
-
-       my $bins = join " ", map { "bin/$_" } @_initrd_binaries;
-       my $cmd = "cd $dir && $zcat initrd | cpio --quiet -id $bins";
-       my $r = system ($cmd);
-       die __x("cpio command failed: {error}", error => $?)
-           unless $r == 0;
-
-       foreach my $bin (@_initrd_binaries) {
-           if (-f "$dir/bin/$bin") {
-               $_ = `file $dir/bin/$bin`;
-               if (/ELF.*executable, (.+?),/) {
-                   return _elf_arch_to_canonical ($1);
-               }
-           }
-       }
-
-       die __x("file_architecture: no known binaries found in initrd image: {path}",
-               path => $path);
+        # Probably an initrd.
+        my $zcat = "cat";
+        if ($file =~ /gzip/) {
+            $zcat = "zcat";
+        } elsif ($file =~ /bzip2/) {
+            $zcat = "bzcat";
+        }
+
+        # Download and unpack it to find a binary file.
+        my $dir = tempdir (CLEANUP => 1);
+        $g->download ($path, "$dir/initrd");
+
+        my $bins = join " ", map { "bin/$_" } @_initrd_binaries;
+        my $cmd = "cd $dir && $zcat initrd | cpio --quiet -id $bins";
+        my $r = system ($cmd);
+        die __x("cpio command failed: {error}", error => $?)
+            unless $r == 0;
+
+        foreach my $bin (@_initrd_binaries) {
+            if (-f "$dir/bin/$bin") {
+                $_ = `file $dir/bin/$bin`;
+                if (/ELF.*executable, (.+?),/) {
+                    return _elf_arch_to_canonical ($1);
+                }
+            }
+        }
+
+        die __x("file_architecture: no known binaries found in initrd image: {path}",
+                path => $path);
     }
 
     die __x("file_architecture: unknown architecture: {path}",
     }
 
     die __x("file_architecture: unknown architecture: {path}",
-           path => $path);
+            path => $path);
 }
 
 =head1 OPERATING SYSTEM INSPECTION FUNCTIONS
 }
 
 =head1 OPERATING SYSTEM INSPECTION FUNCTIONS
@@ -689,84 +689,84 @@ sub inspect_partition
     # First try 'file(1)' on it.
     my $file = $g->file ($dev);
     if ($file =~ /ext2 filesystem data/) {
     # First try 'file(1)' on it.
     my $file = $g->file ($dev);
     if ($file =~ /ext2 filesystem data/) {
-       $r{fstype} = "ext2";
-       $r{fsos} = "linux";
+        $r{fstype} = "ext2";
+        $r{fsos} = "linux";
     } elsif ($file =~ /ext3 filesystem data/) {
     } elsif ($file =~ /ext3 filesystem data/) {
-       $r{fstype} = "ext3";
-       $r{fsos} = "linux";
+        $r{fstype} = "ext3";
+        $r{fsos} = "linux";
     } elsif ($file =~ /ext4 filesystem data/) {
     } elsif ($file =~ /ext4 filesystem data/) {
-       $r{fstype} = "ext4";
-       $r{fsos} = "linux";
+        $r{fstype} = "ext4";
+        $r{fsos} = "linux";
     } elsif ($file =~ m{Linux/i386 swap file}) {
     } elsif ($file =~ m{Linux/i386 swap file}) {
-       $r{fstype} = "swap";
-       $r{fsos} = "linux";
-       $r{is_swap} = 1;
+        $r{fstype} = "swap";
+        $r{fsos} = "linux";
+        $r{is_swap} = 1;
     }
 
     # If it's ext2/3/4, then we want the UUID and label.
     if (exists $r{fstype} && $r{fstype} =~ /^ext/) {
     }
 
     # If it's ext2/3/4, then we want the UUID and label.
     if (exists $r{fstype} && $r{fstype} =~ /^ext/) {
-       $r{uuid} = $g->get_e2uuid ($dev);
-       $r{label} = $g->get_e2label ($dev);
+        $r{uuid} = $g->get_e2uuid ($dev);
+        $r{label} = $g->get_e2label ($dev);
     }
 
     # Try mounting it, fnarrr.
     if (!$r{is_swap}) {
     }
 
     # Try mounting it, fnarrr.
     if (!$r{is_swap}) {
-       $r{is_mountable} = 1;
-       eval { $g->mount_ro ($dev, "/") };
-       if ($@) {
-           # It's not mountable, probably empty or some format
-           # we don't understand.
-           $r{is_mountable} = 0;
-           goto OUT;
-       }
-
-       # Grub /boot?
-       if ($g->is_file ("/grub/menu.lst") ||
-           $g->is_file ("/grub/grub.conf")) {
-           $r{content} = "linux-grub";
-           _check_grub ($g, \%r);
-           goto OUT;
-       }
-
-       # Linux root?
-       if ($g->is_dir ("/etc") && $g->is_dir ("/bin") &&
-           $g->is_file ("/etc/fstab")) {
-           $r{content} = "linux-root";
-           $r{is_root} = 1;
-           _check_linux_root ($g, \%r);
-           goto OUT;
-       }
-
-       # Linux /usr/local.
-       if ($g->is_dir ("/etc") && $g->is_dir ("/bin") &&
-           $g->is_dir ("/share") && !$g->exists ("/local") &&
-           !$g->is_file ("/etc/fstab")) {
-           $r{content} = "linux-usrlocal";
-           goto OUT;
-       }
-
-       # Linux /usr.
-       if ($g->is_dir ("/etc") && $g->is_dir ("/bin") &&
-           $g->is_dir ("/share") && $g->exists ("/local") &&
-           !$g->is_file ("/etc/fstab")) {
-           $r{content} = "linux-usr";
-           goto OUT;
-       }
-
-       # Windows root?
-       if ($g->is_file ("/AUTOEXEC.BAT") ||
-           $g->is_file ("/autoexec.bat") ||
-           $g->is_dir ("/Program Files") ||
-           $g->is_dir ("/WINDOWS") ||
-           $g->is_file ("/boot.ini") ||
-           $g->is_file ("/ntldr")) {
-           $r{fstype} = "ntfs"; # XXX this is a guess
-           $r{fsos} = "windows";
-           $r{content} = "windows-root";
-           $r{is_root} = 1;
-           _check_windows_root ($g, \%r, $use_windows_registry);
-           goto OUT;
-       }
+        $r{is_mountable} = 1;
+        eval { $g->mount_ro ($dev, "/") };
+        if ($@) {
+            # It's not mountable, probably empty or some format
+            # we don't understand.
+            $r{is_mountable} = 0;
+            goto OUT;
+        }
+
+        # Grub /boot?
+        if ($g->is_file ("/grub/menu.lst") ||
+            $g->is_file ("/grub/grub.conf")) {
+            $r{content} = "linux-grub";
+            _check_grub ($g, \%r);
+            goto OUT;
+        }
+
+        # Linux root?
+        if ($g->is_dir ("/etc") && $g->is_dir ("/bin") &&
+            $g->is_file ("/etc/fstab")) {
+            $r{content} = "linux-root";
+            $r{is_root} = 1;
+            _check_linux_root ($g, \%r);
+            goto OUT;
+        }
+
+        # Linux /usr/local.
+        if ($g->is_dir ("/etc") && $g->is_dir ("/bin") &&
+            $g->is_dir ("/share") && !$g->exists ("/local") &&
+            !$g->is_file ("/etc/fstab")) {
+            $r{content} = "linux-usrlocal";
+            goto OUT;
+        }
+
+        # Linux /usr.
+        if ($g->is_dir ("/etc") && $g->is_dir ("/bin") &&
+            $g->is_dir ("/share") && $g->exists ("/local") &&
+            !$g->is_file ("/etc/fstab")) {
+            $r{content} = "linux-usr";
+            goto OUT;
+        }
+
+        # Windows root?
+        if ($g->is_file ("/AUTOEXEC.BAT") ||
+            $g->is_file ("/autoexec.bat") ||
+            $g->is_dir ("/Program Files") ||
+            $g->is_dir ("/WINDOWS") ||
+            $g->is_file ("/boot.ini") ||
+            $g->is_file ("/ntldr")) {
+            $r{fstype} = "ntfs"; # XXX this is a guess
+            $r{fsos} = "windows";
+            $r{content} = "windows-root";
+            $r{is_root} = 1;
+            _check_windows_root ($g, \%r, $use_windows_registry);
+            goto OUT;
+        }
     }
 
   OUT:
     }
 
   OUT:
@@ -785,13 +785,13 @@ sub _check_linux_root
     if ($g->exists ("/etc/redhat-release")) {
         $r->{package_format} = "rpm";
 
     if ($g->exists ("/etc/redhat-release")) {
         $r->{package_format} = "rpm";
 
-       $_ = $g->cat ("/etc/redhat-release");
-       if (/Fedora release (\d+)(?:\.(\d+))?/) {
-           $r->{osdistro} = "fedora";
-           $r->{os_major_version} = "$1";
-           $r->{os_minor_version} = "$2" if(defined($2));
-           $r->{package_management} = "yum";
-       }
+        $_ = $g->cat ("/etc/redhat-release");
+        if (/Fedora release (\d+)(?:\.(\d+))?/) {
+            $r->{osdistro} = "fedora";
+            $r->{os_major_version} = "$1";
+            $r->{os_minor_version} = "$2" if(defined($2));
+            $r->{package_management} = "yum";
+        }
 
         elsif (/(Red Hat Enterprise Linux|CentOS|Scientific Linux)/) {
             my $distro = $1;
 
         elsif (/(Red Hat Enterprise Linux|CentOS|Scientific Linux)/) {
             my $distro = $1;
@@ -839,51 +839,51 @@ sub _check_linux_root
         }
 
         else {
         }
 
         else {
-           $r->{osdistro} = "redhat-based";
-       }
+            $r->{osdistro} = "redhat-based";
+        }
     } elsif ($g->is_file ("/etc/debian_version")) {
         $r->{package_format} = "dpkg";
         $r->{package_management} = "apt";
 
     } elsif ($g->is_file ("/etc/debian_version")) {
         $r->{package_format} = "dpkg";
         $r->{package_management} = "apt";
 
-       $_ = $g->cat ("/etc/debian_version");
-       if (/(\d+)\.(\d+)/) {
-           $r->{osdistro} = "debian";
-           $r->{os_major_version} = "$1";
-           $r->{os_minor_version} = "$2";
-       } else {
-           $r->{osdistro} = "debian";
-       }
+        $_ = $g->cat ("/etc/debian_version");
+        if (/(\d+)\.(\d+)/) {
+            $r->{osdistro} = "debian";
+            $r->{os_major_version} = "$1";
+            $r->{os_minor_version} = "$2";
+        } else {
+            $r->{osdistro} = "debian";
+        }
     }
 
     # Parse the contents of /etc/fstab.  This is pretty vital so
     # we can determine where filesystems are supposed to be mounted.
     eval "\$_ = \$g->cat ('/etc/fstab');";
     if (!$@ && $_) {
     }
 
     # Parse the contents of /etc/fstab.  This is pretty vital so
     # we can determine where filesystems are supposed to be mounted.
     eval "\$_ = \$g->cat ('/etc/fstab');";
     if (!$@ && $_) {
-       my @lines = split /\n/;
-       my @fstab;
-       foreach (@lines) {
-           my @fields = split /[ \t]+/;
-           if (@fields >= 2) {
-               my $spec = $fields[0]; # first column (dev/label/uuid)
-               my $file = $fields[1]; # second column (mountpoint)
-               if ($spec =~ m{^/} ||
-                   $spec =~ m{^LABEL=} ||
-                   $spec =~ m{^UUID=} ||
-                   $file eq "swap") {
-                   push @fstab, [$spec, $file]
-               }
-           }
-       }
-       $r->{fstab} = \@fstab if @fstab;
+        my @lines = split /\n/;
+        my @fstab;
+        foreach (@lines) {
+            my @fields = split /[ \t]+/;
+            if (@fields >= 2) {
+                my $spec = $fields[0]; # first column (dev/label/uuid)
+                my $file = $fields[1]; # second column (mountpoint)
+                if ($spec =~ m{^/} ||
+                    $spec =~ m{^LABEL=} ||
+                    $spec =~ m{^UUID=} ||
+                    $file eq "swap") {
+                    push @fstab, [$spec, $file]
+                }
+            }
+        }
+        $r->{fstab} = \@fstab if @fstab;
     }
 
     # Determine the architecture of this root.
     my $arch;
     foreach ("/bin/bash", "/bin/ls", "/bin/echo", "/bin/rm", "/bin/sh") {
     }
 
     # Determine the architecture of this root.
     my $arch;
     foreach ("/bin/bash", "/bin/ls", "/bin/echo", "/bin/rm", "/bin/sh") {
-       if ($g->is_file ($_)) {
-           $arch = file_architecture ($g, $_);
-           last;
-       }
+        if ($g->is_file ($_)) {
+            $arch = file_architecture ($g, $_);
+            last;
+        }
     }
 
     $r->{arch} = $arch if defined $arch;
     }
 
     $r->{arch} = $arch if defined $arch;
@@ -907,31 +907,31 @@ sub _check_windows_root
     $r->{boot_ini} = $boot_ini;
 
     if (defined $r->{boot_ini}) {
     $r->{boot_ini} = $boot_ini;
 
     if (defined $r->{boot_ini}) {
-       $_ = $g->cat ($boot_ini);
-       my @lines = split /\n/;
-       my $section;
-       my $systemroot;
-       foreach (@lines) {
-           if (m/\[.*\]/) {
-               $section = $1;
-           } elsif (m/^default=.*?\\(\w+)$/i) {
-               $systemroot = $1;
-               last;
-           } elsif (m/\\(\w+)=/) {
-               $systemroot = $1;
-               last;
-           }
-       }
-
-       if (defined $systemroot) {
-           $r->{systemroot} = resolve_windows_path ($g, "/$systemroot");
-           if (defined $r->{systemroot}) {
-               _check_windows_arch ($g, $r, $r->{systemroot});
-               if ($use_windows_registry) {
-                   _check_windows_registry ($g, $r, $r->{systemroot});
-               }
-           }
-       }
+        $_ = $g->cat ($boot_ini);
+        my @lines = split /\n/;
+        my $section;
+        my $systemroot;
+        foreach (@lines) {
+            if (m/\[.*\]/) {
+                $section = $1;
+            } elsif (m/^default=.*?\\(\w+)$/i) {
+                $systemroot = $1;
+                last;
+            } elsif (m/\\(\w+)=/) {
+                $systemroot = $1;
+                last;
+            }
+        }
+
+        if (defined $systemroot) {
+            $r->{systemroot} = resolve_windows_path ($g, "/$systemroot");
+            if (defined $r->{systemroot}) {
+                _check_windows_arch ($g, $r, $r->{systemroot});
+                if ($use_windows_registry) {
+                    _check_windows_registry ($g, $r, $r->{systemroot});
+                }
+            }
+        }
     }
 }
 
     }
 }
 
@@ -945,7 +945,7 @@ sub _check_windows_arch
     my $systemroot = shift;
 
     my $cmd_exe =
     my $systemroot = shift;
 
     my $cmd_exe =
-       resolve_windows_path ($g, $r->{systemroot} . "/system32/cmd.exe");
+        resolve_windows_path ($g, $r->{systemroot} . "/system32/cmd.exe");
     $r->{arch} = file_architecture ($g, $cmd_exe) if $cmd_exe;
 }
 
     $r->{arch} = file_architecture ($g, $cmd_exe) if $cmd_exe;
 }
 
@@ -961,16 +961,16 @@ sub _check_windows_registry
 
     my $configdir = resolve_windows_path ($g, "$systemroot/system32/config");
     if (defined $configdir) {
 
     my $configdir = resolve_windows_path ($g, "$systemroot/system32/config");
     if (defined $configdir) {
-       my $softwaredir = resolve_windows_path ($g, "$configdir/software");
-       if (defined $softwaredir) {
-           _load_windows_registry ($g, $r, $softwaredir,
-                                   "HKEY_LOCAL_MACHINE\\SOFTWARE");
-       }
-       my $systemdir = resolve_windows_path ($g, "$configdir/system");
-       if (defined $systemdir) {
-           _load_windows_registry ($g, $r, $systemdir,
-                                   "HKEY_LOCAL_MACHINE\\System");
-       }
+        my $softwaredir = resolve_windows_path ($g, "$configdir/software");
+        if (defined $softwaredir) {
+            _load_windows_registry ($g, $r, $softwaredir,
+                                    "HKEY_LOCAL_MACHINE\\SOFTWARE");
+        }
+        my $systemdir = resolve_windows_path ($g, "$configdir/system");
+        if (defined $systemdir) {
+            _load_windows_registry ($g, $r, $systemdir,
+                                    "HKEY_LOCAL_MACHINE\\System");
+        }
     }
 }
 
     }
 }
 
@@ -1004,8 +1004,8 @@ sub _load_windows_registry
     close SAVEERR;
 
     unless ($res == 0) {
     close SAVEERR;
 
     unless ($res == 0) {
-       warn __x("reged command failed: {errormsg}", errormsg => $?);
-       return;
+        warn __x("reged command failed: {errormsg}", errormsg => $?);
+        return;
     }
 
     # Some versions of reged segfault on inputs.  If that happens we
     }
 
     # Some versions of reged segfault on inputs.  If that happens we
@@ -1013,8 +1013,8 @@ sub _load_windows_registry
     # it.
     my $content;
     unless (open F, "$dir/out") {
     # it.
     my $content;
     unless (open F, "$dir/out") {
-       warn __x("no output from reged command: {errormsg}", errormsg => $!);
-       return;
+        warn __x("no output from reged command: {errormsg}", errormsg => $!);
+        return;
     }
     { local $/ = undef; $content = <F>; }
     close F;
     }
     { local $/ = undef; $content = <F>; }
     close F;
@@ -1120,15 +1120,15 @@ sub inspect_operating_systems
     my %oses = ();
 
     foreach (sort keys %$fses) {
     my %oses = ();
 
     foreach (sort keys %$fses) {
-       if ($fses->{$_}->{is_root}) {
-           my %r = (
-               root => $fses->{$_},
-               root_device => $_
-               );
-           _get_os_version ($g, \%r);
-           _assign_mount_points ($g, $fses, \%r);
-           $oses{$_} = \%r;
-       }
+        if ($fses->{$_}->{is_root}) {
+            my %r = (
+                root => $fses->{$_},
+                root_device => $_
+                );
+            _get_os_version ($g, \%r);
+            _assign_mount_points ($g, $fses, \%r);
+            $oses{$_} = \%r;
+        }
     }
 
     return \%oses;
     }
 
     return \%oses;
@@ -1165,22 +1165,22 @@ sub _assign_mount_points
 
     # Use /etc/fstab if we have it to mount the rest.
     if (exists $r->{root}->{fstab}) {
 
     # Use /etc/fstab if we have it to mount the rest.
     if (exists $r->{root}->{fstab}) {
-       my @fstab = @{$r->{root}->{fstab}};
-       foreach (@fstab) {
-           my ($spec, $file) = @$_;
-
-           my ($dev, $fs) = _find_filesystem ($g, $fses, $spec);
-           if ($dev) {
-               $r->{mounts}->{$file} = $dev;
-               $r->{filesystems}->{$dev} = $fs;
-               if (exists $fs->{used}) {
-                   $fs->{used}++
-               } else {
-                   $fs->{used} = 1
-               }
+        my @fstab = @{$r->{root}->{fstab}};
+        foreach (@fstab) {
+            my ($spec, $file) = @$_;
+
+            my ($dev, $fs) = _find_filesystem ($g, $fses, $spec);
+            if ($dev) {
+                $r->{mounts}->{$file} = $dev;
+                $r->{filesystems}->{$dev} = $fs;
+                if (exists $fs->{used}) {
+                    $fs->{used}++
+                } else {
+                    $fs->{used} = 1
+                }
                 $fs->{spec} = $spec;
                 $fs->{spec} = $spec;
-           }
-       }
+            }
+        }
     }
 }
 
     }
 }
 
@@ -1192,27 +1192,27 @@ sub _find_filesystem
     local $_ = shift;
 
     if (/^LABEL=(.*)/) {
     local $_ = shift;
 
     if (/^LABEL=(.*)/) {
-       my $label = $1;
-       foreach (sort keys %$fses) {
-           if (exists $fses->{$_}->{label} &&
-               $fses->{$_}->{label} eq $label) {
-               return ($_, $fses->{$_});
-           }
-       }
-       warn __x("unknown filesystem label {label}\n", label => $label);
-       return ();
+        my $label = $1;
+        foreach (sort keys %$fses) {
+            if (exists $fses->{$_}->{label} &&
+                $fses->{$_}->{label} eq $label) {
+                return ($_, $fses->{$_});
+            }
+        }
+        warn __x("unknown filesystem label {label}\n", label => $label);
+        return ();
     } elsif (/^UUID=(.*)/) {
     } elsif (/^UUID=(.*)/) {
-       my $uuid = $1;
-       foreach (sort keys %$fses) {
-           if (exists $fses->{$_}->{uuid} &&
-               $fses->{$_}->{uuid} eq $uuid) {
-               return ($_, $fses->{$_});
-           }
-       }
-       warn __x("unknown filesystem UUID {uuid}\n", uuid => $uuid);
-       return ();
+        my $uuid = $1;
+        foreach (sort keys %$fses) {
+            if (exists $fses->{$_}->{uuid} &&
+                $fses->{$_}->{uuid} eq $uuid) {
+                return ($_, $fses->{$_});
+            }
+        }
+        warn __x("unknown filesystem UUID {uuid}\n", uuid => $uuid);
+        return ();
     } else {
     } else {
-       return ($_, $fses->{$_}) if exists $fses->{$_};
+        return ($_, $fses->{$_}) if exists $fses->{$_};
 
         # The following is to handle the case where an fstab entry specifies a
         # specific device rather than its label or uuid, and the libguestfs
 
         # The following is to handle the case where an fstab entry specifies a
         # specific device rather than its label or uuid, and the libguestfs
@@ -1220,20 +1220,20 @@ sub _find_filesystem
         # different driver.
         # This will work as long as the underlying drivers recognise devices in
         # the same order.
         # different driver.
         # This will work as long as the underlying drivers recognise devices in
         # the same order.
-       if (m{^/dev/hd(.*)} && exists $fses->{"/dev/sd$1"}) {
-           return ("/dev/sd$1", $fses->{"/dev/sd$1"});
-       }
-       if (m{^/dev/xvd(.*)} && exists $fses->{"/dev/sd$1"}) {
-           return ("/dev/sd$1", $fses->{"/dev/sd$1"});
-       }
-       if (m{^/dev/mapper/(.*)-(.*)$} && exists $fses->{"/dev/$1/$2"}) {
-           return ("/dev/$1/$2", $fses->{"/dev/$1/$2"});
-       }
-
-       return () if m{/dev/cdrom};
-
-       warn __x("unknown filesystem {fs}\n", fs => $_);
-       return ();
+        if (m{^/dev/hd(.*)} && exists $fses->{"/dev/sd$1"}) {
+            return ("/dev/sd$1", $fses->{"/dev/sd$1"});
+        }
+        if (m{^/dev/xvd(.*)} && exists $fses->{"/dev/sd$1"}) {
+            return ("/dev/sd$1", $fses->{"/dev/sd$1"});
+        }
+        if (m{^/dev/mapper/(.*)-(.*)$} && exists $fses->{"/dev/$1/$2"}) {
+            return ("/dev/$1/$2", $fses->{"/dev/$1/$2"});
+        }
+
+        return () if m{/dev/cdrom};
+
+        warn __x("unknown filesystem {fs}\n", fs => $_);
+        return ();
     }
 }
 
     }
 }
 
@@ -1388,7 +1388,7 @@ sub inspect_in_detail
     _check_for_applications ($g, $os);
     _check_for_kernels ($g, $os);
     if ($os->{os} eq "linux") {
     _check_for_applications ($g, $os);
     _check_for_kernels ($g, $os);
     if ($os->{os} eq "linux") {
-       _find_modprobe_aliases ($g, $os);
+        _find_modprobe_aliases ($g, $os);
     }
 }
 
     }
 }
 
@@ -1402,34 +1402,34 @@ sub _check_for_applications
 
     my $osn = $os->{os};
     if ($osn eq "linux") {
 
     my $osn = $os->{os};
     if ($osn eq "linux") {
-       my $package_format = $os->{package_format};
-       if (defined $package_format && $package_format eq "rpm") {
-           my @lines = $g->command_lines
-               (["rpm",
-                 "-q", "-a",
-                 "--qf", "%{name} %{epoch} %{version} %{release} %{arch}\n"]);
-           foreach (@lines) {
-               if (m/^(.*) (.*) (.*) (.*) (.*)$/) {
-                   my $epoch = $2;
-                   $epoch = "" if $epoch eq "(none)";
-                   my $app = {
-                       name => $1,
-                       epoch => $epoch,
-                       version => $3,
-                       release => $4,
-                       arch => $5
-                   };
-                   push @apps, $app
-               }
-           }
-       }
+        my $package_format = $os->{package_format};
+        if (defined $package_format && $package_format eq "rpm") {
+            my @lines = $g->command_lines
+                (["rpm",
+                  "-q", "-a",
+                  "--qf", "%{name} %{epoch} %{version} %{release} %{arch}\n"]);
+            foreach (@lines) {
+                if (m/^(.*) (.*) (.*) (.*) (.*)$/) {
+                    my $epoch = $2;
+                    $epoch = "" if $epoch eq "(none)";
+                    my $app = {
+                        name => $1,
+                        epoch => $epoch,
+                        version => $3,
+                        release => $4,
+                        arch => $5
+                    };
+                    push @apps, $app
+                }
+            }
+        }
     } elsif ($osn eq "windows") {
     } elsif ($osn eq "windows") {
-       # XXX
-       # I worked out a general plan for this, but haven't
-       # implemented it yet.  We can iterate over /Program Files
-       # looking for *.EXE files, which we download, then use
-       # i686-pc-mingw32-windres on, to find the VERSIONINFO
-       # section, which has a lot of useful information.
+        # XXX
+        # I worked out a general plan for this, but haven't
+        # implemented it yet.  We can iterate over /Program Files
+        # looking for *.EXE files, which we download, then use
+        # i686-pc-mingw32-windres on, to find the VERSIONINFO
+        # section, which has a lot of useful information.
     }
 
     $os->{apps} = \@apps;
     }
 
     $os->{apps} = \@apps;
@@ -1537,7 +1537,7 @@ sub _check_for_kernels
     }
 
     elsif ($os->{os} eq "windows") {
     }
 
     elsif ($os->{os} eq "windows") {
-       # XXX
+        # XXX
     }
 }
 
     }
 }
 
@@ -1652,7 +1652,7 @@ sub _find_modprobe_aliases
         for my $path ( $g->aug_match($pattern) ) {
             $path =~ m{^/files(.*)/alias(?:\[\d*\])?$}
                 or die __x("{path} doesn't match augeas pattern",
         for my $path ( $g->aug_match($pattern) ) {
             $path =~ m{^/files(.*)/alias(?:\[\d*\])?$}
                 or die __x("{path} doesn't match augeas pattern",
-                          path => $path);
+                           path => $path);
             my $file = $1;
 
             my $alias;
             my $file = $1;
 
             my $alias;
index de928ae..7ce28c6 100644 (file)
@@ -23,10 +23,10 @@ BEGIN {
 
     eval "use Locale::TextDomain";;
     if (exists $INC{"Locale/TextDomain.pm"}) {
 
     eval "use Locale::TextDomain";;
     if (exists $INC{"Locale/TextDomain.pm"}) {
-       plan tests => 1;
+        plan tests => 1;
     } else {
     } else {
-       plan skip_all => "no perl-libintl module";
-       exit 0;
+        plan skip_all => "no perl-libintl module";
+        exit 0;
     }
 }
 
     }
 }
 
index b0a96e9..c4b9d31 100644 (file)
@@ -22,10 +22,10 @@ BEGIN {
     use Test::More;
     eval "use Locale::TextDomain";;
     if (exists $INC{"Locale/TextDomain.pm"}) {
     use Test::More;
     eval "use Locale::TextDomain";;
     if (exists $INC{"Locale/TextDomain.pm"}) {
-       plan tests => 17;
+        plan tests => 17;
     } else {
     } else {
-       plan skip_all => "no perl-libintl module";
-       exit 0;
+        plan skip_all => "no perl-libintl module";
+        exit 0;
     }
 }
 
     }
 }
 
index 421e73a..97788d3 100644 (file)
@@ -9,7 +9,7 @@ O_OBJECT_guestfs_h
         $var = ($type) SvIV ((SV *) SvRV ($arg));
     else {
         warn (\"${Package}::$func_name(): $var is not a blessed SV reference\");
         $var = ($type) SvIV ((SV *) SvRV ($arg));
     else {
         warn (\"${Package}::$func_name(): $var is not a blessed SV reference\");
-       XSRETURN_UNDEF;
+        XSRETURN_UNDEF;
     }
 
 OUTPUT
     }
 
 OUTPUT
index 9dae930..f10d195 100644 (file)
@@ -3,14 +3,14 @@ Parallel mksquashfs: Using 2 processors
 Creating 4.0 filesystem on test.sqsh, block size 131072.
 [===============================================================|] 663/663 100%
 Exportable Squashfs 4.0 filesystem, data block size 131072
 Creating 4.0 filesystem on test.sqsh, block size 131072.
 [===============================================================|] 663/663 100%
 Exportable Squashfs 4.0 filesystem, data block size 131072
-       compressed data, compressed metadata, compressed fragments
-       duplicates are removed
+        compressed data, compressed metadata, compressed fragments
+        duplicates are removed
 Filesystem size 1518.07 Kbytes (1.48 Mbytes)
 Filesystem size 1518.07 Kbytes (1.48 Mbytes)
-       98.41% of uncompressed filesystem size (1542.53 Kbytes)
+        98.41% of uncompressed filesystem size (1542.53 Kbytes)
 Inode table size 8095 bytes (7.91 Kbytes)
 Inode table size 8095 bytes (7.91 Kbytes)
-       35.59% of uncompressed inode table size (22748 bytes)
+        35.59% of uncompressed inode table size (22748 bytes)
 Directory table size 7612 bytes (7.43 Kbytes)
 Directory table size 7612 bytes (7.43 Kbytes)
-       49.11% of uncompressed directory table size (15499 bytes)
+        49.11% of uncompressed directory table size (15499 bytes)
 Number of duplicate files found 6
 Number of inodes 701
 Number of files 663
 Number of duplicate files found 6
 Number of inodes 701
 Number of files 663
@@ -22,9 +22,9 @@ Number of socket nodes 0
 Number of directories 1
 Number of ids (unique uids + gids) 1
 Number of uids 1
 Number of directories 1
 Number of ids (unique uids + gids) 1
 Number of uids 1
-       root (0)
+        root (0)
 Number of gids 1
 Number of gids 1
-       root (0)
+        root (0)
 total 1732
 drwxr-xr-x  2 root root 15498 May 27 10:34 .
 drwxr-xr-x 18 root root     0 May 29 08:44 ..
 total 1732
 drwxr-xr-x  2 root root 15498 May 27 10:34 .
 drwxr-xr-x 18 root root     0 May 29 08:44 ..
index b6f6f42..9ef99bd 100755 (executable)
@@ -375,9 +375,9 @@ You probably don't want to call this function.");
   List.map (
     fun (name, ret) ->
       [(name, (ret, [String "val"]), -1, [NotInFish; NotInDocs],
   List.map (
     fun (name, ret) ->
       [(name, (ret, [String "val"]), -1, [NotInFish; NotInDocs],
-       [],
-       "internal test function - do not use",
-       "\
+        [],
+        "internal test function - do not use",
+        "\
 This is an internal test function which is used to test whether
 the automatically generated bindings can handle every possible
 return type correctly.
 This is an internal test function which is used to test whether
 the automatically generated bindings can handle every possible
 return type correctly.
@@ -386,9 +386,9 @@ It converts string C<val> to the return type.
 
 You probably don't want to call this function.");
        (name ^ "err", (ret, []), -1, [NotInFish; NotInDocs],
 
 You probably don't want to call this function.");
        (name ^ "err", (ret, []), -1, [NotInFish; NotInDocs],
-       [],
-       "internal test function - do not use",
-       "\
+        [],
+        "internal test function - do not use",
+        "\
 This is an internal test function which is used to test whether
 the automatically generated bindings can handle every possible
 return type correctly.
 This is an internal test function which is used to test whether
 the automatically generated bindings can handle every possible
 return type correctly.
@@ -822,8 +822,8 @@ or C<guestfs_download> functions which have a more complex interface.");
 
   ("ll", (RString "listing", [String "directory"]), 5, [],
    [], (* XXX Tricky to test because it depends on the exact format
 
   ("ll", (RString "listing", [String "directory"]), 5, [],
    [], (* XXX Tricky to test because it depends on the exact format
-       * of the 'ls -l' command, which changes between F10 and F11.
-       *)
+        * of the 'ls -l' command, which changes between F10 and F11.
+        *)
    "list the files in a directory (long format)",
    "\
 List the files in C<directory> (relative to the root directory,
    "list the files in a directory (long format)",
    "\
 List the files in C<directory> (relative to the root directory,
@@ -1320,8 +1320,8 @@ or LVM logical volume).  The filesystem type is C<fstype>, for
 example C<ext3>.");
 
   ("sfdisk", (RErr, [String "device";
 example C<ext3>.");
 
   ("sfdisk", (RErr, [String "device";
-                    Int "cyls"; Int "heads"; Int "sectors";
-                    StringList "lines"]), 43, [DangerWillRobinson],
+                     Int "cyls"; Int "heads"; Int "sectors";
+                     StringList "lines"]), 43, [DangerWillRobinson],
    [],
    "create partitions on a block device",
    "\
    [],
    "create partitions on a block device",
    "\
@@ -1620,7 +1620,7 @@ This is the same as the C<lstat(2)> system call.");
   ("statvfs", (RStruct ("statbuf", "statvfs"), [String "path"]), 54, [],
    [InitSquashFS, Always, TestOutputStruct (
       [["statvfs"; "/"]], [CompareWithInt ("namemax", 256);
   ("statvfs", (RStruct ("statbuf", "statvfs"), [String "path"]), 54, [],
    [InitSquashFS, Always, TestOutputStruct (
       [["statvfs"; "/"]], [CompareWithInt ("namemax", 256);
-                          CompareWithInt ("bsize", 131072)])],
+                           CompareWithInt ("bsize", 131072)])],
    "get file system statistics",
    "\
 Returns file system statistics for any mounted file system.
    "get file system statistics",
    "\
 Returns file system statistics for any mounted file system.
@@ -2307,8 +2307,8 @@ This resizes (expands or shrinks) an existing LVM physical
 volume to match the new size of the underlying device.");
 
   ("sfdisk_N", (RErr, [String "device"; Int "partnum";
 volume to match the new size of the underlying device.");
 
   ("sfdisk_N", (RErr, [String "device"; Int "partnum";
-                      Int "cyls"; Int "heads"; Int "sectors";
-                      String "line"]), 99, [DangerWillRobinson],
+                       Int "cyls"; Int "heads"; Int "sectors";
+                       String "line"]), 99, [DangerWillRobinson],
    [],
    "modify a single partition on a block device",
    "\
    [],
    "modify a single partition on a block device",
    "\
@@ -2682,8 +2682,8 @@ If the parameter C<nrlines> is zero, this returns an empty list.");
 
   ("df", (RString "output", []), 125, [],
    [], (* XXX Tricky to test because it depends on the exact format
 
   ("df", (RString "output", []), 125, [],
    [], (* XXX Tricky to test because it depends on the exact format
-       * of the 'df' command and other imponderables.
-       *)
+        * of the 'df' command and other imponderables.
+        *)
    "report file system disk space usage",
    "\
 This command runs the C<df> command to report disk space used.
    "report file system disk space usage",
    "\
 This command runs the C<df> command to report disk space used.
@@ -2694,8 +2694,8 @@ Use C<statvfs> from programs.");
 
   ("df_h", (RString "output", []), 126, [],
    [], (* XXX Tricky to test because it depends on the exact format
 
   ("df_h", (RString "output", []), 126, [],
    [], (* XXX Tricky to test because it depends on the exact format
-       * of the 'df' command and other imponderables.
-       *)
+        * of the 'df' command and other imponderables.
+        *)
    "report file system disk space usage (human readable)",
    "\
 This command runs the C<df -h> command to report disk space used
    "report file system disk space usage (human readable)",
    "\
 This command runs the C<df -h> command to report disk space used
@@ -2821,8 +2821,8 @@ It is just a convenient wrapper around C<guestfs_mknod>.");
 
   ("umask", (RInt "oldmask", [Int "mask"]), 137, [],
    [], (* XXX umask is one of those stateful things that we should
 
   ("umask", (RInt "oldmask", [Int "mask"]), 137, [],
    [], (* XXX umask is one of those stateful things that we should
-       * reset between each test.
-       *)
+        * reset between each test.
+        *)
    "set file mode creation mask (umask)",
    "\
 This function sets the mask used for creating new files and
    "set file mode creation mask (umask)",
    "\
 This function sets the mask used for creating new files and
@@ -2944,8 +2944,8 @@ is a symbolic link, then it returns the extended attributes
 of the link itself.");
 
   ("setxattr", (RErr, [String "xattr";
 of the link itself.");
 
   ("setxattr", (RErr, [String "xattr";
-                      String "val"; Int "vallen"; (* will be BufferIn *)
-                      String "path"]), 143, [],
+                       String "val"; Int "vallen"; (* will be BufferIn *)
+                       String "path"]), 143, [],
    [],
    "set extended attribute of a file or directory",
    "\
    [],
    "set extended attribute of a file or directory",
    "\
@@ -2956,8 +2956,8 @@ The value is arbitrary 8 bit data.
 See also: C<guestfs_lsetxattr>, L<attr(5)>.");
 
   ("lsetxattr", (RErr, [String "xattr";
 See also: C<guestfs_lsetxattr>, L<attr(5)>.");
 
   ("lsetxattr", (RErr, [String "xattr";
-                       String "val"; Int "vallen"; (* will be BufferIn *)
-                       String "path"]), 144, [],
+                        String "val"; Int "vallen"; (* will be BufferIn *)
+                        String "path"]), 144, [],
    [],
    "set extended attribute of a file or directory",
    "\
    [],
    "set extended attribute of a file or directory",
    "\
@@ -3402,7 +3402,7 @@ let all_functions = non_daemon_functions @ daemon_functions
  *)
 let all_functions_sorted =
   List.sort (fun (n1,_,_,_,_,_,_) (n2,_,_,_,_,_,_) ->
  *)
 let all_functions_sorted =
   List.sort (fun (n1,_,_,_,_,_,_) (n2,_,_,_,_,_,_) ->
-              compare n1 n2) all_functions
+               compare n1 n2) all_functions
 
 (* Field types for structures. *)
 type field =
 
 (* Field types for structures. *)
 type field =
@@ -3646,11 +3646,11 @@ let rec find s sub =
   let rec loop i =
     if i <= len-sublen then (
       let rec loop2 j =
   let rec loop i =
     if i <= len-sublen then (
       let rec loop2 j =
-       if j < sublen then (
-         if s.[i+j] = sub.[j] then loop2 (j+1)
-         else -1
-       ) else
-         i (* found *)
+        if j < sublen then (
+          if s.[i+j] = sub.[j] then loop2 (j+1)
+          else -1
+        ) else
+          i (* found *)
       in
       let r = loop2 0 in
       if r = -1 then loop (i+1) else r
       in
       let r = loop2 0 in
       if r = -1 then loop (i+1) else r
@@ -3772,9 +3772,9 @@ let check_functions () =
     let rec loop i =
       if i >= len then false
       else (
     let rec loop i =
       if i >= len then false
       else (
-       let c = str.[i] in
-       if c >= 'A' && c <= 'Z' then true
-       else loop (i+1)
+        let c = str.[i] in
+        if c >= 'A' && c <= 'Z' then true
+        else loop (i+1)
       )
     in
     loop 0
       )
     in
     loop 0
@@ -3784,34 +3784,34 @@ let check_functions () =
   List.iter (
     fun (name, _, _, _, _, _, _) ->
       if String.length name >= 7 && String.sub name 0 7 = "guestfs" then
   List.iter (
     fun (name, _, _, _, _, _, _) ->
       if String.length name >= 7 && String.sub name 0 7 = "guestfs" then
-       failwithf "function name %s does not need 'guestfs' prefix" name;
+        failwithf "function name %s does not need 'guestfs' prefix" name;
       if name = "" then
       if name = "" then
-       failwithf "function name is empty";
+        failwithf "function name is empty";
       if name.[0] < 'a' || name.[0] > 'z' then
       if name.[0] < 'a' || name.[0] > 'z' then
-       failwithf "function name %s must start with lowercase a-z" name;
+        failwithf "function name %s must start with lowercase a-z" name;
       if String.contains name '-' then
       if String.contains name '-' then
-       failwithf "function name %s should not contain '-', use '_' instead."
-         name
+        failwithf "function name %s should not contain '-', use '_' instead."
+          name
   ) all_functions;
 
   (* Check function parameter/return names. *)
   List.iter (
     fun (name, style, _, _, _, _, _) ->
       let check_arg_ret_name n =
   ) all_functions;
 
   (* Check function parameter/return names. *)
   List.iter (
     fun (name, style, _, _, _, _, _) ->
       let check_arg_ret_name n =
-       if contains_uppercase n then
-         failwithf "%s param/ret %s should not contain uppercase chars"
-           name n;
-       if String.contains n '-' || String.contains n '_' then
-         failwithf "%s param/ret %s should not contain '-' or '_'"
-           name n;
-       if n = "value" then
-         failwithf "%s has a param/ret called 'value', which causes conflicts in the OCaml bindings, use something like 'val' or a more descriptive name" name;
-       if n = "int" || n = "char" || n = "short" || n = "long" then
-         failwithf "%s has a param/ret which conflicts with a C type (eg. 'int', 'char' etc.)" name;
-       if n = "i" || n = "n" then
-         failwithf "%s has a param/ret called 'i' or 'n', which will cause some conflicts in the generated code" name;
-       if n = "argv" || n = "args" then
-         failwithf "%s has a param/ret called 'argv' or 'args', which will cause some conflicts in the generated code" name
+        if contains_uppercase n then
+          failwithf "%s param/ret %s should not contain uppercase chars"
+            name n;
+        if String.contains n '-' || String.contains n '_' then
+          failwithf "%s param/ret %s should not contain '-' or '_'"
+            name n;
+        if n = "value" then
+          failwithf "%s has a param/ret called 'value', which causes conflicts in the OCaml bindings, use something like 'val' or a more descriptive name" name;
+        if n = "int" || n = "char" || n = "short" || n = "long" then
+          failwithf "%s has a param/ret which conflicts with a C type (eg. 'int', 'char' etc.)" name;
+        if n = "i" || n = "n" then
+          failwithf "%s has a param/ret called 'i' or 'n', which will cause some conflicts in the generated code" name;
+        if n = "argv" || n = "args" then
+          failwithf "%s has a param/ret called 'argv' or 'args', which will cause some conflicts in the generated code" name
       in
 
       (match fst style with
       in
 
       (match fst style with
@@ -3820,7 +3820,7 @@ let check_functions () =
        | RConstString n | RConstOptString n | RString n
        | RStringList n | RStruct (n, _) | RStructList (n, _)
        | RHashtable n | RBufferOut n ->
        | RConstString n | RConstOptString n | RString n
        | RStringList n | RStruct (n, _) | RStructList (n, _)
        | RHashtable n | RBufferOut n ->
-          check_arg_ret_name n
+           check_arg_ret_name n
       );
       List.iter (fun arg -> check_arg_ret_name (name_of_argt arg)) (snd style)
   ) all_functions;
       );
       List.iter (fun arg -> check_arg_ret_name (name_of_argt arg)) (snd style)
   ) all_functions;
@@ -3829,30 +3829,30 @@ let check_functions () =
   List.iter (
     fun (name, _, _, _, _, shortdesc, _) ->
       if shortdesc.[0] <> Char.lowercase shortdesc.[0] then
   List.iter (
     fun (name, _, _, _, _, shortdesc, _) ->
       if shortdesc.[0] <> Char.lowercase shortdesc.[0] then
-       failwithf "short description of %s should begin with lowercase." name;
+        failwithf "short description of %s should begin with lowercase." name;
       let c = shortdesc.[String.length shortdesc-1] in
       if c = '\n' || c = '.' then
       let c = shortdesc.[String.length shortdesc-1] in
       if c = '\n' || c = '.' then
-       failwithf "short description of %s should not end with . or \\n." name
+        failwithf "short description of %s should not end with . or \\n." name
   ) all_functions;
 
   (* Check long dscriptions. *)
   List.iter (
     fun (name, _, _, _, _, _, longdesc) ->
       if longdesc.[String.length longdesc-1] = '\n' then
   ) all_functions;
 
   (* Check long dscriptions. *)
   List.iter (
     fun (name, _, _, _, _, _, longdesc) ->
       if longdesc.[String.length longdesc-1] = '\n' then
-       failwithf "long description of %s should not end with \\n." name
+        failwithf "long description of %s should not end with \\n." name
   ) all_functions;
 
   (* Check proc_nrs. *)
   List.iter (
     fun (name, _, proc_nr, _, _, _, _) ->
       if proc_nr <= 0 then
   ) all_functions;
 
   (* Check proc_nrs. *)
   List.iter (
     fun (name, _, proc_nr, _, _, _, _) ->
       if proc_nr <= 0 then
-       failwithf "daemon function %s should have proc_nr > 0" name
+        failwithf "daemon function %s should have proc_nr > 0" name
   ) daemon_functions;
 
   List.iter (
     fun (name, _, proc_nr, _, _, _, _) ->
       if proc_nr <> -1 then
   ) daemon_functions;
 
   List.iter (
     fun (name, _, proc_nr, _, _, _, _) ->
       if proc_nr <> -1 then
-       failwithf "non-daemon function %s should have proc_nr -1" name
+        failwithf "non-daemon function %s should have proc_nr -1" name
   ) non_daemon_functions;
 
   let proc_nrs =
   ) non_daemon_functions;
 
   let proc_nrs =
@@ -3864,10 +3864,10 @@ let check_functions () =
     | [] -> ()
     | [_] -> ()
     | (name1,nr1) :: ((name2,nr2) :: _ as rest) when nr1 < nr2 ->
     | [] -> ()
     | [_] -> ()
     | (name1,nr1) :: ((name2,nr2) :: _ as rest) when nr1 < nr2 ->
-       loop rest
+        loop rest
     | (name1,nr1) :: (name2,nr2) :: _ ->
     | (name1,nr1) :: (name2,nr2) :: _ ->
-       failwithf "%s and %s have conflicting procedure numbers (%d, %d)"
-         name1 name2 nr1 nr2
+        failwithf "%s and %s have conflicting procedure numbers (%d, %d)"
+          name1 name2 nr1 nr2
   in
   loop proc_nrs;
 
   in
   loop proc_nrs;
 
@@ -3879,20 +3879,20 @@ let check_functions () =
        *)
     | name, _, _, _, [], _, _ -> ()
     | name, _, _, _, tests, _, _ ->
        *)
     | name, _, _, _, [], _, _ -> ()
     | name, _, _, _, tests, _, _ ->
-       let funcs =
-         List.map (
-           fun (_, _, test) ->
-             match seq_of_test test with
-             | [] ->
-                 failwithf "%s has a test containing an empty sequence" name
-             | cmds -> List.map List.hd cmds
-         ) tests in
-       let funcs = List.flatten funcs in
-
-       let tested = List.mem name funcs in
-
-       if not tested then
-         failwithf "function %s has tests but does not test itself" name
+        let funcs =
+          List.map (
+            fun (_, _, test) ->
+              match seq_of_test test with
+              | [] ->
+                  failwithf "%s has a test containing an empty sequence" name
+              | cmds -> List.map List.hd cmds
+          ) tests in
+        let funcs = List.flatten funcs in
+
+        let tested = List.mem name funcs in
+
+        if not tested then
+          failwithf "function %s has tests but does not test itself" name
   ) all_functions
 
 (* 'pr' prints to the current output file. *)
   ) all_functions
 
 (* 'pr' prints to the current output file. *)
@@ -3961,62 +3961,62 @@ let rec generate_actions_pod () =
   List.iter (
     fun (shortname, style, _, flags, _, _, longdesc) ->
       if not (List.mem NotInDocs flags) then (
   List.iter (
     fun (shortname, style, _, flags, _, _, longdesc) ->
       if not (List.mem NotInDocs flags) then (
-       let name = "guestfs_" ^ shortname in
-       pr "=head2 %s\n\n" name;
-       pr " ";
-       generate_prototype ~extern:false ~handle:"handle" name style;
-       pr "\n\n";
-       pr "%s\n\n" longdesc;
-       (match fst style with
-        | RErr ->
-            pr "This function returns 0 on success or -1 on error.\n\n"
-        | RInt _ ->
-            pr "On error this function returns -1.\n\n"
-        | RInt64 _ ->
-            pr "On error this function returns -1.\n\n"
-        | RBool _ ->
-            pr "This function returns a C truth value on success or -1 on error.\n\n"
-        | RConstString _ ->
-            pr "This function returns a string, or NULL on error.
+        let name = "guestfs_" ^ shortname in
+        pr "=head2 %s\n\n" name;
+        pr " ";
+        generate_prototype ~extern:false ~handle:"handle" name style;
+        pr "\n\n";
+        pr "%s\n\n" longdesc;
+        (match fst style with
+         | RErr ->
+             pr "This function returns 0 on success or -1 on error.\n\n"
+         | RInt _ ->
+             pr "On error this function returns -1.\n\n"
+         | RInt64 _ ->
+             pr "On error this function returns -1.\n\n"
+         | RBool _ ->
+             pr "This function returns a C truth value on success or -1 on error.\n\n"
+         | RConstString _ ->
+             pr "This function returns a string, or NULL on error.
 The string is owned by the guest handle and must I<not> be freed.\n\n"
 The string is owned by the guest handle and must I<not> be freed.\n\n"
-        | RConstOptString _ ->
-            pr "This function returns a string which may be NULL.
+         | RConstOptString _ ->
+             pr "This function returns a string which may be NULL.
 There is way to return an error from this function.
 The string is owned by the guest handle and must I<not> be freed.\n\n"
 There is way to return an error from this function.
 The string is owned by the guest handle and must I<not> be freed.\n\n"
-        | RString _ ->
-            pr "This function returns a string, or NULL on error.
+         | RString _ ->
+             pr "This function returns a string, or NULL on error.
 I<The caller must free the returned string after use>.\n\n"
 I<The caller must free the returned string after use>.\n\n"
-        | RStringList _ ->
-            pr "This function returns a NULL-terminated array of strings
+         | RStringList _ ->
+             pr "This function returns a NULL-terminated array of strings
 (like L<environ(3)>), or NULL if there was an error.
 I<The caller must free the strings and the array after use>.\n\n"
 (like L<environ(3)>), or NULL if there was an error.
 I<The caller must free the strings and the array after use>.\n\n"
-        | RStruct (_, typ) ->
-            pr "This function returns a C<struct guestfs_%s *>,
+         | RStruct (_, typ) ->
+             pr "This function returns a C<struct guestfs_%s *>,
 or NULL if there was an error.
 I<The caller must call C<guestfs_free_%s> after use>.\n\n" typ typ
 or NULL if there was an error.
 I<The caller must call C<guestfs_free_%s> after use>.\n\n" typ typ
-        | RStructList (_, typ) ->
-            pr "This function returns a C<struct guestfs_%s_list *>
+         | RStructList (_, typ) ->
+             pr "This function returns a C<struct guestfs_%s_list *>
 (see E<lt>guestfs-structs.hE<gt>),
 or NULL if there was an error.
 I<The caller must call C<guestfs_free_%s_list> after use>.\n\n" typ typ
 (see E<lt>guestfs-structs.hE<gt>),
 or NULL if there was an error.
 I<The caller must call C<guestfs_free_%s_list> after use>.\n\n" typ typ
-        | RHashtable _ ->
-            pr "This function returns a NULL-terminated array of
+         | RHashtable _ ->
+             pr "This function returns a NULL-terminated array of
 strings, or NULL if there was an error.
 The array of strings will always have length C<2n+1>, where
 C<n> keys and values alternate, followed by the trailing NULL entry.
 I<The caller must free the strings and the array after use>.\n\n"
 strings, or NULL if there was an error.
 The array of strings will always have length C<2n+1>, where
 C<n> keys and values alternate, followed by the trailing NULL entry.
 I<The caller must free the strings and the array after use>.\n\n"
-        | RBufferOut _ ->
-            pr "This function returns a buffer, or NULL on error.
+         | RBufferOut _ ->
+             pr "This function returns a buffer, or NULL on error.
 The size of the returned buffer is written to C<*size_r>.
 I<The caller must free the returned buffer after use>.\n\n"
 The size of the returned buffer is written to C<*size_r>.
 I<The caller must free the returned buffer after use>.\n\n"
-       );
-       if List.mem ProtocolLimitWarning flags then
-         pr "%s\n\n" protocol_limit_warning;
-       if List.mem DangerWillRobinson flags then
-         pr "%s\n\n" danger_will_robinson;
-       match deprecation_notice flags with
-       | None -> ()
-       | Some txt -> pr "%s\n\n" txt
+        );
+        if List.mem ProtocolLimitWarning flags then
+          pr "%s\n\n" protocol_limit_warning;
+        if List.mem DangerWillRobinson flags then
+          pr "%s\n\n" danger_will_robinson;
+        match deprecation_notice flags with
+        | None -> ()
+        | Some txt -> pr "%s\n\n" txt
       )
   ) all_functions_sorted
 
       )
   ) all_functions_sorted
 
@@ -4028,23 +4028,23 @@ and generate_structs_pod () =
       pr "\n";
       pr " struct guestfs_%s {\n" typ;
       List.iter (
       pr "\n";
       pr " struct guestfs_%s {\n" typ;
       List.iter (
-       function
-       | name, FChar -> pr "   char %s;\n" name
-       | name, FUInt32 -> pr "   uint32_t %s;\n" name
-       | name, FInt32 -> pr "   int32_t %s;\n" name
-       | name, (FUInt64|FBytes) -> pr "   uint64_t %s;\n" name
-       | name, FInt64 -> pr "   int64_t %s;\n" name
-       | name, FString -> pr "   char *%s;\n" name
-       | name, FBuffer ->
-           pr "   /* The next two fields describe a byte array. */\n";
-           pr "   uint32_t %s_len;\n" name;
-           pr "   char *%s;\n" name
-       | name, FUUID ->
-           pr "   /* The next field is NOT nul-terminated, be careful when printing it: */\n";
-           pr "   char %s[32];\n" name
-       | name, FOptPercent ->
-           pr "   /* The next field is [0..100] or -1 meaning 'not present': */\n";
-           pr "   float %s;\n" name
+        function
+        | name, FChar -> pr "   char %s;\n" name
+        | name, FUInt32 -> pr "   uint32_t %s;\n" name
+        | name, FInt32 -> pr "   int32_t %s;\n" name
+        | name, (FUInt64|FBytes) -> pr "   uint64_t %s;\n" name
+        | name, FInt64 -> pr "   int64_t %s;\n" name
+        | name, FString -> pr "   char *%s;\n" name
+        | name, FBuffer ->
+            pr "   /* The next two fields describe a byte array. */\n";
+            pr "   uint32_t %s_len;\n" name;
+            pr "   char *%s;\n" name
+        | name, FUUID ->
+            pr "   /* The next field is NOT nul-terminated, be careful when printing it: */\n";
+            pr "   char %s[32];\n" name
+        | name, FOptPercent ->
+            pr "   /* The next field is [0..100] or -1 meaning 'not present': */\n";
+            pr "   float %s;\n" name
       ) cols;
       pr " };\n";
       pr " \n";
       ) cols;
       pr " };\n";
       pr " \n";
@@ -4055,7 +4055,7 @@ and generate_structs_pod () =
       pr " \n";
       pr " void guestfs_free_%s (struct guestfs_free_%s *);\n" typ typ;
       pr " void guestfs_free_%s_list (struct guestfs_free_%s_list *);\n"
       pr " \n";
       pr " void guestfs_free_%s (struct guestfs_free_%s *);\n" typ typ;
       pr " void guestfs_free_%s_list (struct guestfs_free_%s_list *);\n"
-       typ typ;
+        typ typ;
       pr "\n"
   ) structs
 
       pr "\n"
   ) structs
 
@@ -4078,20 +4078,20 @@ and generate_xdr () =
   List.iter (
     function
     | typ, cols ->
   List.iter (
     function
     | typ, cols ->
-       pr "struct guestfs_int_%s {\n" typ;
-       List.iter (function
-                  | name, FChar -> pr "  char %s;\n" name
-                  | name, FString -> pr "  string %s<>;\n" name
-                  | name, FBuffer -> pr "  opaque %s<>;\n" name
-                  | name, FUUID -> pr "  opaque %s[32];\n" name
-                  | name, (FInt32|FUInt32) -> pr "  int %s;\n" name
-                  | name, (FInt64|FUInt64|FBytes) -> pr "  hyper %s;\n" name
-                  | name, FOptPercent -> pr "  float %s;\n" name
-                 ) cols;
-       pr "};\n";
-       pr "\n";
-       pr "typedef struct guestfs_int_%s guestfs_int_%s_list<>;\n" typ typ;
-       pr "\n";
+        pr "struct guestfs_int_%s {\n" typ;
+        List.iter (function
+                   | name, FChar -> pr "  char %s;\n" name
+                   | name, FString -> pr "  string %s<>;\n" name
+                   | name, FBuffer -> pr "  opaque %s<>;\n" name
+                   | name, FUUID -> pr "  opaque %s[32];\n" name
+                   | name, (FInt32|FUInt32) -> pr "  int %s;\n" name
+                   | name, (FInt64|FUInt64|FBytes) -> pr "  hyper %s;\n" name
+                   | name, FOptPercent -> pr "  float %s;\n" name
+                  ) cols;
+        pr "};\n";
+        pr "\n";
+        pr "typedef struct guestfs_int_%s guestfs_int_%s_list<>;\n" typ typ;
+        pr "\n";
   ) structs;
 
   List.iter (
   ) structs;
 
   List.iter (
@@ -4101,58 +4101,58 @@ and generate_xdr () =
       (match snd style with
        | [] -> ()
        | args ->
       (match snd style with
        | [] -> ()
        | args ->
-          pr "struct %s_args {\n" name;
-          List.iter (
-            function
-            | String n -> pr "  string %s<>;\n" n
-            | OptString n -> pr "  str *%s;\n" n
-            | StringList n -> pr "  str %s<>;\n" n
-            | Bool n -> pr "  bool %s;\n" n
-            | Int n -> pr "  int %s;\n" n
-            | FileIn _ | FileOut _ -> ()
-          ) args;
-          pr "};\n\n"
+           pr "struct %s_args {\n" name;
+           List.iter (
+             function
+             | String n -> pr "  string %s<>;\n" n
+             | OptString n -> pr "  str *%s;\n" n
+             | StringList n -> pr "  str %s<>;\n" n
+             | Bool n -> pr "  bool %s;\n" n
+             | Int n -> pr "  int %s;\n" n
+             | FileIn _ | FileOut _ -> ()
+           ) args;
+           pr "};\n\n"
       );
       (match fst style with
        | RErr -> ()
        | RInt n ->
       );
       (match fst style with
        | RErr -> ()
        | RInt n ->
-          pr "struct %s_ret {\n" name;
-          pr "  int %s;\n" n;
-          pr "};\n\n"
+           pr "struct %s_ret {\n" name;
+           pr "  int %s;\n" n;
+           pr "};\n\n"
        | RInt64 n ->
        | RInt64 n ->
-          pr "struct %s_ret {\n" name;
-          pr "  hyper %s;\n" n;
-          pr "};\n\n"
+           pr "struct %s_ret {\n" name;
+           pr "  hyper %s;\n" n;
+           pr "};\n\n"
        | RBool n ->
        | RBool n ->
-          pr "struct %s_ret {\n" name;
-          pr "  bool %s;\n" n;
-          pr "};\n\n"
+           pr "struct %s_ret {\n" name;
+           pr "  bool %s;\n" n;
+           pr "};\n\n"
        | RConstString _ | RConstOptString _ ->
        | RConstString _ | RConstOptString _ ->
-          failwithf "RConstString|RConstOptString cannot be used by daemon functions"
+           failwithf "RConstString|RConstOptString cannot be used by daemon functions"
        | RString n ->
        | RString n ->
-          pr "struct %s_ret {\n" name;
-          pr "  string %s<>;\n" n;
-          pr "};\n\n"
+           pr "struct %s_ret {\n" name;
+           pr "  string %s<>;\n" n;
+           pr "};\n\n"
        | RStringList n ->
        | RStringList n ->
-          pr "struct %s_ret {\n" name;
-          pr "  str %s<>;\n" n;
-          pr "};\n\n"
+           pr "struct %s_ret {\n" name;
+           pr "  str %s<>;\n" n;
+           pr "};\n\n"
        | RStruct (n, typ) ->
        | RStruct (n, typ) ->
-          pr "struct %s_ret {\n" name;
-          pr "  guestfs_int_%s %s;\n" typ n;
-          pr "};\n\n"
+           pr "struct %s_ret {\n" name;
+           pr "  guestfs_int_%s %s;\n" typ n;
+           pr "};\n\n"
        | RStructList (n, typ) ->
        | RStructList (n, typ) ->
-          pr "struct %s_ret {\n" name;
-          pr "  guestfs_int_%s_list %s;\n" typ n;
-          pr "};\n\n"
+           pr "struct %s_ret {\n" name;
+           pr "  guestfs_int_%s_list %s;\n" typ n;
+           pr "};\n\n"
        | RHashtable n ->
        | RHashtable n ->
-          pr "struct %s_ret {\n" name;
-          pr "  str %s<>;\n" n;
-          pr "};\n\n"
+           pr "struct %s_ret {\n" name;
+           pr "  str %s<>;\n" n;
+           pr "};\n\n"
        | RBufferOut n ->
        | RBufferOut n ->
-          pr "struct %s_ret {\n" name;
-          pr "  opaque %s<>;\n" n;
-          pr "};\n\n"
+           pr "struct %s_ret {\n" name;
+           pr "  opaque %s<>;\n" n;
+           pr "};\n\n"
       );
   ) daemon_functions;
 
       );
   ) daemon_functions;
 
@@ -4245,18 +4245,18 @@ and generate_structs_h () =
     fun (typ, cols) ->
       pr "struct guestfs_%s {\n" typ;
       List.iter (
     fun (typ, cols) ->
       pr "struct guestfs_%s {\n" typ;
       List.iter (
-       function
-       | name, FChar -> pr "  char %s;\n" name
-       | name, FString -> pr "  char *%s;\n" name
-       | name, FBuffer ->
-           pr "  uint32_t %s_len;\n" name;
-           pr "  char *%s;\n" name
-       | name, FUUID -> pr "  char %s[32]; /* this is NOT nul-terminated, be careful when printing */\n" name
-       | name, FUInt32 -> pr "  uint32_t %s;\n" name
-       | name, FInt32 -> pr "  int32_t %s;\n" name
-       | name, (FUInt64|FBytes) -> pr "  uint64_t %s;\n" name
-       | name, FInt64 -> pr "  int64_t %s;\n" name
-       | name, FOptPercent -> pr "  float %s; /* [0..100] or -1 */\n" name
+        function
+        | name, FChar -> pr "  char %s;\n" name
+        | name, FString -> pr "  char *%s;\n" name
+        | name, FBuffer ->
+            pr "  uint32_t %s_len;\n" name;
+            pr "  char *%s;\n" name
+        | name, FUUID -> pr "  char %s[32]; /* this is NOT nul-terminated, be careful when printing */\n" name
+        | name, FUInt32 -> pr "  uint32_t %s;\n" name
+        | name, FInt32 -> pr "  int32_t %s;\n" name
+        | name, (FUInt64|FBytes) -> pr "  uint64_t %s;\n" name
+        | name, FInt64 -> pr "  int64_t %s;\n" name
+        | name, FOptPercent -> pr "  float %s; /* [0..100] or -1 */\n" name
       ) cols;
       pr "};\n";
       pr "\n";
       ) cols;
       pr "};\n";
       pr "\n";
@@ -4277,7 +4277,7 @@ and generate_actions_h () =
     fun (shortname, style, _, _, _, _, _) ->
       let name = "guestfs_" ^ shortname in
       generate_prototype ~single_line:true ~newline:true ~handle:"handle"
     fun (shortname, style, _, _, _, _, _) ->
       let name = "guestfs_" ^ shortname in
       generate_prototype ~single_line:true ~newline:true ~handle:"handle"
-       name style
+        name style
   ) all_functions
 
 (* Generate the client-side dispatch stubs. *)
   ) all_functions
 
 (* Generate the client-side dispatch stubs. *)
@@ -4310,12 +4310,12 @@ check_reply_header (guestfs_h *g,
   }
   if (hdr->vers != GUESTFS_PROTOCOL_VERSION) {
     error (g, \"wrong protocol version (%%d/%%d)\",
   }
   if (hdr->vers != GUESTFS_PROTOCOL_VERSION) {
     error (g, \"wrong protocol version (%%d/%%d)\",
-          hdr->vers, GUESTFS_PROTOCOL_VERSION);
+           hdr->vers, GUESTFS_PROTOCOL_VERSION);
     return -1;
   }
   if (hdr->direction != GUESTFS_DIRECTION_REPLY) {
     error (g, \"unexpected message direction (%%d/%%d)\",
     return -1;
   }
   if (hdr->direction != GUESTFS_DIRECTION_REPLY) {
     error (g, \"unexpected message direction (%%d/%%d)\",
-          hdr->direction, GUESTFS_DIRECTION_REPLY);
+           hdr->direction, GUESTFS_DIRECTION_REPLY);
     return -1;
   }
   if (hdr->proc != proc_nr) {
     return -1;
   }
   if (hdr->proc != proc_nr) {
@@ -4370,12 +4370,12 @@ check_state (guestfs_h *g, const char *caller)
       (match fst style with
        | RErr -> ()
        | RConstString _ | RConstOptString _ ->
       (match fst style with
        | RErr -> ()
        | RConstString _ | RConstOptString _ ->
-          failwithf "RConstString|RConstOptString cannot be used by daemon functions"
+           failwithf "RConstString|RConstOptString cannot be used by daemon functions"
        | RInt _ | RInt64 _
        | RBool _ | RString _ | RStringList _
        | RStruct _ | RStructList _
        | RHashtable _ | RBufferOut _ ->
        | RInt _ | RInt64 _
        | RBool _ | RString _ | RStringList _
        | RStruct _ | RStructList _
        | RHashtable _ | RBufferOut _ ->
-          pr "  struct %s_ret ret;\n" name
+           pr "  struct %s_ret ret;\n" name
       );
       pr "};\n";
       pr "\n";
       );
       pr "};\n";
       pr "\n";
@@ -4402,7 +4402,7 @@ check_state (guestfs_h *g, const char *caller)
       pr "  if (ctx->hdr.status == GUESTFS_STATUS_ERROR) {\n";
       pr "    if (!xdr_guestfs_message_error (xdr, &ctx->err)) {\n";
       pr "      error (g, \"%%s: failed to parse reply error\", \"%s\");\n"
       pr "  if (ctx->hdr.status == GUESTFS_STATUS_ERROR) {\n";
       pr "    if (!xdr_guestfs_message_error (xdr, &ctx->err)) {\n";
       pr "      error (g, \"%%s: failed to parse reply error\", \"%s\");\n"
-       name;
+        name;
       pr "      return;\n";
       pr "    }\n";
       pr "    goto done;\n";
       pr "      return;\n";
       pr "    }\n";
       pr "    goto done;\n";
@@ -4411,15 +4411,15 @@ check_state (guestfs_h *g, const char *caller)
       (match fst style with
        | RErr -> ()
        | RConstString _ | RConstOptString _ ->
       (match fst style with
        | RErr -> ()
        | RConstString _ | RConstOptString _ ->
-          failwithf "RConstString|RConstOptString cannot be used by daemon functions"
+           failwithf "RConstString|RConstOptString cannot be used by daemon functions"
        | RInt _ | RInt64 _
        | RBool _ | RString _ | RStringList _
        | RStruct _ | RStructList _
        | RHashtable _ | RBufferOut _ ->
        | RInt _ | RInt64 _
        | RBool _ | RString _ | RStringList _
        | RStruct _ | RStructList _
        | RHashtable _ | RBufferOut _ ->
-          pr "  if (!xdr_%s_ret (xdr, &ctx->ret)) {\n" name;
-          pr "    error (g, \"%%s: failed to parse reply\", \"%s\");\n" name;
-          pr "    return;\n";
-          pr "  }\n";
+           pr "  if (!xdr_%s_ret (xdr, &ctx->ret)) {\n" name;
+           pr "    error (g, \"%%s: failed to parse reply\", \"%s\");\n" name;
+           pr "    return;\n";
+           pr "  }\n";
       );
 
       pr " done:\n";
       );
 
       pr " done:\n";
@@ -4428,17 +4428,17 @@ check_state (guestfs_h *g, const char *caller)
 
       (* Generate the action stub. *)
       generate_prototype ~extern:false ~semicolon:false ~newline:true
 
       (* Generate the action stub. *)
       generate_prototype ~extern:false ~semicolon:false ~newline:true
-       ~handle:"g" name style;
+        ~handle:"g" name style;
 
       let error_code =
 
       let error_code =
-       match fst style with
-       | RErr | RInt _ | RInt64 _ | RBool _ -> "-1"
-       | RConstString _ | RConstOptString _ ->
-           failwithf "RConstString|RConstOptString cannot be used by daemon functions"
-       | RString _ | RStringList _
-       | RStruct _ | RStructList _
-       | RHashtable _ | RBufferOut _ ->
-           "NULL" in
+        match fst style with
+        | RErr | RInt _ | RInt64 _ | RBool _ -> "-1"
+        | RConstString _ | RConstOptString _ ->
+            failwithf "RConstString|RConstOptString cannot be used by daemon functions"
+        | RString _ | RStringList _
+        | RStruct _ | RStructList _
+        | RHashtable _ | RBufferOut _ ->
+            "NULL" in
 
       pr "{\n";
 
 
       pr "{\n";
 
@@ -4460,28 +4460,28 @@ check_state (guestfs_h *g, const char *caller)
       (* Send the main header and arguments. *)
       (match snd style with
        | [] ->
       (* Send the main header and arguments. *)
       (match snd style with
        | [] ->
-          pr "  serial = guestfs__send_sync (g, GUESTFS_PROC_%s, NULL, NULL);\n"
-            (String.uppercase shortname)
+           pr "  serial = guestfs__send_sync (g, GUESTFS_PROC_%s, NULL, NULL);\n"
+             (String.uppercase shortname)
        | args ->
        | args ->
-          List.iter (
-            function
-            | String n ->
-                pr "  args.%s = (char *) %s;\n" n n
-            | OptString n ->
-                pr "  args.%s = %s ? (char **) &%s : NULL;\n" n n n
-            | StringList n ->
-                pr "  args.%s.%s_val = (char **) %s;\n" n n n;
-                pr "  for (args.%s.%s_len = 0; %s[args.%s.%s_len]; args.%s.%s_len++) ;\n" n n n n n n n;
-            | Bool n ->
-                pr "  args.%s = %s;\n" n n
-            | Int n ->
-                pr "  args.%s = %s;\n" n n
-            | FileIn _ | FileOut _ -> ()
-          ) args;
-          pr "  serial = guestfs__send_sync (g, GUESTFS_PROC_%s,\n"
-            (String.uppercase shortname);
-          pr "        (xdrproc_t) xdr_%s_args, (char *) &args);\n"
-            name;
+           List.iter (
+             function
+             | String n ->
+                 pr "  args.%s = (char *) %s;\n" n n
+             | OptString n ->
+                 pr "  args.%s = %s ? (char **) &%s : NULL;\n" n n n
+             | StringList n ->
+                 pr "  args.%s.%s_val = (char **) %s;\n" n n n;
+                 pr "  for (args.%s.%s_len = 0; %s[args.%s.%s_len]; args.%s.%s_len++) ;\n" n n n n n n n;
+             | Bool n ->
+                 pr "  args.%s = %s;\n" n n
+             | Int n ->
+                 pr "  args.%s = %s;\n" n n
+             | FileIn _ | FileOut _ -> ()
+           ) args;
+           pr "  serial = guestfs__send_sync (g, GUESTFS_PROC_%s,\n"
+             (String.uppercase shortname);
+           pr "        (xdrproc_t) xdr_%s_args, (char *) &args);\n"
+             name;
       );
       pr "  if (serial == -1) {\n";
       pr "    guestfs_end_busy (g);\n";
       );
       pr "  if (serial == -1) {\n";
       pr "    guestfs_end_busy (g);\n";
@@ -4492,22 +4492,22 @@ check_state (guestfs_h *g, const char *caller)
       (* Send any additional files (FileIn) requested. *)
       let need_read_reply_label = ref false in
       List.iter (
       (* Send any additional files (FileIn) requested. *)
       let need_read_reply_label = ref false in
       List.iter (
-       function
-       | FileIn n ->
-           pr "  {\n";
-           pr "    int r;\n";
-           pr "\n";
-           pr "    r = guestfs__send_file_sync (g, %s);\n" n;
-           pr "    if (r == -1) {\n";
-           pr "      guestfs_end_busy (g);\n";
-           pr "      return %s;\n" error_code;
-           pr "    }\n";
-           pr "    if (r == -2) /* daemon cancelled */\n";
-           pr "      goto read_reply;\n";
-           need_read_reply_label := true;
-           pr "  }\n";
-           pr "\n";
-       | _ -> ()
+        function
+        | FileIn n ->
+            pr "  {\n";
+            pr "    int r;\n";
+            pr "\n";
+            pr "    r = guestfs__send_file_sync (g, %s);\n" n;
+            pr "    if (r == -1) {\n";
+            pr "      guestfs_end_busy (g);\n";
+            pr "      return %s;\n" error_code;
+            pr "    }\n";
+            pr "    if (r == -2) /* daemon cancelled */\n";
+            pr "      goto read_reply;\n";
+            need_read_reply_label := true;
+            pr "  }\n";
+            pr "\n";
+        | _ -> ()
       ) (snd style);
 
       (* Wait for the reply from the remote end. *)
       ) (snd style);
 
       (* Wait for the reply from the remote end. *)
@@ -4525,7 +4525,7 @@ check_state (guestfs_h *g, const char *caller)
       pr "\n";
 
       pr "  if (check_reply_header (g, &ctx.hdr, GUESTFS_PROC_%s, serial) == -1) {\n"
       pr "\n";
 
       pr "  if (check_reply_header (g, &ctx.hdr, GUESTFS_PROC_%s, serial) == -1) {\n"
-       (String.uppercase shortname);
+        (String.uppercase shortname);
       pr "    guestfs_end_busy (g);\n";
       pr "    return %s;\n" error_code;
       pr "  }\n";
       pr "    guestfs_end_busy (g);\n";
       pr "    return %s;\n" error_code;
       pr "  }\n";
@@ -4541,14 +4541,14 @@ check_state (guestfs_h *g, const char *caller)
 
       (* Expecting to receive further files (FileOut)? *)
       List.iter (
 
       (* Expecting to receive further files (FileOut)? *)
       List.iter (
-       function
-       | FileOut n ->
-           pr "  if (guestfs__receive_file_sync (g, %s) == -1) {\n" n;
-           pr "    guestfs_end_busy (g);\n";
-           pr "    return %s;\n" error_code;
-           pr "  }\n";
-           pr "\n";
-       | _ -> ()
+        function
+        | FileOut n ->
+            pr "  if (guestfs__receive_file_sync (g, %s) == -1) {\n" n;
+            pr "    guestfs_end_busy (g);\n";
+            pr "    return %s;\n" error_code;
+            pr "  }\n";
+            pr "\n";
+        | _ -> ()
       ) (snd style);
 
       pr "  guestfs_end_busy (g);\n";
       ) (snd style);
 
       pr "  guestfs_end_busy (g);\n";
@@ -4556,28 +4556,28 @@ check_state (guestfs_h *g, const char *caller)
       (match fst style with
        | RErr -> pr "  return 0;\n"
        | RInt n | RInt64 n | RBool n ->
       (match fst style with
        | RErr -> pr "  return 0;\n"
        | RInt n | RInt64 n | RBool n ->
-          pr "  return ctx.ret.%s;\n" n
+           pr "  return ctx.ret.%s;\n" n
        | RConstString _ | RConstOptString _ ->
        | RConstString _ | RConstOptString _ ->
-          failwithf "RConstString|RConstOptString cannot be used by daemon functions"
+           failwithf "RConstString|RConstOptString cannot be used by daemon functions"
        | RString n ->
        | RString n ->
-          pr "  return ctx.ret.%s; /* caller will free */\n" n
+           pr "  return ctx.ret.%s; /* caller will free */\n" n
        | RStringList n | RHashtable n ->
        | RStringList n | RHashtable n ->
-          pr "  /* caller will free this, but we need to add a NULL entry */\n";
-          pr "  ctx.ret.%s.%s_val =\n" n n;
-          pr "    safe_realloc (g, ctx.ret.%s.%s_val,\n" n n;
-          pr "                  sizeof (char *) * (ctx.ret.%s.%s_len + 1));\n"
-            n n;
-          pr "  ctx.ret.%s.%s_val[ctx.ret.%s.%s_len] = NULL;\n" n n n n;
-          pr "  return ctx.ret.%s.%s_val;\n" n n
+           pr "  /* caller will free this, but we need to add a NULL entry */\n";
+           pr "  ctx.ret.%s.%s_val =\n" n n;
+           pr "    safe_realloc (g, ctx.ret.%s.%s_val,\n" n n;
+           pr "                  sizeof (char *) * (ctx.ret.%s.%s_len + 1));\n"
+             n n;
+           pr "  ctx.ret.%s.%s_val[ctx.ret.%s.%s_len] = NULL;\n" n n n n;
+           pr "  return ctx.ret.%s.%s_val;\n" n n
        | RStruct (n, _) ->
        | RStruct (n, _) ->
-          pr "  /* caller will free this */\n";
-          pr "  return safe_memdup (g, &ctx.ret.%s, sizeof (ctx.ret.%s));\n" n n
+           pr "  /* caller will free this */\n";
+           pr "  return safe_memdup (g, &ctx.ret.%s, sizeof (ctx.ret.%s));\n" n n
        | RStructList (n, _) ->
        | RStructList (n, _) ->
-          pr "  /* caller will free this */\n";
-          pr "  return safe_memdup (g, &ctx.ret.%s, sizeof (ctx.ret.%s));\n" n n
+           pr "  /* caller will free this */\n";
+           pr "  return safe_memdup (g, &ctx.ret.%s, sizeof (ctx.ret.%s));\n" n n
        | RBufferOut n ->
        | RBufferOut n ->
-          pr "  *size_r = ctx.ret.%s.%s_len;\n" n n;
-          pr "  return ctx.ret.%s.%s_val; /* caller will free */\n" n n
+           pr "  *size_r = ctx.ret.%s.%s_len;\n" n n;
+           pr "  return ctx.ret.%s.%s_val; /* caller will free */\n" n n
       );
 
       pr "}\n\n"
       );
 
       pr "}\n\n"
@@ -4620,8 +4620,8 @@ and generate_daemon_actions_h () =
   List.iter (
     fun (name, style, _, _, _, _, _) ->
       generate_prototype
   List.iter (
     fun (name, style, _, _, _, _, _) ->
       generate_prototype
-       ~single_line:true ~newline:true ~in_daemon:true ~prefix:"do_"
-       name style;
+        ~single_line:true ~newline:true ~in_daemon:true ~prefix:"do_"
+        name style;
   ) daemon_functions
 
 (* Generate the server-side stubs. *)
   ) daemon_functions
 
 (* Generate the server-side stubs. *)
@@ -4649,76 +4649,76 @@ and generate_daemon_actions () =
       pr "static void %s_stub (XDR *xdr_in)\n" name;
       pr "{\n";
       let error_code =
       pr "static void %s_stub (XDR *xdr_in)\n" name;
       pr "{\n";
       let error_code =
-       match fst style with
-       | RErr | RInt _ -> pr "  int r;\n"; "-1"
-       | RInt64 _ -> pr "  int64_t r;\n"; "-1"
-       | RBool _ -> pr "  int r;\n"; "-1"
-       | RConstString _ | RConstOptString _ ->
-           failwithf "RConstString|RConstOptString cannot be used by daemon functions"
-       | RString _ -> pr "  char *r;\n"; "NULL"
-       | RStringList _ | RHashtable _ -> pr "  char **r;\n"; "NULL"
-       | RStruct (_, typ) -> pr "  guestfs_int_%s *r;\n" typ; "NULL"
-       | RStructList (_, typ) -> pr "  guestfs_int_%s_list *r;\n" typ; "NULL"
-       | RBufferOut _ ->
-           pr "  size_t size;\n";
-           pr "  char *r;\n";
-           "NULL" in
+        match fst style with
+        | RErr | RInt _ -> pr "  int r;\n"; "-1"
+        | RInt64 _ -> pr "  int64_t r;\n"; "-1"
+        | RBool _ -> pr "  int r;\n"; "-1"
+        | RConstString _ | RConstOptString _ ->
+            failwithf "RConstString|RConstOptString cannot be used by daemon functions"
+        | RString _ -> pr "  char *r;\n"; "NULL"
+        | RStringList _ | RHashtable _ -> pr "  char **r;\n"; "NULL"
+        | RStruct (_, typ) -> pr "  guestfs_int_%s *r;\n" typ; "NULL"
+        | RStructList (_, typ) -> pr "  guestfs_int_%s_list *r;\n" typ; "NULL"
+        | RBufferOut _ ->
+            pr "  size_t size;\n";
+            pr "  char *r;\n";
+            "NULL" in
 
       (match snd style with
        | [] -> ()
        | args ->
 
       (match snd style with
        | [] -> ()
        | args ->
-          pr "  struct guestfs_%s_args args;\n" name;
-          List.iter (
-            function
-              (* Note we allow the string to be writable, in order to
-               * allow device name translation.  This is safe because
-               * we can modify the string (passed from RPC).
-               *)
-            | String n
-            | OptString n -> pr "  char *%s;\n" n
-            | StringList n -> pr "  char **%s;\n" n
-            | Bool n -> pr "  int %s;\n" n
-            | Int n -> pr "  int %s;\n" n
-            | FileIn _ | FileOut _ -> ()
-          ) args
+           pr "  struct guestfs_%s_args args;\n" name;
+           List.iter (
+             function
+               (* Note we allow the string to be writable, in order to
+                * allow device name translation.  This is safe because
+                * we can modify the string (passed from RPC).
+                *)
+             | String n
+             | OptString n -> pr "  char *%s;\n" n
+             | StringList n -> pr "  char **%s;\n" n
+             | Bool n -> pr "  int %s;\n" n
+             | Int n -> pr "  int %s;\n" n
+             | FileIn _ | FileOut _ -> ()
+           ) args
       );
       pr "\n";
 
       (match snd style with
        | [] -> ()
        | args ->
       );
       pr "\n";
 
       (match snd style with
        | [] -> ()
        | args ->
-          pr "  memset (&args, 0, sizeof args);\n";
-          pr "\n";
-          pr "  if (!xdr_guestfs_%s_args (xdr_in, &args)) {\n" name;
-          pr "    reply_with_error (\"%%s: daemon failed to decode procedure arguments\", \"%s\");\n" name;
-          pr "    return;\n";
-          pr "  }\n";
-          List.iter (
-            function
-            | String n -> pr "  %s = args.%s;\n" n n
-            | OptString n -> pr "  %s = args.%s ? *args.%s : NULL;\n" n n n
-            | StringList n ->
-                pr "  %s = realloc (args.%s.%s_val,\n" n n n;
-                pr "                sizeof (char *) * (args.%s.%s_len+1));\n" n n;
-                pr "  if (%s == NULL) {\n" n;
-                pr "    reply_with_perror (\"realloc\");\n";
-                pr "    goto done;\n";
-                pr "  }\n";
-                pr "  %s[args.%s.%s_len] = NULL;\n" n n n;
-                pr "  args.%s.%s_val = %s;\n" n n n;
-            | Bool n -> pr "  %s = args.%s;\n" n n
-            | Int n -> pr "  %s = args.%s;\n" n n
-            | FileIn _ | FileOut _ -> ()
-          ) args;
-          pr "\n"
+           pr "  memset (&args, 0, sizeof args);\n";
+           pr "\n";
+           pr "  if (!xdr_guestfs_%s_args (xdr_in, &args)) {\n" name;
+           pr "    reply_with_error (\"%%s: daemon failed to decode procedure arguments\", \"%s\");\n" name;
+           pr "    return;\n";
+           pr "  }\n";
+           List.iter (
+             function
+             | String n -> pr "  %s = args.%s;\n" n n
+             | OptString n -> pr "  %s = args.%s ? *args.%s : NULL;\n" n n n
+             | StringList n ->
+                 pr "  %s = realloc (args.%s.%s_val,\n" n n n;
+                 pr "                sizeof (char *) * (args.%s.%s_len+1));\n" n n;
+                 pr "  if (%s == NULL) {\n" n;
+                 pr "    reply_with_perror (\"realloc\");\n";
+                 pr "    goto done;\n";
+                 pr "  }\n";
+                 pr "  %s[args.%s.%s_len] = NULL;\n" n n n;
+                 pr "  args.%s.%s_val = %s;\n" n n n;
+             | Bool n -> pr "  %s = args.%s;\n" n n
+             | Int n -> pr "  %s = args.%s;\n" n n
+             | FileIn _ | FileOut _ -> ()
+           ) args;
+           pr "\n"
       );
 
       (* Don't want to call the impl with any FileIn or FileOut
        * parameters, since these go "outside" the RPC protocol.
        *)
       let args' =
       );
 
       (* Don't want to call the impl with any FileIn or FileOut
        * parameters, since these go "outside" the RPC protocol.
        *)
       let args' =
-       List.filter (function FileIn _ | FileOut _ -> false | _ -> true)
-         (snd style) in
+        List.filter (function FileIn _ | FileOut _ -> false | _ -> true)
+          (snd style) in
       pr "  r = do_%s " name;
       generate_c_call_args (fst style, args');
       pr ";\n";
       pr "  r = do_%s " name;
       generate_c_call_args (fst style, args');
       pr ";\n";
@@ -4732,63 +4732,63 @@ and generate_daemon_actions () =
        * send its own reply.
        *)
       let no_reply =
        * send its own reply.
        *)
       let no_reply =
-       List.exists (function FileOut _ -> true | _ -> false) (snd style) in
+        List.exists (function FileOut _ -> true | _ -> false) (snd style) in
       if no_reply then
       if no_reply then
-       pr "  /* do_%s has already sent a reply */\n" name
+        pr "  /* do_%s has already sent a reply */\n" name
       else (
       else (
-       match fst style with
-       | RErr -> pr "  reply (NULL, NULL);\n"
-       | RInt n | RInt64 n | RBool n ->
-           pr "  struct guestfs_%s_ret ret;\n" name;
-           pr "  ret.%s = r;\n" n;
-           pr "  reply ((xdrproc_t) &xdr_guestfs_%s_ret, (char *) &ret);\n"
-             name
-       | RConstString _ | RConstOptString _ ->
-           failwithf "RConstString|RConstOptString cannot be used by daemon functions"
-       | RString n ->
-           pr "  struct guestfs_%s_ret ret;\n" name;
-           pr "  ret.%s = r;\n" n;
-           pr "  reply ((xdrproc_t) &xdr_guestfs_%s_ret, (char *) &ret);\n"
-             name;
-           pr "  free (r);\n"
-       | RStringList n | RHashtable n ->
-           pr "  struct guestfs_%s_ret ret;\n" name;
-           pr "  ret.%s.%s_len = count_strings (r);\n" n n;
-           pr "  ret.%s.%s_val = r;\n" n n;
-           pr "  reply ((xdrproc_t) &xdr_guestfs_%s_ret, (char *) &ret);\n"
-             name;
-           pr "  free_strings (r);\n"
-       | RStruct (n, _) ->
-           pr "  struct guestfs_%s_ret ret;\n" name;
-           pr "  ret.%s = *r;\n" n;
-           pr "  reply ((xdrproc_t) xdr_guestfs_%s_ret, (char *) &ret);\n"
-             name;
-           pr "  xdr_free ((xdrproc_t) xdr_guestfs_%s_ret, (char *) &ret);\n"
-             name
-       | RStructList (n, _) ->
-           pr "  struct guestfs_%s_ret ret;\n" name;
-           pr "  ret.%s = *r;\n" n;
-           pr "  reply ((xdrproc_t) xdr_guestfs_%s_ret, (char *) &ret);\n"
-             name;
-           pr "  xdr_free ((xdrproc_t) xdr_guestfs_%s_ret, (char *) &ret);\n"
-             name
-       | RBufferOut n ->
-           pr "  struct guestfs_%s_ret ret;\n" name;
-           pr "  ret.%s.%s_val = r;\n" n n;
-           pr "  ret.%s.%s_len = size;\n" n n;
-           pr "  reply ((xdrproc_t) &xdr_guestfs_%s_ret, (char *) &ret);\n"
-             name;
-           pr "  free (r);\n"
+        match fst style with
+        | RErr -> pr "  reply (NULL, NULL);\n"
+        | RInt n | RInt64 n | RBool n ->
+            pr "  struct guestfs_%s_ret ret;\n" name;
+            pr "  ret.%s = r;\n" n;
+            pr "  reply ((xdrproc_t) &xdr_guestfs_%s_ret, (char *) &ret);\n"
+              name
+        | RConstString _ | RConstOptString _ ->
+            failwithf "RConstString|RConstOptString cannot be used by daemon functions"
+        | RString n ->
+            pr "  struct guestfs_%s_ret ret;\n" name;
+            pr "  ret.%s = r;\n" n;
+            pr "  reply ((xdrproc_t) &xdr_guestfs_%s_ret, (char *) &ret);\n"
+              name;
+            pr "  free (r);\n"
+        | RStringList n | RHashtable n ->
+            pr "  struct guestfs_%s_ret ret;\n" name;
+            pr "  ret.%s.%s_len = count_strings (r);\n" n n;
+            pr "  ret.%s.%s_val = r;\n" n n;
+            pr "  reply ((xdrproc_t) &xdr_guestfs_%s_ret, (char *) &ret);\n"
+              name;
+            pr "  free_strings (r);\n"
+        | RStruct (n, _) ->
+            pr "  struct guestfs_%s_ret ret;\n" name;
+            pr "  ret.%s = *r;\n" n;
+            pr "  reply ((xdrproc_t) xdr_guestfs_%s_ret, (char *) &ret);\n"
+              name;
+            pr "  xdr_free ((xdrproc_t) xdr_guestfs_%s_ret, (char *) &ret);\n"
+              name
+        | RStructList (n, _) ->
+            pr "  struct guestfs_%s_ret ret;\n" name;
+            pr "  ret.%s = *r;\n" n;
+            pr "  reply ((xdrproc_t) xdr_guestfs_%s_ret, (char *) &ret);\n"
+              name;
+            pr "  xdr_free ((xdrproc_t) xdr_guestfs_%s_ret, (char *) &ret);\n"
+              name
+        | RBufferOut n ->
+            pr "  struct guestfs_%s_ret ret;\n" name;
+            pr "  ret.%s.%s_val = r;\n" n n;
+            pr "  ret.%s.%s_len = size;\n" n n;
+            pr "  reply ((xdrproc_t) &xdr_guestfs_%s_ret, (char *) &ret);\n"
+              name;
+            pr "  free (r);\n"
       );
 
       (* Free the args. *)
       (match snd style with
        | [] ->
       );
 
       (* Free the args. *)
       (match snd style with
        | [] ->
-          pr "done: ;\n";
+           pr "done: ;\n";
        | _ ->
        | _ ->
-          pr "done:\n";
-          pr "  xdr_free ((xdrproc_t) xdr_guestfs_%s_args, (char *) &args);\n"
-            name
+           pr "done:\n";
+           pr "  xdr_free ((xdrproc_t) xdr_guestfs_%s_args, (char *) &args);\n"
+             name
       );
 
       pr "}\n\n";
       );
 
       pr "}\n\n";
@@ -4819,164 +4819,164 @@ and generate_daemon_actions () =
   List.iter (
     function
     | typ, cols ->
   List.iter (
     function
     | typ, cols ->
-       pr "static const char *lvm_%s_cols = \"%s\";\n"
-         typ (String.concat "," (List.map fst cols));
-       pr "\n";
-
-       pr "static int lvm_tokenize_%s (char *str, guestfs_int_lvm_%s *r)\n" typ typ;
-       pr "{\n";
-       pr "  char *tok, *p, *next;\n";
-       pr "  int i, j;\n";
-       pr "\n";
-       (*
-         pr "  fprintf (stderr, \"%%s: <<%%s>>\\n\", __func__, str);\n";
-         pr "\n";
-       *)
-       pr "  if (!str) {\n";
-       pr "    fprintf (stderr, \"%%s: failed: passed a NULL string\\n\", __func__);\n";
-       pr "    return -1;\n";
-       pr "  }\n";
-       pr "  if (!*str || isspace (*str)) {\n";
-       pr "    fprintf (stderr, \"%%s: failed: passed a empty string or one beginning with whitespace\\n\", __func__);\n";
-       pr "    return -1;\n";
-       pr "  }\n";
-       pr "  tok = str;\n";
-       List.iter (
-         fun (name, coltype) ->
-           pr "  if (!tok) {\n";
-           pr "    fprintf (stderr, \"%%s: failed: string finished early, around token %%s\\n\", __func__, \"%s\");\n" name;
-           pr "    return -1;\n";
-           pr "  }\n";
-           pr "  p = strchrnul (tok, ',');\n";
-           pr "  if (*p) next = p+1; else next = NULL;\n";
-           pr "  *p = '\\0';\n";
-           (match coltype with
-            | FString ->
-                pr "  r->%s = strdup (tok);\n" name;
-                pr "  if (r->%s == NULL) {\n" name;
-                pr "    perror (\"strdup\");\n";
-                pr "    return -1;\n";
-                pr "  }\n"
-            | FUUID ->
-                pr "  for (i = j = 0; i < 32; ++j) {\n";
-                pr "    if (tok[j] == '\\0') {\n";
-                pr "      fprintf (stderr, \"%%s: failed to parse UUID from '%%s'\\n\", __func__, tok);\n";
-                pr "      return -1;\n";
-                pr "    } else if (tok[j] != '-')\n";
-                pr "      r->%s[i++] = tok[j];\n" name;
-                pr "  }\n";
-            | FBytes ->
-                pr "  if (sscanf (tok, \"%%\"SCNu64, &r->%s) != 1) {\n" name;
-                pr "    fprintf (stderr, \"%%s: failed to parse size '%%s' from token %%s\\n\", __func__, tok, \"%s\");\n" name;
-                pr "    return -1;\n";
-                pr "  }\n";
-            | FInt64 ->
-                pr "  if (sscanf (tok, \"%%\"SCNi64, &r->%s) != 1) {\n" name;
-                pr "    fprintf (stderr, \"%%s: failed to parse int '%%s' from token %%s\\n\", __func__, tok, \"%s\");\n" name;
-                pr "    return -1;\n";
-                pr "  }\n";
-            | FOptPercent ->
-                pr "  if (tok[0] == '\\0')\n";
-                pr "    r->%s = -1;\n" name;
-                pr "  else if (sscanf (tok, \"%%f\", &r->%s) != 1) {\n" name;
-                pr "    fprintf (stderr, \"%%s: failed to parse float '%%s' from token %%s\\n\", __func__, tok, \"%s\");\n" name;
-                pr "    return -1;\n";
-                pr "  }\n";
-            | FBuffer | FInt32 | FUInt32 | FUInt64 | FChar ->
-                assert false (* can never be an LVM column *)
-           );
-           pr "  tok = next;\n";
-       ) cols;
-
-       pr "  if (tok != NULL) {\n";
-       pr "    fprintf (stderr, \"%%s: failed: extra tokens at end of string\\n\", __func__);\n";
-       pr "    return -1;\n";
-       pr "  }\n";
-       pr "  return 0;\n";
-       pr "}\n";
-       pr "\n";
-
-       pr "guestfs_int_lvm_%s_list *\n" typ;
-       pr "parse_command_line_%ss (void)\n" typ;
-       pr "{\n";
-       pr "  char *out, *err;\n";
-       pr "  char *p, *pend;\n";
-       pr "  int r, i;\n";
-       pr "  guestfs_int_lvm_%s_list *ret;\n" typ;
-       pr "  void *newp;\n";
-       pr "\n";
-       pr "  ret = malloc (sizeof *ret);\n";
-       pr "  if (!ret) {\n";
-       pr "    reply_with_perror (\"malloc\");\n";
-       pr "    return NULL;\n";
-       pr "  }\n";
-       pr "\n";
-       pr "  ret->guestfs_int_lvm_%s_list_len = 0;\n" typ;
-       pr "  ret->guestfs_int_lvm_%s_list_val = NULL;\n" typ;
-       pr "\n";
-       pr "  r = command (&out, &err,\n";
-       pr "           \"/sbin/lvm\", \"%ss\",\n" typ;
-       pr "           \"-o\", lvm_%s_cols, \"--unbuffered\", \"--noheadings\",\n" typ;
-       pr "           \"--nosuffix\", \"--separator\", \",\", \"--units\", \"b\", NULL);\n";
-       pr "  if (r == -1) {\n";
-       pr "    reply_with_error (\"%%s\", err);\n";
-       pr "    free (out);\n";
-       pr "    free (err);\n";
-       pr "    free (ret);\n";
-       pr "    return NULL;\n";
-       pr "  }\n";
-       pr "\n";
-       pr "  free (err);\n";
-       pr "\n";
-       pr "  /* Tokenize each line of the output. */\n";
-       pr "  p = out;\n";
-       pr "  i = 0;\n";
-       pr "  while (p) {\n";
-       pr "    pend = strchr (p, '\\n');       /* Get the next line of output. */\n";
-       pr "    if (pend) {\n";
-       pr "      *pend = '\\0';\n";
-       pr "      pend++;\n";
-       pr "    }\n";
-       pr "\n";
-       pr "    while (*p && isspace (*p))      /* Skip any leading whitespace. */\n";
-       pr "      p++;\n";
-       pr "\n";
-       pr "    if (!*p) {                      /* Empty line?  Skip it. */\n";
-       pr "      p = pend;\n";
-       pr "      continue;\n";
-       pr "    }\n";
-       pr "\n";
-       pr "    /* Allocate some space to store this next entry. */\n";
-       pr "    newp = realloc (ret->guestfs_int_lvm_%s_list_val,\n" typ;
-       pr "                sizeof (guestfs_int_lvm_%s) * (i+1));\n" typ;
-       pr "    if (newp == NULL) {\n";
-       pr "      reply_with_perror (\"realloc\");\n";
-       pr "      free (ret->guestfs_int_lvm_%s_list_val);\n" typ;
-       pr "      free (ret);\n";
-       pr "      free (out);\n";
-       pr "      return NULL;\n";
-       pr "    }\n";
-       pr "    ret->guestfs_int_lvm_%s_list_val = newp;\n" typ;
-       pr "\n";
-       pr "    /* Tokenize the next entry. */\n";
-       pr "    r = lvm_tokenize_%s (p, &ret->guestfs_int_lvm_%s_list_val[i]);\n" typ typ;
-       pr "    if (r == -1) {\n";
-       pr "      reply_with_error (\"failed to parse output of '%ss' command\");\n" typ;
+        pr "static const char *lvm_%s_cols = \"%s\";\n"
+          typ (String.concat "," (List.map fst cols));
+        pr "\n";
+
+        pr "static int lvm_tokenize_%s (char *str, guestfs_int_lvm_%s *r)\n" typ typ;
+        pr "{\n";
+        pr "  char *tok, *p, *next;\n";
+        pr "  int i, j;\n";
+        pr "\n";
+        (*
+          pr "  fprintf (stderr, \"%%s: <<%%s>>\\n\", __func__, str);\n";
+          pr "\n";
+        *)
+        pr "  if (!str) {\n";
+        pr "    fprintf (stderr, \"%%s: failed: passed a NULL string\\n\", __func__);\n";
+        pr "    return -1;\n";
+        pr "  }\n";
+        pr "  if (!*str || isspace (*str)) {\n";
+        pr "    fprintf (stderr, \"%%s: failed: passed a empty string or one beginning with whitespace\\n\", __func__);\n";
+        pr "    return -1;\n";
+        pr "  }\n";
+        pr "  tok = str;\n";
+        List.iter (
+          fun (name, coltype) ->
+            pr "  if (!tok) {\n";
+            pr "    fprintf (stderr, \"%%s: failed: string finished early, around token %%s\\n\", __func__, \"%s\");\n" name;
+            pr "    return -1;\n";
+            pr "  }\n";
+            pr "  p = strchrnul (tok, ',');\n";
+            pr "  if (*p) next = p+1; else next = NULL;\n";
+            pr "  *p = '\\0';\n";
+            (match coltype with
+             | FString ->
+                 pr "  r->%s = strdup (tok);\n" name;
+                 pr "  if (r->%s == NULL) {\n" name;
+                 pr "    perror (\"strdup\");\n";
+                 pr "    return -1;\n";
+                 pr "  }\n"
+             | FUUID ->
+                 pr "  for (i = j = 0; i < 32; ++j) {\n";
+                 pr "    if (tok[j] == '\\0') {\n";
+                 pr "      fprintf (stderr, \"%%s: failed to parse UUID from '%%s'\\n\", __func__, tok);\n";
+                 pr "      return -1;\n";
+                 pr "    } else if (tok[j] != '-')\n";
+                 pr "      r->%s[i++] = tok[j];\n" name;
+                 pr "  }\n";
+             | FBytes ->
+                 pr "  if (sscanf (tok, \"%%\"SCNu64, &r->%s) != 1) {\n" name;
+                 pr "    fprintf (stderr, \"%%s: failed to parse size '%%s' from token %%s\\n\", __func__, tok, \"%s\");\n" name;
+                 pr "    return -1;\n";
+                 pr "  }\n";
+             | FInt64 ->
+                 pr "  if (sscanf (tok, \"%%\"SCNi64, &r->%s) != 1) {\n" name;
+                 pr "    fprintf (stderr, \"%%s: failed to parse int '%%s' from token %%s\\n\", __func__, tok, \"%s\");\n" name;
+                 pr "    return -1;\n";
+                 pr "  }\n";
+             | FOptPercent ->
+                 pr "  if (tok[0] == '\\0')\n";
+                 pr "    r->%s = -1;\n" name;
+                 pr "  else if (sscanf (tok, \"%%f\", &r->%s) != 1) {\n" name;
+                 pr "    fprintf (stderr, \"%%s: failed to parse float '%%s' from token %%s\\n\", __func__, tok, \"%s\");\n" name;
+                 pr "    return -1;\n";
+                 pr "  }\n";
+             | FBuffer | FInt32 | FUInt32 | FUInt64 | FChar ->
+                 assert false (* can never be an LVM column *)
+            );
+            pr "  tok = next;\n";
+        ) cols;
+
+        pr "  if (tok != NULL) {\n";
+        pr "    fprintf (stderr, \"%%s: failed: extra tokens at end of string\\n\", __func__);\n";
+        pr "    return -1;\n";
+        pr "  }\n";
+        pr "  return 0;\n";
+        pr "}\n";
+        pr "\n";
+
+        pr "guestfs_int_lvm_%s_list *\n" typ;
+        pr "parse_command_line_%ss (void)\n" typ;
+        pr "{\n";
+        pr "  char *out, *err;\n";
+        pr "  char *p, *pend;\n";
+        pr "  int r, i;\n";
+        pr "  guestfs_int_lvm_%s_list *ret;\n" typ;
+        pr "  void *newp;\n";
+        pr "\n";
+        pr "  ret = malloc (sizeof *ret);\n";
+        pr "  if (!ret) {\n";
+        pr "    reply_with_perror (\"malloc\");\n";
+        pr "    return NULL;\n";
+        pr "  }\n";
+        pr "\n";
+        pr "  ret->guestfs_int_lvm_%s_list_len = 0;\n" typ;
+        pr "  ret->guestfs_int_lvm_%s_list_val = NULL;\n" typ;
+        pr "\n";
+        pr "  r = command (&out, &err,\n";
+        pr "          \"/sbin/lvm\", \"%ss\",\n" typ;
+        pr "          \"-o\", lvm_%s_cols, \"--unbuffered\", \"--noheadings\",\n" typ;
+        pr "          \"--nosuffix\", \"--separator\", \",\", \"--units\", \"b\", NULL);\n";
+        pr "  if (r == -1) {\n";
+        pr "    reply_with_error (\"%%s\", err);\n";
+        pr "    free (out);\n";
+        pr "    free (err);\n";
+        pr "    free (ret);\n";
+        pr "    return NULL;\n";
+        pr "  }\n";
+        pr "\n";
+        pr "  free (err);\n";
+        pr "\n";
+        pr "  /* Tokenize each line of the output. */\n";
+        pr "  p = out;\n";
+        pr "  i = 0;\n";
+        pr "  while (p) {\n";
+        pr "    pend = strchr (p, '\\n');      /* Get the next line of output. */\n";
+        pr "    if (pend) {\n";
+        pr "      *pend = '\\0';\n";
+        pr "      pend++;\n";
+        pr "    }\n";
+        pr "\n";
+        pr "    while (*p && isspace (*p))     /* Skip any leading whitespace. */\n";
+        pr "      p++;\n";
+        pr "\n";
+        pr "    if (!*p) {                     /* Empty line?  Skip it. */\n";
+        pr "      p = pend;\n";
+        pr "      continue;\n";
+        pr "    }\n";
+        pr "\n";
+        pr "    /* Allocate some space to store this next entry. */\n";
+        pr "    newp = realloc (ret->guestfs_int_lvm_%s_list_val,\n" typ;
+        pr "               sizeof (guestfs_int_lvm_%s) * (i+1));\n" typ;
+        pr "    if (newp == NULL) {\n";
+        pr "      reply_with_perror (\"realloc\");\n";
         pr "      free (ret->guestfs_int_lvm_%s_list_val);\n" typ;
         pr "      free (ret);\n";
         pr "      free (ret->guestfs_int_lvm_%s_list_val);\n" typ;
         pr "      free (ret);\n";
-       pr "      free (out);\n";
-       pr "      return NULL;\n";
-       pr "    }\n";
-       pr "\n";
-       pr "    ++i;\n";
-       pr "    p = pend;\n";
-       pr "  }\n";
-       pr "\n";
-       pr "  ret->guestfs_int_lvm_%s_list_len = i;\n" typ;
-       pr "\n";
-       pr "  free (out);\n";
-       pr "  return ret;\n";
-       pr "}\n"
+        pr "      free (out);\n";
+        pr "      return NULL;\n";
+        pr "    }\n";
+        pr "    ret->guestfs_int_lvm_%s_list_val = newp;\n" typ;
+        pr "\n";
+        pr "    /* Tokenize the next entry. */\n";
+        pr "    r = lvm_tokenize_%s (p, &ret->guestfs_int_lvm_%s_list_val[i]);\n" typ typ;
+        pr "    if (r == -1) {\n";
+        pr "      reply_with_error (\"failed to parse output of '%ss' command\");\n" typ;
+        pr "      free (ret->guestfs_int_lvm_%s_list_val);\n" typ;
+        pr "      free (ret);\n";
+        pr "      free (out);\n";
+        pr "      return NULL;\n";
+        pr "    }\n";
+        pr "\n";
+        pr "    ++i;\n";
+        pr "    p = pend;\n";
+        pr "  }\n";
+        pr "\n";
+        pr "  ret->guestfs_int_lvm_%s_list_len = i;\n" typ;
+        pr "\n";
+        pr "  free (out);\n";
+        pr "  return ret;\n";
+        pr "}\n"
 
   ) ["pv", lvm_pv_cols; "vg", lvm_vg_cols; "lv", lvm_lv_cols]
 
 
   ) ["pv", lvm_pv_cols; "vg", lvm_vg_cols; "lv", lvm_lv_cols]
 
@@ -5047,9 +5047,9 @@ static void print_table (char * const * const argv)
   List.iter (
     fun (_, _, _, _, tests, _, _) ->
       let tests = filter_map (
   List.iter (
     fun (_, _, _, _, tests, _, _) ->
       let tests = filter_map (
-       function
-       | (_, (Always|If _|Unless _), test) -> Some test
-       | (_, Disabled, _) -> None
+        function
+        | (_, (Always|If _|Unless _), test) -> Some test
+        | (_, Disabled, _) -> None
       ) tests in
       let seq = List.concat (List.map seq_of_test tests) in
       let cmds_tested = List.map List.hd seq in
       ) tests in
       let seq = List.concat (List.map seq_of_test tests) in
       let cmds_tested = List.map List.hd seq in
@@ -5059,7 +5059,7 @@ static void print_table (char * const * const argv)
   List.iter (
     fun (name, _, _, _, _, _, _) ->
       if not (Hashtbl.mem hash name) then
   List.iter (
     fun (name, _, _, _, _, _, _) ->
       if not (Hashtbl.mem hash name) then
-       pr "  fprintf (stderr, \"warning: \\\"guestfs_%s\\\" has no tests\\n\");\n" name
+        pr "  fprintf (stderr, \"warning: \\\"guestfs_%s\\\" has no tests\\n\");\n" name
   ) all_functions;
 
   pr "}\n";
   ) all_functions;
 
   pr "}\n";
@@ -5073,7 +5073,7 @@ static void print_table (char * const * const argv)
   let test_names =
     List.map (
       fun (name, _, _, _, tests, _, _) ->
   let test_names =
     List.map (
       fun (name, _, _, _, tests, _, _) ->
-       mapi (generate_one_test name) tests
+        mapi (generate_one_test name) tests
     ) (List.rev all_functions) in
   let test_names = List.concat test_names in
   let nr_tests = List.length test_names in
     ) (List.rev all_functions) in
   let test_names = List.concat test_names in
   let nr_tests = List.length test_names in
@@ -5305,54 +5305,54 @@ static int %s (void)
 and generate_one_test_body name i test_name init test =
   (match init with
    | InitNone (* XXX at some point, InitNone and InitEmpty became
 and generate_one_test_body name i test_name init test =
   (match init with
    | InitNone (* XXX at some point, InitNone and InitEmpty became
-              * folded together as the same thing.  Really we should
-              * make InitNone do nothing at all, but the tests may
-              * need to be checked to make sure this is OK.
-              *)
+               * folded together as the same thing.  Really we should
+               * make InitNone do nothing at all, but the tests may
+               * need to be checked to make sure this is OK.
+               *)
    | InitEmpty ->
        pr "  /* InitNone|InitEmpty for %s */\n" test_name;
        List.iter (generate_test_command_call test_name)
    | InitEmpty ->
        pr "  /* InitNone|InitEmpty for %s */\n" test_name;
        List.iter (generate_test_command_call test_name)
-        [["blockdev_setrw"; "/dev/sda"];
-         ["umount_all"];
-         ["lvm_remove_all"]]
+         [["blockdev_setrw"; "/dev/sda"];
+          ["umount_all"];
+          ["lvm_remove_all"]]
    | InitBasicFS ->
        pr "  /* InitBasicFS for %s: create ext2 on /dev/sda1 */\n" test_name;
        List.iter (generate_test_command_call test_name)
    | InitBasicFS ->
        pr "  /* InitBasicFS for %s: create ext2 on /dev/sda1 */\n" test_name;
        List.iter (generate_test_command_call test_name)
-        [["blockdev_setrw"; "/dev/sda"];
-         ["umount_all"];
-         ["lvm_remove_all"];
-         ["sfdiskM"; "/dev/sda"; ","];
-         ["mkfs"; "ext2"; "/dev/sda1"];
-         ["mount"; "/dev/sda1"; "/"]]
+         [["blockdev_setrw"; "/dev/sda"];
+          ["umount_all"];
+          ["lvm_remove_all"];
+          ["sfdiskM"; "/dev/sda"; ","];
+          ["mkfs"; "ext2"; "/dev/sda1"];
+          ["mount"; "/dev/sda1"; "/"]]
    | InitBasicFSonLVM ->
        pr "  /* InitBasicFSonLVM for %s: create ext2 on /dev/VG/LV */\n"
    | InitBasicFSonLVM ->
        pr "  /* InitBasicFSonLVM for %s: create ext2 on /dev/VG/LV */\n"
-        test_name;
+         test_name;
        List.iter (generate_test_command_call test_name)
        List.iter (generate_test_command_call test_name)
-        [["blockdev_setrw"; "/dev/sda"];
-         ["umount_all"];
-         ["lvm_remove_all"];
-         ["sfdiskM"; "/dev/sda"; ","];
-         ["pvcreate"; "/dev/sda1"];
-         ["vgcreate"; "VG"; "/dev/sda1"];
-         ["lvcreate"; "LV"; "VG"; "8"];
-         ["mkfs"; "ext2"; "/dev/VG/LV"];
-         ["mount"; "/dev/VG/LV"; "/"]]
+         [["blockdev_setrw"; "/dev/sda"];
+          ["umount_all"];
+          ["lvm_remove_all"];
+          ["sfdiskM"; "/dev/sda"; ","];
+          ["pvcreate"; "/dev/sda1"];
+          ["vgcreate"; "VG"; "/dev/sda1"];
+          ["lvcreate"; "LV"; "VG"; "8"];
+          ["mkfs"; "ext2"; "/dev/VG/LV"];
+          ["mount"; "/dev/VG/LV"; "/"]]
    | InitSquashFS ->
        pr "  /* InitSquashFS for %s */\n" test_name;
        List.iter (generate_test_command_call test_name)
    | InitSquashFS ->
        pr "  /* InitSquashFS for %s */\n" test_name;
        List.iter (generate_test_command_call test_name)
-        [["blockdev_setrw"; "/dev/sda"];
-         ["umount_all"];
-         ["lvm_remove_all"];
-         ["mount_vfs"; "ro"; "squashfs"; "/dev/sdd"; "/"]]
+         [["blockdev_setrw"; "/dev/sda"];
+          ["umount_all"];
+          ["lvm_remove_all"];
+          ["mount_vfs"; "ro"; "squashfs"; "/dev/sdd"; "/"]]
   );
 
   let get_seq_last = function
     | [] ->
   );
 
   let get_seq_last = function
     | [] ->
-       failwithf "%s: you cannot use [] (empty list) when expecting a command"
-         test_name
+        failwithf "%s: you cannot use [] (empty list) when expecting a command"
+          test_name
     | seq ->
     | seq ->
-       let seq = List.rev seq in
-       List.rev (List.tl seq), List.hd seq
+        let seq = List.rev seq in
+        List.rev (List.tl seq), List.hd seq
   in
 
   match test with
   in
 
   match test with
@@ -5364,10 +5364,10 @@ and generate_one_test_body name i test_name init test =
       pr "  const char *expected = \"%s\";\n" (c_quote expected);
       let seq, last = get_seq_last seq in
       let test () =
       pr "  const char *expected = \"%s\";\n" (c_quote expected);
       let seq, last = get_seq_last seq in
       let test () =
-       pr "    if (strcmp (r, expected) != 0) {\n";
-       pr "      fprintf (stderr, \"%s: expected \\\"%%s\\\" but got \\\"%%s\\\"\\n\", expected, r);\n" test_name;
-       pr "      return -1;\n";
-       pr "    }\n"
+        pr "    if (strcmp (r, expected) != 0) {\n";
+        pr "      fprintf (stderr, \"%s: expected \\\"%%s\\\" but got \\\"%%s\\\"\\n\", expected, r);\n" test_name;
+        pr "      return -1;\n";
+        pr "    }\n"
       in
       List.iter (generate_test_command_call test_name) seq;
       generate_test_command_call ~test test_name last
       in
       List.iter (generate_test_command_call test_name) seq;
       generate_test_command_call ~test test_name last
@@ -5375,27 +5375,27 @@ and generate_one_test_body name i test_name init test =
       pr "  /* TestOutputList for %s (%d) */\n" name i;
       let seq, last = get_seq_last seq in
       let test () =
       pr "  /* TestOutputList for %s (%d) */\n" name i;
       let seq, last = get_seq_last seq in
       let test () =
-       iteri (
-         fun i str ->
-           pr "    if (!r[%d]) {\n" i;
-           pr "      fprintf (stderr, \"%s: short list returned from command\\n\");\n" test_name;
-           pr "      print_strings (r);\n";
-           pr "      return -1;\n";
-           pr "    }\n";
+        iteri (
+          fun i str ->
+            pr "    if (!r[%d]) {\n" i;
+            pr "      fprintf (stderr, \"%s: short list returned from command\\n\");\n" test_name;
+            pr "      print_strings (r);\n";
+            pr "      return -1;\n";
+            pr "    }\n";
             pr "    {\n";
             pr "      const char *expected = \"%s\";\n" (c_quote str);
             pr "    {\n";
             pr "      const char *expected = \"%s\";\n" (c_quote str);
-           pr "      if (strcmp (r[%d], expected) != 0) {\n" i;
-           pr "        fprintf (stderr, \"%s: expected \\\"%%s\\\" but got \\\"%%s\\\"\\n\", expected, r[%d]);\n" test_name i;
-           pr "        return -1;\n";
-           pr "      }\n";
-           pr "    }\n"
-       ) expected;
-       pr "    if (r[%d] != NULL) {\n" (List.length expected);
-       pr "      fprintf (stderr, \"%s: extra elements returned from command\\n\");\n"
-         test_name;
-       pr "      print_strings (r);\n";
-       pr "      return -1;\n";
-       pr "    }\n"
+            pr "      if (strcmp (r[%d], expected) != 0) {\n" i;
+            pr "        fprintf (stderr, \"%s: expected \\\"%%s\\\" but got \\\"%%s\\\"\\n\", expected, r[%d]);\n" test_name i;
+            pr "        return -1;\n";
+            pr "      }\n";
+            pr "    }\n"
+        ) expected;
+        pr "    if (r[%d] != NULL) {\n" (List.length expected);
+        pr "      fprintf (stderr, \"%s: extra elements returned from command\\n\");\n"
+          test_name;
+        pr "      print_strings (r);\n";
+        pr "      return -1;\n";
+        pr "    }\n"
       in
       List.iter (generate_test_command_call test_name) seq;
       generate_test_command_call ~test test_name last
       in
       List.iter (generate_test_command_call test_name) seq;
       generate_test_command_call ~test test_name last
@@ -5403,28 +5403,28 @@ and generate_one_test_body name i test_name init test =
       pr "  /* TestOutputListOfDevices for %s (%d) */\n" name i;
       let seq, last = get_seq_last seq in
       let test () =
       pr "  /* TestOutputListOfDevices for %s (%d) */\n" name i;
       let seq, last = get_seq_last seq in
       let test () =
-       iteri (
-         fun i str ->
-           pr "    if (!r[%d]) {\n" i;
-           pr "      fprintf (stderr, \"%s: short list returned from command\\n\");\n" test_name;
-           pr "      print_strings (r);\n";
-           pr "      return -1;\n";
-           pr "    }\n";
+        iteri (
+          fun i str ->
+            pr "    if (!r[%d]) {\n" i;
+            pr "      fprintf (stderr, \"%s: short list returned from command\\n\");\n" test_name;
+            pr "      print_strings (r);\n";
+            pr "      return -1;\n";
+            pr "    }\n";
             pr "    {\n";
             pr "      const char *expected = \"%s\";\n" (c_quote str);
             pr "    {\n";
             pr "      const char *expected = \"%s\";\n" (c_quote str);
-           pr "      r[%d][5] = 's';\n" i;
-           pr "      if (strcmp (r[%d], expected) != 0) {\n" i;
-           pr "        fprintf (stderr, \"%s: expected \\\"%%s\\\" but got \\\"%%s\\\"\\n\", expected, r[%d]);\n" test_name i;
-           pr "        return -1;\n";
-           pr "      }\n";
-           pr "    }\n"
-       ) expected;
-       pr "    if (r[%d] != NULL) {\n" (List.length expected);
-       pr "      fprintf (stderr, \"%s: extra elements returned from command\\n\");\n"
-         test_name;
-       pr "      print_strings (r);\n";
-       pr "      return -1;\n";
-       pr "    }\n"
+            pr "      r[%d][5] = 's';\n" i;
+            pr "      if (strcmp (r[%d], expected) != 0) {\n" i;
+            pr "        fprintf (stderr, \"%s: expected \\\"%%s\\\" but got \\\"%%s\\\"\\n\", expected, r[%d]);\n" test_name i;
+            pr "        return -1;\n";
+            pr "      }\n";
+            pr "    }\n"
+        ) expected;
+        pr "    if (r[%d] != NULL) {\n" (List.length expected);
+        pr "      fprintf (stderr, \"%s: extra elements returned from command\\n\");\n"
+          test_name;
+        pr "      print_strings (r);\n";
+        pr "      return -1;\n";
+        pr "    }\n"
       in
       List.iter (generate_test_command_call test_name) seq;
       generate_test_command_call ~test test_name last
       in
       List.iter (generate_test_command_call test_name) seq;
       generate_test_command_call ~test test_name last
@@ -5432,12 +5432,12 @@ and generate_one_test_body name i test_name init test =
       pr "  /* TestOutputInt for %s (%d) */\n" name i;
       let seq, last = get_seq_last seq in
       let test () =
       pr "  /* TestOutputInt for %s (%d) */\n" name i;
       let seq, last = get_seq_last seq in
       let test () =
-       pr "    if (r != %d) {\n" expected;
-       pr "      fprintf (stderr, \"%s: expected %d but got %%d\\n\","
-         test_name expected;
-       pr "               (int) r);\n";
-       pr "      return -1;\n";
-       pr "    }\n"
+        pr "    if (r != %d) {\n" expected;
+        pr "      fprintf (stderr, \"%s: expected %d but got %%d\\n\","
+          test_name expected;
+        pr "               (int) r);\n";
+        pr "      return -1;\n";
+        pr "    }\n"
       in
       List.iter (generate_test_command_call test_name) seq;
       generate_test_command_call ~test test_name last
       in
       List.iter (generate_test_command_call test_name) seq;
       generate_test_command_call ~test test_name last
@@ -5445,12 +5445,12 @@ and generate_one_test_body name i test_name init test =
       pr "  /* TestOutputIntOp for %s (%d) */\n" name i;
       let seq, last = get_seq_last seq in
       let test () =
       pr "  /* TestOutputIntOp for %s (%d) */\n" name i;
       let seq, last = get_seq_last seq in
       let test () =
-       pr "    if (! (r %s %d)) {\n" op expected;
-       pr "      fprintf (stderr, \"%s: expected %s %d but got %%d\\n\","
-         test_name op expected;
-       pr "               (int) r);\n";
-       pr "      return -1;\n";
-       pr "    }\n"
+        pr "    if (! (r %s %d)) {\n" op expected;
+        pr "      fprintf (stderr, \"%s: expected %s %d but got %%d\\n\","
+          test_name op expected;
+        pr "               (int) r);\n";
+        pr "      return -1;\n";
+        pr "    }\n"
       in
       List.iter (generate_test_command_call test_name) seq;
       generate_test_command_call ~test test_name last
       in
       List.iter (generate_test_command_call test_name) seq;
       generate_test_command_call ~test test_name last
@@ -5458,11 +5458,11 @@ and generate_one_test_body name i test_name init test =
       pr "  /* TestOutputTrue for %s (%d) */\n" name i;
       let seq, last = get_seq_last seq in
       let test () =
       pr "  /* TestOutputTrue for %s (%d) */\n" name i;
       let seq, last = get_seq_last seq in
       let test () =
-       pr "    if (!r) {\n";
-       pr "      fprintf (stderr, \"%s: expected true, got false\\n\");\n"
-         test_name;
-       pr "      return -1;\n";
-       pr "    }\n"
+        pr "    if (!r) {\n";
+        pr "      fprintf (stderr, \"%s: expected true, got false\\n\");\n"
+          test_name;
+        pr "      return -1;\n";
+        pr "    }\n"
       in
       List.iter (generate_test_command_call test_name) seq;
       generate_test_command_call ~test test_name last
       in
       List.iter (generate_test_command_call test_name) seq;
       generate_test_command_call ~test test_name last
@@ -5470,11 +5470,11 @@ and generate_one_test_body name i test_name init test =
       pr "  /* TestOutputFalse for %s (%d) */\n" name i;
       let seq, last = get_seq_last seq in
       let test () =
       pr "  /* TestOutputFalse for %s (%d) */\n" name i;
       let seq, last = get_seq_last seq in
       let test () =
-       pr "    if (r) {\n";
-       pr "      fprintf (stderr, \"%s: expected false, got true\\n\");\n"
-         test_name;
-       pr "      return -1;\n";
-       pr "    }\n"
+        pr "    if (r) {\n";
+        pr "      fprintf (stderr, \"%s: expected false, got true\\n\");\n"
+          test_name;
+        pr "      return -1;\n";
+        pr "    }\n"
       in
       List.iter (generate_test_command_call test_name) seq;
       generate_test_command_call ~test test_name last
       in
       List.iter (generate_test_command_call test_name) seq;
       generate_test_command_call ~test test_name last
@@ -5482,20 +5482,20 @@ and generate_one_test_body name i test_name init test =
       pr "  /* TestOutputLength for %s (%d) */\n" name i;
       let seq, last = get_seq_last seq in
       let test () =
       pr "  /* TestOutputLength for %s (%d) */\n" name i;
       let seq, last = get_seq_last seq in
       let test () =
-       pr "    int j;\n";
-       pr "    for (j = 0; j < %d; ++j)\n" expected;
-       pr "      if (r[j] == NULL) {\n";
-       pr "        fprintf (stderr, \"%s: short list returned\\n\");\n"
-         test_name;
-       pr "        print_strings (r);\n";
-       pr "        return -1;\n";
-       pr "      }\n";
-       pr "    if (r[j] != NULL) {\n";
-       pr "      fprintf (stderr, \"%s: long list returned\\n\");\n"
-         test_name;
-       pr "      print_strings (r);\n";
-       pr "      return -1;\n";
-       pr "    }\n"
+        pr "    int j;\n";
+        pr "    for (j = 0; j < %d; ++j)\n" expected;
+        pr "      if (r[j] == NULL) {\n";
+        pr "        fprintf (stderr, \"%s: short list returned\\n\");\n"
+          test_name;
+        pr "        print_strings (r);\n";
+        pr "        return -1;\n";
+        pr "      }\n";
+        pr "    if (r[j] != NULL) {\n";
+        pr "      fprintf (stderr, \"%s: long list returned\\n\");\n"
+          test_name;
+        pr "      print_strings (r);\n";
+        pr "      return -1;\n";
+        pr "    }\n"
       in
       List.iter (generate_test_command_call test_name) seq;
       generate_test_command_call ~test test_name last
       in
       List.iter (generate_test_command_call test_name) seq;
       generate_test_command_call ~test test_name last
@@ -5505,14 +5505,14 @@ and generate_one_test_body name i test_name init test =
       let seq, last = get_seq_last seq in
       let len = String.length expected in
       let test () =
       let seq, last = get_seq_last seq in
       let len = String.length expected in
       let test () =
-       pr "    if (size != %d) {\n" len;
-       pr "      fprintf (stderr, \"%s: returned size of buffer wrong, expected %d but got %%zu\\n\", size);\n" test_name len;
-       pr "      return -1;\n";
-       pr "    }\n";
-       pr "    if (strncmp (r, expected, size) != 0) {\n";
-       pr "      fprintf (stderr, \"%s: expected \\\"%%s\\\" but got \\\"%%s\\\"\\n\", expected, r);\n" test_name;
-       pr "      return -1;\n";
-       pr "    }\n"
+        pr "    if (size != %d) {\n" len;
+        pr "      fprintf (stderr, \"%s: returned size of buffer wrong, expected %d but got %%zu\\n\", size);\n" test_name len;
+        pr "      return -1;\n";
+        pr "    }\n";
+        pr "    if (strncmp (r, expected, size) != 0) {\n";
+        pr "      fprintf (stderr, \"%s: expected \\\"%%s\\\" but got \\\"%%s\\\"\\n\", expected, r);\n" test_name;
+        pr "      return -1;\n";
+        pr "    }\n"
       in
       List.iter (generate_test_command_call test_name) seq;
       generate_test_command_call ~test test_name last
       in
       List.iter (generate_test_command_call test_name) seq;
       generate_test_command_call ~test test_name last
@@ -5520,44 +5520,44 @@ and generate_one_test_body name i test_name init test =
       pr "  /* TestOutputStruct for %s (%d) */\n" name i;
       let seq, last = get_seq_last seq in
       let test () =
       pr "  /* TestOutputStruct for %s (%d) */\n" name i;
       let seq, last = get_seq_last seq in
       let test () =
-       List.iter (
-         function
-         | CompareWithInt (field, expected) ->
-             pr "    if (r->%s != %d) {\n" field expected;
-             pr "      fprintf (stderr, \"%s: %s was %%d, expected %d\\n\",\n"
-               test_name field expected;
-             pr "               (int) r->%s);\n" field;
-             pr "      return -1;\n";
-             pr "    }\n"
-         | CompareWithIntOp (field, op, expected) ->
-             pr "    if (!(r->%s %s %d)) {\n" field op expected;
-             pr "      fprintf (stderr, \"%s: %s was %%d, expected %s %d\\n\",\n"
-               test_name field op expected;
-             pr "               (int) r->%s);\n" field;
-             pr "      return -1;\n";
-             pr "    }\n"
-         | CompareWithString (field, expected) ->
-             pr "    if (strcmp (r->%s, \"%s\") != 0) {\n" field expected;
-             pr "      fprintf (stderr, \"%s: %s was \"%%s\", expected \"%s\"\\n\",\n"
-               test_name field expected;
-             pr "               r->%s);\n" field;
-             pr "      return -1;\n";
-             pr "    }\n"
-         | CompareFieldsIntEq (field1, field2) ->
-             pr "    if (r->%s != r->%s) {\n" field1 field2;
-             pr "      fprintf (stderr, \"%s: %s (%%d) <> %s (%%d)\\n\",\n"
-               test_name field1 field2;
-             pr "               (int) r->%s, (int) r->%s);\n" field1 field2;
-             pr "      return -1;\n";
-             pr "    }\n"
-         | CompareFieldsStrEq (field1, field2) ->
-             pr "    if (strcmp (r->%s, r->%s) != 0) {\n" field1 field2;
-             pr "      fprintf (stderr, \"%s: %s (\"%%s\") <> %s (\"%%s\")\\n\",\n"
-               test_name field1 field2;
-             pr "               r->%s, r->%s);\n" field1 field2;
-             pr "      return -1;\n";
-             pr "    }\n"
-       ) checks
+        List.iter (
+          function
+          | CompareWithInt (field, expected) ->
+              pr "    if (r->%s != %d) {\n" field expected;
+              pr "      fprintf (stderr, \"%s: %s was %%d, expected %d\\n\",\n"
+                test_name field expected;
+              pr "               (int) r->%s);\n" field;
+              pr "      return -1;\n";
+              pr "    }\n"
+          | CompareWithIntOp (field, op, expected) ->
+              pr "    if (!(r->%s %s %d)) {\n" field op expected;
+              pr "      fprintf (stderr, \"%s: %s was %%d, expected %s %d\\n\",\n"
+                test_name field op expected;
+              pr "               (int) r->%s);\n" field;
+              pr "      return -1;\n";
+              pr "    }\n"
+          | CompareWithString (field, expected) ->
+              pr "    if (strcmp (r->%s, \"%s\") != 0) {\n" field expected;
+              pr "      fprintf (stderr, \"%s: %s was \"%%s\", expected \"%s\"\\n\",\n"
+                test_name field expected;
+              pr "               r->%s);\n" field;
+              pr "      return -1;\n";
+              pr "    }\n"
+          | CompareFieldsIntEq (field1, field2) ->
+              pr "    if (r->%s != r->%s) {\n" field1 field2;
+              pr "      fprintf (stderr, \"%s: %s (%%d) <> %s (%%d)\\n\",\n"
+                test_name field1 field2;
+              pr "               (int) r->%s, (int) r->%s);\n" field1 field2;
+              pr "      return -1;\n";
+              pr "    }\n"
+          | CompareFieldsStrEq (field1, field2) ->
+              pr "    if (strcmp (r->%s, r->%s) != 0) {\n" field1 field2;
+              pr "      fprintf (stderr, \"%s: %s (\"%%s\") <> %s (\"%%s\")\\n\",\n"
+                test_name field1 field2;
+              pr "               r->%s, r->%s);\n" field1 field2;
+              pr "      return -1;\n";
+              pr "    }\n"
+        ) checks
       in
       List.iter (generate_test_command_call test_name) seq;
       generate_test_command_call ~test test_name last
       in
       List.iter (generate_test_command_call test_name) seq;
       generate_test_command_call ~test test_name last
@@ -5576,84 +5576,84 @@ and generate_test_command_call ?(expect_error = false) ?test test_name cmd =
   | name :: args ->
       (* Look up the command to find out what args/ret it has. *)
       let style =
   | name :: args ->
       (* Look up the command to find out what args/ret it has. *)
       let style =
-       try
-         let _, style, _, _, _, _, _ =
-           List.find (fun (n, _, _, _, _, _, _) -> n = name) all_functions in
-         style
-       with Not_found ->
-         failwithf "%s: in test, command %s was not found" test_name name in
+        try
+          let _, style, _, _, _, _, _ =
+            List.find (fun (n, _, _, _, _, _, _) -> n = name) all_functions in
+          style
+        with Not_found ->
+          failwithf "%s: in test, command %s was not found" test_name name in
 
       if List.length (snd style) <> List.length args then
 
       if List.length (snd style) <> List.length args then
-       failwithf "%s: in test, wrong number of args given to %s"
-         test_name name;
+        failwithf "%s: in test, wrong number of args given to %s"
+          test_name name;
 
       pr "  {\n";
 
       List.iter (
 
       pr "  {\n";
 
       List.iter (
-       function
-       | OptString n, "NULL" -> ()
-       | String n, arg
-       | OptString n, arg ->
-           pr "    const char *%s = \"%s\";\n" n (c_quote arg);
-       | Int _, _
-       | Bool _, _
-       | FileIn _, _ | FileOut _, _ -> ()
-       | StringList n, arg ->
-           let strs = string_split " " arg in
-           iteri (
-             fun i str ->
+        function
+        | OptString n, "NULL" -> ()
+        | String n, arg
+        | OptString n, arg ->
+            pr "    const char *%s = \"%s\";\n" n (c_quote arg);
+        | Int _, _
+        | Bool _, _
+        | FileIn _, _ | FileOut _, _ -> ()
+        | StringList n, arg ->
+            let strs = string_split " " arg in
+            iteri (
+              fun i str ->
                 pr "    const char *%s_%d = \"%s\";\n" n i (c_quote str);
                 pr "    const char *%s_%d = \"%s\";\n" n i (c_quote str);
-           ) strs;
-           pr "    const char *%s[] = {\n" n;
-           iteri (
-             fun i _ -> pr "      %s_%d,\n" n i
-           ) strs;
-           pr "      NULL\n";
-           pr "    };\n";
+            ) strs;
+            pr "    const char *%s[] = {\n" n;
+            iteri (
+              fun i _ -> pr "      %s_%d,\n" n i
+            ) strs;
+            pr "      NULL\n";
+            pr "    };\n";
       ) (List.combine (snd style) args);
 
       let error_code =
       ) (List.combine (snd style) args);
 
       let error_code =
-       match fst style with
-       | RErr | RInt _ | RBool _ -> pr "    int r;\n"; "-1"
-       | RInt64 _ -> pr "    int64_t r;\n"; "-1"
-       | RConstString _ | RConstOptString _ ->
-           pr "    const char *r;\n"; "NULL"
-       | RString _ -> pr "    char *r;\n"; "NULL"
-       | RStringList _ | RHashtable _ ->
-           pr "    char **r;\n";
-           pr "    int i;\n";
-           "NULL"
-       | RStruct (_, typ) ->
-           pr "    struct guestfs_%s *r;\n" typ; "NULL"
-       | RStructList (_, typ) ->
-           pr "    struct guestfs_%s_list *r;\n" typ; "NULL"
-       | RBufferOut _ ->
-           pr "    char *r;\n";
-           pr "    size_t size;\n";
-           "NULL" in
+        match fst style with
+        | RErr | RInt _ | RBool _ -> pr "    int r;\n"; "-1"
+        | RInt64 _ -> pr "    int64_t r;\n"; "-1"
+        | RConstString _ | RConstOptString _ ->
+            pr "    const char *r;\n"; "NULL"
+        | RString _ -> pr "    char *r;\n"; "NULL"
+        | RStringList _ | RHashtable _ ->
+            pr "    char **r;\n";
+            pr "    int i;\n";
+            "NULL"
+        | RStruct (_, typ) ->
+            pr "    struct guestfs_%s *r;\n" typ; "NULL"
+        | RStructList (_, typ) ->
+            pr "    struct guestfs_%s_list *r;\n" typ; "NULL"
+        | RBufferOut _ ->
+            pr "    char *r;\n";
+            pr "    size_t size;\n";
+            "NULL" in
 
       pr "    suppress_error = %d;\n" (if expect_error then 1 else 0);
       pr "    r = guestfs_%s (g" name;
 
       (* Generate the parameters. *)
       List.iter (
 
       pr "    suppress_error = %d;\n" (if expect_error then 1 else 0);
       pr "    r = guestfs_%s (g" name;
 
       (* Generate the parameters. *)
       List.iter (
-       function
-       | OptString _, "NULL" -> pr ", NULL"
-       | String n, _
-       | OptString n, _ ->
+        function
+        | OptString _, "NULL" -> pr ", NULL"
+        | String n, _
+        | OptString n, _ ->
             pr ", %s" n
             pr ", %s" n
-       | FileIn _, arg | FileOut _, arg ->
-           pr ", \"%s\"" (c_quote arg)
-       | StringList n, _ ->
-           pr ", %s" n
-       | Int _, arg ->
-           let i =
-             try int_of_string arg
-             with Failure "int_of_string" ->
-               failwithf "%s: expecting an int, but got '%s'" test_name arg in
-           pr ", %d" i
-       | Bool _, arg ->
-           let b = bool_of_string arg in pr ", %d" (if b then 1 else 0)
+        | FileIn _, arg | FileOut _, arg ->
+            pr ", \"%s\"" (c_quote arg)
+        | StringList n, _ ->
+            pr ", %s" n
+        | Int _, arg ->
+            let i =
+              try int_of_string arg
+              with Failure "int_of_string" ->
+                failwithf "%s: expecting an int, but got '%s'" test_name arg in
+            pr ", %d" i
+        | Bool _, arg ->
+            let b = bool_of_string arg in pr ", %d" (if b then 1 else 0)
       ) (List.combine (snd style) args);
 
       (match fst style with
       ) (List.combine (snd style) args);
 
       (match fst style with
@@ -5664,9 +5664,9 @@ and generate_test_command_call ?(expect_error = false) ?test test_name cmd =
       pr ");\n";
 
       if not expect_error then
       pr ");\n";
 
       if not expect_error then
-       pr "    if (r == %s)\n" error_code
+        pr "    if (r == %s)\n" error_code
       else
       else
-       pr "    if (r != %s)\n" error_code;
+        pr "    if (r != %s)\n" error_code;
       pr "      return -1;\n";
 
       (* Insert the test code. *)
       pr "      return -1;\n";
 
       (* Insert the test code. *)
@@ -5680,13 +5680,13 @@ and generate_test_command_call ?(expect_error = false) ?test test_name cmd =
        | RConstString _ | RConstOptString _ -> ()
        | RString _ | RBufferOut _ -> pr "    free (r);\n"
        | RStringList _ | RHashtable _ ->
        | RConstString _ | RConstOptString _ -> ()
        | RString _ | RBufferOut _ -> pr "    free (r);\n"
        | RStringList _ | RHashtable _ ->
-          pr "    for (i = 0; r[i] != NULL; ++i)\n";
-          pr "      free (r[i]);\n";
-          pr "    free (r);\n"
+           pr "    for (i = 0; r[i] != NULL; ++i)\n";
+           pr "      free (r[i]);\n";
+           pr "    free (r);\n"
        | RStruct (_, typ) ->
        | RStruct (_, typ) ->
-          pr "    guestfs_free_%s (r);\n" typ
+           pr "    guestfs_free_%s (r);\n" typ
        | RStructList (_, typ) ->
        | RStructList (_, typ) ->
-          pr "    guestfs_free_%s_list (r);\n" typ
+           pr "    guestfs_free_%s_list (r);\n" typ
       );
 
       pr "  }\n"
       );
 
       pr "  }\n"
@@ -5730,7 +5730,7 @@ and generate_fish_cmds () =
     fun (name, _, _, flags, _, shortdesc, _) ->
       let name = replace_char name '_' '-' in
       pr "  printf (\"%%-20s %%s\\n\", \"%s\", _(\"%s\"));\n"
     fun (name, _, _, flags, _, shortdesc, _) ->
       let name = replace_char name '_' '-' in
       pr "  printf (\"%%-20s %%s\\n\", \"%s\", _(\"%s\"));\n"
-       name shortdesc
+        name shortdesc
   ) all_functions_sorted;
   pr "  printf (\"    %%s\\n\",";
   pr "          _(\"Use -h <cmd> / help <cmd> to show detailed help for a command.\"));\n";
   ) all_functions_sorted;
   pr "  printf (\"    %%s\\n\",";
   pr "          _(\"Use -h <cmd> / help <cmd> to show detailed help for a command.\"));\n";
@@ -5744,52 +5744,52 @@ and generate_fish_cmds () =
     fun (name, style, _, flags, _, shortdesc, longdesc) ->
       let name2 = replace_char name '_' '-' in
       let alias =
     fun (name, style, _, flags, _, shortdesc, longdesc) ->
       let name2 = replace_char name '_' '-' in
       let alias =
-       try find_map (function FishAlias n -> Some n | _ -> None) flags
-       with Not_found -> name in
+        try find_map (function FishAlias n -> Some n | _ -> None) flags
+        with Not_found -> name in
       let longdesc = replace_str longdesc "C<guestfs_" "C<" in
       let synopsis =
       let longdesc = replace_str longdesc "C<guestfs_" "C<" in
       let synopsis =
-       match snd style with
-       | [] -> name2
-       | args ->
-           sprintf "%s <%s>"
-             name2 (String.concat "> <" (List.map name_of_argt args)) in
+        match snd style with
+        | [] -> name2
+        | args ->
+            sprintf "%s <%s>"
+              name2 (String.concat "> <" (List.map name_of_argt args)) in
 
       let warnings =
 
       let warnings =
-       if List.mem ProtocolLimitWarning flags then
-         ("\n\n" ^ protocol_limit_warning)
-       else "" in
+        if List.mem ProtocolLimitWarning flags then
+          ("\n\n" ^ protocol_limit_warning)
+        else "" in
 
       (* For DangerWillRobinson commands, we should probably have
        * guestfish prompt before allowing you to use them (especially
        * in interactive mode). XXX
        *)
       let warnings =
 
       (* For DangerWillRobinson commands, we should probably have
        * guestfish prompt before allowing you to use them (especially
        * in interactive mode). XXX
        *)
       let warnings =
-       warnings ^
-         if List.mem DangerWillRobinson flags then
-           ("\n\n" ^ danger_will_robinson)
-         else "" in
+        warnings ^
+          if List.mem DangerWillRobinson flags then
+            ("\n\n" ^ danger_will_robinson)
+          else "" in
 
       let warnings =
 
       let warnings =
-       warnings ^
-         match deprecation_notice flags with
-         | None -> ""
-         | Some txt -> "\n\n" ^ txt in
+        warnings ^
+          match deprecation_notice flags with
+          | None -> ""
+          | Some txt -> "\n\n" ^ txt in
 
       let describe_alias =
 
       let describe_alias =
-       if name <> alias then
-         sprintf "\n\nYou can use '%s' as an alias for this command." alias
-       else "" in
+        if name <> alias then
+          sprintf "\n\nYou can use '%s' as an alias for this command." alias
+        else "" in
 
       pr "  if (";
       pr "strcasecmp (cmd, \"%s\") == 0" name;
       if name <> name2 then
 
       pr "  if (";
       pr "strcasecmp (cmd, \"%s\") == 0" name;
       if name <> name2 then
-       pr " || strcasecmp (cmd, \"%s\") == 0" name2;
+        pr " || strcasecmp (cmd, \"%s\") == 0" name2;
       if name <> alias then
       if name <> alias then
-       pr " || strcasecmp (cmd, \"%s\") == 0" alias;
+        pr " || strcasecmp (cmd, \"%s\") == 0" alias;
       pr ")\n";
       pr "    pod2text (\"%s\", _(\"%s\"), %S);\n"
       pr ")\n";
       pr "    pod2text (\"%s\", _(\"%s\"), %S);\n"
-       name2 shortdesc
-       (" " ^ synopsis ^ "\n\n" ^ longdesc ^ warnings ^ describe_alias);
+        name2 shortdesc
+        (" " ^ synopsis ^ "\n\n" ^ longdesc ^ warnings ^ describe_alias);
       pr "  else\n"
   ) all_functions;
   pr "    display_builtin_command (cmd);\n";
       pr "  else\n"
   ) all_functions;
   pr "    display_builtin_command (cmd);\n";
@@ -5809,41 +5809,41 @@ and generate_fish_cmds () =
         pr "\n"
       );
       List.iter (
         pr "\n"
       );
       List.iter (
-       function
-       | name, FString ->
-           pr "  printf (\"%%s%s: %%s\\n\", indent, %s->%s);\n" name typ name
-       | name, FUUID ->
-           pr "  printf (\"%s: \");\n" name;
-           pr "  for (i = 0; i < 32; ++i)\n";
-           pr "    printf (\"%%s%%c\", indent, %s->%s[i]);\n" typ name;
-           pr "  printf (\"\\n\");\n"
-       | name, FBuffer ->
-           pr "  printf (\"%%s%s: \", indent);\n" name;
-           pr "  for (i = 0; i < %s->%s_len; ++i)\n" typ name;
-           pr "    if (isprint (%s->%s[i]))\n" typ name;
-           pr "      printf (\"%%s%%c\", indent, %s->%s[i]);\n" typ name;
-           pr "    else\n";
-           pr "      printf (\"%%s\\\\x%%02x\", indent, %s->%s[i]);\n" typ name;
-           pr "  printf (\"\\n\");\n"
-       | name, (FUInt64|FBytes) ->
-           pr "  printf (\"%%s%s: %%\" PRIu64 \"\\n\", indent, %s->%s);\n"
-             name typ name
-       | name, FInt64 ->
-           pr "  printf (\"%%s%s: %%\" PRIi64 \"\\n\", indent, %s->%s);\n"
-             name typ name
-       | name, FUInt32 ->
-           pr "  printf (\"%%s%s: %%\" PRIu32 \"\\n\", indent, %s->%s);\n"
-             name typ name
-       | name, FInt32 ->
-           pr "  printf (\"%%s%s: %%\" PRIi32 \"\\n\", indent, %s->%s);\n"
-             name typ name
-       | name, FChar ->
-           pr "  printf (\"%%s%s: %%c\\n\", indent, %s->%s);\n"
-             name typ name
-       | name, FOptPercent ->
-           pr "  if (%s->%s >= 0) printf (\"%%s%s: %%g %%%%\\n\", indent, %s->%s);\n"
-             typ name name typ name;
-           pr "  else printf (\"%%s%s: \\n\", indent);\n" name
+        function
+        | name, FString ->
+            pr "  printf (\"%%s%s: %%s\\n\", indent, %s->%s);\n" name typ name
+        | name, FUUID ->
+            pr "  printf (\"%s: \");\n" name;
+            pr "  for (i = 0; i < 32; ++i)\n";
+            pr "    printf (\"%%s%%c\", indent, %s->%s[i]);\n" typ name;
+            pr "  printf (\"\\n\");\n"
+        | name, FBuffer ->
+            pr "  printf (\"%%s%s: \", indent);\n" name;
+            pr "  for (i = 0; i < %s->%s_len; ++i)\n" typ name;
+            pr "    if (isprint (%s->%s[i]))\n" typ name;
+            pr "      printf (\"%%s%%c\", indent, %s->%s[i]);\n" typ name;
+            pr "    else\n";
+            pr "      printf (\"%%s\\\\x%%02x\", indent, %s->%s[i]);\n" typ name;
+            pr "  printf (\"\\n\");\n"
+        | name, (FUInt64|FBytes) ->
+            pr "  printf (\"%%s%s: %%\" PRIu64 \"\\n\", indent, %s->%s);\n"
+              name typ name
+        | name, FInt64 ->
+            pr "  printf (\"%%s%s: %%\" PRIi64 \"\\n\", indent, %s->%s);\n"
+              name typ name
+        | name, FUInt32 ->
+            pr "  printf (\"%%s%s: %%\" PRIu32 \"\\n\", indent, %s->%s);\n"
+              name typ name
+        | name, FInt32 ->
+            pr "  printf (\"%%s%s: %%\" PRIi32 \"\\n\", indent, %s->%s);\n"
+              name typ name
+        | name, FChar ->
+            pr "  printf (\"%%s%s: %%c\\n\", indent, %s->%s);\n"
+              name typ name
+        | name, FOptPercent ->
+            pr "  if (%s->%s >= 0) printf (\"%%s%s: %%g %%%%\\n\", indent, %s->%s);\n"
+              typ name name typ name;
+            pr "  else printf (\"%%s%s: \\n\", indent);\n" name
       ) cols;
       pr "}\n";
       pr "\n";
       ) cols;
       pr "}\n";
       pr "\n";
@@ -5853,7 +5853,7 @@ and generate_fish_cmds () =
       pr "}\n";
       pr "\n";
       pr "static void print_%s_list (struct guestfs_%s_list *%ss)\n"
       pr "}\n";
       pr "\n";
       pr "static void print_%s_list (struct guestfs_%s_list *%ss)\n"
-       typ typ typ;
+        typ typ typ;
       pr "{\n";
       pr "  int i;\n";
       pr "\n";
       pr "{\n";
       pr "  int i;\n";
       pr "\n";
@@ -5882,53 +5882,53 @@ and generate_fish_cmds () =
        | RStruct (_, typ) -> pr "  struct guestfs_%s *r;\n" typ
        | RStructList (_, typ) -> pr "  struct guestfs_%s_list *r;\n" typ
        | RBufferOut _ ->
        | RStruct (_, typ) -> pr "  struct guestfs_%s *r;\n" typ
        | RStructList (_, typ) -> pr "  struct guestfs_%s_list *r;\n" typ
        | RBufferOut _ ->
-          pr "  char *r;\n";
-          pr "  size_t size;\n";
+           pr "  char *r;\n";
+           pr "  size_t size;\n";
       );
       List.iter (
       );
       List.iter (
-       function
-       | String n
-       | OptString n
-       | FileIn n
-       | FileOut n -> pr "  const char *%s;\n" n
-       | StringList n -> pr "  char **%s;\n" n
-       | Bool n -> pr "  int %s;\n" n
-       | Int n -> pr "  int %s;\n" n
+        function
+        | String n
+        | OptString n
+        | FileIn n
+        | FileOut n -> pr "  const char *%s;\n" n
+        | StringList n -> pr "  char **%s;\n" n
+        | Bool n -> pr "  int %s;\n" n
+        | Int n -> pr "  int %s;\n" n
       ) (snd style);
 
       (* Check and convert parameters. *)
       let argc_expected = List.length (snd style) in
       pr "  if (argc != %d) {\n" argc_expected;
       pr "    fprintf (stderr, _(\"%%s should have %%d parameter(s)\\n\"), cmd, %d);\n"
       ) (snd style);
 
       (* Check and convert parameters. *)
       let argc_expected = List.length (snd style) in
       pr "  if (argc != %d) {\n" argc_expected;
       pr "    fprintf (stderr, _(\"%%s should have %%d parameter(s)\\n\"), cmd, %d);\n"
-       argc_expected;
+        argc_expected;
       pr "    fprintf (stderr, _(\"type 'help %%s' for help on %%s\\n\"), cmd, cmd);\n";
       pr "    return -1;\n";
       pr "  }\n";
       iteri (
       pr "    fprintf (stderr, _(\"type 'help %%s' for help on %%s\\n\"), cmd, cmd);\n";
       pr "    return -1;\n";
       pr "  }\n";
       iteri (
-       fun i ->
-         function
-         | String name -> pr "  %s = argv[%d];\n" name i
-         | OptString name ->
-             pr "  %s = strcmp (argv[%d], \"\") != 0 ? argv[%d] : NULL;\n"
-               name i i
-         | FileIn name ->
-             pr "  %s = strcmp (argv[%d], \"-\") != 0 ? argv[%d] : \"/dev/stdin\";\n"
-               name i i
-         | FileOut name ->
-             pr "  %s = strcmp (argv[%d], \"-\") != 0 ? argv[%d] : \"/dev/stdout\";\n"
-               name i i
-         | StringList name ->
-             pr "  %s = parse_string_list (argv[%d]);\n" name i
-         | Bool name ->
-             pr "  %s = is_true (argv[%d]) ? 1 : 0;\n" name i
-         | Int name ->
-             pr "  %s = atoi (argv[%d]);\n" name i
+        fun i ->
+          function
+          | String name -> pr "  %s = argv[%d];\n" name i
+          | OptString name ->
+              pr "  %s = strcmp (argv[%d], \"\") != 0 ? argv[%d] : NULL;\n"
+                name i i
+          | FileIn name ->
+              pr "  %s = strcmp (argv[%d], \"-\") != 0 ? argv[%d] : \"/dev/stdin\";\n"
+                name i i
+          | FileOut name ->
+              pr "  %s = strcmp (argv[%d], \"-\") != 0 ? argv[%d] : \"/dev/stdout\";\n"
+                name i i
+          | StringList name ->
+              pr "  %s = parse_string_list (argv[%d]);\n" name i
+          | Bool name ->
+              pr "  %s = is_true (argv[%d]) ? 1 : 0;\n" name i
+          | Int name ->
+              pr "  %s = atoi (argv[%d]);\n" name i
       ) (snd style);
 
       (* Call C API function. *)
       let fn =
       ) (snd style);
 
       (* Call C API function. *)
       let fn =
-       try find_map (function FishAction n -> Some n | _ -> None) flags
-       with Not_found -> sprintf "guestfs_%s" name in
+        try find_map (function FishAction n -> Some n | _ -> None) flags
+        with Not_found -> sprintf "guestfs_%s" name in
       pr "  r = %s " fn;
       generate_c_call_args ~handle:"g" style;
       pr ";\n";
       pr "  r = %s " fn;
       generate_c_call_args ~handle:"g" style;
       pr ";\n";
@@ -5937,54 +5937,54 @@ and generate_fish_cmds () =
       (match fst style with
        | RErr -> pr "  return r;\n"
        | RInt _ ->
       (match fst style with
        | RErr -> pr "  return r;\n"
        | RInt _ ->
-          pr "  if (r == -1) return -1;\n";
-          pr "  printf (\"%%d\\n\", r);\n";
-          pr "  return 0;\n"
+           pr "  if (r == -1) return -1;\n";
+           pr "  printf (\"%%d\\n\", r);\n";
+           pr "  return 0;\n"
        | RInt64 _ ->
        | RInt64 _ ->
-          pr "  if (r == -1) return -1;\n";
-          pr "  printf (\"%%\" PRIi64 \"\\n\", r);\n";
-          pr "  return 0;\n"
+           pr "  if (r == -1) return -1;\n";
+           pr "  printf (\"%%\" PRIi64 \"\\n\", r);\n";
+           pr "  return 0;\n"
        | RBool _ ->
        | RBool _ ->
-          pr "  if (r == -1) return -1;\n";
-          pr "  if (r) printf (\"true\\n\"); else printf (\"false\\n\");\n";
-          pr "  return 0;\n"
+           pr "  if (r == -1) return -1;\n";
+           pr "  if (r) printf (\"true\\n\"); else printf (\"false\\n\");\n";
+           pr "  return 0;\n"
        | RConstString _ ->
        | RConstString _ ->
-          pr "  if (r == NULL) return -1;\n";
-          pr "  printf (\"%%s\\n\", r);\n";
-          pr "  return 0;\n"
+           pr "  if (r == NULL) return -1;\n";
+           pr "  printf (\"%%s\\n\", r);\n";
+           pr "  return 0;\n"
        | RConstOptString _ ->
        | RConstOptString _ ->
-          pr "  printf (\"%%s\\n\", r ? : \"(null)\");\n";
-          pr "  return 0;\n"
+           pr "  printf (\"%%s\\n\", r ? : \"(null)\");\n";
+           pr "  return 0;\n"
        | RString _ ->
        | RString _ ->
-          pr "  if (r == NULL) return -1;\n";
-          pr "  printf (\"%%s\\n\", r);\n";
-          pr "  free (r);\n";
-          pr "  return 0;\n"
+           pr "  if (r == NULL) return -1;\n";
+           pr "  printf (\"%%s\\n\", r);\n";
+           pr "  free (r);\n";
+           pr "  return 0;\n"
        | RStringList _ ->
        | RStringList _ ->
-          pr "  if (r == NULL) return -1;\n";
-          pr "  print_strings (r);\n";
-          pr "  free_strings (r);\n";
-          pr "  return 0;\n"
+           pr "  if (r == NULL) return -1;\n";
+           pr "  print_strings (r);\n";
+           pr "  free_strings (r);\n";
+           pr "  return 0;\n"
        | RStruct (_, typ) ->
        | RStruct (_, typ) ->
-          pr "  if (r == NULL) return -1;\n";
-          pr "  print_%s (r);\n" typ;
-          pr "  guestfs_free_%s (r);\n" typ;
-          pr "  return 0;\n"
+           pr "  if (r == NULL) return -1;\n";
+           pr "  print_%s (r);\n" typ;
+           pr "  guestfs_free_%s (r);\n" typ;
+           pr "  return 0;\n"
        | RStructList (_, typ) ->
        | RStructList (_, typ) ->
-          pr "  if (r == NULL) return -1;\n";
-          pr "  print_%s_list (r);\n" typ;
-          pr "  guestfs_free_%s_list (r);\n" typ;
-          pr "  return 0;\n"
+           pr "  if (r == NULL) return -1;\n";
+           pr "  print_%s_list (r);\n" typ;
+           pr "  guestfs_free_%s_list (r);\n" typ;
+           pr "  return 0;\n"
        | RHashtable _ ->
        | RHashtable _ ->
-          pr "  if (r == NULL) return -1;\n";
-          pr "  print_table (r);\n";
-          pr "  free_strings (r);\n";
-          pr "  return 0;\n"
+           pr "  if (r == NULL) return -1;\n";
+           pr "  print_table (r);\n";
+           pr "  free_strings (r);\n";
+           pr "  return 0;\n"
        | RBufferOut _ ->
        | RBufferOut _ ->
-          pr "  if (r == NULL) return -1;\n";
-          pr "  fwrite (r, size, 1, stdout);\n";
-          pr "  free (r);\n";
-          pr "  return 0;\n"
+           pr "  if (r == NULL) return -1;\n";
+           pr "  fwrite (r, size, 1, stdout);\n";
+           pr "  free (r);\n";
+           pr "  return 0;\n"
       );
       pr "}\n";
       pr "\n"
       );
       pr "}\n";
       pr "\n"
@@ -5997,14 +5997,14 @@ and generate_fish_cmds () =
     fun (name, _, _, flags, _, _, _) ->
       let name2 = replace_char name '_' '-' in
       let alias =
     fun (name, _, _, flags, _, _, _) ->
       let name2 = replace_char name '_' '-' in
       let alias =
-       try find_map (function FishAlias n -> Some n | _ -> None) flags
-       with Not_found -> name in
+        try find_map (function FishAlias n -> Some n | _ -> None) flags
+        with Not_found -> name in
       pr "  if (";
       pr "strcasecmp (cmd, \"%s\") == 0" name;
       if name <> name2 then
       pr "  if (";
       pr "strcasecmp (cmd, \"%s\") == 0" name;
       if name <> name2 then
-       pr " || strcasecmp (cmd, \"%s\") == 0" name2;
+        pr " || strcasecmp (cmd, \"%s\") == 0" name2;
       if name <> alias then
       if name <> alias then
-       pr " || strcasecmp (cmd, \"%s\") == 0" alias;
+        pr " || strcasecmp (cmd, \"%s\") == 0" alias;
       pr ")\n";
       pr "    return run_%s (cmd, argc, argv);\n" name;
       pr "  else\n";
       pr ")\n";
       pr "    return run_%s (cmd, argc, argv);\n" name;
       pr "  else\n";
@@ -6051,12 +6051,12 @@ static const char *const commands[] = {
   let commands =
     List.map (
       fun (name, _, _, flags, _, _, _) ->
   let commands =
     List.map (
       fun (name, _, _, flags, _, _, _) ->
-       let name2 = replace_char name '_' '-' in
-       let alias =
-         try find_map (function FishAlias n -> Some n | _ -> None) flags
-         with Not_found -> name in
+        let name2 = replace_char name '_' '-' in
+        let alias =
+          try find_map (function FishAlias n -> Some n | _ -> None) flags
+          with Not_found -> name in
 
 
-       if name <> alias then [name2; alias] else [name2]
+        if name <> alias then [name2; alias] else [name2]
     ) all_functions in
   let commands = List.flatten commands in
 
     ) all_functions in
   let commands = List.flatten commands in
 
@@ -6111,7 +6111,7 @@ and generate_fish_actions_pod () =
   let all_functions_sorted =
     List.filter (
       fun (_, _, _, flags, _, _, _) ->
   let all_functions_sorted =
     List.filter (
       fun (_, _, _, flags, _, _, _) ->
-       not (List.mem NotInFish flags || List.mem NotInDocs flags)
+        not (List.mem NotInFish flags || List.mem NotInDocs flags)
     ) all_functions_sorted in
 
   let rex = Str.regexp "C<guestfs_\\([^>]+\\)>" in
     ) all_functions_sorted in
 
   let rex = Str.regexp "C<guestfs_\\([^>]+\\)>" in
@@ -6119,47 +6119,47 @@ and generate_fish_actions_pod () =
   List.iter (
     fun (name, style, _, flags, _, _, longdesc) ->
       let longdesc =
   List.iter (
     fun (name, style, _, flags, _, _, longdesc) ->
       let longdesc =
-       Str.global_substitute rex (
-         fun s ->
-           let sub =
-             try Str.matched_group 1 s
-             with Not_found ->
-               failwithf "error substituting C<guestfs_...> in longdesc of function %s" name in
-           "C<" ^ replace_char sub '_' '-' ^ ">"
-       ) longdesc in
+        Str.global_substitute rex (
+          fun s ->
+            let sub =
+              try Str.matched_group 1 s
+              with Not_found ->
+                failwithf "error substituting C<guestfs_...> in longdesc of function %s" name in
+            "C<" ^ replace_char sub '_' '-' ^ ">"
+        ) longdesc in
       let name = replace_char name '_' '-' in
       let alias =
       let name = replace_char name '_' '-' in
       let alias =
-       try find_map (function FishAlias n -> Some n | _ -> None) flags
-       with Not_found -> name in
+        try find_map (function FishAlias n -> Some n | _ -> None) flags
+        with Not_found -> name in
 
       pr "=head2 %s" name;
       if name <> alias then
 
       pr "=head2 %s" name;
       if name <> alias then
-       pr " | %s" alias;
+        pr " | %s" alias;
       pr "\n";
       pr "\n";
       pr " %s" name;
       List.iter (
       pr "\n";
       pr "\n";
       pr " %s" name;
       List.iter (
-       function
-       | String n -> pr " %s" n
-       | OptString n -> pr " %s" n
-       | StringList n -> pr " '%s ...'" n
-       | Bool _ -> pr " true|false"
-       | Int n -> pr " %s" n
-       | FileIn n | FileOut n -> pr " (%s|-)" n
+        function
+        | String n -> pr " %s" n
+        | OptString n -> pr " %s" n
+        | StringList n -> pr " '%s ...'" n
+        | Bool _ -> pr " true|false"
+        | Int n -> pr " %s" n
+        | FileIn n | FileOut n -> pr " (%s|-)" n
       ) (snd style);
       pr "\n";
       pr "\n";
       pr "%s\n\n" longdesc;
 
       if List.exists (function FileIn _ | FileOut _ -> true
       ) (snd style);
       pr "\n";
       pr "\n";
       pr "%s\n\n" longdesc;
 
       if List.exists (function FileIn _ | FileOut _ -> true
-                     | _ -> false) (snd style) then
-       pr "Use C<-> instead of a filename to read/write from stdin/stdout.\n\n";
+                      | _ -> false) (snd style) then
+        pr "Use C<-> instead of a filename to read/write from stdin/stdout.\n\n";
 
       if List.mem ProtocolLimitWarning flags then
 
       if List.mem ProtocolLimitWarning flags then
-       pr "%s\n\n" protocol_limit_warning;
+        pr "%s\n\n" protocol_limit_warning;
 
       if List.mem DangerWillRobinson flags then
 
       if List.mem DangerWillRobinson flags then
-       pr "%s\n\n" danger_will_robinson;
+        pr "%s\n\n" danger_will_robinson;
 
       match deprecation_notice flags with
       | None -> ()
 
       match deprecation_notice flags with
       | None -> ()
@@ -6200,7 +6200,7 @@ and generate_prototype ?(extern = true) ?(static = false) ?(semicolon = true)
     );
     let next () =
       if !comma then (
     );
     let next () =
       if !comma then (
-       if single_line then pr ", " else pr ",\n\t\t"
+        if single_line then pr ", " else pr ",\n\t\t"
       );
       comma := true
     in
       );
       comma := true
     in
@@ -6208,18 +6208,18 @@ and generate_prototype ?(extern = true) ?(static = false) ?(semicolon = true)
       function
       | String n
       | OptString n ->
       function
       | String n
       | OptString n ->
-         next ();
-         if not in_daemon then pr "const char *%s" n
-         else pr "char *%s" n
+          next ();
+          if not in_daemon then pr "const char *%s" n
+          else pr "char *%s" n
       | StringList n ->
       | StringList n ->
-         next ();
-         if not in_daemon then pr "char * const* const %s" n
-         else pr "char **%s" n
+          next ();
+          if not in_daemon then pr "char * const* const %s" n
+          else pr "char **%s" n
       | Bool n -> next (); pr "int %s" n
       | Int n -> next (); pr "int %s" n
       | FileIn n
       | FileOut n ->
       | Bool n -> next (); pr "int %s" n
       | Int n -> next (); pr "int %s" n
       | FileIn n
       | FileOut n ->
-         if not in_daemon then (next (); pr "const char *%s" n)
+          if not in_daemon then (next (); pr "const char *%s" n)
     ) (snd style);
     if is_RBufferOut then (next (); pr "size_t *size_r");
   );
     ) (snd style);
     if is_RBufferOut then (next (); pr "size_t *size_r");
   );
@@ -6248,8 +6248,8 @@ and generate_c_call_args ?handle ?(decl = false) style =
   if not decl then (
     match fst style with
     | RBufferOut _ ->
   if not decl then (
     match fst style with
     | RBufferOut _ ->
-       next ();
-       pr "&size"
+        next ();
+        pr "&size"
     | _ -> ()
   );
   pr ")"
     | _ -> ()
   );
   pr ")"
@@ -6364,45 +6364,45 @@ copy_table (char * const * argv)
   List.iter (
     fun (typ, cols) ->
       let has_optpercent_col =
   List.iter (
     fun (typ, cols) ->
       let has_optpercent_col =
-       List.exists (function (_, FOptPercent) -> true | _ -> false) cols in
+        List.exists (function (_, FOptPercent) -> true | _ -> false) cols in
 
       pr "static CAMLprim value\n";
       pr "copy_%s (const struct guestfs_%s *%s)\n" typ typ typ;
       pr "{\n";
       pr "  CAMLparam0 ();\n";
       if has_optpercent_col then
 
       pr "static CAMLprim value\n";
       pr "copy_%s (const struct guestfs_%s *%s)\n" typ typ typ;
       pr "{\n";
       pr "  CAMLparam0 ();\n";
       if has_optpercent_col then
-       pr "  CAMLlocal3 (rv, v, v2);\n"
+        pr "  CAMLlocal3 (rv, v, v2);\n"
       else
       else
-       pr "  CAMLlocal2 (rv, v);\n";
+        pr "  CAMLlocal2 (rv, v);\n";
       pr "\n";
       pr "  rv = caml_alloc (%d, 0);\n" (List.length cols);
       iteri (
       pr "\n";
       pr "  rv = caml_alloc (%d, 0);\n" (List.length cols);
       iteri (
-       fun i col ->
-         (match col with
-          | name, FString ->
-              pr "  v = caml_copy_string (%s->%s);\n" typ name
-          | name, FBuffer ->
-              pr "  v = caml_alloc_string (%s->%s_len);\n" typ name;
-              pr "  memcpy (String_val (v), %s->%s, %s->%s_len);\n"
-                typ name typ name
-          | name, FUUID ->
-              pr "  v = caml_alloc_string (32);\n";
-              pr "  memcpy (String_val (v), %s->%s, 32);\n" typ name
-          | name, (FBytes|FInt64|FUInt64) ->
-              pr "  v = caml_copy_int64 (%s->%s);\n" typ name
-          | name, (FInt32|FUInt32) ->
-              pr "  v = caml_copy_int32 (%s->%s);\n" typ name
-          | name, FOptPercent ->
-              pr "  if (%s->%s >= 0) { /* Some %s */\n" typ name name;
-              pr "    v2 = caml_copy_double (%s->%s);\n" typ name;
-              pr "    v = caml_alloc (1, 0);\n";
-              pr "    Store_field (v, 0, v2);\n";
-              pr "  } else /* None */\n";
-              pr "    v = Val_int (0);\n";
-          | name, FChar ->
-              pr "  v = Val_int (%s->%s);\n" typ name
-         );
-         pr "  Store_field (rv, %d, v);\n" i
+        fun i col ->
+          (match col with
+           | name, FString ->
+               pr "  v = caml_copy_string (%s->%s);\n" typ name
+           | name, FBuffer ->
+               pr "  v = caml_alloc_string (%s->%s_len);\n" typ name;
+               pr "  memcpy (String_val (v), %s->%s, %s->%s_len);\n"
+                 typ name typ name
+           | name, FUUID ->
+               pr "  v = caml_alloc_string (32);\n";
+               pr "  memcpy (String_val (v), %s->%s, 32);\n" typ name
+           | name, (FBytes|FInt64|FUInt64) ->
+               pr "  v = caml_copy_int64 (%s->%s);\n" typ name
+           | name, (FInt32|FUInt32) ->
+               pr "  v = caml_copy_int32 (%s->%s);\n" typ name
+           | name, FOptPercent ->
+               pr "  if (%s->%s >= 0) { /* Some %s */\n" typ name name;
+               pr "    v2 = caml_copy_double (%s->%s);\n" typ name;
+               pr "    v = caml_alloc (1, 0);\n";
+               pr "    Store_field (v, 0, v2);\n";
+               pr "  } else /* None */\n";
+               pr "    v = Val_int (0);\n";
+           | name, FChar ->
+               pr "  v = Val_int (%s->%s);\n" typ name
+          );
+          pr "  Store_field (rv, %d, v);\n" i
       ) cols;
       pr "  CAMLreturn (rv);\n";
       pr "}\n";
       ) cols;
       pr "  CAMLreturn (rv);\n";
       pr "}\n";
@@ -6410,7 +6410,7 @@ copy_table (char * const * argv)
 
       pr "static CAMLprim value\n";
       pr "copy_%s_list (const struct guestfs_%s_list *%ss)\n"
 
       pr "static CAMLprim value\n";
       pr "copy_%s_list (const struct guestfs_%s_list *%ss)\n"
-       typ typ typ;
+        typ typ typ;
       pr "{\n";
       pr "  CAMLparam0 ();\n";
       pr "  CAMLlocal2 (rv, v);\n";
       pr "{\n";
       pr "  CAMLparam0 ();\n";
       pr "  CAMLlocal2 (rv, v);\n";
@@ -6434,10 +6434,10 @@ copy_table (char * const * argv)
   List.iter (
     fun (name, style, _, _, _, _, _) ->
       let params =
   List.iter (
     fun (name, style, _, _, _, _, _) ->
       let params =
-       "gv" :: List.map (fun arg -> name_of_argt arg ^ "v") (snd style) in
+        "gv" :: List.map (fun arg -> name_of_argt arg ^ "v") (snd style) in
 
       let needs_extra_vs =
 
       let needs_extra_vs =
-       match fst style with RConstOptString _ -> true | _ -> false in
+        match fst style with RConstOptString _ -> true | _ -> false in
 
       pr "CAMLprim value\n";
       pr "ocaml_guestfs_%s (value %s" name (List.hd params);
 
       pr "CAMLprim value\n";
       pr "ocaml_guestfs_%s (value %s" name (List.hd params);
@@ -6447,18 +6447,18 @@ copy_table (char * const * argv)
 
       (match params with
        | [p1; p2; p3; p4; p5] ->
 
       (match params with
        | [p1; p2; p3; p4; p5] ->
-          pr "  CAMLparam5 (%s);\n" (String.concat ", " params)
+           pr "  CAMLparam5 (%s);\n" (String.concat ", " params)
        | p1 :: p2 :: p3 :: p4 :: p5 :: rest ->
        | p1 :: p2 :: p3 :: p4 :: p5 :: rest ->
-          pr "  CAMLparam5 (%s);\n" (String.concat ", " [p1; p2; p3; p4; p5]);
-          pr "  CAMLxparam%d (%s);\n"
-            (List.length rest) (String.concat ", " rest)
+           pr "  CAMLparam5 (%s);\n" (String.concat ", " [p1; p2; p3; p4; p5]);
+           pr "  CAMLxparam%d (%s);\n"
+             (List.length rest) (String.concat ", " rest)
        | ps ->
        | ps ->
-          pr "  CAMLparam%d (%s);\n" (List.length ps) (String.concat ", " ps)
+           pr "  CAMLparam%d (%s);\n" (List.length ps) (String.concat ", " ps)
       );
       if not needs_extra_vs then
       );
       if not needs_extra_vs then
-       pr "  CAMLlocal1 (rv);\n"
+        pr "  CAMLlocal1 (rv);\n"
       else
       else
-       pr "  CAMLlocal3 (rv, v, v2);\n";
+        pr "  CAMLlocal3 (rv, v, v2);\n";
       pr "\n";
 
       pr "  guestfs_h *g = Guestfs_val (gv);\n";
       pr "\n";
 
       pr "  guestfs_h *g = Guestfs_val (gv);\n";
@@ -6467,47 +6467,47 @@ copy_table (char * const * argv)
       pr "\n";
 
       List.iter (
       pr "\n";
 
       List.iter (
-       function
-       | String n
-       | FileIn n
-       | FileOut n ->
-           pr "  const char *%s = String_val (%sv);\n" n n
-       | OptString n ->
-           pr "  const char *%s =\n" n;
-           pr "    %sv != Val_int (0) ? String_val (Field (%sv, 0)) : NULL;\n"
-             n n
-       | StringList n ->
-           pr "  char **%s = ocaml_guestfs_strings_val (g, %sv);\n" n n
-       | Bool n ->
-           pr "  int %s = Bool_val (%sv);\n" n n
-       | Int n ->
-           pr "  int %s = Int_val (%sv);\n" n n
+        function
+        | String n
+        | FileIn n
+        | FileOut n ->
+            pr "  const char *%s = String_val (%sv);\n" n n
+        | OptString n ->
+            pr "  const char *%s =\n" n;
+            pr "    %sv != Val_int (0) ? String_val (Field (%sv, 0)) : NULL;\n"
+              n n
+        | StringList n ->
+            pr "  char **%s = ocaml_guestfs_strings_val (g, %sv);\n" n n
+        | Bool n ->
+            pr "  int %s = Bool_val (%sv);\n" n n
+        | Int n ->
+            pr "  int %s = Int_val (%sv);\n" n n
       ) (snd style);
       let error_code =
       ) (snd style);
       let error_code =
-       match fst style with
-       | RErr -> pr "  int r;\n"; "-1"
-       | RInt _ -> pr "  int r;\n"; "-1"
-       | RInt64 _ -> pr "  int64_t r;\n"; "-1"
-       | RBool _ -> pr "  int r;\n"; "-1"
-       | RConstString _ | RConstOptString _ ->
-           pr "  const char *r;\n"; "NULL"
-       | RString _ -> pr "  char *r;\n"; "NULL"
-       | RStringList _ ->
-           pr "  int i;\n";
-           pr "  char **r;\n";
-           "NULL"
-       | RStruct (_, typ) ->
-           pr "  struct guestfs_%s *r;\n" typ; "NULL"
-       | RStructList (_, typ) ->
-           pr "  struct guestfs_%s_list *r;\n" typ; "NULL"
-       | RHashtable _ ->
-           pr "  int i;\n";
-           pr "  char **r;\n";
-           "NULL"
-       | RBufferOut _ ->
-           pr "  char *r;\n";
-           pr "  size_t size;\n";
-           "NULL" in
+        match fst style with
+        | RErr -> pr "  int r;\n"; "-1"
+        | RInt _ -> pr "  int r;\n"; "-1"
+        | RInt64 _ -> pr "  int64_t r;\n"; "-1"
+        | RBool _ -> pr "  int r;\n"; "-1"
+        | RConstString _ | RConstOptString _ ->
+            pr "  const char *r;\n"; "NULL"
+        | RString _ -> pr "  char *r;\n"; "NULL"
+        | RStringList _ ->
+            pr "  int i;\n";
+            pr "  char **r;\n";
+            "NULL"
+        | RStruct (_, typ) ->
+            pr "  struct guestfs_%s *r;\n" typ; "NULL"
+        | RStructList (_, typ) ->
+            pr "  struct guestfs_%s_list *r;\n" typ; "NULL"
+        | RHashtable _ ->
+            pr "  int i;\n";
+            pr "  char **r;\n";
+            "NULL"
+        | RBufferOut _ ->
+            pr "  char *r;\n";
+            pr "  size_t size;\n";
+            "NULL" in
       pr "\n";
 
       pr "  caml_enter_blocking_section ();\n";
       pr "\n";
 
       pr "  caml_enter_blocking_section ();\n";
@@ -6517,10 +6517,10 @@ copy_table (char * const * argv)
       pr "  caml_leave_blocking_section ();\n";
 
       List.iter (
       pr "  caml_leave_blocking_section ();\n";
 
       List.iter (
-       function
-       | StringList n ->
-           pr "  ocaml_guestfs_free_strings (%s);\n" n;
-       | String _ | OptString _ | Bool _ | Int _ | FileIn _ | FileOut _ -> ()
+        function
+        | StringList n ->
+            pr "  ocaml_guestfs_free_strings (%s);\n" n;
+        | String _ | OptString _ | Bool _ | Int _ | FileIn _ | FileOut _ -> ()
       ) (snd style);
 
       pr "  if (r == %s)\n" error_code;
       ) (snd style);
 
       pr "  if (r == %s)\n" error_code;
@@ -6531,37 +6531,37 @@ copy_table (char * const * argv)
        | RErr -> pr "  rv = Val_unit;\n"
        | RInt _ -> pr "  rv = Val_int (r);\n"
        | RInt64 _ ->
        | RErr -> pr "  rv = Val_unit;\n"
        | RInt _ -> pr "  rv = Val_int (r);\n"
        | RInt64 _ ->
-          pr "  rv = caml_copy_int64 (r);\n"
+           pr "  rv = caml_copy_int64 (r);\n"
        | RBool _ -> pr "  rv = Val_bool (r);\n"
        | RConstString _ ->
        | RBool _ -> pr "  rv = Val_bool (r);\n"
        | RConstString _ ->
-          pr "  rv = caml_copy_string (r);\n"
+           pr "  rv = caml_copy_string (r);\n"
        | RConstOptString _ ->
        | RConstOptString _ ->
-          pr "  if (r) { /* Some string */\n";
-          pr "    v = caml_alloc (1, 0);\n";
-          pr "    v2 = caml_copy_string (r);\n";
-          pr "    Store_field (v, 0, v2);\n";
-          pr "  } else /* None */\n";
-          pr "    v = Val_int (0);\n";
+           pr "  if (r) { /* Some string */\n";
+           pr "    v = caml_alloc (1, 0);\n";
+           pr "    v2 = caml_copy_string (r);\n";
+           pr "    Store_field (v, 0, v2);\n";
+           pr "  } else /* None */\n";
+           pr "    v = Val_int (0);\n";
        | RString _ ->
        | RString _ ->
-          pr "  rv = caml_copy_string (r);\n";
-          pr "  free (r);\n"
+           pr "  rv = caml_copy_string (r);\n";
+           pr "  free (r);\n"
        | RStringList _ ->
        | RStringList _ ->
-          pr "  rv = caml_copy_string_array ((const char **) r);\n";
-          pr "  for (i = 0; r[i] != NULL; ++i) free (r[i]);\n";
-          pr "  free (r);\n"
+           pr "  rv = caml_copy_string_array ((const char **) r);\n";
+           pr "  for (i = 0; r[i] != NULL; ++i) free (r[i]);\n";
+           pr "  free (r);\n"
        | RStruct (_, typ) ->
        | RStruct (_, typ) ->
-          pr "  rv = copy_%s (r);\n" typ;
-          pr "  guestfs_free_%s (r);\n" typ;
+           pr "  rv = copy_%s (r);\n" typ;
+           pr "  guestfs_free_%s (r);\n" typ;
        | RStructList (_, typ) ->
        | RStructList (_, typ) ->
-          pr "  rv = copy_%s_list (r);\n" typ;
-          pr "  guestfs_free_%s_list (r);\n" typ;
+           pr "  rv = copy_%s_list (r);\n" typ;
+           pr "  guestfs_free_%s_list (r);\n" typ;
        | RHashtable _ ->
        | RHashtable _ ->
-          pr "  rv = copy_table (r);\n";
-          pr "  for (i = 0; r[i] != NULL; ++i) free (r[i]);\n";
-          pr "  free (r);\n";
+           pr "  rv = copy_table (r);\n";
+           pr "  for (i = 0; r[i] != NULL; ++i) free (r[i]);\n";
+           pr "  free (r);\n";
        | RBufferOut _ ->
        | RBufferOut _ ->
-          pr "  rv = caml_alloc_string (size);\n";
-          pr "  memcpy (String_val (rv), r, size);\n";
+           pr "  rv = caml_alloc_string (size);\n";
+           pr "  memcpy (String_val (rv), r, size);\n";
       );
 
       pr "  CAMLreturn (rv);\n";
       );
 
       pr "  CAMLreturn (rv);\n";
@@ -6569,14 +6569,14 @@ copy_table (char * const * argv)
       pr "\n";
 
       if List.length params > 5 then (
       pr "\n";
 
       if List.length params > 5 then (
-       pr "CAMLprim value\n";
-       pr "ocaml_guestfs_%s_byte (value *argv, int argn)\n" name;
-       pr "{\n";
-       pr "  return ocaml_guestfs_%s (argv[0]" name;
-       iteri (fun i _ -> pr ", argv[%d]" i) (List.tl params);
-       pr ");\n";
-       pr "}\n";
-       pr "\n"
+        pr "CAMLprim value\n";
+        pr "ocaml_guestfs_%s_byte (value *argv, int argn)\n" name;
+        pr "{\n";
+        pr "  return ocaml_guestfs_%s (argv[0]" name;
+        iteri (fun i _ -> pr ", argv[%d]" i) (List.tl params);
+        pr ");\n";
+        pr "}\n";
+        pr "\n"
       )
   ) all_functions
 
       )
   ) all_functions
 
@@ -6585,14 +6585,14 @@ and generate_ocaml_structure_decls () =
     fun (typ, cols) ->
       pr "type %s = {\n" typ;
       List.iter (
     fun (typ, cols) ->
       pr "type %s = {\n" typ;
       List.iter (
-       function
-       | name, FString -> pr "  %s : string;\n" name
-       | name, FBuffer -> pr "  %s : string;\n" name
-       | name, FUUID -> pr "  %s : string;\n" name
-       | name, (FBytes|FInt64|FUInt64) -> pr "  %s : int64;\n" name
-       | name, (FInt32|FUInt32) -> pr "  %s : int32;\n" name
-       | name, FChar -> pr "  %s : char;\n" name
-       | name, FOptPercent -> pr "  %s : float option;\n" name
+        function
+        | name, FString -> pr "  %s : string;\n" name
+        | name, FBuffer -> pr "  %s : string;\n" name
+        | name, FUUID -> pr "  %s : string;\n" name
+        | name, (FBytes|FInt64|FUInt64) -> pr "  %s : int64;\n" name
+        | name, (FInt32|FUInt32) -> pr "  %s : int32;\n" name
+        | name, FChar -> pr "  %s : char;\n" name
+        | name, FOptPercent -> pr "  %s : float option;\n" name
       ) cols;
       pr "}\n";
       pr "\n"
       ) cols;
       pr "}\n";
       pr "\n"
@@ -6738,7 +6738,7 @@ DESTROY (g)
        | RStringList _
        | RStruct _ | RStructList _
        | RHashtable _ ->
        | RStringList _
        | RStruct _ | RStructList _
        | RHashtable _ ->
-          pr "void\n" (* all lists returned implictly on the stack *)
+           pr "void\n" (* all lists returned implictly on the stack *)
       );
       (* Call and arguments. *)
       pr "%s " name;
       );
       (* Call and arguments. *)
       pr "%s " name;
@@ -6746,148 +6746,148 @@ DESTROY (g)
       pr "\n";
       pr "      guestfs_h *g;\n";
       iteri (
       pr "\n";
       pr "      guestfs_h *g;\n";
       iteri (
-       fun i ->
-         function
-         | String n | FileIn n | FileOut n -> pr "      char *%s;\n" n
-         | OptString n ->
-             (* http://www.perlmonks.org/?node_id=554277
-              * Note that the implicit handle argument means we have
-              * to add 1 to the ST(x) operator.
-              *)
-             pr "      char *%s = SvOK(ST(%d)) ? SvPV_nolen(ST(%d)) : NULL;\n" n (i+1) (i+1)
-         | StringList n -> pr "      char **%s;\n" n
-         | Bool n -> pr "      int %s;\n" n
-         | Int n -> pr "      int %s;\n" n
+        fun i ->
+          function
+          | String n | FileIn n | FileOut n -> pr "      char *%s;\n" n
+          | OptString n ->
+              (* http://www.perlmonks.org/?node_id=554277
+               * Note that the implicit handle argument means we have
+               * to add 1 to the ST(x) operator.
+               *)
+              pr "      char *%s = SvOK(ST(%d)) ? SvPV_nolen(ST(%d)) : NULL;\n" n (i+1) (i+1)
+          | StringList n -> pr "      char **%s;\n" n
+          | Bool n -> pr "      int %s;\n" n
+          | Int n -> pr "      int %s;\n" n
       ) (snd style);
 
       let do_cleanups () =
       ) (snd style);
 
       let do_cleanups () =
-       List.iter (
-         function
-         | String _ | OptString _ | Bool _ | Int _
-         | FileIn _ | FileOut _ -> ()
-         | StringList n -> pr "      free (%s);\n" n
-       ) (snd style)
+        List.iter (
+          function
+          | String _ | OptString _ | Bool _ | Int _
+          | FileIn _ | FileOut _ -> ()
+          | StringList n -> pr "      free (%s);\n" n
+        ) (snd style)
       in
 
       (* Code. *)
       (match fst style with
        | RErr ->
       in
 
       (* Code. *)
       (match fst style with
        | RErr ->
-          pr "PREINIT:\n";
-          pr "      int r;\n";
-          pr " PPCODE:\n";
-          pr "      r = guestfs_%s " name;
-          generate_c_call_args ~handle:"g" style;
-          pr ";\n";
-          do_cleanups ();
-          pr "      if (r == -1)\n";
-          pr "        croak (\"%s: %%s\", guestfs_last_error (g));\n" name;
+           pr "PREINIT:\n";
+           pr "      int r;\n";
+           pr " PPCODE:\n";
+           pr "      r = guestfs_%s " name;
+           generate_c_call_args ~handle:"g" style;
+           pr ";\n";
+           do_cleanups ();
+           pr "      if (r == -1)\n";
+           pr "        croak (\"%s: %%s\", guestfs_last_error (g));\n" name;
        | RInt n
        | RBool n ->
        | RInt n
        | RBool n ->
-          pr "PREINIT:\n";
-          pr "      int %s;\n" n;
-          pr "   CODE:\n";
-          pr "      %s = guestfs_%s " n name;
-          generate_c_call_args ~handle:"g" style;
-          pr ";\n";
-          do_cleanups ();
-          pr "      if (%s == -1)\n" n;
-          pr "        croak (\"%s: %%s\", guestfs_last_error (g));\n" name;
-          pr "      RETVAL = newSViv (%s);\n" n;
-          pr " OUTPUT:\n";
-          pr "      RETVAL\n"
+           pr "PREINIT:\n";
+           pr "      int %s;\n" n;
+           pr "   CODE:\n";
+           pr "      %s = guestfs_%s " n name;
+           generate_c_call_args ~handle:"g" style;
+           pr ";\n";
+           do_cleanups ();
+           pr "      if (%s == -1)\n" n;
+           pr "        croak (\"%s: %%s\", guestfs_last_error (g));\n" name;
+           pr "      RETVAL = newSViv (%s);\n" n;
+           pr " OUTPUT:\n";
+           pr "      RETVAL\n"
        | RInt64 n ->
        | RInt64 n ->
-          pr "PREINIT:\n";
-          pr "      int64_t %s;\n" n;
-          pr "   CODE:\n";
-          pr "      %s = guestfs_%s " n name;
-          generate_c_call_args ~handle:"g" style;
-          pr ";\n";
-          do_cleanups ();
-          pr "      if (%s == -1)\n" n;
-          pr "        croak (\"%s: %%s\", guestfs_last_error (g));\n" name;
-          pr "      RETVAL = my_newSVll (%s);\n" n;
-          pr " OUTPUT:\n";
-          pr "      RETVAL\n"
+           pr "PREINIT:\n";
+           pr "      int64_t %s;\n" n;
+           pr "   CODE:\n";
+           pr "      %s = guestfs_%s " n name;
+           generate_c_call_args ~handle:"g" style;
+           pr ";\n";
+           do_cleanups ();
+           pr "      if (%s == -1)\n" n;
+           pr "        croak (\"%s: %%s\", guestfs_last_error (g));\n" name;
+           pr "      RETVAL = my_newSVll (%s);\n" n;
+           pr " OUTPUT:\n";
+           pr "      RETVAL\n"
        | RConstString n ->
        | RConstString n ->
-          pr "PREINIT:\n";
-          pr "      const char *%s;\n" n;
-          pr "   CODE:\n";
-          pr "      %s = guestfs_%s " n name;
-          generate_c_call_args ~handle:"g" style;
-          pr ";\n";
-          do_cleanups ();
-          pr "      if (%s == NULL)\n" n;
-          pr "        croak (\"%s: %%s\", guestfs_last_error (g));\n" name;
-          pr "      RETVAL = newSVpv (%s, 0);\n" n;
-          pr " OUTPUT:\n";
-          pr "      RETVAL\n"
+           pr "PREINIT:\n";
+           pr "      const char *%s;\n" n;
+           pr "   CODE:\n";
+           pr "      %s = guestfs_%s " n name;
+           generate_c_call_args ~handle:"g" style;
+           pr ";\n";
+           do_cleanups ();
+           pr "      if (%s == NULL)\n" n;
+           pr "        croak (\"%s: %%s\", guestfs_last_error (g));\n" name;
+           pr "      RETVAL = newSVpv (%s, 0);\n" n;
+           pr " OUTPUT:\n";
+           pr "      RETVAL\n"
        | RConstOptString n ->
        | RConstOptString n ->
-          pr "PREINIT:\n";
-          pr "      const char *%s;\n" n;
-          pr "   CODE:\n";
-          pr "      %s = guestfs_%s " n name;
-          generate_c_call_args ~handle:"g" style;
-          pr ";\n";
-          do_cleanups ();
-          pr "      if (%s == NULL)\n" n;
-          pr "        RETVAL = &PL_sv_undef;\n";
-          pr "      else\n";
-          pr "        RETVAL = newSVpv (%s, 0);\n" n;
-          pr " OUTPUT:\n";
-          pr "      RETVAL\n"
+           pr "PREINIT:\n";
+           pr "      const char *%s;\n" n;
+           pr "   CODE:\n";
+           pr "      %s = guestfs_%s " n name;
+           generate_c_call_args ~handle:"g" style;
+           pr ";\n";
+           do_cleanups ();
+           pr "      if (%s == NULL)\n" n;
+           pr "        RETVAL = &PL_sv_undef;\n";
+           pr "      else\n";
+           pr "        RETVAL = newSVpv (%s, 0);\n" n;
+           pr " OUTPUT:\n";
+           pr "      RETVAL\n"
        | RString n ->
        | RString n ->
-          pr "PREINIT:\n";
-          pr "      char *%s;\n" n;
-          pr "   CODE:\n";
-          pr "      %s = guestfs_%s " n name;
-          generate_c_call_args ~handle:"g" style;
-          pr ";\n";
-          do_cleanups ();
-          pr "      if (%s == NULL)\n" n;
-          pr "        croak (\"%s: %%s\", guestfs_last_error (g));\n" name;
-          pr "      RETVAL = newSVpv (%s, 0);\n" n;
-          pr "      free (%s);\n" n;
-          pr " OUTPUT:\n";
-          pr "      RETVAL\n"
+           pr "PREINIT:\n";
+           pr "      char *%s;\n" n;
+           pr "   CODE:\n";
+           pr "      %s = guestfs_%s " n name;
+           generate_c_call_args ~handle:"g" style;
+           pr ";\n";
+           do_cleanups ();
+           pr "      if (%s == NULL)\n" n;
+           pr "        croak (\"%s: %%s\", guestfs_last_error (g));\n" name;
+           pr "      RETVAL = newSVpv (%s, 0);\n" n;
+           pr "      free (%s);\n" n;
+           pr " OUTPUT:\n";
+           pr "      RETVAL\n"
        | RStringList n | RHashtable n ->
        | RStringList n | RHashtable n ->
-          pr "PREINIT:\n";
-          pr "      char **%s;\n" n;
-          pr "      int i, n;\n";
-          pr " PPCODE:\n";
-          pr "      %s = guestfs_%s " n name;
-          generate_c_call_args ~handle:"g" style;
-          pr ";\n";
-          do_cleanups ();
-          pr "      if (%s == NULL)\n" n;
-          pr "        croak (\"%s: %%s\", guestfs_last_error (g));\n" name;
-          pr "      for (n = 0; %s[n] != NULL; ++n) /**/;\n" n;
-          pr "      EXTEND (SP, n);\n";
-          pr "      for (i = 0; i < n; ++i) {\n";
-          pr "        PUSHs (sv_2mortal (newSVpv (%s[i], 0)));\n" n;
-          pr "        free (%s[i]);\n" n;
-          pr "      }\n";
-          pr "      free (%s);\n" n;
+           pr "PREINIT:\n";
+           pr "      char **%s;\n" n;
+           pr "      int i, n;\n";
+           pr " PPCODE:\n";
+           pr "      %s = guestfs_%s " n name;
+           generate_c_call_args ~handle:"g" style;
+           pr ";\n";
+           do_cleanups ();
+           pr "      if (%s == NULL)\n" n;
+           pr "        croak (\"%s: %%s\", guestfs_last_error (g));\n" name;
+           pr "      for (n = 0; %s[n] != NULL; ++n) /**/;\n" n;
+           pr "      EXTEND (SP, n);\n";
+           pr "      for (i = 0; i < n; ++i) {\n";
+           pr "        PUSHs (sv_2mortal (newSVpv (%s[i], 0)));\n" n;
+           pr "        free (%s[i]);\n" n;
+           pr "      }\n";
+           pr "      free (%s);\n" n;
        | RStruct (n, typ) ->
        | RStruct (n, typ) ->
-          let cols = cols_of_struct typ in
-          generate_perl_struct_code typ cols name style n do_cleanups
+           let cols = cols_of_struct typ in
+           generate_perl_struct_code typ cols name style n do_cleanups
        | RStructList (n, typ) ->
        | RStructList (n, typ) ->
-          let cols = cols_of_struct typ in
-          generate_perl_struct_list_code typ cols name style n do_cleanups
+           let cols = cols_of_struct typ in
+           generate_perl_struct_list_code typ cols name style n do_cleanups
        | RBufferOut n ->
        | RBufferOut n ->
-          pr "PREINIT:\n";
-          pr "      char *%s;\n" n;
-          pr "      size_t size;\n";
-          pr "   CODE:\n";
-          pr "      %s = guestfs_%s " n name;
-          generate_c_call_args ~handle:"g" style;
-          pr ";\n";
-          do_cleanups ();
-          pr "      if (%s == NULL)\n" n;
-          pr "        croak (\"%s: %%s\", guestfs_last_error (g));\n" name;
-          pr "      RETVAL = newSVpv (%s, size);\n" n;
-          pr "      free (%s);\n" n;
-          pr " OUTPUT:\n";
-          pr "      RETVAL\n"
+           pr "PREINIT:\n";
+           pr "      char *%s;\n" n;
+           pr "      size_t size;\n";
+           pr "   CODE:\n";
+           pr "      %s = guestfs_%s " n name;
+           generate_c_call_args ~handle:"g" style;
+           pr ";\n";
+           do_cleanups ();
+           pr "      if (%s == NULL)\n" n;
+           pr "        croak (\"%s: %%s\", guestfs_last_error (g));\n" name;
+           pr "      RETVAL = newSVpv (%s, size);\n" n;
+           pr "      free (%s);\n" n;
+           pr " OUTPUT:\n";
+           pr "      RETVAL\n"
       );
 
       pr "\n"
       );
 
       pr "\n"
@@ -6911,29 +6911,29 @@ and generate_perl_struct_list_code typ cols name style n do_cleanups =
   List.iter (
     function
     | name, FString ->
   List.iter (
     function
     | name, FString ->
-       pr "        (void) hv_store (hv, \"%s\", %d, newSVpv (%s->val[i].%s, 0), 0);\n"
-         name (String.length name) n name
+        pr "        (void) hv_store (hv, \"%s\", %d, newSVpv (%s->val[i].%s, 0), 0);\n"
+          name (String.length name) n name
     | name, FUUID ->
     | name, FUUID ->
-       pr "        (void) hv_store (hv, \"%s\", %d, newSVpv (%s->val[i].%s, 32), 0);\n"
-         name (String.length name) n name
+        pr "        (void) hv_store (hv, \"%s\", %d, newSVpv (%s->val[i].%s, 32), 0);\n"
+          name (String.length name) n name
     | name, FBuffer ->
     | name, FBuffer ->
-       pr "        (void) hv_store (hv, \"%s\", %d, newSVpv (%s->val[i].%s, %s->val[i].%s_len), 0);\n"
-         name (String.length name) n name n name
+        pr "        (void) hv_store (hv, \"%s\", %d, newSVpv (%s->val[i].%s, %s->val[i].%s_len), 0);\n"
+          name (String.length name) n name n name
     | name, (FBytes|FUInt64) ->
     | name, (FBytes|FUInt64) ->
-       pr "        (void) hv_store (hv, \"%s\", %d, my_newSVull (%s->val[i].%s), 0);\n"
-         name (String.length name) n name
+        pr "        (void) hv_store (hv, \"%s\", %d, my_newSVull (%s->val[i].%s), 0);\n"
+          name (String.length name) n name
     | name, FInt64 ->
     | name, FInt64 ->
-       pr "        (void) hv_store (hv, \"%s\", %d, my_newSVll (%s->val[i].%s), 0);\n"
-         name (String.length name) n name
+        pr "        (void) hv_store (hv, \"%s\", %d, my_newSVll (%s->val[i].%s), 0);\n"
+          name (String.length name) n name
     | name, (FInt32|FUInt32) ->
     | name, (FInt32|FUInt32) ->
-       pr "        (void) hv_store (hv, \"%s\", %d, newSVnv (%s->val[i].%s), 0);\n"
-         name (String.length name) n name
+        pr "        (void) hv_store (hv, \"%s\", %d, newSVnv (%s->val[i].%s), 0);\n"
+          name (String.length name) n name
     | name, FChar ->
     | name, FChar ->
-       pr "        (void) hv_store (hv, \"%s\", %d, newSVpv (&%s->val[i].%s, 1), 0);\n"
-         name (String.length name) n name
+        pr "        (void) hv_store (hv, \"%s\", %d, newSVpv (&%s->val[i].%s, 1), 0);\n"
+          name (String.length name) n name
     | name, FOptPercent ->
     | name, FOptPercent ->
-       pr "        (void) hv_store (hv, \"%s\", %d, newSVnv (%s->val[i].%s), 0);\n"
-         name (String.length name) n name
+        pr "        (void) hv_store (hv, \"%s\", %d, newSVnv (%s->val[i].%s), 0);\n"
+          name (String.length name) n name
   ) cols;
   pr "        PUSHs (sv_2mortal (newRV ((SV *) hv)));\n";
   pr "      }\n";
   ) cols;
   pr "        PUSHs (sv_2mortal (newRV ((SV *) hv)));\n";
   pr "      }\n";
@@ -6956,29 +6956,29 @@ and generate_perl_struct_code typ cols name style n do_cleanups =
 
       match col with
       | name, FString ->
 
       match col with
       | name, FString ->
-         pr "      PUSHs (sv_2mortal (newSVpv (%s->%s, 0)));\n"
-           n name
+          pr "      PUSHs (sv_2mortal (newSVpv (%s->%s, 0)));\n"
+            n name
       | name, FBuffer ->
       | name, FBuffer ->
-         pr "      PUSHs (sv_2mortal (newSVpv (%s->%s, %s->%s_len)));\n"
-           n name n name
+          pr "      PUSHs (sv_2mortal (newSVpv (%s->%s, %s->%s_len)));\n"
+            n name n name
       | name, FUUID ->
       | name, FUUID ->
-         pr "      PUSHs (sv_2mortal (newSVpv (%s->%s, 32)));\n"
-           n name
+          pr "      PUSHs (sv_2mortal (newSVpv (%s->%s, 32)));\n"
+            n name
       | name, (FBytes|FUInt64) ->
       | name, (FBytes|FUInt64) ->
-         pr "      PUSHs (sv_2mortal (my_newSVull (%s->%s)));\n"
-           n name
+          pr "      PUSHs (sv_2mortal (my_newSVull (%s->%s)));\n"
+            n name
       | name, FInt64 ->
       | name, FInt64 ->
-         pr "      PUSHs (sv_2mortal (my_newSVll (%s->%s)));\n"
-           n name
+          pr "      PUSHs (sv_2mortal (my_newSVll (%s->%s)));\n"
+            n name
       | name, (FInt32|FUInt32) ->
       | name, (FInt32|FUInt32) ->
-         pr "      PUSHs (sv_2mortal (newSVnv (%s->%s)));\n"
-           n name
+          pr "      PUSHs (sv_2mortal (newSVnv (%s->%s)));\n"
+            n name
       | name, FChar ->
       | name, FChar ->
-         pr "      PUSHs (sv_2mortal (newSVpv (&%s->%s, 1)));\n"
-           n name
+          pr "      PUSHs (sv_2mortal (newSVpv (&%s->%s, 1)));\n"
+            n name
       | name, FOptPercent ->
       | name, FOptPercent ->
-         pr "      PUSHs (sv_2mortal (newSVnv (%s->%s)));\n"
-           n name
+          pr "      PUSHs (sv_2mortal (newSVnv (%s->%s)));\n"
+            n name
   ) cols;
   pr "      free (%s);\n" n
 
   ) cols;
   pr "      free (%s);\n" n
 
@@ -7072,18 +7072,18 @@ sub new {
   List.iter (
     fun (name, style, _, flags, _, _, longdesc) ->
       if not (List.mem NotInDocs flags) then (
   List.iter (
     fun (name, style, _, flags, _, _, longdesc) ->
       if not (List.mem NotInDocs flags) then (
-       let longdesc = replace_str longdesc "C<guestfs_" "C<$h-E<gt>" in
-       pr "=item ";
-       generate_perl_prototype name style;
-       pr "\n\n";
-       pr "%s\n\n" longdesc;
-       if List.mem ProtocolLimitWarning flags then
-         pr "%s\n\n" protocol_limit_warning;
-       if List.mem DangerWillRobinson flags then
-         pr "%s\n\n" danger_will_robinson;
-       match deprecation_notice flags with
-       | None -> ()
-       | Some txt -> pr "%s\n\n" txt
+        let longdesc = replace_str longdesc "C<guestfs_" "C<$h-E<gt>" in
+        pr "=item ";
+        generate_perl_prototype name style;
+        pr "\n\n";
+        pr "%s\n\n" longdesc;
+        if List.mem ProtocolLimitWarning flags then
+          pr "%s\n\n" protocol_limit_warning;
+        if List.mem DangerWillRobinson flags then
+          pr "%s\n\n" danger_will_robinson;
+        match deprecation_notice flags with
+        | None -> ()
+        | Some txt -> pr "%s\n\n" txt
       )
   ) all_functions_sorted;
 
       )
   ) all_functions_sorted;
 
@@ -7136,9 +7136,9 @@ and generate_perl_prototype name style =
       comma := true;
       match arg with
       | String n | OptString n | Bool n | Int n | FileIn n | FileOut n ->
       comma := true;
       match arg with
       | String n | OptString n | Bool n | Int n | FileIn n | FileOut n ->
-         pr "$%s" n
+          pr "$%s" n
       | StringList n ->
       | StringList n ->
-         pr "\\@%s" n
+          pr "\\@%s" n
   ) (snd style);
   pr ");"
 
   ) (snd style);
   pr ");"
 
@@ -7293,47 +7293,47 @@ py_guestfs_close (PyObject *self, PyObject *args)
       pr "\n";
       pr "  dict = PyDict_New ();\n";
       List.iter (
       pr "\n";
       pr "  dict = PyDict_New ();\n";
       List.iter (
-       function
-       | name, FString ->
-           pr "  PyDict_SetItemString (dict, \"%s\",\n" name;
-           pr "                        PyString_FromString (%s->%s));\n"
-             typ name
-       | name, FBuffer ->
-           pr "  PyDict_SetItemString (dict, \"%s\",\n" name;
-           pr "                        PyString_FromStringAndSize (%s->%s, %s->%s_len));\n"
-             typ name typ name
-       | name, FUUID ->
-           pr "  PyDict_SetItemString (dict, \"%s\",\n" name;
-           pr "                        PyString_FromStringAndSize (%s->%s, 32));\n"
-             typ name
-       | name, (FBytes|FUInt64) ->
-           pr "  PyDict_SetItemString (dict, \"%s\",\n" name;
-           pr "                        PyLong_FromUnsignedLongLong (%s->%s));\n"
-             typ name
-       | name, FInt64 ->
-           pr "  PyDict_SetItemString (dict, \"%s\",\n" name;
-           pr "                        PyLong_FromLongLong (%s->%s));\n"
-             typ name
-       | name, FUInt32 ->
-           pr "  PyDict_SetItemString (dict, \"%s\",\n" name;
-           pr "                        PyLong_FromUnsignedLong (%s->%s));\n"
-             typ name
-       | name, FInt32 ->
-           pr "  PyDict_SetItemString (dict, \"%s\",\n" name;
-           pr "                        PyLong_FromLong (%s->%s));\n"
-             typ name
-       | name, FOptPercent ->
-           pr "  if (%s->%s >= 0)\n" typ name;
-           pr "    PyDict_SetItemString (dict, \"%s\",\n" name;
-           pr "                          PyFloat_FromDouble ((double) %s->%s));\n"
-             typ name;
-           pr "  else {\n";
-           pr "    Py_INCREF (Py_None);\n";
-           pr "    PyDict_SetItemString (dict, \"%s\", Py_None);" name;
-           pr "  }\n"
-       | name, FChar ->
-           pr "  PyDict_SetItemString (dict, \"%s\",\n" name;
-           pr "                        PyString_FromStringAndSize (&dirent->%s, 1));\n" name
+        function
+        | name, FString ->
+            pr "  PyDict_SetItemString (dict, \"%s\",\n" name;
+            pr "                        PyString_FromString (%s->%s));\n"
+              typ name
+        | name, FBuffer ->
+            pr "  PyDict_SetItemString (dict, \"%s\",\n" name;
+            pr "                        PyString_FromStringAndSize (%s->%s, %s->%s_len));\n"
+              typ name typ name
+        | name, FUUID ->
+            pr "  PyDict_SetItemString (dict, \"%s\",\n" name;
+            pr "                        PyString_FromStringAndSize (%s->%s, 32));\n"
+              typ name
+        | name, (FBytes|FUInt64) ->
+            pr "  PyDict_SetItemString (dict, \"%s\",\n" name;
+            pr "                        PyLong_FromUnsignedLongLong (%s->%s));\n"
+              typ name
+        | name, FInt64 ->
+            pr "  PyDict_SetItemString (dict, \"%s\",\n" name;
+            pr "                        PyLong_FromLongLong (%s->%s));\n"
+              typ name
+        | name, FUInt32 ->
+            pr "  PyDict_SetItemString (dict, \"%s\",\n" name;
+            pr "                        PyLong_FromUnsignedLong (%s->%s));\n"
+              typ name
+        | name, FInt32 ->
+            pr "  PyDict_SetItemString (dict, \"%s\",\n" name;
+            pr "                        PyLong_FromLong (%s->%s));\n"
+              typ name
+        | name, FOptPercent ->
+            pr "  if (%s->%s >= 0)\n" typ name;
+            pr "    PyDict_SetItemString (dict, \"%s\",\n" name;
+            pr "                          PyFloat_FromDouble ((double) %s->%s));\n"
+              typ name;
+            pr "  else {\n";
+            pr "    Py_INCREF (Py_None);\n";
+            pr "    PyDict_SetItemString (dict, \"%s\", Py_None);" name;
+            pr "  }\n"
+        | name, FChar ->
+            pr "  PyDict_SetItemString (dict, \"%s\",\n" name;
+            pr "                        PyString_FromStringAndSize (&dirent->%s, 1));\n" name
       ) cols;
       pr "  return dict;\n";
       pr "};\n";
       ) cols;
       pr "  return dict;\n";
       pr "};\n";
@@ -7365,30 +7365,30 @@ py_guestfs_close (PyObject *self, PyObject *args)
       pr "  PyObject *py_r;\n";
 
       let error_code =
       pr "  PyObject *py_r;\n";
 
       let error_code =
-       match fst style with
-       | RErr | RInt _ | RBool _ -> pr "  int r;\n"; "-1"
-       | RInt64 _ -> pr "  int64_t r;\n"; "-1"
-       | RConstString _ | RConstOptString _ ->
-           pr "  const char *r;\n"; "NULL"
-       | RString _ -> pr "  char *r;\n"; "NULL"
-       | RStringList _ | RHashtable _ -> pr "  char **r;\n"; "NULL"
-       | RStruct (_, typ) -> pr "  struct guestfs_%s *r;\n" typ; "NULL"
-       | RStructList (_, typ) ->
-           pr "  struct guestfs_%s_list *r;\n" typ; "NULL"
-       | RBufferOut _ ->
-           pr "  char *r;\n";
-           pr "  size_t size;\n";
-           "NULL" in
+        match fst style with
+        | RErr | RInt _ | RBool _ -> pr "  int r;\n"; "-1"
+        | RInt64 _ -> pr "  int64_t r;\n"; "-1"
+        | RConstString _ | RConstOptString _ ->
+            pr "  const char *r;\n"; "NULL"
+        | RString _ -> pr "  char *r;\n"; "NULL"
+        | RStringList _ | RHashtable _ -> pr "  char **r;\n"; "NULL"
+        | RStruct (_, typ) -> pr "  struct guestfs_%s *r;\n" typ; "NULL"
+        | RStructList (_, typ) ->
+            pr "  struct guestfs_%s_list *r;\n" typ; "NULL"
+        | RBufferOut _ ->
+            pr "  char *r;\n";
+            pr "  size_t size;\n";
+            "NULL" in
 
       List.iter (
 
       List.iter (
-       function
-       | String n | FileIn n | FileOut n -> pr "  const char *%s;\n" n
-       | OptString n -> pr "  const char *%s;\n" n
-       | StringList n ->
-           pr "  PyObject *py_%s;\n" n;
-           pr "  const char **%s;\n" n
-       | Bool n -> pr "  int %s;\n" n
-       | Int n -> pr "  int %s;\n" n
+        function
+        | String n | FileIn n | FileOut n -> pr "  const char *%s;\n" n
+        | OptString n -> pr "  const char *%s;\n" n
+        | StringList n ->
+            pr "  PyObject *py_%s;\n" n;
+            pr "  const char **%s;\n" n
+        | Bool n -> pr "  int %s;\n" n
+        | Int n -> pr "  int %s;\n" n
       ) (snd style);
 
       pr "\n";
       ) (snd style);
 
       pr "\n";
@@ -7396,22 +7396,22 @@ py_guestfs_close (PyObject *self, PyObject *args)
       (* Convert the parameters. *)
       pr "  if (!PyArg_ParseTuple (args, (char *) \"O";
       List.iter (
       (* Convert the parameters. *)
       pr "  if (!PyArg_ParseTuple (args, (char *) \"O";
       List.iter (
-       function
-       | String _ | FileIn _ | FileOut _ -> pr "s"
-       | OptString _ -> pr "z"
-       | StringList _ -> pr "O"
-       | Bool _ -> pr "i" (* XXX Python has booleans? *)
-       | Int _ -> pr "i"
+        function
+        | String _ | FileIn _ | FileOut _ -> pr "s"
+        | OptString _ -> pr "z"
+        | StringList _ -> pr "O"
+        | Bool _ -> pr "i" (* XXX Python has booleans? *)
+        | Int _ -> pr "i"
       ) (snd style);
       pr ":guestfs_%s\",\n" name;
       pr "                         &py_g";
       List.iter (
       ) (snd style);
       pr ":guestfs_%s\",\n" name;
       pr "                         &py_g";
       List.iter (
-       function
-       | String n | FileIn n | FileOut n -> pr ", &%s" n
-       | OptString n -> pr ", &%s" n
-       | StringList n -> pr ", &py_%s" n
-       | Bool n -> pr ", &%s" n
-       | Int n -> pr ", &%s" n
+        function
+        | String n | FileIn n | FileOut n -> pr ", &%s" n
+        | OptString n -> pr ", &%s" n
+        | StringList n -> pr ", &py_%s" n
+        | Bool n -> pr ", &%s" n
+        | Int n -> pr ", &%s" n
       ) (snd style);
 
       pr "))\n";
       ) (snd style);
 
       pr "))\n";
@@ -7419,11 +7419,11 @@ py_guestfs_close (PyObject *self, PyObject *args)
 
       pr "  g = get_handle (py_g);\n";
       List.iter (
 
       pr "  g = get_handle (py_g);\n";
       List.iter (
-       function
-       | String _ | FileIn _ | FileOut _ | OptString _ | Bool _ | Int _ -> ()
-       | StringList n ->
-           pr "  %s = get_string_list (py_%s);\n" n n;
-           pr "  if (!%s) return NULL;\n" n
+        function
+        | String _ | FileIn _ | FileOut _ | OptString _ | Bool _ | Int _ -> ()
+        | StringList n ->
+            pr "  %s = get_string_list (py_%s);\n" n n;
+            pr "  if (!%s) return NULL;\n" n
       ) (snd style);
 
       pr "\n";
       ) (snd style);
 
       pr "\n";
@@ -7433,10 +7433,10 @@ py_guestfs_close (PyObject *self, PyObject *args)
       pr ";\n";
 
       List.iter (
       pr ";\n";
 
       List.iter (
-       function
-       | String _ | FileIn _ | FileOut _ | OptString _ | Bool _ | Int _ -> ()
-       | StringList n ->
-           pr "  free (%s);\n" n
+        function
+        | String _ | FileIn _ | FileOut _ | OptString _ | Bool _ | Int _ -> ()
+        | StringList n ->
+            pr "  free (%s);\n" n
       ) (snd style);
 
       pr "  if (r == %s) {\n" error_code;
       ) (snd style);
 
       pr "  if (r == %s) {\n" error_code;
@@ -7447,37 +7447,37 @@ py_guestfs_close (PyObject *self, PyObject *args)
 
       (match fst style with
        | RErr ->
 
       (match fst style with
        | RErr ->
-          pr "  Py_INCREF (Py_None);\n";
-          pr "  py_r = Py_None;\n"
+           pr "  Py_INCREF (Py_None);\n";
+           pr "  py_r = Py_None;\n"
        | RInt _
        | RBool _ -> pr "  py_r = PyInt_FromLong ((long) r);\n"
        | RInt64 _ -> pr "  py_r = PyLong_FromLongLong (r);\n"
        | RConstString _ -> pr "  py_r = PyString_FromString (r);\n"
        | RConstOptString _ ->
        | RInt _
        | RBool _ -> pr "  py_r = PyInt_FromLong ((long) r);\n"
        | RInt64 _ -> pr "  py_r = PyLong_FromLongLong (r);\n"
        | RConstString _ -> pr "  py_r = PyString_FromString (r);\n"
        | RConstOptString _ ->
-          pr "  if (r)\n";
-          pr "    py_r = PyString_FromString (r);\n";
-          pr "  else {\n";
-          pr "    Py_INCREF (Py_None);\n";
-          pr "    py_r = Py_None;\n";
-          pr "  }\n"
+           pr "  if (r)\n";
+           pr "    py_r = PyString_FromString (r);\n";
+           pr "  else {\n";
+           pr "    Py_INCREF (Py_None);\n";
+           pr "    py_r = Py_None;\n";
+           pr "  }\n"
        | RString _ ->
        | RString _ ->
-          pr "  py_r = PyString_FromString (r);\n";
-          pr "  free (r);\n"
+           pr "  py_r = PyString_FromString (r);\n";
+           pr "  free (r);\n"
        | RStringList _ ->
        | RStringList _ ->
-          pr "  py_r = put_string_list (r);\n";
-          pr "  free_strings (r);\n"
+           pr "  py_r = put_string_list (r);\n";
+           pr "  free_strings (r);\n"
        | RStruct (_, typ) ->
        | RStruct (_, typ) ->
-          pr "  py_r = put_%s (r);\n" typ;
-          pr "  guestfs_free_%s (r);\n" typ
+           pr "  py_r = put_%s (r);\n" typ;
+           pr "  guestfs_free_%s (r);\n" typ
        | RStructList (_, typ) ->
        | RStructList (_, typ) ->
-          pr "  py_r = put_%s_list (r);\n" typ;
-          pr "  guestfs_free_%s_list (r);\n" typ
+           pr "  py_r = put_%s_list (r);\n" typ;
+           pr "  guestfs_free_%s_list (r);\n" typ
        | RHashtable n ->
        | RHashtable n ->
-          pr "  py_r = put_table (r);\n";
-          pr "  free_strings (r);\n"
+           pr "  py_r = put_table (r);\n";
+           pr "  free_strings (r);\n"
        | RBufferOut _ ->
        | RBufferOut _ ->
-          pr "  py_r = PyString_FromStringAndSize (r, size);\n";
-          pr "  free (r);\n"
+           pr "  py_r = PyString_FromStringAndSize (r, size);\n";
+           pr "  free (r);\n"
       );
 
       pr "  return py_r;\n";
       );
 
       pr "  return py_r;\n";
@@ -7492,7 +7492,7 @@ py_guestfs_close (PyObject *self, PyObject *args)
   List.iter (
     fun (name, _, _, _, _, _, _) ->
       pr "  { (char *) \"%s\", py_guestfs_%s, METH_VARARGS, NULL },\n"
   List.iter (
     fun (name, _, _, _, _, _, _) ->
       pr "  { (char *) \"%s\", py_guestfs_%s, METH_VARARGS, NULL },\n"
-       name name
+        name name
   ) all_functions;
   pr "  { NULL, NULL, 0, NULL }\n";
   pr "};\n";
   ) all_functions;
   pr "  { NULL, NULL, 0, NULL }\n";
   pr "};\n";
@@ -7585,36 +7585,36 @@ class GuestFS:
       pr ":\n";
 
       if not (List.mem NotInDocs flags) then (
       pr ":\n";
 
       if not (List.mem NotInDocs flags) then (
-       let doc = replace_str longdesc "C<guestfs_" "C<g." in
-       let doc =
+        let doc = replace_str longdesc "C<guestfs_" "C<g." in
+        let doc =
           match fst style with
           match fst style with
-         | RErr | RInt _ | RInt64 _ | RBool _
-         | RConstOptString _ | RConstString _
-         | RString _ | RBufferOut _ -> doc
-         | RStringList _ ->
-             doc ^ "\n\nThis function returns a list of strings."
-         | RStruct (_, typ) ->
-             doc ^ sprintf "\n\nThis function returns a dictionary, with keys matching the various fields in the guestfs_%s structure." typ
-         | RStructList (_, typ) ->
-             doc ^ sprintf "\n\nThis function returns a list of %ss.  Each %s is represented as a dictionary." typ typ
-         | RHashtable _ ->
-             doc ^ "\n\nThis function returns a dictionary." in
-       let doc =
-         if List.mem ProtocolLimitWarning flags then
-           doc ^ "\n\n" ^ protocol_limit_warning
-         else doc in
-       let doc =
-         if List.mem DangerWillRobinson flags then
-           doc ^ "\n\n" ^ danger_will_robinson
-         else doc in
-       let doc =
-         match deprecation_notice flags with
-         | None -> doc
-         | Some txt -> doc ^ "\n\n" ^ txt in
-       let doc = pod2text ~width:60 name doc in
-       let doc = List.map (fun line -> replace_str line "\\" "\\\\") doc in
-       let doc = String.concat "\n        " doc in
-       pr "        u\"\"\"%s\"\"\"\n" doc;
+          | RErr | RInt _ | RInt64 _ | RBool _
+          | RConstOptString _ | RConstString _
+          | RString _ | RBufferOut _ -> doc
+          | RStringList _ ->
+              doc ^ "\n\nThis function returns a list of strings."
+          | RStruct (_, typ) ->
+              doc ^ sprintf "\n\nThis function returns a dictionary, with keys matching the various fields in the guestfs_%s structure." typ
+          | RStructList (_, typ) ->
+              doc ^ sprintf "\n\nThis function returns a list of %ss.  Each %s is represented as a dictionary." typ typ
+          | RHashtable _ ->
+              doc ^ "\n\nThis function returns a dictionary." in
+        let doc =
+          if List.mem ProtocolLimitWarning flags then
+            doc ^ "\n\n" ^ protocol_limit_warning
+          else doc in
+        let doc =
+          if List.mem DangerWillRobinson flags then
+            doc ^ "\n\n" ^ danger_will_robinson
+          else doc in
+        let doc =
+          match deprecation_notice flags with
+          | None -> doc
+          | Some txt -> doc ^ "\n\n" ^ txt in
+        let doc = pod2text ~width:60 name doc in
+        let doc = List.map (fun line -> replace_str line "\\" "\\\\") doc in
+        let doc = String.concat "\n        " doc in
+        pr "        u\"\"\"%s\"\"\"\n" doc;
       );
       pr "        return libguestfsmod.%s " name;
       generate_py_call_args ~handle:"self._o" (snd style);
       );
       pr "        return libguestfsmod.%s " name;
       generate_py_call_args ~handle:"self._o" (snd style);
@@ -7647,20 +7647,20 @@ and pod2text ~width name longdesc =
     let rec loop i =
       let line = input_line chan in
       if i = 1 then            (* discard the first line of output *)
     let rec loop i =
       let line = input_line chan in
       if i = 1 then            (* discard the first line of output *)
-       loop (i+1)
+        loop (i+1)
       else (
       else (
-       let line = triml line in
-       lines := line :: !lines;
-       loop (i+1)
+        let line = triml line in
+        lines := line :: !lines;
+        loop (i+1)
       ) in
     let lines = try loop 1 with End_of_file -> List.rev !lines in
     Unix.unlink filename;
     (match Unix.close_process_in chan with
      | Unix.WEXITED 0 -> ()
      | Unix.WEXITED i ->
       ) in
     let lines = try loop 1 with End_of_file -> List.rev !lines in
     Unix.unlink filename;
     (match Unix.close_process_in chan with
      | Unix.WEXITED 0 -> ()
      | Unix.WEXITED i ->
-        failwithf "pod2text: process exited with non-zero status (%d)" i
+         failwithf "pod2text: process exited with non-zero status (%d)" i
      | Unix.WSIGNALED i | Unix.WSTOPPED i ->
      | Unix.WSIGNALED i | Unix.WSTOPPED i ->
-        failwithf "pod2text: process signalled or stopped by signal %d" i
+         failwithf "pod2text: process signalled or stopped by signal %d" i
     );
     Hashtbl.add pod2text_memo key lines;
     let chan = open_out pod2text_memo_filename in
     );
     Hashtbl.add pod2text_memo key lines;
     let chan = open_out pod2text_memo_filename in
@@ -7737,55 +7737,55 @@ static VALUE ruby_guestfs_close (VALUE gv)
       pr "  Data_Get_Struct (gv, guestfs_h, g);\n";
       pr "  if (!g)\n";
       pr "    rb_raise (rb_eArgError, \"%%s: used handle after closing it\", \"%s\");\n"
       pr "  Data_Get_Struct (gv, guestfs_h, g);\n";
       pr "  if (!g)\n";
       pr "    rb_raise (rb_eArgError, \"%%s: used handle after closing it\", \"%s\");\n"
-       name;
+        name;
       pr "\n";
 
       List.iter (
       pr "\n";
 
       List.iter (
-       function
-       | String n | FileIn n | FileOut n ->
-           pr "  Check_Type (%sv, T_STRING);\n" n;
-           pr "  const char *%s = StringValueCStr (%sv);\n" n n;
-           pr "  if (!%s)\n" n;
-           pr "    rb_raise (rb_eTypeError, \"expected string for parameter %%s of %%s\",\n";
-           pr "              \"%s\", \"%s\");\n" n name
-       | OptString n ->
-           pr "  const char *%s = !NIL_P (%sv) ? StringValueCStr (%sv) : NULL;\n" n n n
-       | StringList n ->
-           pr "  char **%s;\n" n;
-           pr "  Check_Type (%sv, T_ARRAY);\n" n;
-           pr "  {\n";
-           pr "    int i, len;\n";
-           pr "    len = RARRAY_LEN (%sv);\n" n;
-           pr "    %s = guestfs_safe_malloc (g, sizeof (char *) * (len+1));\n"
-             n;
-           pr "    for (i = 0; i < len; ++i) {\n";
-           pr "      VALUE v = rb_ary_entry (%sv, i);\n" n;
-           pr "      %s[i] = StringValueCStr (v);\n" n;
-           pr "    }\n";
-           pr "    %s[len] = NULL;\n" n;
-           pr "  }\n";
-       | Bool n ->
-           pr "  int %s = RTEST (%sv);\n" n n
-       | Int n ->
-           pr "  int %s = NUM2INT (%sv);\n" n n
+        function
+        | String n | FileIn n | FileOut n ->
+            pr "  Check_Type (%sv, T_STRING);\n" n;
+            pr "  const char *%s = StringValueCStr (%sv);\n" n n;
+            pr "  if (!%s)\n" n;
+            pr "    rb_raise (rb_eTypeError, \"expected string for parameter %%s of %%s\",\n";
+            pr "              \"%s\", \"%s\");\n" n name
+        | OptString n ->
+            pr "  const char *%s = !NIL_P (%sv) ? StringValueCStr (%sv) : NULL;\n" n n n
+        | StringList n ->
+            pr "  char **%s;\n" n;
+            pr "  Check_Type (%sv, T_ARRAY);\n" n;
+            pr "  {\n";
+            pr "    int i, len;\n";
+            pr "    len = RARRAY_LEN (%sv);\n" n;
+            pr "    %s = guestfs_safe_malloc (g, sizeof (char *) * (len+1));\n"
+              n;
+            pr "    for (i = 0; i < len; ++i) {\n";
+            pr "      VALUE v = rb_ary_entry (%sv, i);\n" n;
+            pr "      %s[i] = StringValueCStr (v);\n" n;
+            pr "    }\n";
+            pr "    %s[len] = NULL;\n" n;
+            pr "  }\n";
+        | Bool n ->
+            pr "  int %s = RTEST (%sv);\n" n n
+        | Int n ->
+            pr "  int %s = NUM2INT (%sv);\n" n n
       ) (snd style);
       pr "\n";
 
       let error_code =
       ) (snd style);
       pr "\n";
 
       let error_code =
-       match fst style with
-       | RErr | RInt _ | RBool _ -> pr "  int r;\n"; "-1"
-       | RInt64 _ -> pr "  int64_t r;\n"; "-1"
-       | RConstString _ | RConstOptString _ ->
-           pr "  const char *r;\n"; "NULL"
-       | RString _ -> pr "  char *r;\n"; "NULL"
-       | RStringList _ | RHashtable _ -> pr "  char **r;\n"; "NULL"
-       | RStruct (_, typ) -> pr "  struct guestfs_%s *r;\n" typ; "NULL"
-       | RStructList (_, typ) ->
-           pr "  struct guestfs_%s_list *r;\n" typ; "NULL"
-       | RBufferOut _ ->
-           pr "  char *r;\n";
-           pr "  size_t size;\n";
-           "NULL" in
+        match fst style with
+        | RErr | RInt _ | RBool _ -> pr "  int r;\n"; "-1"
+        | RInt64 _ -> pr "  int64_t r;\n"; "-1"
+        | RConstString _ | RConstOptString _ ->
+            pr "  const char *r;\n"; "NULL"
+        | RString _ -> pr "  char *r;\n"; "NULL"
+        | RStringList _ | RHashtable _ -> pr "  char **r;\n"; "NULL"
+        | RStruct (_, typ) -> pr "  struct guestfs_%s *r;\n" typ; "NULL"
+        | RStructList (_, typ) ->
+            pr "  struct guestfs_%s_list *r;\n" typ; "NULL"
+        | RBufferOut _ ->
+            pr "  char *r;\n";
+            pr "  size_t size;\n";
+            "NULL" in
       pr "\n";
 
       pr "  r = guestfs_%s " name;
       pr "\n";
 
       pr "  r = guestfs_%s " name;
@@ -7793,10 +7793,10 @@ static VALUE ruby_guestfs_close (VALUE gv)
       pr ";\n";
 
       List.iter (
       pr ";\n";
 
       List.iter (
-       function
-       | String _ | FileIn _ | FileOut _ | OptString _ | Bool _ | Int _ -> ()
-       | StringList n ->
-           pr "  free (%s);\n" n
+        function
+        | String _ | FileIn _ | FileOut _ | OptString _ | Bool _ | Int _ -> ()
+        | StringList n ->
+            pr "  free (%s);\n" n
       ) (snd style);
 
       pr "  if (r == %s)\n" error_code;
       ) (snd style);
 
       pr "  if (r == %s)\n" error_code;
@@ -7805,52 +7805,52 @@ static VALUE ruby_guestfs_close (VALUE gv)
 
       (match fst style with
        | RErr ->
 
       (match fst style with
        | RErr ->
-          pr "  return Qnil;\n"
+           pr "  return Qnil;\n"
        | RInt _ | RBool _ ->
        | RInt _ | RBool _ ->
-          pr "  return INT2NUM (r);\n"
+           pr "  return INT2NUM (r);\n"
        | RInt64 _ ->
        | RInt64 _ ->
-          pr "  return ULL2NUM (r);\n"
+           pr "  return ULL2NUM (r);\n"
        | RConstString _ ->
        | RConstString _ ->
-          pr "  return rb_str_new2 (r);\n";
+           pr "  return rb_str_new2 (r);\n";
        | RConstOptString _ ->
        | RConstOptString _ ->
-          pr "  if (r)\n";
-          pr "    return rb_str_new2 (r);\n";
-          pr "  else\n";
-          pr "    return Qnil;\n";
+           pr "  if (r)\n";
+           pr "    return rb_str_new2 (r);\n";
+           pr "  else\n";
+           pr "    return Qnil;\n";
        | RString _ ->
        | RString _ ->
-          pr "  VALUE rv = rb_str_new2 (r);\n";
-          pr "  free (r);\n";
-          pr "  return rv;\n";
+           pr "  VALUE rv = rb_str_new2 (r);\n";
+           pr "  free (r);\n";
+           pr "  return rv;\n";
        | RStringList _ ->
        | RStringList _ ->
-          pr "  int i, len = 0;\n";
-          pr "  for (i = 0; r[i] != NULL; ++i) len++;\n";
-          pr "  VALUE rv = rb_ary_new2 (len);\n";
-          pr "  for (i = 0; r[i] != NULL; ++i) {\n";
-          pr "    rb_ary_push (rv, rb_str_new2 (r[i]));\n";
-          pr "    free (r[i]);\n";
-          pr "  }\n";
-          pr "  free (r);\n";
-          pr "  return rv;\n"
+           pr "  int i, len = 0;\n";
+           pr "  for (i = 0; r[i] != NULL; ++i) len++;\n";
+           pr "  VALUE rv = rb_ary_new2 (len);\n";
+           pr "  for (i = 0; r[i] != NULL; ++i) {\n";
+           pr "    rb_ary_push (rv, rb_str_new2 (r[i]));\n";
+           pr "    free (r[i]);\n";
+           pr "  }\n";
+           pr "  free (r);\n";
+           pr "  return rv;\n"
        | RStruct (_, typ) ->
        | RStruct (_, typ) ->
-          let cols = cols_of_struct typ in
-          generate_ruby_struct_code typ cols
+           let cols = cols_of_struct typ in
+           generate_ruby_struct_code typ cols
        | RStructList (_, typ) ->
        | RStructList (_, typ) ->
-          let cols = cols_of_struct typ in
-          generate_ruby_struct_list_code typ cols
+           let cols = cols_of_struct typ in
+           generate_ruby_struct_list_code typ cols
        | RHashtable _ ->
        | RHashtable _ ->
-          pr "  VALUE rv = rb_hash_new ();\n";
-          pr "  int i;\n";
-          pr "  for (i = 0; r[i] != NULL; i+=2) {\n";
-          pr "    rb_hash_aset (rv, rb_str_new2 (r[i]), rb_str_new2 (r[i+1]));\n";
-          pr "    free (r[i]);\n";
-          pr "    free (r[i+1]);\n";
-          pr "  }\n";
-          pr "  free (r);\n";
-          pr "  return rv;\n"
+           pr "  VALUE rv = rb_hash_new ();\n";
+           pr "  int i;\n";
+           pr "  for (i = 0; r[i] != NULL; i+=2) {\n";
+           pr "    rb_hash_aset (rv, rb_str_new2 (r[i]), rb_str_new2 (r[i+1]));\n";
+           pr "    free (r[i]);\n";
+           pr "    free (r[i+1]);\n";
+           pr "  }\n";
+           pr "  free (r);\n";
+           pr "  return rv;\n"
        | RBufferOut _ ->
        | RBufferOut _ ->
-          pr "  VALUE rv = rb_str_new (r, size);\n";
-          pr "  free (r);\n";
-          pr "  return rv;\n";
+           pr "  VALUE rv = rb_str_new (r, size);\n";
+           pr "  free (r);\n";
+           pr "  return rv;\n";
       );
 
       pr "}\n";
       );
 
       pr "}\n";
@@ -7884,23 +7884,23 @@ and generate_ruby_struct_code typ cols =
   List.iter (
     function
     | name, FString ->
   List.iter (
     function
     | name, FString ->
-       pr "  rb_hash_aset (rv, rb_str_new2 (\"%s\"), rb_str_new2 (r->%s));\n" name name
+        pr "  rb_hash_aset (rv, rb_str_new2 (\"%s\"), rb_str_new2 (r->%s));\n" name name
     | name, FBuffer ->
     | name, FBuffer ->
-       pr "  rb_hash_aset (rv, rb_str_new2 (\"%s\"), rb_str_new (r->%s, r->%s_len));\n" name name name
+        pr "  rb_hash_aset (rv, rb_str_new2 (\"%s\"), rb_str_new (r->%s, r->%s_len));\n" name name name
     | name, FUUID ->
     | name, FUUID ->
-       pr "  rb_hash_aset (rv, rb_str_new2 (\"%s\"), rb_str_new (r->%s, 32));\n" name name
+        pr "  rb_hash_aset (rv, rb_str_new2 (\"%s\"), rb_str_new (r->%s, 32));\n" name name
     | name, (FBytes|FUInt64) ->
     | name, (FBytes|FUInt64) ->
-       pr "  rb_hash_aset (rv, rb_str_new2 (\"%s\"), ULL2NUM (r->%s));\n" name name
+        pr "  rb_hash_aset (rv, rb_str_new2 (\"%s\"), ULL2NUM (r->%s));\n" name name
     | name, FInt64 ->
     | name, FInt64 ->
-       pr "  rb_hash_aset (rv, rb_str_new2 (\"%s\"), LL2NUM (r->%s));\n" name name
+        pr "  rb_hash_aset (rv, rb_str_new2 (\"%s\"), LL2NUM (r->%s));\n" name name
     | name, FUInt32 ->
     | name, FUInt32 ->
-       pr "  rb_hash_aset (rv, rb_str_new2 (\"%s\"), UINT2NUM (r->%s));\n" name name
+        pr "  rb_hash_aset (rv, rb_str_new2 (\"%s\"), UINT2NUM (r->%s));\n" name name
     | name, FInt32 ->
     | name, FInt32 ->
-       pr "  rb_hash_aset (rv, rb_str_new2 (\"%s\"), INT2NUM (r->%s));\n" name name
+        pr "  rb_hash_aset (rv, rb_str_new2 (\"%s\"), INT2NUM (r->%s));\n" name name
     | name, FOptPercent ->
     | name, FOptPercent ->
-       pr "  rb_hash_aset (rv, rb_str_new2 (\"%s\"), rb_dbl2big (r->%s));\n" name name
+        pr "  rb_hash_aset (rv, rb_str_new2 (\"%s\"), rb_dbl2big (r->%s));\n" name name
     | name, FChar -> (* XXX wrong? *)
     | name, FChar -> (* XXX wrong? *)
-       pr "  rb_hash_aset (rv, rb_str_new2 (\"%s\"), ULL2NUM (r->%s));\n" name name
+        pr "  rb_hash_aset (rv, rb_str_new2 (\"%s\"), ULL2NUM (r->%s));\n" name name
   ) cols;
   pr "  guestfs_free_%s (r);\n" typ;
   pr "  return rv;\n"
   ) cols;
   pr "  guestfs_free_%s (r);\n" typ;
   pr "  return rv;\n"
@@ -7914,23 +7914,23 @@ and generate_ruby_struct_list_code typ cols =
   List.iter (
     function
     | name, FString ->
   List.iter (
     function
     | name, FString ->
-       pr "    rb_hash_aset (hv, rb_str_new2 (\"%s\"), rb_str_new2 (r->val[i].%s));\n" name name
+        pr "    rb_hash_aset (hv, rb_str_new2 (\"%s\"), rb_str_new2 (r->val[i].%s));\n" name name
     | name, FBuffer ->
     | name, FBuffer ->
-       pr "    rb_hash_aset (hv, rb_str_new2 (\"%s\"), rb_str_new (r->val[i].%s, r->val[i].%s_len));\n" name name name
+        pr "    rb_hash_aset (hv, rb_str_new2 (\"%s\"), rb_str_new (r->val[i].%s, r->val[i].%s_len));\n" name name name
     | name, FUUID ->
     | name, FUUID ->
-       pr "    rb_hash_aset (hv, rb_str_new2 (\"%s\"), rb_str_new (r->val[i].%s, 32));\n" name name
+        pr "    rb_hash_aset (hv, rb_str_new2 (\"%s\"), rb_str_new (r->val[i].%s, 32));\n" name name
     | name, (FBytes|FUInt64) ->
     | name, (FBytes|FUInt64) ->
-       pr "    rb_hash_aset (hv, rb_str_new2 (\"%s\"), ULL2NUM (r->val[i].%s));\n" name name
+        pr "    rb_hash_aset (hv, rb_str_new2 (\"%s\"), ULL2NUM (r->val[i].%s));\n" name name
     | name, FInt64 ->
     | name, FInt64 ->
-       pr "    rb_hash_aset (hv, rb_str_new2 (\"%s\"), LL2NUM (r->val[i].%s));\n" name name
+        pr "    rb_hash_aset (hv, rb_str_new2 (\"%s\"), LL2NUM (r->val[i].%s));\n" name name
     | name, FUInt32 ->
     | name, FUInt32 ->
-       pr "    rb_hash_aset (hv, rb_str_new2 (\"%s\"), UINT2NUM (r->val[i].%s));\n" name name
+        pr "    rb_hash_aset (hv, rb_str_new2 (\"%s\"), UINT2NUM (r->val[i].%s));\n" name name
     | name, FInt32 ->
     | name, FInt32 ->
-       pr "    rb_hash_aset (hv, rb_str_new2 (\"%s\"), INT2NUM (r->val[i].%s));\n" name name
+        pr "    rb_hash_aset (hv, rb_str_new2 (\"%s\"), INT2NUM (r->val[i].%s));\n" name name
     | name, FOptPercent ->
     | name, FOptPercent ->
-       pr "    rb_hash_aset (hv, rb_str_new2 (\"%s\"), rb_dbl2big (r->val[i].%s));\n" name name
+        pr "    rb_hash_aset (hv, rb_str_new2 (\"%s\"), rb_dbl2big (r->val[i].%s));\n" name name
     | name, FChar -> (* XXX wrong? *)
     | name, FChar -> (* XXX wrong? *)
-       pr "    rb_hash_aset (hv, rb_str_new2 (\"%s\"), ULL2NUM (r->val[i].%s));\n" name name
+        pr "    rb_hash_aset (hv, rb_str_new2 (\"%s\"), ULL2NUM (r->val[i].%s));\n" name name
   ) cols;
   pr "    rb_ary_push (rv, hv);\n";
   pr "  }\n";
   ) cols;
   pr "    rb_ary_push (rv, hv);\n";
   pr "  }\n";
@@ -8010,41 +8010,41 @@ public class GuestFS {
   List.iter (
     fun (name, style, _, flags, _, shortdesc, longdesc) ->
       if not (List.mem NotInDocs flags); then (
   List.iter (
     fun (name, style, _, flags, _, shortdesc, longdesc) ->
       if not (List.mem NotInDocs flags); then (
-       let doc = replace_str longdesc "C<guestfs_" "C<g." in
-       let doc =
-         if List.mem ProtocolLimitWarning flags then
-           doc ^ "\n\n" ^ protocol_limit_warning
-         else doc in
-       let doc =
-         if List.mem DangerWillRobinson flags then
-           doc ^ "\n\n" ^ danger_will_robinson
-         else doc in
-       let doc =
-         match deprecation_notice flags with
-         | None -> doc
-         | Some txt -> doc ^ "\n\n" ^ txt in
-       let doc = pod2text ~width:60 name doc in
-       let doc = List.map (            (* RHBZ#501883 *)
-         function
-         | "" -> "<p>"
-         | nonempty -> nonempty
-       ) doc in
-       let doc = String.concat "\n   * " doc in
-
-       pr "  /**\n";
-       pr "   * %s\n" shortdesc;
-       pr "   * <p>\n";
-       pr "   * %s\n" doc;
-       pr "   * @throws LibGuestFSException\n";
-       pr "   */\n";
-       pr "  ";
+        let doc = replace_str longdesc "C<guestfs_" "C<g." in
+        let doc =
+          if List.mem ProtocolLimitWarning flags then
+            doc ^ "\n\n" ^ protocol_limit_warning
+          else doc in
+        let doc =
+          if List.mem DangerWillRobinson flags then
+            doc ^ "\n\n" ^ danger_will_robinson
+          else doc in
+        let doc =
+          match deprecation_notice flags with
+          | None -> doc
+          | Some txt -> doc ^ "\n\n" ^ txt in
+        let doc = pod2text ~width:60 name doc in
+        let doc = List.map (           (* RHBZ#501883 *)
+          function
+          | "" -> "<p>"
+          | nonempty -> nonempty
+        ) doc in
+        let doc = String.concat "\n   * " doc in
+
+        pr "  /**\n";
+        pr "   * %s\n" shortdesc;
+        pr "   * <p>\n";
+        pr "   * %s\n" doc;
+        pr "   * @throws LibGuestFSException\n";
+        pr "   */\n";
+        pr "  ";
       );
       generate_java_prototype ~public:true ~semicolon:false name style;
       pr "\n";
       pr "  {\n";
       pr "    if (g == 0)\n";
       pr "      throw new LibGuestFSException (\"%s: handle is closed\");\n"
       );
       generate_java_prototype ~public:true ~semicolon:false name style;
       pr "\n";
       pr "  {\n";
       pr "    if (g == 0)\n";
       pr "      throw new LibGuestFSException (\"%s: handle is closed\");\n"
-       name;
+        name;
       pr "    ";
       if fst style <> RErr then pr "return ";
       pr "_%s " name;
       pr "    ";
       if fst style <> RErr then pr "return ";
       pr "_%s " name;
@@ -8108,13 +8108,13 @@ and generate_java_prototype ?(public=false) ?(privat=false) ?(native=false)
       | OptString n
       | FileIn n
       | FileOut n ->
       | OptString n
       | FileIn n
       | FileOut n ->
-         pr "String %s" n
+          pr "String %s" n
       | StringList n ->
       | StringList n ->
-         pr "String[] %s" n
+          pr "String[] %s" n
       | Bool n ->
       | Bool n ->
-         pr "boolean %s" n
+          pr "boolean %s" n
       | Int n ->
       | Int n ->
-         pr "int %s" n
+          pr "int %s" n
   ) (snd style);
 
   pr ")\n";
   ) (snd style);
 
   pr ")\n";
@@ -8145,8 +8145,8 @@ public class %s {
     | name, (FUInt32|FInt32) -> pr "  public int %s;\n" name
     | name, FChar -> pr "  public char %s;\n" name
     | name, FOptPercent ->
     | name, (FUInt32|FInt32) -> pr "  public int %s;\n" name
     | name, FChar -> pr "  public char %s;\n" name
     | name, FOptPercent ->
-       pr "  /* The next field is [0..100] or -1 meaning 'not present': */\n";
-       pr "  public float %s;\n" name
+        pr "  /* The next field is [0..100] or -1 meaning 'not present': */\n";
+        pr "  public float %s;\n" name
   ) cols;
 
   pr "}\n"
   ) cols;
 
   pr "}\n"
@@ -8210,9 +8210,9 @@ Java_com_redhat_et_libguestfs_GuestFS__1close
        | RConstString _ | RConstOptString _ | RString _
        | RBufferOut _ -> pr "jstring ";
        | RStruct _ | RHashtable _ ->
        | RConstString _ | RConstOptString _ | RString _
        | RBufferOut _ -> pr "jstring ";
        | RStruct _ | RHashtable _ ->
-          pr "jobject ";
+           pr "jobject ";
        | RStringList _ | RStructList _ ->
        | RStringList _ | RStructList _ ->
-          pr "jobjectArray ";
+           pr "jobjectArray ";
       );
       pr "JNICALL\n";
       pr "Java_com_redhat_et_libguestfs_GuestFS_";
       );
       pr "JNICALL\n";
       pr "Java_com_redhat_et_libguestfs_GuestFS_";
@@ -8220,107 +8220,107 @@ Java_com_redhat_et_libguestfs_GuestFS__1close
       pr "\n";
       pr "  (JNIEnv *env, jobject obj, jlong jg";
       List.iter (
       pr "\n";
       pr "  (JNIEnv *env, jobject obj, jlong jg";
       List.iter (
-       function
-       | String n
-       | OptString n
-       | FileIn n
-       | FileOut n ->
-           pr ", jstring j%s" n
-       | StringList n ->
-           pr ", jobjectArray j%s" n
-       | Bool n ->
-           pr ", jboolean j%s" n
-       | Int n ->
-           pr ", jint j%s" n
+        function
+        | String n
+        | OptString n
+        | FileIn n
+        | FileOut n ->
+            pr ", jstring j%s" n
+        | StringList n ->
+            pr ", jobjectArray j%s" n
+        | Bool n ->
+            pr ", jboolean j%s" n
+        | Int n ->
+            pr ", jint j%s" n
       ) (snd style);
       pr ")\n";
       pr "{\n";
       pr "  guestfs_h *g = (guestfs_h *) (long) jg;\n";
       let error_code, no_ret =
       ) (snd style);
       pr ")\n";
       pr "{\n";
       pr "  guestfs_h *g = (guestfs_h *) (long) jg;\n";
       let error_code, no_ret =
-       match fst style with
-       | RErr -> pr "  int r;\n"; "-1", ""
-       | RBool _
-       | RInt _ -> pr "  int r;\n"; "-1", "0"
-       | RInt64 _ -> pr "  int64_t r;\n"; "-1", "0"
-       | RConstString _ -> pr "  const char *r;\n"; "NULL", "NULL"
-       | RConstOptString _ -> pr "  const char *r;\n"; "NULL", "NULL"
-       | RString _ ->
-           pr "  jstring jr;\n";
-           pr "  char *r;\n"; "NULL", "NULL"
-       | RStringList _ ->
-           pr "  jobjectArray jr;\n";
-           pr "  int r_len;\n";
-           pr "  jclass cl;\n";
-           pr "  jstring jstr;\n";
-           pr "  char **r;\n"; "NULL", "NULL"
-       | RStruct (_, typ) ->
-           pr "  jobject jr;\n";
-           pr "  jclass cl;\n";
-           pr "  jfieldID fl;\n";
-           pr "  struct guestfs_%s *r;\n" typ; "NULL", "NULL"
-       | RStructList (_, typ) ->
-           pr "  jobjectArray jr;\n";
-           pr "  jclass cl;\n";
-           pr "  jfieldID fl;\n";
-           pr "  jobject jfl;\n";
-           pr "  struct guestfs_%s_list *r;\n" typ; "NULL", "NULL"
-       | RHashtable _ -> pr "  char **r;\n"; "NULL", "NULL"
-       | RBufferOut _ ->
-           pr "  jstring jr;\n";
-           pr "  char *r;\n";
-           pr "  size_t size;\n";
-           "NULL", "NULL" in
+        match fst style with
+        | RErr -> pr "  int r;\n"; "-1", ""
+        | RBool _
+        | RInt _ -> pr "  int r;\n"; "-1", "0"
+        | RInt64 _ -> pr "  int64_t r;\n"; "-1", "0"
+        | RConstString _ -> pr "  const char *r;\n"; "NULL", "NULL"
+        | RConstOptString _ -> pr "  const char *r;\n"; "NULL", "NULL"
+        | RString _ ->
+            pr "  jstring jr;\n";
+            pr "  char *r;\n"; "NULL", "NULL"
+        | RStringList _ ->
+            pr "  jobjectArray jr;\n";
+            pr "  int r_len;\n";
+            pr "  jclass cl;\n";
+            pr "  jstring jstr;\n";
+            pr "  char **r;\n"; "NULL", "NULL"
+        | RStruct (_, typ) ->
+            pr "  jobject jr;\n";
+            pr "  jclass cl;\n";
+            pr "  jfieldID fl;\n";
+            pr "  struct guestfs_%s *r;\n" typ; "NULL", "NULL"
+        | RStructList (_, typ) ->
+            pr "  jobjectArray jr;\n";
+            pr "  jclass cl;\n";
+            pr "  jfieldID fl;\n";
+            pr "  jobject jfl;\n";
+            pr "  struct guestfs_%s_list *r;\n" typ; "NULL", "NULL"
+        | RHashtable _ -> pr "  char **r;\n"; "NULL", "NULL"
+        | RBufferOut _ ->
+            pr "  jstring jr;\n";
+            pr "  char *r;\n";
+            pr "  size_t size;\n";
+            "NULL", "NULL" in
       List.iter (
       List.iter (
-       function
-       | String n
-       | OptString n
-       | FileIn n
-       | FileOut n ->
-           pr "  const char *%s;\n" n
-       | StringList n ->
-           pr "  int %s_len;\n" n;
-           pr "  const char **%s;\n" n
-       | Bool n
-       | Int n ->
-           pr "  int %s;\n" n
+        function
+        | String n
+        | OptString n
+        | FileIn n
+        | FileOut n ->
+            pr "  const char *%s;\n" n
+        | StringList n ->
+            pr "  int %s_len;\n" n;
+            pr "  const char **%s;\n" n
+        | Bool n
+        | Int n ->
+            pr "  int %s;\n" n
       ) (snd style);
 
       let needs_i =
       ) (snd style);
 
       let needs_i =
-       (match fst style with
-        | RStringList _ | RStructList _ -> true
-        | RErr | RBool _ | RInt _ | RInt64 _ | RConstString _
-        | RConstOptString _
-        | RString _ | RBufferOut _ | RStruct _ | RHashtable _ -> false) ||
-         List.exists (function StringList _ -> true | _ -> false) (snd style) in
+        (match fst style with
+         | RStringList _ | RStructList _ -> true
+         | RErr | RBool _ | RInt _ | RInt64 _ | RConstString _
+         | RConstOptString _
+         | RString _ | RBufferOut _ | RStruct _ | RHashtable _ -> false) ||
+          List.exists (function StringList _ -> true | _ -> false) (snd style) in
       if needs_i then
       if needs_i then
-       pr "  int i;\n";
+        pr "  int i;\n";
 
       pr "\n";
 
       (* Get the parameters. *)
       List.iter (
 
       pr "\n";
 
       (* Get the parameters. *)
       List.iter (
-       function
-       | String n
-       | FileIn n
-       | FileOut n ->
-           pr "  %s = (*env)->GetStringUTFChars (env, j%s, NULL);\n" n n
-       | OptString n ->
-           (* This is completely undocumented, but Java null becomes
-            * a NULL parameter.
-            *)
-           pr "  %s = j%s ? (*env)->GetStringUTFChars (env, j%s, NULL) : NULL;\n" n n n
-       | StringList n ->
-           pr "  %s_len = (*env)->GetArrayLength (env, j%s);\n" n n;
-           pr "  %s = guestfs_safe_malloc (g, sizeof (char *) * (%s_len+1));\n" n n;
-           pr "  for (i = 0; i < %s_len; ++i) {\n" n;
-           pr "    jobject o = (*env)->GetObjectArrayElement (env, j%s, i);\n"
-             n;
-           pr "    %s[i] = (*env)->GetStringUTFChars (env, o, NULL);\n" n;
-           pr "  }\n";
-           pr "  %s[%s_len] = NULL;\n" n n;
-       | Bool n
-       | Int n ->
-           pr "  %s = j%s;\n" n n
+        function
+        | String n
+        | FileIn n
+        | FileOut n ->
+            pr "  %s = (*env)->GetStringUTFChars (env, j%s, NULL);\n" n n
+        | OptString n ->
+            (* This is completely undocumented, but Java null becomes
+             * a NULL parameter.
+             *)
+            pr "  %s = j%s ? (*env)->GetStringUTFChars (env, j%s, NULL) : NULL;\n" n n n
+        | StringList n ->
+            pr "  %s_len = (*env)->GetArrayLength (env, j%s);\n" n n;
+            pr "  %s = guestfs_safe_malloc (g, sizeof (char *) * (%s_len+1));\n" n n;
+            pr "  for (i = 0; i < %s_len; ++i) {\n" n;
+            pr "    jobject o = (*env)->GetObjectArrayElement (env, j%s, i);\n"
+              n;
+            pr "    %s[i] = (*env)->GetStringUTFChars (env, o, NULL);\n" n;
+            pr "  }\n";
+            pr "  %s[%s_len] = NULL;\n" n n;
+        | Bool n
+        | Int n ->
+            pr "  %s = j%s;\n" n n
       ) (snd style);
 
       (* Make the call. *)
       ) (snd style);
 
       (* Make the call. *)
@@ -8330,23 +8330,23 @@ Java_com_redhat_et_libguestfs_GuestFS__1close
 
       (* Release the parameters. *)
       List.iter (
 
       (* Release the parameters. *)
       List.iter (
-       function
-       | String n
-       | FileIn n
-       | FileOut n ->
-           pr "  (*env)->ReleaseStringUTFChars (env, j%s, %s);\n" n n
-       | OptString n ->
-           pr "  if (j%s)\n" n;
-           pr "    (*env)->ReleaseStringUTFChars (env, j%s, %s);\n" n n
-       | StringList n ->
-           pr "  for (i = 0; i < %s_len; ++i) {\n" n;
-           pr "    jobject o = (*env)->GetObjectArrayElement (env, j%s, i);\n"
-             n;
-           pr "    (*env)->ReleaseStringUTFChars (env, o, %s[i]);\n" n;
-           pr "  }\n";
-           pr "  free (%s);\n" n
-       | Bool n
-       | Int n -> ()
+        function
+        | String n
+        | FileIn n
+        | FileOut n ->
+            pr "  (*env)->ReleaseStringUTFChars (env, j%s, %s);\n" n n
+        | OptString n ->
+            pr "  if (j%s)\n" n;
+            pr "    (*env)->ReleaseStringUTFChars (env, j%s, %s);\n" n n
+        | StringList n ->
+            pr "  for (i = 0; i < %s_len; ++i) {\n" n;
+            pr "    jobject o = (*env)->GetObjectArrayElement (env, j%s, i);\n"
+              n;
+            pr "    (*env)->ReleaseStringUTFChars (env, o, %s[i]);\n" n;
+            pr "  }\n";
+            pr "  free (%s);\n" n
+        | Bool n
+        | Int n -> ()
       ) (snd style);
 
       (* Check for errors. *)
       ) (snd style);
 
       (* Check for errors. *)
@@ -8363,39 +8363,39 @@ Java_com_redhat_et_libguestfs_GuestFS__1close
        | RInt64 _ -> pr "  return (jlong) r;\n"
        | RConstString _ -> pr "  return (*env)->NewStringUTF (env, r);\n"
        | RConstOptString _ ->
        | RInt64 _ -> pr "  return (jlong) r;\n"
        | RConstString _ -> pr "  return (*env)->NewStringUTF (env, r);\n"
        | RConstOptString _ ->
-          pr "  return (*env)->NewStringUTF (env, r); /* XXX r NULL? */\n"
+           pr "  return (*env)->NewStringUTF (env, r); /* XXX r NULL? */\n"
        | RString _ ->
        | RString _ ->
-          pr "  jr = (*env)->NewStringUTF (env, r);\n";
-          pr "  free (r);\n";
-          pr "  return jr;\n"
+           pr "  jr = (*env)->NewStringUTF (env, r);\n";
+           pr "  free (r);\n";
+           pr "  return jr;\n"
        | RStringList _ ->
        | RStringList _ ->
-          pr "  for (r_len = 0; r[r_len] != NULL; ++r_len) ;\n";
-          pr "  cl = (*env)->FindClass (env, \"java/lang/String\");\n";
-          pr "  jstr = (*env)->NewStringUTF (env, \"\");\n";
-          pr "  jr = (*env)->NewObjectArray (env, r_len, cl, jstr);\n";
-          pr "  for (i = 0; i < r_len; ++i) {\n";
-          pr "    jstr = (*env)->NewStringUTF (env, r[i]);\n";
-          pr "    (*env)->SetObjectArrayElement (env, jr, i, jstr);\n";
-          pr "    free (r[i]);\n";
-          pr "  }\n";
-          pr "  free (r);\n";
-          pr "  return jr;\n"
+           pr "  for (r_len = 0; r[r_len] != NULL; ++r_len) ;\n";
+           pr "  cl = (*env)->FindClass (env, \"java/lang/String\");\n";
+           pr "  jstr = (*env)->NewStringUTF (env, \"\");\n";
+           pr "  jr = (*env)->NewObjectArray (env, r_len, cl, jstr);\n";
+           pr "  for (i = 0; i < r_len; ++i) {\n";
+           pr "    jstr = (*env)->NewStringUTF (env, r[i]);\n";
+           pr "    (*env)->SetObjectArrayElement (env, jr, i, jstr);\n";
+           pr "    free (r[i]);\n";
+           pr "  }\n";
+           pr "  free (r);\n";
+           pr "  return jr;\n"
        | RStruct (_, typ) ->
        | RStruct (_, typ) ->
-          let jtyp = java_name_of_struct typ in
-          let cols = cols_of_struct typ in
-          generate_java_struct_return typ jtyp cols
+           let jtyp = java_name_of_struct typ in
+           let cols = cols_of_struct typ in
+           generate_java_struct_return typ jtyp cols
        | RStructList (_, typ) ->
        | RStructList (_, typ) ->
-          let jtyp = java_name_of_struct typ in
-          let cols = cols_of_struct typ in
-          generate_java_struct_list_return typ jtyp cols
+           let jtyp = java_name_of_struct typ in
+           let cols = cols_of_struct typ in
+           generate_java_struct_list_return typ jtyp cols
        | RHashtable _ ->
        | RHashtable _ ->
-          (* XXX *)
-          pr "  throw_exception (env, \"%s: internal error: please let us know how to make a Java HashMap from JNI bindings!\");\n" name;
-          pr "  return NULL;\n"
+           (* XXX *)
+           pr "  throw_exception (env, \"%s: internal error: please let us know how to make a Java HashMap from JNI bindings!\");\n" name;
+           pr "  return NULL;\n"
        | RBufferOut _ ->
        | RBufferOut _ ->
-          pr "  jr = (*env)->NewStringUTF (env, r); /* XXX size */\n";
-          pr "  free (r);\n";
-          pr "  return jr;\n"
+           pr "  jr = (*env)->NewStringUTF (env, r); /* XXX size */\n";
+           pr "  free (r);\n";
+           pr "  return jr;\n"
       );
 
       pr "}\n";
       );
 
       pr "}\n";
@@ -8408,37 +8408,37 @@ and generate_java_struct_return typ jtyp cols =
   List.iter (
     function
     | name, FString ->
   List.iter (
     function
     | name, FString ->
-       pr "  fl = (*env)->GetFieldID (env, cl, \"%s\", \"Ljava/lang/String;\");\n" name;
-       pr "  (*env)->SetObjectField (env, jr, fl, (*env)->NewStringUTF (env, r->%s));\n" name;
+        pr "  fl = (*env)->GetFieldID (env, cl, \"%s\", \"Ljava/lang/String;\");\n" name;
+        pr "  (*env)->SetObjectField (env, jr, fl, (*env)->NewStringUTF (env, r->%s));\n" name;
     | name, FUUID ->
     | name, FUUID ->
-       pr "  {\n";
-       pr "    char s[33];\n";
-       pr "    memcpy (s, r->%s, 32);\n" name;
-       pr "    s[32] = 0;\n";
-       pr "    fl = (*env)->GetFieldID (env, cl, \"%s\", \"Ljava/lang/String;\");\n" name;
-       pr "    (*env)->SetObjectField (env, jr, fl, (*env)->NewStringUTF (env, s));\n";
-       pr "  }\n";
+        pr "  {\n";
+        pr "    char s[33];\n";
+        pr "    memcpy (s, r->%s, 32);\n" name;
+        pr "    s[32] = 0;\n";
+        pr "    fl = (*env)->GetFieldID (env, cl, \"%s\", \"Ljava/lang/String;\");\n" name;
+        pr "    (*env)->SetObjectField (env, jr, fl, (*env)->NewStringUTF (env, s));\n";
+        pr "  }\n";
     | name, FBuffer ->
     | name, FBuffer ->
-       pr "  {\n";
-       pr "    int len = r->%s_len;\n" name;
-       pr "    char s[len+1];\n";
-       pr "    memcpy (s, r->%s, len);\n" name;
-       pr "    s[len] = 0;\n";
-       pr "    fl = (*env)->GetFieldID (env, cl, \"%s\", \"Ljava/lang/String;\");\n" name;
-       pr "    (*env)->SetObjectField (env, jr, fl, (*env)->NewStringUTF (env, s));\n";
-       pr "  }\n";
+        pr "  {\n";
+        pr "    int len = r->%s_len;\n" name;
+        pr "    char s[len+1];\n";
+        pr "    memcpy (s, r->%s, len);\n" name;
+        pr "    s[len] = 0;\n";
+        pr "    fl = (*env)->GetFieldID (env, cl, \"%s\", \"Ljava/lang/String;\");\n" name;
+        pr "    (*env)->SetObjectField (env, jr, fl, (*env)->NewStringUTF (env, s));\n";
+        pr "  }\n";
     | name, (FBytes|FUInt64|FInt64) ->
     | name, (FBytes|FUInt64|FInt64) ->
-       pr "  fl = (*env)->GetFieldID (env, cl, \"%s\", \"J\");\n" name;
-       pr "  (*env)->SetLongField (env, jr, fl, r->%s);\n" name;
+        pr "  fl = (*env)->GetFieldID (env, cl, \"%s\", \"J\");\n" name;
+        pr "  (*env)->SetLongField (env, jr, fl, r->%s);\n" name;
     | name, (FUInt32|FInt32) ->
     | name, (FUInt32|FInt32) ->
-       pr "  fl = (*env)->GetFieldID (env, cl, \"%s\", \"I\");\n" name;
-       pr "  (*env)->SetLongField (env, jr, fl, r->%s);\n" name;
+        pr "  fl = (*env)->GetFieldID (env, cl, \"%s\", \"I\");\n" name;
+        pr "  (*env)->SetLongField (env, jr, fl, r->%s);\n" name;
     | name, FOptPercent ->
     | name, FOptPercent ->
-       pr "  fl = (*env)->GetFieldID (env, cl, \"%s\", \"F\");\n" name;
-       pr "  (*env)->SetFloatField (env, jr, fl, r->%s);\n" name;
+        pr "  fl = (*env)->GetFieldID (env, cl, \"%s\", \"F\");\n" name;
+        pr "  (*env)->SetFloatField (env, jr, fl, r->%s);\n" name;
     | name, FChar ->
     | name, FChar ->
-       pr "  fl = (*env)->GetFieldID (env, cl, \"%s\", \"C\");\n" name;
-       pr "  (*env)->SetLongField (env, jr, fl, r->%s);\n" name;
+        pr "  fl = (*env)->GetFieldID (env, cl, \"%s\", \"C\");\n" name;
+        pr "  (*env)->SetLongField (env, jr, fl, r->%s);\n" name;
   ) cols;
   pr "  free (r);\n";
   pr "  return jr;\n"
   ) cols;
   pr "  free (r);\n";
   pr "  return jr;\n"
@@ -8451,37 +8451,37 @@ and generate_java_struct_list_return typ jtyp cols =
   List.iter (
     function
     | name, FString ->
   List.iter (
     function
     | name, FString ->
-       pr "    fl = (*env)->GetFieldID (env, cl, \"%s\", \"Ljava/lang/String;\");\n" name;
-       pr "    (*env)->SetObjectField (env, jfl, fl, (*env)->NewStringUTF (env, r->val[i].%s));\n" name;
+        pr "    fl = (*env)->GetFieldID (env, cl, \"%s\", \"Ljava/lang/String;\");\n" name;
+        pr "    (*env)->SetObjectField (env, jfl, fl, (*env)->NewStringUTF (env, r->val[i].%s));\n" name;
     | name, FUUID ->
     | name, FUUID ->
-       pr "    {\n";
-       pr "      char s[33];\n";
-       pr "      memcpy (s, r->val[i].%s, 32);\n" name;
-       pr "      s[32] = 0;\n";
-       pr "      fl = (*env)->GetFieldID (env, cl, \"%s\", \"Ljava/lang/String;\");\n" name;
-       pr "      (*env)->SetObjectField (env, jfl, fl, (*env)->NewStringUTF (env, s));\n";
-       pr "    }\n";
+        pr "    {\n";
+        pr "      char s[33];\n";
+        pr "      memcpy (s, r->val[i].%s, 32);\n" name;
+        pr "      s[32] = 0;\n";
+        pr "      fl = (*env)->GetFieldID (env, cl, \"%s\", \"Ljava/lang/String;\");\n" name;
+        pr "      (*env)->SetObjectField (env, jfl, fl, (*env)->NewStringUTF (env, s));\n";
+        pr "    }\n";
     | name, FBuffer ->
     | name, FBuffer ->
-       pr "    {\n";
-       pr "      int len = r->val[i].%s_len;\n" name;
-       pr "      char s[len+1];\n";
-       pr "      memcpy (s, r->val[i].%s, len);\n" name;
-       pr "      s[len] = 0;\n";
-       pr "      fl = (*env)->GetFieldID (env, cl, \"%s\", \"Ljava/lang/String;\");\n" name;
-       pr "      (*env)->SetObjectField (env, jfl, fl, (*env)->NewStringUTF (env, s));\n";
-       pr "    }\n";
+        pr "    {\n";
+        pr "      int len = r->val[i].%s_len;\n" name;
+        pr "      char s[len+1];\n";
+        pr "      memcpy (s, r->val[i].%s, len);\n" name;
+        pr "      s[len] = 0;\n";
+        pr "      fl = (*env)->GetFieldID (env, cl, \"%s\", \"Ljava/lang/String;\");\n" name;
+        pr "      (*env)->SetObjectField (env, jfl, fl, (*env)->NewStringUTF (env, s));\n";
+        pr "    }\n";
     | name, (FBytes|FUInt64|FInt64) ->
     | name, (FBytes|FUInt64|FInt64) ->
-       pr "    fl = (*env)->GetFieldID (env, cl, \"%s\", \"J\");\n" name;
-       pr "    (*env)->SetLongField (env, jfl, fl, r->val[i].%s);\n" name;
+        pr "    fl = (*env)->GetFieldID (env, cl, \"%s\", \"J\");\n" name;
+        pr "    (*env)->SetLongField (env, jfl, fl, r->val[i].%s);\n" name;
     | name, (FUInt32|FInt32) ->
     | name, (FUInt32|FInt32) ->
-       pr "    fl = (*env)->GetFieldID (env, cl, \"%s\", \"I\");\n" name;
-       pr "    (*env)->SetLongField (env, jfl, fl, r->val[i].%s);\n" name;
+        pr "    fl = (*env)->GetFieldID (env, cl, \"%s\", \"I\");\n" name;
+        pr "    (*env)->SetLongField (env, jfl, fl, r->val[i].%s);\n" name;
     | name, FOptPercent ->
     | name, FOptPercent ->
-       pr "    fl = (*env)->GetFieldID (env, cl, \"%s\", \"F\");\n" name;
-       pr "    (*env)->SetFloatField (env, jfl, fl, r->val[i].%s);\n" name;
+        pr "    fl = (*env)->GetFieldID (env, cl, \"%s\", \"F\");\n" name;
+        pr "    (*env)->SetFloatField (env, jfl, fl, r->val[i].%s);\n" name;
     | name, FChar ->
     | name, FChar ->
-       pr "    fl = (*env)->GetFieldID (env, cl, \"%s\", \"C\");\n" name;
-       pr "    (*env)->SetLongField (env, jfl, fl, r->val[i].%s);\n" name;
+        pr "    fl = (*env)->GetFieldID (env, cl, \"%s\", \"C\");\n" name;
+        pr "    (*env)->SetLongField (env, jfl, fl, r->val[i].%s);\n" name;
   ) cols;
   pr "    (*env)->SetObjectArrayElement (env, jfl, i, jfl);\n";
   pr "  }\n";
   ) cols;
   pr "    (*env)->SetObjectArrayElement (env, jfl, i, jfl);\n";
   pr "  }\n";
@@ -8579,71 +8579,71 @@ last_error h = do
   List.iter (
     fun (name, style, _, _, _, _, _) ->
       if can_generate style then (
   List.iter (
     fun (name, style, _, _, _, _, _) ->
       if can_generate style then (
-       pr "foreign import ccall unsafe \"guestfs_%s\" c_%s\n" name name;
-       pr "  :: ";
-       generate_haskell_prototype ~handle:"GuestfsP" style;
-       pr "\n";
-       pr "\n";
-       pr "%s :: " name;
-       generate_haskell_prototype ~handle:"GuestfsH" ~hs:true style;
-       pr "\n";
-       pr "%s %s = do\n" name
-         (String.concat " " ("h" :: List.map name_of_argt (snd style)));
-       pr "  r <- ";
-       (* Convert pointer arguments using with* functions. *)
-       List.iter (
-         function
-         | FileIn n
-         | FileOut n
-         | String n -> pr "withCString %s $ \\%s -> " n n
-         | OptString n -> pr "maybeWith withCString %s $ \\%s -> " n n
-         | StringList n -> pr "withMany withCString %s $ \\%s -> withArray0 nullPtr %s $ \\%s -> " n n n n
-         | Bool _ | Int _ -> ()
-       ) (snd style);
-       (* Convert integer arguments. *)
-       let args =
-         List.map (
-           function
-           | Bool n -> sprintf "(fromBool %s)" n
-           | Int n -> sprintf "(fromIntegral %s)" n
-           | FileIn n | FileOut n | String n | OptString n | StringList n -> n
-         ) (snd style) in
-       pr "withForeignPtr h (\\p -> c_%s %s)\n" name
-         (String.concat " " ("p" :: args));
-       (match fst style with
-        | RErr | RInt _ | RInt64 _ | RBool _ ->
-            pr "  if (r == -1)\n";
-            pr "    then do\n";
-            pr "      err <- last_error h\n";
-            pr "      fail err\n";
-        | RConstString _ | RConstOptString _ | RString _
-        | RStringList _ | RStruct _
-        | RStructList _ | RHashtable _ | RBufferOut _ ->
-            pr "  if (r == nullPtr)\n";
-            pr "    then do\n";
-            pr "      err <- last_error h\n";
-            pr "      fail err\n";
-       );
-       (match fst style with
-        | RErr ->
-            pr "    else return ()\n"
-        | RInt _ ->
-            pr "    else return (fromIntegral r)\n"
-        | RInt64 _ ->
-            pr "    else return (fromIntegral r)\n"
-        | RBool _ ->
-            pr "    else return (toBool r)\n"
-        | RConstString _
-        | RConstOptString _
-        | RString _
-        | RStringList _
-        | RStruct _
-        | RStructList _
-        | RHashtable _
-        | RBufferOut _ ->
-            pr "    else return ()\n" (* XXXXXXXXXXXXXXXXXXXX *)
-       );
-       pr "\n";
+        pr "foreign import ccall unsafe \"guestfs_%s\" c_%s\n" name name;
+        pr "  :: ";
+        generate_haskell_prototype ~handle:"GuestfsP" style;
+        pr "\n";
+        pr "\n";
+        pr "%s :: " name;
+        generate_haskell_prototype ~handle:"GuestfsH" ~hs:true style;
+        pr "\n";
+        pr "%s %s = do\n" name
+          (String.concat " " ("h" :: List.map name_of_argt (snd style)));
+        pr "  r <- ";
+        (* Convert pointer arguments using with* functions. *)
+        List.iter (
+          function
+          | FileIn n
+          | FileOut n
+          | String n -> pr "withCString %s $ \\%s -> " n n
+          | OptString n -> pr "maybeWith withCString %s $ \\%s -> " n n
+          | StringList n -> pr "withMany withCString %s $ \\%s -> withArray0 nullPtr %s $ \\%s -> " n n n n
+          | Bool _ | Int _ -> ()
+        ) (snd style);
+        (* Convert integer arguments. *)
+        let args =
+          List.map (
+            function
+            | Bool n -> sprintf "(fromBool %s)" n
+            | Int n -> sprintf "(fromIntegral %s)" n
+            | FileIn n | FileOut n | String n | OptString n | StringList n -> n
+          ) (snd style) in
+        pr "withForeignPtr h (\\p -> c_%s %s)\n" name
+          (String.concat " " ("p" :: args));
+        (match fst style with
+         | RErr | RInt _ | RInt64 _ | RBool _ ->
+             pr "  if (r == -1)\n";
+             pr "    then do\n";
+             pr "      err <- last_error h\n";
+             pr "      fail err\n";
+         | RConstString _ | RConstOptString _ | RString _
+         | RStringList _ | RStruct _
+         | RStructList _ | RHashtable _ | RBufferOut _ ->
+             pr "  if (r == nullPtr)\n";
+             pr "    then do\n";
+             pr "      err <- last_error h\n";
+             pr "      fail err\n";
+        );
+        (match fst style with
+         | RErr ->
+             pr "    else return ()\n"
+         | RInt _ ->
+             pr "    else return (fromIntegral r)\n"
+         | RInt64 _ ->
+             pr "    else return (fromIntegral r)\n"
+         | RBool _ ->
+             pr "    else return (toBool r)\n"
+         | RConstString _
+         | RConstOptString _
+         | RString _
+         | RStringList _
+         | RStruct _
+         | RStructList _
+         | RHashtable _
+         | RBufferOut _ ->
+             pr "    else return ()\n" (* XXXXXXXXXXXXXXXXXXXX *)
+        );
+        pr "\n";
       )
   ) all_functions
 
       )
   ) all_functions
 
@@ -8748,89 +8748,89 @@ print_strings (char * const* const argv)
   List.iter (
     fun (name, style, _, _, _, _, _) ->
       if String.sub name (String.length name - 3) 3 <> "err" then (
   List.iter (
     fun (name, style, _, _, _, _, _) ->
       if String.sub name (String.length name - 3) 3 <> "err" then (
-       pr "/* Test normal return. */\n";
-       generate_prototype ~extern:false ~semicolon:false ~newline:true
-         ~handle:"g" ~prefix:"guestfs_" name style;
-       pr "{\n";
-       (match fst style with
-        | RErr ->
-            pr "  return 0;\n"
-        | RInt _ ->
-            pr "  int r;\n";
-            pr "  sscanf (val, \"%%d\", &r);\n";
-            pr "  return r;\n"
-        | RInt64 _ ->
-            pr "  int64_t r;\n";
-            pr "  sscanf (val, \"%%\" SCNi64, &r);\n";
-            pr "  return r;\n"
-        | RBool _ ->
-            pr "  return strcmp (val, \"true\") == 0;\n"
-        | RConstString _
-        | RConstOptString _ ->
-            (* Can't return the input string here.  Return a static
-             * string so we ensure we get a segfault if the caller
-             * tries to free it.
-             *)
-            pr "  return \"static string\";\n"
-        | RString _ ->
-            pr "  return strdup (val);\n"
-        | RStringList _ ->
-            pr "  char **strs;\n";
-            pr "  int n, i;\n";
-            pr "  sscanf (val, \"%%d\", &n);\n";
-            pr "  strs = safe_malloc (g, (n+1) * sizeof (char *));\n";
-            pr "  for (i = 0; i < n; ++i) {\n";
-            pr "    strs[i] = safe_malloc (g, 16);\n";
-            pr "    snprintf (strs[i], 16, \"%%d\", i);\n";
-            pr "  }\n";
-            pr "  strs[n] = NULL;\n";
-            pr "  return strs;\n"
-        | RStruct (_, typ) ->
-            pr "  struct guestfs_%s *r;\n" typ;
-            pr "  r = safe_calloc (g, sizeof *r, 1);\n";
-            pr "  return r;\n"
-        | RStructList (_, typ) ->
-            pr "  struct guestfs_%s_list *r;\n" typ;
-            pr "  r = safe_calloc (g, sizeof *r, 1);\n";
-            pr "  sscanf (val, \"%%d\", &r->len);\n";
-            pr "  r->val = safe_calloc (g, r->len, sizeof *r->val);\n";
-            pr "  return r;\n"
-        | RHashtable _ ->
-            pr "  char **strs;\n";
-            pr "  int n, i;\n";
-            pr "  sscanf (val, \"%%d\", &n);\n";
-            pr "  strs = safe_malloc (g, (n*2+1) * sizeof (*strs));\n";
-            pr "  for (i = 0; i < n; ++i) {\n";
-            pr "    strs[i*2] = safe_malloc (g, 16);\n";
-            pr "    strs[i*2+1] = safe_malloc (g, 16);\n";
-            pr "    snprintf (strs[i*2], 16, \"%%d\", i);\n";
-            pr "    snprintf (strs[i*2+1], 16, \"%%d\", i);\n";
-            pr "  }\n";
-            pr "  strs[n*2] = NULL;\n";
-            pr "  return strs;\n"
-        | RBufferOut _ ->
-            pr "  return strdup (val);\n"
-       );
-       pr "}\n";
-       pr "\n"
+        pr "/* Test normal return. */\n";
+        generate_prototype ~extern:false ~semicolon:false ~newline:true
+          ~handle:"g" ~prefix:"guestfs_" name style;
+        pr "{\n";
+        (match fst style with
+         | RErr ->
+             pr "  return 0;\n"
+         | RInt _ ->
+             pr "  int r;\n";
+             pr "  sscanf (val, \"%%d\", &r);\n";
+             pr "  return r;\n"
+         | RInt64 _ ->
+             pr "  int64_t r;\n";
+             pr "  sscanf (val, \"%%\" SCNi64, &r);\n";
+             pr "  return r;\n"
+         | RBool _ ->
+             pr "  return strcmp (val, \"true\") == 0;\n"
+         | RConstString _
+         | RConstOptString _ ->
+             (* Can't return the input string here.  Return a static
+              * string so we ensure we get a segfault if the caller
+              * tries to free it.
+              *)
+             pr "  return \"static string\";\n"
+         | RString _ ->
+             pr "  return strdup (val);\n"
+         | RStringList _ ->
+             pr "  char **strs;\n";
+             pr "  int n, i;\n";
+             pr "  sscanf (val, \"%%d\", &n);\n";
+             pr "  strs = safe_malloc (g, (n+1) * sizeof (char *));\n";
+             pr "  for (i = 0; i < n; ++i) {\n";
+             pr "    strs[i] = safe_malloc (g, 16);\n";
+             pr "    snprintf (strs[i], 16, \"%%d\", i);\n";
+             pr "  }\n";
+             pr "  strs[n] = NULL;\n";
+             pr "  return strs;\n"
+         | RStruct (_, typ) ->
+             pr "  struct guestfs_%s *r;\n" typ;
+             pr "  r = safe_calloc (g, sizeof *r, 1);\n";
+             pr "  return r;\n"
+         | RStructList (_, typ) ->
+             pr "  struct guestfs_%s_list *r;\n" typ;
+             pr "  r = safe_calloc (g, sizeof *r, 1);\n";
+             pr "  sscanf (val, \"%%d\", &r->len);\n";
+             pr "  r->val = safe_calloc (g, r->len, sizeof *r->val);\n";
+             pr "  return r;\n"
+         | RHashtable _ ->
+             pr "  char **strs;\n";
+             pr "  int n, i;\n";
+             pr "  sscanf (val, \"%%d\", &n);\n";
+             pr "  strs = safe_malloc (g, (n*2+1) * sizeof (*strs));\n";
+             pr "  for (i = 0; i < n; ++i) {\n";
+             pr "    strs[i*2] = safe_malloc (g, 16);\n";
+             pr "    strs[i*2+1] = safe_malloc (g, 16);\n";
+             pr "    snprintf (strs[i*2], 16, \"%%d\", i);\n";
+             pr "    snprintf (strs[i*2+1], 16, \"%%d\", i);\n";
+             pr "  }\n";
+             pr "  strs[n*2] = NULL;\n";
+             pr "  return strs;\n"
+         | RBufferOut _ ->
+             pr "  return strdup (val);\n"
+        );
+        pr "}\n";
+        pr "\n"
       ) else (
       ) else (
-       pr "/* Test error return. */\n";
-       generate_prototype ~extern:false ~semicolon:false ~newline:true
-         ~handle:"g" ~prefix:"guestfs_" name style;
-       pr "{\n";
-       pr "  error (g, \"error\");\n";
-       (match fst style with
-        | RErr | RInt _ | RInt64 _ | RBool _ ->
-            pr "  return -1;\n"
-        | RConstString _ | RConstOptString _
-        | RString _ | RStringList _ | RStruct _
-        | RStructList _
-        | RHashtable _
-        | RBufferOut _ ->
-            pr "  return NULL;\n"
-       );
-       pr "}\n";
-       pr "\n"
+        pr "/* Test error return. */\n";
+        generate_prototype ~extern:false ~semicolon:false ~newline:true
+          ~handle:"g" ~prefix:"guestfs_" name style;
+        pr "{\n";
+        pr "  error (g, \"error\");\n";
+        (match fst style with
+         | RErr | RInt _ | RInt64 _ | RBool _ ->
+             pr "  return -1;\n"
+         | RConstString _ | RConstOptString _
+         | RString _ | RStringList _ | RStruct _
+         | RStructList _
+         | RHashtable _
+         | RBufferOut _ ->
+             pr "  return NULL;\n"
+        );
+        pr "}\n";
+        pr "\n"
       )
   ) tests
 
       )
   ) tests
 
@@ -8845,15 +8845,15 @@ let () =
   let mkargs args =
     String.concat " " (
       List.map (
   let mkargs args =
     String.concat " " (
       List.map (
-       function
-       | CallString s -> "\"" ^ s ^ "\""
-       | CallOptString None -> "None"
-       | CallOptString (Some s) -> sprintf "(Some \"%s\")" s
-       | CallStringList xs ->
-           "[|" ^ String.concat ";" (List.map (sprintf "\"%s\"") xs) ^ "|]"
-       | CallInt i when i >= 0 -> string_of_int i
-       | CallInt i (* when i < 0 *) -> "(" ^ string_of_int i ^ ")"
-       | CallBool b -> string_of_bool b
+        function
+        | CallString s -> "\"" ^ s ^ "\""
+        | CallOptString None -> "None"
+        | CallOptString (Some s) -> sprintf "(Some \"%s\")" s
+        | CallStringList xs ->
+            "[|" ^ String.concat ";" (List.map (sprintf "\"%s\"") xs) ^ "|]"
+        | CallInt i when i >= 0 -> string_of_int i
+        | CallInt i (* when i < 0 *) -> "(" ^ string_of_int i ^ ")"
+        | CallBool b -> string_of_bool b
       ) args
     )
   in
       ) args
     )
   in
@@ -8879,14 +8879,14 @@ my $g = Sys::Guestfs->new ();
   let mkargs args =
     String.concat ", " (
       List.map (
   let mkargs args =
     String.concat ", " (
       List.map (
-       function
-       | CallString s -> "\"" ^ s ^ "\""
-       | CallOptString None -> "undef"
-       | CallOptString (Some s) -> sprintf "\"%s\"" s
-       | CallStringList xs ->
-           "[" ^ String.concat "," (List.map (sprintf "\"%s\"") xs) ^ "]"
-       | CallInt i -> string_of_int i
-       | CallBool b -> if b then "1" else "0"
+        function
+        | CallString s -> "\"" ^ s ^ "\""
+        | CallOptString None -> "undef"
+        | CallOptString (Some s) -> sprintf "\"%s\"" s
+        | CallStringList xs ->
+            "[" ^ String.concat "," (List.map (sprintf "\"%s\"") xs) ^ "]"
+        | CallInt i -> string_of_int i
+        | CallBool b -> if b then "1" else "0"
       ) args
     )
   in
       ) args
     )
   in
@@ -8909,14 +8909,14 @@ g = guestfs.GuestFS ()
   let mkargs args =
     String.concat ", " (
       List.map (
   let mkargs args =
     String.concat ", " (
       List.map (
-       function
-       | CallString s -> "\"" ^ s ^ "\""
-       | CallOptString None -> "None"
-       | CallOptString (Some s) -> sprintf "\"%s\"" s
-       | CallStringList xs ->
-           "[" ^ String.concat "," (List.map (sprintf "\"%s\"") xs) ^ "]"
-       | CallInt i -> string_of_int i
-       | CallBool b -> if b then "1" else "0"
+        function
+        | CallString s -> "\"" ^ s ^ "\""
+        | CallOptString None -> "None"
+        | CallOptString (Some s) -> sprintf "\"%s\"" s
+        | CallStringList xs ->
+            "[" ^ String.concat "," (List.map (sprintf "\"%s\"") xs) ^ "]"
+        | CallInt i -> string_of_int i
+        | CallBool b -> if b then "1" else "0"
       ) args
     )
   in
       ) args
     )
   in
@@ -8939,14 +8939,14 @@ g = Guestfs::create()
   let mkargs args =
     String.concat ", " (
       List.map (
   let mkargs args =
     String.concat ", " (
       List.map (
-       function
-       | CallString s -> "\"" ^ s ^ "\""
-       | CallOptString None -> "nil"
-       | CallOptString (Some s) -> sprintf "\"%s\"" s
-       | CallStringList xs ->
-           "[" ^ String.concat "," (List.map (sprintf "\"%s\"") xs) ^ "]"
-       | CallInt i -> string_of_int i
-       | CallBool b -> string_of_bool b
+        function
+        | CallString s -> "\"" ^ s ^ "\""
+        | CallOptString None -> "nil"
+        | CallOptString (Some s) -> sprintf "\"%s\"" s
+        | CallStringList xs ->
+            "[" ^ String.concat "," (List.map (sprintf "\"%s\"") xs) ^ "]"
+        | CallInt i -> string_of_int i
+        | CallBool b -> string_of_bool b
       ) args
     )
   in
       ) args
     )
   in
@@ -8973,15 +8973,15 @@ public class Bindtests {
   let mkargs args =
     String.concat ", " (
       List.map (
   let mkargs args =
     String.concat ", " (
       List.map (
-       function
-       | CallString s -> "\"" ^ s ^ "\""
-       | CallOptString None -> "null"
-       | CallOptString (Some s) -> sprintf "\"%s\"" s
-       | CallStringList xs ->
-           "new String[]{" ^
-             String.concat "," (List.map (sprintf "\"%s\"") xs) ^ "}"
-       | CallInt i -> string_of_int i
-       | CallBool b -> string_of_bool b
+        function
+        | CallString s -> "\"" ^ s ^ "\""
+        | CallOptString None -> "null"
+        | CallOptString (Some s) -> sprintf "\"%s\"" s
+        | CallStringList xs ->
+            "new String[]{" ^
+              String.concat "," (List.map (sprintf "\"%s\"") xs) ^ "}"
+        | CallInt i -> string_of_int i
+        | CallBool b -> string_of_bool b
       ) args
     )
   in
       ) args
     )
   in
@@ -9015,16 +9015,16 @@ main = do
   let mkargs args =
     String.concat " " (
       List.map (
   let mkargs args =
     String.concat " " (
       List.map (
-       function
-       | CallString s -> "\"" ^ s ^ "\""
-       | CallOptString None -> "Nothing"
-       | CallOptString (Some s) -> sprintf "(Just \"%s\")" s
-       | CallStringList xs ->
-           "[" ^ String.concat "," (List.map (sprintf "\"%s\"") xs) ^ "]"
-       | CallInt i when i < 0 -> "(" ^ string_of_int i ^ ")"
-       | CallInt i -> string_of_int i
-       | CallBool true -> "True"
-       | CallBool false -> "False"
+        function
+        | CallString s -> "\"" ^ s ^ "\""
+        | CallOptString None -> "Nothing"
+        | CallOptString (Some s) -> sprintf "(Just \"%s\")" s
+        | CallStringList xs ->
+            "[" ^ String.concat "," (List.map (sprintf "\"%s\"") xs) ^ "]"
+        | CallInt i when i < 0 -> "(" ^ string_of_int i ^ ")"
+        | CallInt i -> string_of_int i
+        | CallBool true -> "True"
+        | CallBool false -> "False"
       ) args
     )
   in
       ) args
     )
   in
@@ -9040,44 +9040,44 @@ main = do
  *)
 and generate_lang_bindtests call =
   call "test0" [CallString "abc"; CallOptString (Some "def");
  *)
 and generate_lang_bindtests call =
   call "test0" [CallString "abc"; CallOptString (Some "def");
-               CallStringList []; CallBool false;
-               CallInt 0; CallString "123"; CallString "456"];
+                CallStringList []; CallBool false;
+                CallInt 0; CallString "123"; CallString "456"];
   call "test0" [CallString "abc"; CallOptString None;
   call "test0" [CallString "abc"; CallOptString None;
-               CallStringList []; CallBool false;
-               CallInt 0; CallString "123"; CallString "456"];
+                CallStringList []; CallBool false;
+                CallInt 0; CallString "123"; CallString "456"];
   call "test0" [CallString ""; CallOptString (Some "def");
   call "test0" [CallString ""; CallOptString (Some "def");
-               CallStringList []; CallBool false;
-               CallInt 0; CallString "123"; CallString "456"];
+                CallStringList []; CallBool false;
+                CallInt 0; CallString "123"; CallString "456"];
   call "test0" [CallString ""; CallOptString (Some "");
   call "test0" [CallString ""; CallOptString (Some "");
-               CallStringList []; CallBool false;
-               CallInt 0; CallString "123"; CallString "456"];
+                CallStringList []; CallBool false;
+                CallInt 0; CallString "123"; CallString "456"];
   call "test0" [CallString "abc"; CallOptString (Some "def");
   call "test0" [CallString "abc"; CallOptString (Some "def");
-               CallStringList ["1"]; CallBool false;
-               CallInt 0; CallString "123"; CallString "456"];
+                CallStringList ["1"]; CallBool false;
+                CallInt 0; CallString "123"; CallString "456"];
   call "test0" [CallString "abc"; CallOptString (Some "def");
   call "test0" [CallString "abc"; CallOptString (Some "def");
-               CallStringList ["1"; "2"]; CallBool false;
-               CallInt 0; CallString "123"; CallString "456"];
+                CallStringList ["1"; "2"]; CallBool false;
+                CallInt 0; CallString "123"; CallString "456"];
   call "test0" [CallString "abc"; CallOptString (Some "def");
   call "test0" [CallString "abc"; CallOptString (Some "def");
-               CallStringList ["1"]; CallBool true;
-               CallInt 0; CallString "123"; CallString "456"];
+                CallStringList ["1"]; CallBool true;
+                CallInt 0; CallString "123"; CallString "456"];
   call "test0" [CallString "abc"; CallOptString (Some "def");
   call "test0" [CallString "abc"; CallOptString (Some "def");
-               CallStringList ["1"]; CallBool false;
-               CallInt (-1); CallString "123"; CallString "456"];
+                CallStringList ["1"]; CallBool false;
+                CallInt (-1); CallString "123"; CallString "456"];
   call "test0" [CallString "abc"; CallOptString (Some "def");
   call "test0" [CallString "abc"; CallOptString (Some "def");
-               CallStringList ["1"]; CallBool false;
-               CallInt (-2); CallString "123"; CallString "456"];
+                CallStringList ["1"]; CallBool false;
+                CallInt (-2); CallString "123"; CallString "456"];
   call "test0" [CallString "abc"; CallOptString (Some "def");
   call "test0" [CallString "abc"; CallOptString (Some "def");
-               CallStringList ["1"]; CallBool false;
-               CallInt 1; CallString "123"; CallString "456"];
+                CallStringList ["1"]; CallBool false;
+                CallInt 1; CallString "123"; CallString "456"];
   call "test0" [CallString "abc"; CallOptString (Some "def");
   call "test0" [CallString "abc"; CallOptString (Some "def");
-               CallStringList ["1"]; CallBool false;
-               CallInt 2; CallString "123"; CallString "456"];
+                CallStringList ["1"]; CallBool false;
+                CallInt 2; CallString "123"; CallString "456"];
   call "test0" [CallString "abc"; CallOptString (Some "def");
   call "test0" [CallString "abc"; CallOptString (Some "def");
-               CallStringList ["1"]; CallBool false;
-               CallInt 4095; CallString "123"; CallString "456"];
+                CallStringList ["1"]; CallBool false;
+                CallInt 4095; CallString "123"; CallString "456"];
   call "test0" [CallString "abc"; CallOptString (Some "def");
   call "test0" [CallString "abc"; CallOptString (Some "def");
-               CallStringList ["1"]; CallBool false;
-               CallInt 0; CallString ""; CallString ""]
+                CallStringList ["1"]; CallBool false;
+                CallInt 0; CallString ""; CallString ""]
 
 (* XXX Add here tests of the return and error functions. *)
 
 
 (* XXX Add here tests of the return and error functions. *)
 
index 209921e..93f32e5 100644 (file)
@@ -132,8 +132,8 @@ inline
 #endif
 static const char *
 pgettext_aux (const char *domain,
 #endif
 static const char *
 pgettext_aux (const char *domain,
-             const char *msg_ctxt_id, const char *msgid,
-             int category)
+              const char *msg_ctxt_id, const char *msgid,
+              int category)
 {
   const char *translation = dcgettext (domain, msg_ctxt_id, category);
   if (translation == msg_ctxt_id)
 {
   const char *translation = dcgettext (domain, msg_ctxt_id, category);
   if (translation == msg_ctxt_id)
@@ -151,9 +151,9 @@ inline
 #endif
 static const char *
 npgettext_aux (const char *domain,
 #endif
 static const char *
 npgettext_aux (const char *domain,
-              const char *msg_ctxt_id, const char *msgid,
-              const char *msgid_plural, unsigned long int n,
-              int category)
+               const char *msg_ctxt_id, const char *msgid,
+               const char *msgid_plural, unsigned long int n,
+               int category)
 {
   const char *translation =
     dcngettext (domain, msg_ctxt_id, msgid_plural, n, category);
 {
   const char *translation =
     dcngettext (domain, msg_ctxt_id, msgid_plural, n, category);
@@ -191,8 +191,8 @@ inline
 #endif
 static const char *
 dcpgettext_expr (const char *domain,
 #endif
 static const char *
 dcpgettext_expr (const char *domain,
-                const char *msgctxt, const char *msgid,
-                int category)
+                 const char *msgctxt, const char *msgid,
+                 int category)
 {
   size_t msgctxt_len = strlen (msgctxt) + 1;
   size_t msgid_len = strlen (msgid) + 1;
 {
   size_t msgctxt_len = strlen (msgctxt) + 1;
   size_t msgid_len = strlen (msgid) + 1;
@@ -214,10 +214,10 @@ dcpgettext_expr (const char *domain,
       translation = dcgettext (domain, msg_ctxt_id, category);
 #if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
       if (msg_ctxt_id != buf)
       translation = dcgettext (domain, msg_ctxt_id, category);
 #if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
       if (msg_ctxt_id != buf)
-       free (msg_ctxt_id);
+        free (msg_ctxt_id);
 #endif
       if (translation != msg_ctxt_id)
 #endif
       if (translation != msg_ctxt_id)
-       return translation;
+        return translation;
     }
   return msgid;
 }
     }
   return msgid;
 }
@@ -236,9 +236,9 @@ inline
 #endif
 static const char *
 dcnpgettext_expr (const char *domain,
 #endif
 static const char *
 dcnpgettext_expr (const char *domain,
-                 const char *msgctxt, const char *msgid,
-                 const char *msgid_plural, unsigned long int n,
-                 int category)
+                  const char *msgctxt, const char *msgid,
+                  const char *msgid_plural, unsigned long int n,
+                  int category)
 {
   size_t msgctxt_len = strlen (msgctxt) + 1;
   size_t msgid_len = strlen (msgid) + 1;
 {
   size_t msgctxt_len = strlen (msgctxt) + 1;
   size_t msgid_len = strlen (msgid) + 1;
@@ -260,10 +260,10 @@ dcnpgettext_expr (const char *domain,
       translation = dcngettext (domain, msg_ctxt_id, msgid_plural, n, category);
 #if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
       if (msg_ctxt_id != buf)
       translation = dcngettext (domain, msg_ctxt_id, msgid_plural, n, category);
 #if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
       if (msg_ctxt_id != buf)
-       free (msg_ctxt_id);
+        free (msg_ctxt_id);
 #endif
       if (!(translation == msg_ctxt_id || translation == msgid_plural))
 #endif
       if (!(translation == msg_ctxt_id || translation == msgid_plural))
-       return translation;
+        return translation;
     }
   return (n == 1 ? msgid : msgid_plural);
 }
     }
   return (n == 1 ? msgid : msgid_plural);
 }
index 40e702e..64c327b 100644 (file)
@@ -562,7 +562,7 @@ xread (int fd, void *buf, size_t len)
     r = read (fd, buf, len);
     if (r == -1) {
       if (errno == EINTR || errno == EAGAIN)
     r = read (fd, buf, len);
     if (r == -1) {
       if (errno == EINTR || errno == EAGAIN)
-       continue;
+        continue;
       return -1;
     }
 
       return -1;
     }
 
@@ -743,7 +743,7 @@ add_cmdline (guestfs_h *g, const char *str)
 
 int
 guestfs_config (guestfs_h *g,
 
 int
 guestfs_config (guestfs_h *g,
-               const char *qemu_param, const char *qemu_value)
+                const char *qemu_param, const char *qemu_value)
 {
   if (qemu_param[0] != '-') {
     error (g, _("guestfs_config: parameter must begin with '-' character"));
 {
   if (qemu_param[0] != '-') {
     error (g, _("guestfs_config: parameter must begin with '-' character"));
@@ -932,27 +932,27 @@ guestfs_launch (guestfs_h *g)
     /* Empty element of "." means cwd. */
     if (len == 0 || (len == 1 && *pelem == '.')) {
       if (g->verbose)
     /* Empty element of "." means cwd. */
     if (len == 0 || (len == 1 && *pelem == '.')) {
       if (g->verbose)
-       fprintf (stderr,
-                "looking for supermin appliance in current directory\n");
+        fprintf (stderr,
+                 "looking for supermin appliance in current directory\n");
       if (dir_contains_files (".",
       if (dir_contains_files (".",
-                             supermin_name, supermin_hostfiles_name,
-                             "kmod.whitelist", NULL)) {
-       if (build_supermin_appliance (g, ".", &kernel, &initrd) == -1)
-         return -1;
-       break;
+                              supermin_name, supermin_hostfiles_name,
+                              "kmod.whitelist", NULL)) {
+        if (build_supermin_appliance (g, ".", &kernel, &initrd) == -1)
+          return -1;
+        break;
       }
     }
     /* Look at <path>/supermin* etc. */
     else {
       if (g->verbose)
       }
     }
     /* Look at <path>/supermin* etc. */
     else {
       if (g->verbose)
-       fprintf (stderr, "looking for supermin appliance in %s\n", pelem);
+        fprintf (stderr, "looking for supermin appliance in %s\n", pelem);
 
       if (dir_contains_files (pelem,
 
       if (dir_contains_files (pelem,
-                             supermin_name, supermin_hostfiles_name,
-                             "kmod.whitelist", NULL)) {
-       if (build_supermin_appliance (g, pelem, &kernel, &initrd) == -1)
-         return -1;
-       break;
+                              supermin_name, supermin_hostfiles_name,
+                              "kmod.whitelist", NULL)) {
+        if (build_supermin_appliance (g, pelem, &kernel, &initrd) == -1)
+          return -1;
+        break;
       }
     }
 
       }
     }
 
@@ -972,27 +972,27 @@ guestfs_launch (guestfs_h *g)
 
       /* Empty element or "." means cwd. */
       if (len == 0 || (len == 1 && *pelem == '.')) {
 
       /* Empty element or "." means cwd. */
       if (len == 0 || (len == 1 && *pelem == '.')) {
-       if (g->verbose)
-         fprintf (stderr,
-                  "looking for appliance in current directory\n");
-       if (dir_contains_files (".", kernel_name, initrd_name, NULL)) {
-         kernel = safe_strdup (g, kernel_name);
-         initrd = safe_strdup (g, initrd_name);
-         break;
-       }
+        if (g->verbose)
+          fprintf (stderr,
+                   "looking for appliance in current directory\n");
+        if (dir_contains_files (".", kernel_name, initrd_name, NULL)) {
+          kernel = safe_strdup (g, kernel_name);
+          initrd = safe_strdup (g, initrd_name);
+          break;
+        }
       }
       /* Look at <path>/kernel etc. */
       else {
       }
       /* Look at <path>/kernel etc. */
       else {
-       if (g->verbose)
-         fprintf (stderr, "looking for appliance in %s\n", pelem);
-
-       if (dir_contains_files (pelem, kernel_name, initrd_name, NULL)) {
-         kernel = safe_malloc (g, len + strlen (kernel_name) + 2);
-         initrd = safe_malloc (g, len + strlen (initrd_name) + 2);
-         sprintf (kernel, "%s/%s", pelem, kernel_name);
-         sprintf (initrd, "%s/%s", pelem, initrd_name);
-         break;
-       }
+        if (g->verbose)
+          fprintf (stderr, "looking for appliance in %s\n", pelem);
+
+        if (dir_contains_files (pelem, kernel_name, initrd_name, NULL)) {
+          kernel = safe_malloc (g, len + strlen (kernel_name) + 2);
+          initrd = safe_malloc (g, len + strlen (initrd_name) + 2);
+          sprintf (kernel, "%s/%s", pelem, kernel_name);
+          sprintf (initrd, "%s/%s", pelem, initrd_name);
+          break;
+        }
       }
 
       pelem = pend + 1;
       }
 
       pelem = pend + 1;
@@ -1003,7 +1003,7 @@ guestfs_launch (guestfs_h *g)
 
   if (kernel == NULL || initrd == NULL) {
     error (g, _("cannot find %s or %s on LIBGUESTFS_PATH (current path = %s)"),
 
   if (kernel == NULL || initrd == NULL) {
     error (g, _("cannot find %s or %s on LIBGUESTFS_PATH (current path = %s)"),
-          kernel_name, initrd_name, g->path);
+           kernel_name, initrd_name, g->path);
     goto cleanup0;
   }
 
     goto cleanup0;
   }
 
@@ -1051,10 +1051,10 @@ guestfs_launch (guestfs_h *g)
 
     /* Linux kernel command line. */
     snprintf (append, sizeof append,
 
     /* Linux kernel command line. */
     snprintf (append, sizeof append,
-             LINUX_CMDLINE "guestfs=%s:%d%s%s%s",
-             VMCHANNEL_ADDR, VMCHANNEL_PORT,
-             g->verbose ? " guestfs_verbose=1" : "",
-             g->append ? " " : "", g->append ? g->append : "");
+              LINUX_CMDLINE "guestfs=%s:%d%s%s%s",
+              VMCHANNEL_ADDR, VMCHANNEL_PORT,
+              g->verbose ? " guestfs_verbose=1" : "",
+              g->append ? " " : "", g->append ? g->append : "");
 
     snprintf (memsize_str, sizeof memsize_str, "%d", g->memsize);
 
 
     snprintf (memsize_str, sizeof memsize_str, "%d", g->memsize);
 
@@ -1081,8 +1081,8 @@ guestfs_launch (guestfs_h *g)
        * http://git.savannah.gnu.org/cgit/qemu.git/commit/?id=c92ef6a22d3c71538fcc48fb61ad353f7ba03b62
        */
       snprintf (vmchannel, sizeof vmchannel,
        * http://git.savannah.gnu.org/cgit/qemu.git/commit/?id=c92ef6a22d3c71538fcc48fb61ad353f7ba03b62
        */
       snprintf (vmchannel, sizeof vmchannel,
-               "user,vlan=0,guestfwd=tcp:%s:%d-unix:%s,server,nowait",
-               VMCHANNEL_ADDR, VMCHANNEL_PORT, unixsock);
+                "user,vlan=0,guestfwd=tcp:%s:%d-unix:%s,server,nowait",
+                VMCHANNEL_ADDR, VMCHANNEL_PORT, unixsock);
 
       add_cmdline (g, "-net");
       add_cmdline (g, vmchannel);
 
       add_cmdline (g, "-net");
       add_cmdline (g, vmchannel);
@@ -1092,8 +1092,8 @@ guestfs_launch (guestfs_h *g)
        * syntax, or if not then we'll get a quick failure.
        */
       snprintf (vmchannel, sizeof vmchannel,
        * syntax, or if not then we'll get a quick failure.
        */
       snprintf (vmchannel, sizeof vmchannel,
-               "channel,%d:unix:%s,server,nowait",
-               VMCHANNEL_PORT, unixsock);
+                "channel,%d:unix:%s,server,nowait",
+                VMCHANNEL_PORT, unixsock);
 
       add_cmdline (g, "-net");
       add_cmdline (g, vmchannel);
 
       add_cmdline (g, "-net");
       add_cmdline (g, vmchannel);
@@ -1119,7 +1119,7 @@ guestfs_launch (guestfs_h *g)
     if (g->verbose) {
       fprintf (stderr, "%s", g->qemu);
       for (i = 0; g->cmdline[i]; ++i)
     if (g->verbose) {
       fprintf (stderr, "%s", g->qemu);
       for (i = 0; g->cmdline[i]; ++i)
-       fprintf (stderr, " %s", g->cmdline[i]);
+        fprintf (stderr, " %s", g->cmdline[i]);
       fprintf (stderr, "\n");
     }
 
       fprintf (stderr, "\n");
     }
 
@@ -1172,11 +1172,11 @@ guestfs_launch (guestfs_h *g)
      */
     for (;;) {
       if (kill (qemu_pid, 0) == -1) /* qemu's gone away, we aren't needed */
      */
     for (;;) {
       if (kill (qemu_pid, 0) == -1) /* qemu's gone away, we aren't needed */
-       _exit (0);
+        _exit (0);
       if (kill (parent_pid, 0) == -1) {
       if (kill (parent_pid, 0) == -1) {
-       /* Parent's gone away, qemu still around, so kill qemu. */
-       kill (qemu_pid, 9);
-       _exit (0);
+        /* Parent's gone away, qemu still around, so kill qemu. */
+        kill (qemu_pid, 9);
+        _exit (0);
       }
       sleep (2);
     }
       }
       sleep (2);
     }
@@ -1257,8 +1257,8 @@ guestfs_launch (guestfs_h *g)
 
   g->stdout_watch =
     g->main_loop->add_handle (g->main_loop, g, g->fd[1],
 
   g->stdout_watch =
     g->main_loop->add_handle (g->main_loop, g, g->fd[1],
-                             GUESTFS_HANDLE_READABLE,
-                             stdout_event, NULL);
+                              GUESTFS_HANDLE_READABLE,
+                              stdout_event, NULL);
   if (g->stdout_watch == -1) {
     error (g, _("could not watch qemu stdout"));
     goto cleanup3;
   if (g->stdout_watch == -1) {
     error (g, _("could not watch qemu stdout"));
     goto cleanup3;
@@ -1309,7 +1309,7 @@ guestfs_launch (guestfs_h *g)
  */
 static int
 build_supermin_appliance (guestfs_h *g, const char *path,
  */
 static int
 build_supermin_appliance (guestfs_h *g, const char *path,
-                         char **kernel, char **initrd)
+                          char **kernel, char **initrd)
 {
   char cmd[4096];
   int r, len;
 {
   char cmd[4096];
   int r, len;
@@ -1321,10 +1321,10 @@ build_supermin_appliance (guestfs_h *g, const char *path,
   snprintf (*initrd, len+8, "%s/initrd", g->tmpdir);
 
   snprintf (cmd, sizeof cmd,
   snprintf (*initrd, len+8, "%s/initrd", g->tmpdir);
 
   snprintf (cmd, sizeof cmd,
-           "PATH='%s':$PATH "
-           "libguestfs-supermin-helper '%s' %s %s",
-           path,
-           path, *kernel, *initrd);
+            "PATH='%s':$PATH "
+            "libguestfs-supermin-helper '%s' %s %s",
+            path,
+            path, *kernel, *initrd);
 
   r = system (cmd);
   if (r == -1 || WEXITSTATUS(r) != 0) {
 
   r = system (cmd);
   if (r == -1 || WEXITSTATUS(r) != 0) {
@@ -1528,7 +1528,7 @@ guestfs_set_ready (guestfs_h *g)
 {
   if (g->state != BUSY) {
     error (g, _("guestfs_set_ready: called when in state %d != BUSY"),
 {
   if (g->state != BUSY) {
     error (g, _("guestfs_set_ready: called when in state %d != BUSY"),
-          g->state);
+           g->state);
     return -1;
   }
   g->state = READY;
     return -1;
   }
   g->state = READY;
@@ -1540,7 +1540,7 @@ guestfs_set_busy (guestfs_h *g)
 {
   if (g->state != READY) {
     error (g, _("guestfs_set_busy: called when in state %d != READY"),
 {
   if (g->state != READY) {
     error (g, _("guestfs_set_busy: called when in state %d != READY"),
-          g->state);
+           g->state);
     return -1;
   }
   g->state = BUSY;
     return -1;
   }
   g->state = BUSY;
@@ -1605,7 +1605,7 @@ child_cleanup (guestfs_h *g)
  */
 static void
 stdout_event (struct guestfs_main_loop *ml, guestfs_h *g, void *data,
  */
 static void
 stdout_event (struct guestfs_main_loop *ml, guestfs_h *g, void *data,
-             int watch, int fd, int events)
+              int watch, int fd, int events)
 {
   char buf[4096];
   int n;
 {
   char buf[4096];
   int n;
@@ -1613,8 +1613,8 @@ stdout_event (struct guestfs_main_loop *ml, guestfs_h *g, void *data,
 #if 0
   if (g->verbose)
     fprintf (stderr,
 #if 0
   if (g->verbose)
     fprintf (stderr,
-            "stdout_event: %p g->state = %d, fd = %d, events = 0x%x\n",
-            g, g->state, fd, events);
+             "stdout_event: %p g->state = %d, fd = %d, events = 0x%x\n",
+             g, g->state, fd, events);
 #endif
 
   if (g->fd[1] != fd) {
 #endif
 
   if (g->fd[1] != fd) {
@@ -1649,7 +1649,7 @@ stdout_event (struct guestfs_main_loop *ml, guestfs_h *g, void *data,
  */
 static void
 sock_read_event (struct guestfs_main_loop *ml, guestfs_h *g, void *data,
  */
 static void
 sock_read_event (struct guestfs_main_loop *ml, guestfs_h *g, void *data,
-                int watch, int fd, int events)
+                 int watch, int fd, int events)
 {
   XDR xdr;
   u_int32_t len;
 {
   XDR xdr;
   u_int32_t len;
@@ -1657,8 +1657,8 @@ sock_read_event (struct guestfs_main_loop *ml, guestfs_h *g, void *data,
 
   if (g->verbose)
     fprintf (stderr,
 
   if (g->verbose)
     fprintf (stderr,
-            "sock_read_event: %p g->state = %d, fd = %d, events = 0x%x\n",
-            g, g->state, fd, events);
+             "sock_read_event: %p g->state = %d, fd = %d, events = 0x%x\n",
+             g, g->state, fd, events);
 
   if (g->sock != fd) {
     error (g, _("sock_read_event: internal error: %d != %d"), g->sock, fd);
 
   if (g->sock != fd) {
     error (g, _("sock_read_event: internal error: %d != %d"), g->sock, fd);
@@ -1670,7 +1670,7 @@ sock_read_event (struct guestfs_main_loop *ml, guestfs_h *g, void *data,
     g->msg_in = safe_realloc (g, g->msg_in, g->msg_in_allocated);
   }
   n = read (g->sock, g->msg_in + g->msg_in_size,
     g->msg_in = safe_realloc (g, g->msg_in, g->msg_in_allocated);
   }
   n = read (g->sock, g->msg_in + g->msg_in_size,
-           g->msg_in_allocated - g->msg_in_size);
+            g->msg_in_allocated - g->msg_in_size);
   if (n == 0) {
     /* Disconnected. */
     child_cleanup (g);
   if (n == 0) {
     /* Disconnected. */
     child_cleanup (g);
@@ -1702,14 +1702,14 @@ sock_read_event (struct guestfs_main_loop *ml, guestfs_h *g, void *data,
   if (len == GUESTFS_LAUNCH_FLAG) {
     if (g->state != LAUNCHING)
       error (g, _("received magic signature from guestfsd, but in state %d"),
   if (len == GUESTFS_LAUNCH_FLAG) {
     if (g->state != LAUNCHING)
       error (g, _("received magic signature from guestfsd, but in state %d"),
-            g->state);
+             g->state);
     else if (g->msg_in_size != 4)
       error (g, _("received magic signature from guestfsd, but msg size is %d"),
     else if (g->msg_in_size != 4)
       error (g, _("received magic signature from guestfsd, but msg size is %d"),
-            g->msg_in_size);
+             g->msg_in_size);
     else {
       g->state = READY;
       if (g->launch_done_cb)
     else {
       g->state = READY;
       if (g->launch_done_cb)
-       g->launch_done_cb (g, g->launch_done_cb_data);
+        g->launch_done_cb (g, g->launch_done_cb_data);
     }
 
     goto cleanup;
     }
 
     goto cleanup;
@@ -1730,7 +1730,7 @@ sock_read_event (struct guestfs_main_loop *ml, guestfs_h *g, void *data,
    */
   if (len > GUESTFS_MESSAGE_MAX) {
     error (g, _("message length (%u) > maximum possible size (%d)"),
    */
   if (len > GUESTFS_MESSAGE_MAX) {
     error (g, _("message length (%u) > maximum possible size (%d)"),
-          len, GUESTFS_MESSAGE_MAX);
+           len, GUESTFS_MESSAGE_MAX);
     goto cleanup;
   }
 
     goto cleanup;
   }
 
@@ -1744,17 +1744,17 @@ sock_read_event (struct guestfs_main_loop *ml, guestfs_h *g, void *data,
     for (i = 0; i < g->msg_in_size; i += 16) {
       printf ("%04x: ", i);
       for (j = i; j < MIN (i+16, g->msg_in_size); ++j)
     for (i = 0; i < g->msg_in_size; i += 16) {
       printf ("%04x: ", i);
       for (j = i; j < MIN (i+16, g->msg_in_size); ++j)
-       printf ("%02x ", (unsigned char) g->msg_in[j]);
+        printf ("%02x ", (unsigned char) g->msg_in[j]);
       for (; j < i+16; ++j)
       for (; j < i+16; ++j)
-       printf ("   ");
+        printf ("   ");
       printf ("|");
       for (j = i; j < MIN (i+16, g->msg_in_size); ++j)
       printf ("|");
       for (j = i; j < MIN (i+16, g->msg_in_size); ++j)
-       if (isprint (g->msg_in[j]))
-         printf ("%c", g->msg_in[j]);
-       else
-         printf (".");
+        if (isprint (g->msg_in[j]))
+          printf ("%c", g->msg_in[j]);
+        else
+          printf (".");
       for (; j < i+16; ++j)
       for (; j < i+16; ++j)
-       printf (" ");
+        printf (" ");
       printf ("|\n");
     }
   }
       printf ("|\n");
     }
   }
@@ -1792,14 +1792,14 @@ sock_read_event (struct guestfs_main_loop *ml, guestfs_h *g, void *data,
  */
 static void
 sock_write_event (struct guestfs_main_loop *ml, guestfs_h *g, void *data,
  */
 static void
 sock_write_event (struct guestfs_main_loop *ml, guestfs_h *g, void *data,
-                 int watch, int fd, int events)
+                  int watch, int fd, int events)
 {
   int n, err;
 
   if (g->verbose)
     fprintf (stderr,
 {
   int n, err;
 
   if (g->verbose)
     fprintf (stderr,
-            "sock_write_event: %p g->state = %d, fd = %d, events = 0x%x\n",
-            g, g->state, fd, events);
+             "sock_write_event: %p g->state = %d, fd = %d, events = 0x%x\n",
+             g, g->state, fd, events);
 
   if (g->sock != fd) {
     error (g, _("sock_write_event: internal error: %d != %d"), g->sock, fd);
 
   if (g->sock != fd) {
     error (g, _("sock_write_event: internal error: %d != %d"), g->sock, fd);
@@ -1813,10 +1813,10 @@ sock_write_event (struct guestfs_main_loop *ml, guestfs_h *g, void *data,
 
   if (g->verbose)
     fprintf (stderr, "sock_write_event: writing %d bytes ...\n",
 
   if (g->verbose)
     fprintf (stderr, "sock_write_event: writing %d bytes ...\n",
-            g->msg_out_size - g->msg_out_pos);
+             g->msg_out_size - g->msg_out_pos);
 
   n = write (g->sock, g->msg_out + g->msg_out_pos,
 
   n = write (g->sock, g->msg_out + g->msg_out_pos,
-            g->msg_out_size - g->msg_out_pos);
+             g->msg_out_size - g->msg_out_pos);
   if (n == -1) {
     err = errno;
     if (err != EAGAIN)
   if (n == -1) {
     err = errno;
     if (err != EAGAIN)
@@ -1849,7 +1849,7 @@ sock_write_event (struct guestfs_main_loop *ml, guestfs_h *g, void *data,
 
 void
 guestfs_set_send_callback (guestfs_h *g,
 
 void
 guestfs_set_send_callback (guestfs_h *g,
-                          guestfs_send_cb cb, void *opaque)
+                           guestfs_send_cb cb, void *opaque)
 {
   g->send_cb = cb;
   g->send_cb_data = opaque;
 {
   g->send_cb = cb;
   g->send_cb_data = opaque;
@@ -1857,7 +1857,7 @@ guestfs_set_send_callback (guestfs_h *g,
 
 void
 guestfs_set_reply_callback (guestfs_h *g,
 
 void
 guestfs_set_reply_callback (guestfs_h *g,
-                           guestfs_reply_cb cb, void *opaque)
+                            guestfs_reply_cb cb, void *opaque)
 {
   g->reply_cb = cb;
   g->reply_cb_data = opaque;
 {
   g->reply_cb = cb;
   g->reply_cb_data = opaque;
@@ -1865,7 +1865,7 @@ guestfs_set_reply_callback (guestfs_h *g,
 
 void
 guestfs_set_log_message_callback (guestfs_h *g,
 
 void
 guestfs_set_log_message_callback (guestfs_h *g,
-                                 guestfs_log_message_cb cb, void *opaque)
+                                  guestfs_log_message_cb cb, void *opaque)
 {
   g->log_message_cb = cb;
   g->log_message_cb_data = opaque;
 {
   g->log_message_cb = cb;
   g->log_message_cb_data = opaque;
@@ -1873,7 +1873,7 @@ guestfs_set_log_message_callback (guestfs_h *g,
 
 void
 guestfs_set_subprocess_quit_callback (guestfs_h *g,
 
 void
 guestfs_set_subprocess_quit_callback (guestfs_h *g,
-                                     guestfs_subprocess_quit_cb cb, void *opaque)
+                                      guestfs_subprocess_quit_cb cb, void *opaque)
 {
   g->subprocess_quit_cb = cb;
   g->subprocess_quit_cb_data = opaque;
 {
   g->subprocess_quit_cb = cb;
   g->subprocess_quit_cb_data = opaque;
@@ -1881,7 +1881,7 @@ guestfs_set_subprocess_quit_callback (guestfs_h *g,
 
 void
 guestfs_set_launch_done_callback (guestfs_h *g,
 
 void
 guestfs_set_launch_done_callback (guestfs_h *g,
-                                 guestfs_launch_done_cb cb, void *opaque)
+                                  guestfs_launch_done_cb cb, void *opaque)
 {
   g->launch_done_cb = cb;
   g->launch_done_cb_data = opaque;
 {
   g->launch_done_cb = cb;
   g->launch_done_cb_data = opaque;
@@ -1922,8 +1922,8 @@ guestfs__switch_to_sending (guestfs_h *g)
 
   g->sock_watch =
     g->main_loop->add_handle (g->main_loop, g, g->sock,
 
   g->sock_watch =
     g->main_loop->add_handle (g->main_loop, g, g->sock,
-                             GUESTFS_HANDLE_WRITABLE,
-                             sock_write_event, NULL);
+                              GUESTFS_HANDLE_WRITABLE,
+                              sock_write_event, NULL);
   if (g->sock_watch == -1) {
     error (g, _("add_handle failed"));
     return -1;
   if (g->sock_watch == -1) {
     error (g, _("add_handle failed"));
     return -1;
@@ -1945,8 +1945,8 @@ guestfs__switch_to_receiving (guestfs_h *g)
 
   g->sock_watch =
     g->main_loop->add_handle (g->main_loop, g, g->sock,
 
   g->sock_watch =
     g->main_loop->add_handle (g->main_loop, g, g->sock,
-                             GUESTFS_HANDLE_READABLE,
-                             sock_read_event, NULL);
+                              GUESTFS_HANDLE_READABLE,
+                              sock_read_event, NULL);
   if (g->sock_watch == -1) {
     error (g, _("add_handle failed"));
     return -1;
   if (g->sock_watch == -1) {
     error (g, _("add_handle failed"));
     return -1;
@@ -1971,7 +1971,7 @@ send_cb (guestfs_h *g, void *data)
 
 int
 guestfs__send_sync (guestfs_h *g, int proc_nr,
 
 int
 guestfs__send_sync (guestfs_h *g, int proc_nr,
-                   xdrproc_t xdrp, char *args)
+                    xdrproc_t xdrp, char *args)
 {
   struct guestfs_message_header hdr;
   XDR xdr;
 {
   struct guestfs_message_header hdr;
   XDR xdr;
@@ -2096,7 +2096,7 @@ guestfs__send_file_sync (guestfs_h *g, const char *filename)
     err = send_file_data_sync (g, buf, r);
     if (err < 0) {
       if (err == -2)           /* daemon sent cancellation */
     err = send_file_data_sync (g, buf, r);
     if (err < 0) {
       if (err == -2)           /* daemon sent cancellation */
-       send_file_cancellation_sync (g);
+        send_file_cancellation_sync (g);
       return err;
     }
   }
       return err;
     }
   }
@@ -2193,7 +2193,7 @@ send_file_chunk_sync (guestfs_h *g, int cancel, const char *buf, size_t buflen)
 
   if (!xdr_guestfs_chunk (&xdr, &chunk)) {
     error (g, _("xdr_guestfs_chunk failed (buf = %p, buflen = %zu)"),
 
   if (!xdr_guestfs_chunk (&xdr, &chunk)) {
     error (g, _("xdr_guestfs_chunk failed (buf = %p, buflen = %zu)"),
-          buf, buflen);
+           buf, buflen);
     xdr_destroy (&xdr);
     goto cleanup1;
   }
     xdr_destroy (&xdr);
     goto cleanup1;
   }
@@ -2269,7 +2269,7 @@ check_for_daemon_cancellation (guestfs_h *g)
 
   if (flag != GUESTFS_CANCEL_FLAG) {
     error (g, _("check_for_daemon_cancellation: read 0x%x from daemon, expected 0x%x\n"),
 
   if (flag != GUESTFS_CANCEL_FLAG) {
     error (g, _("check_for_daemon_cancellation: read 0x%x from daemon, expected 0x%x\n"),
-          flag, GUESTFS_CANCEL_FLAG);
+           flag, GUESTFS_CANCEL_FLAG);
     return 0;
   }
 
     return 0;
   }
 
@@ -2327,7 +2327,7 @@ guestfs__receive_file_sync (guestfs_h *g, const char *filename)
 
   if (g->verbose)
     fprintf (stderr, "%s: waiting for daemon to acknowledge cancellation\n",
 
   if (g->verbose)
     fprintf (stderr, "%s: waiting for daemon to acknowledge cancellation\n",
-            __func__);
+             __func__);
 
   xdrmem_create (&xdr, fbuf, sizeof fbuf, XDR_ENCODE);
   xdr_uint32_t (&xdr, &flag);
 
   xdrmem_create (&xdr, fbuf, sizeof fbuf, XDR_ENCODE);
   xdr_uint32_t (&xdr, &flag);
@@ -2350,8 +2350,8 @@ guestfs__receive_file_sync (guestfs_h *g, const char *filename)
  */
 struct receive_file_ctx {
   int count;                   /* 0 if receive_file_cb not called, or
  */
 struct receive_file_ctx {
   int count;                   /* 0 if receive_file_cb not called, or
-                                * else count number of chunks.
-                                */
+                                 * else count number of chunks.
+                                 */
   guestfs_chunk *chunks;       /* Array of chunks. */
 };
 
   guestfs_chunk *chunks;       /* Array of chunks. */
 };
 
@@ -2390,7 +2390,7 @@ receive_file_cb (guestfs_h *g, void *data, XDR *xdr)
 
   /* Copy the chunk to the list. */
   ctx->chunks = safe_realloc (g, ctx->chunks,
 
   /* Copy the chunk to the list. */
   ctx->chunks = safe_realloc (g, ctx->chunks,
-                             sizeof (guestfs_chunk) * (ctx->count+1));
+                              sizeof (guestfs_chunk) * (ctx->count+1));
   ctx->chunks[ctx->count] = chunk;
   ctx->count++;
 }
   ctx->chunks[ctx->count] = chunk;
   ctx->count++;
 }
@@ -2448,7 +2448,7 @@ receive_file_data_sync (guestfs_h *g, void **buf, size_t *len_r)
     if (buf) {
       *buf = safe_realloc (g, *buf, len + ctx.chunks[i].data.data_len);
       memcpy (*buf+len, ctx.chunks[i].data.data_val,
     if (buf) {
       *buf = safe_realloc (g, *buf, len + ctx.chunks[i].data.data_len);
       memcpy (*buf+len, ctx.chunks[i].data.data_val,
-             ctx.chunks[i].data.data_len);
+              ctx.chunks[i].data.data_len);
     }
     len += ctx.chunks[i].data.data_len;
   }
     }
     len += ctx.chunks[i].data.data_len;
   }
@@ -2462,7 +2462,7 @@ receive_file_data_sync (guestfs_h *g, void **buf, size_t *len_r)
 
 static int
 select_add_handle (guestfs_main_loop *mlv, guestfs_h *g, int fd, int events,
 
 static int
 select_add_handle (guestfs_main_loop *mlv, guestfs_h *g, int fd, int events,
-                  guestfs_handle_event_cb cb, void *data)
+                   guestfs_handle_event_cb cb, void *data)
 {
   struct select_main_loop *ml = (struct select_main_loop *) mlv;
 
 {
   struct select_main_loop *ml = (struct select_main_loop *) mlv;
 
@@ -2472,9 +2472,9 @@ select_add_handle (guestfs_main_loop *mlv, guestfs_h *g, int fd, int events,
   }
 
   if ((events & ~(GUESTFS_HANDLE_READABLE |
   }
 
   if ((events & ~(GUESTFS_HANDLE_READABLE |
-                 GUESTFS_HANDLE_WRITABLE |
-                 GUESTFS_HANDLE_HANGUP |
-                 GUESTFS_HANDLE_ERROR)) != 0) {
+                  GUESTFS_HANDLE_WRITABLE |
+                  GUESTFS_HANDLE_HANGUP |
+                  GUESTFS_HANDLE_ERROR)) != 0) {
     error (g, _("set of events (0x%x) contains unknown events"), events);
     return -1;
   }
     error (g, _("set of events (0x%x) contains unknown events"), events);
     return -1;
   }
@@ -2507,7 +2507,7 @@ select_add_handle (guestfs_main_loop *mlv, guestfs_h *g, int fd, int events,
     ml->max_fd = fd;
     ml->handle_cb_data =
       safe_realloc (g, ml->handle_cb_data,
     ml->max_fd = fd;
     ml->handle_cb_data =
       safe_realloc (g, ml->handle_cb_data,
-                   sizeof (struct select_handle_cb_data) * (ml->max_fd+1));
+                    sizeof (struct select_handle_cb_data) * (ml->max_fd+1));
   }
   ml->handle_cb_data[fd].cb = cb;
   ml->handle_cb_data[fd].g = g;
   }
   ml->handle_cb_data[fd].cb = cb;
   ml->handle_cb_data[fd].g = g;
@@ -2544,7 +2544,7 @@ select_remove_handle (guestfs_main_loop *mlv, guestfs_h *g, int fd)
     ml->max_fd--;
     ml->handle_cb_data =
       safe_realloc (g, ml->handle_cb_data,
     ml->max_fd--;
     ml->handle_cb_data =
       safe_realloc (g, ml->handle_cb_data,
-                   sizeof (struct select_handle_cb_data) * (ml->max_fd+1));
+                    sizeof (struct select_handle_cb_data) * (ml->max_fd+1));
   }
 
   ml->nr_fds--;
   }
 
   ml->nr_fds--;
@@ -2554,7 +2554,7 @@ select_remove_handle (guestfs_main_loop *mlv, guestfs_h *g, int fd)
 
 static int
 select_add_timeout (guestfs_main_loop *mlv, guestfs_h *g, int interval,
 
 static int
 select_add_timeout (guestfs_main_loop *mlv, guestfs_h *g, int interval,
-                   guestfs_handle_timeout_cb cb, void *data)
+                    guestfs_handle_timeout_cb cb, void *data)
 {
   //struct select_main_loop *ml = (struct select_main_loop *) mlv;
 
 {
   //struct select_main_loop *ml = (struct select_main_loop *) mlv;
 
@@ -2597,7 +2597,7 @@ select_main_loop_run (guestfs_main_loop *mlv, guestfs_h *g)
     r = select (ml->max_fd+1, &rset2, &wset2, &xset2, NULL);
     if (r == -1) {
       if (errno == EINTR || errno == EAGAIN)
     r = select (ml->max_fd+1, &rset2, &wset2, &xset2, NULL);
     if (r == -1) {
       if (errno == EINTR || errno == EAGAIN)
-       continue;
+        continue;
       perrorf (g, "select");
       ml->is_running = 0;
       return -1;
       perrorf (g, "select");
       ml->is_running = 0;
       return -1;
@@ -2606,17 +2606,17 @@ select_main_loop_run (guestfs_main_loop *mlv, guestfs_h *g)
     for (fd = 0; r > 0 && fd <= ml->max_fd; ++fd) {
       events = 0;
       if (FD_ISSET (fd, &rset2))
     for (fd = 0; r > 0 && fd <= ml->max_fd; ++fd) {
       events = 0;
       if (FD_ISSET (fd, &rset2))
-       events |= GUESTFS_HANDLE_READABLE;
+        events |= GUESTFS_HANDLE_READABLE;
       if (FD_ISSET (fd, &wset2))
       if (FD_ISSET (fd, &wset2))
-       events |= GUESTFS_HANDLE_WRITABLE;
+        events |= GUESTFS_HANDLE_WRITABLE;
       if (FD_ISSET (fd, &xset2))
       if (FD_ISSET (fd, &xset2))
-       events |= GUESTFS_HANDLE_ERROR | GUESTFS_HANDLE_HANGUP;
+        events |= GUESTFS_HANDLE_ERROR | GUESTFS_HANDLE_HANGUP;
       if (events) {
       if (events) {
-       r--;
-       ml->handle_cb_data[fd].cb ((guestfs_main_loop *) ml,
-                                  ml->handle_cb_data[fd].g,
-                                  ml->handle_cb_data[fd].data,
-                                  fd, fd, events);
+        r--;
+        ml->handle_cb_data[fd].cb ((guestfs_main_loop *) ml,
+                                   ml->handle_cb_data[fd].g,
+                                   ml->handle_cb_data[fd].data,
+                                   fd, fd, events);
       }
     }
   }
       }
     }
   }
index f37656a..3dc0328 100644 (file)
@@ -57,19 +57,19 @@ static void
 usage (void)
 {
   printf (_("libguestfs-test-tool: interactive test tool\n"
 usage (void)
 {
   printf (_("libguestfs-test-tool: interactive test tool\n"
-           "Copyright (C) 2009 Red Hat Inc.\n"
-           "Usage:\n"
-           "  libguestfs-test-tool [--options]\n"
-           "Options:\n"
-           "  --help         Display usage\n"
-           "  --helper libguestfs-test-tool-helper\n"
-           "                 Helper program (default: %s)\n"
-           "  --qemudir dir  Specify QEMU source directory\n"
-           "  --qemu qemu    Specify QEMU binary\n"
-           "  --timeout n\n"
-           "  -t n           Set launch timeout (default: %d seconds)\n"
-           ),
-         DEFAULT_HELPER, DEFAULT_TIMEOUT);
+            "Copyright (C) 2009 Red Hat Inc.\n"
+            "Usage:\n"
+            "  libguestfs-test-tool [--options]\n"
+            "Options:\n"
+            "  --help         Display usage\n"
+            "  --helper libguestfs-test-tool-helper\n"
+            "                 Helper program (default: %s)\n"
+            "  --qemudir dir  Specify QEMU source directory\n"
+            "  --qemu qemu    Specify QEMU binary\n"
+            "  --timeout n\n"
+            "  -t n           Set launch timeout (default: %d seconds)\n"
+            ),
+          DEFAULT_HELPER, DEFAULT_TIMEOUT);
 }
 
 int
 }
 
 int
@@ -101,25 +101,25 @@ main (int argc, char *argv[])
     switch (c) {
     case 0:                    /* options which are long only */
       if (strcmp (long_options[option_index].name, "helper") == 0)
     switch (c) {
     case 0:                    /* options which are long only */
       if (strcmp (long_options[option_index].name, "helper") == 0)
-       helper = optarg;
+        helper = optarg;
       else if (strcmp (long_options[option_index].name, "qemu") == 0)
       else if (strcmp (long_options[option_index].name, "qemu") == 0)
-       set_qemu (optarg, 0);
+        set_qemu (optarg, 0);
       else if (strcmp (long_options[option_index].name, "qemudir") == 0)
       else if (strcmp (long_options[option_index].name, "qemudir") == 0)
-       set_qemu (optarg, 1);
+        set_qemu (optarg, 1);
       else {
       else {
-       fprintf (stderr,
-                _("libguestfs-test-tool: unknown long option: %s (%d)\n"),
-                long_options[option_index].name, option_index);
-       exit (1);
+        fprintf (stderr,
+                 _("libguestfs-test-tool: unknown long option: %s (%d)\n"),
+                 long_options[option_index].name, option_index);
+        exit (1);
       }
       break;
 
     case 't':
       if (sscanf (optarg, "%d", &timeout) != 1 || timeout < 0) {
       }
       break;
 
     case 't':
       if (sscanf (optarg, "%d", &timeout) != 1 || timeout < 0) {
-       fprintf (stderr,
-                _("libguestfs-test-tool: invalid timeout: %s\n"),
-                optarg);
-       exit (1);
+        fprintf (stderr,
+                 _("libguestfs-test-tool: invalid timeout: %s\n"),
+                 optarg);
+        exit (1);
       }
       break;
 
       }
       break;
 
@@ -129,8 +129,8 @@ main (int argc, char *argv[])
 
     default:
       fprintf (stderr,
 
     default:
       fprintf (stderr,
-              _("libguestfs-test-tool: unexpected command line option 0x%x\n"),
-              c);
+               _("libguestfs-test-tool: unexpected command line option 0x%x\n"),
+               c);
       exit (1);
     }
   }
       exit (1);
     }
   }
@@ -152,19 +152,19 @@ main (int argc, char *argv[])
   g = guestfs_create ();
   if (g == NULL) {
     fprintf (stderr,
   g = guestfs_create ();
   if (g == NULL) {
     fprintf (stderr,
-            _("libguestfs-test-tool: failed to create libguestfs handle\n"));
+             _("libguestfs-test-tool: failed to create libguestfs handle\n"));
     exit (1);
   }
   if (guestfs_add_drive (g, tmpf) == -1) {
     fprintf (stderr,
     exit (1);
   }
   if (guestfs_add_drive (g, tmpf) == -1) {
     fprintf (stderr,
-            _("libguestfs-test-tool: failed to add drive '%s'\n"),
-            tmpf);
+             _("libguestfs-test-tool: failed to add drive '%s'\n"),
+             tmpf);
     exit (1);
   }
   if (guestfs_add_drive (g, isof) == -1) {
     fprintf (stderr,
     exit (1);
   }
   if (guestfs_add_drive (g, isof) == -1) {
     fprintf (stderr,
-            _("libguestfs-test-tool: failed to add drive '%s'\n"),
-            isof);
+             _("libguestfs-test-tool: failed to add drive '%s'\n"),
+             isof);
     exit (1);
   }
 
     exit (1);
   }
 
@@ -175,7 +175,7 @@ main (int argc, char *argv[])
     exit (1);
   }
   printf ("library version: %"PRIi64".%"PRIi64".%"PRIi64"%s\n",
     exit (1);
   }
   printf ("library version: %"PRIi64".%"PRIi64".%"PRIi64"%s\n",
-         vers->major, vers->minor, vers->release, vers->extra);
+          vers->major, vers->minor, vers->release, vers->extra);
   guestfs_free_version (vers);
 
   printf ("guestfs_get_append: %s\n", guestfs_get_append (g) ? : "(null)");
   guestfs_free_version (vers);
 
   printf ("guestfs_get_append: %s\n", guestfs_get_append (g) ? : "(null)");
@@ -188,7 +188,7 @@ main (int argc, char *argv[])
   /* Launch the guest handle. */
   if (guestfs_launch (g) == -1) {
     fprintf (stderr,
   /* Launch the guest handle. */
   if (guestfs_launch (g) == -1) {
     fprintf (stderr,
-            _("libguestfs-test-tool: failed to launch appliance\n"));
+             _("libguestfs-test-tool: failed to launch appliance\n"));
     exit (1);
   }
 
     exit (1);
   }
 
@@ -199,7 +199,7 @@ main (int argc, char *argv[])
 
   if (guestfs_wait_ready (g) == -1) {
     fprintf (stderr,
 
   if (guestfs_wait_ready (g) == -1) {
     fprintf (stderr,
-            _("libguestfs-test-tool: failed or timed out in 'wait_ready'\n"));
+             _("libguestfs-test-tool: failed or timed out in 'wait_ready'\n"));
     exit (1);
   }
 
     exit (1);
   }
 
@@ -211,31 +211,31 @@ main (int argc, char *argv[])
   /* Create the filesystem and mount everything. */
   if (guestfs_sfdiskM (g, "/dev/sda", sfdisk_lines) == -1) {
     fprintf (stderr,
   /* Create the filesystem and mount everything. */
   if (guestfs_sfdiskM (g, "/dev/sda", sfdisk_lines) == -1) {
     fprintf (stderr,
-            _("libguestfs-test-tool: failed to run sfdisk\n"));
+             _("libguestfs-test-tool: failed to run sfdisk\n"));
     exit (1);
   }
 
   if (guestfs_mkfs (g, "ext2", "/dev/sda1") == -1) {
     fprintf (stderr,
     exit (1);
   }
 
   if (guestfs_mkfs (g, "ext2", "/dev/sda1") == -1) {
     fprintf (stderr,
-            _("libguestfs-test-tool: failed to mkfs.ext2\n"));
+             _("libguestfs-test-tool: failed to mkfs.ext2\n"));
     exit (1);
   }
 
   if (guestfs_mount (g, "/dev/sda1", "/") == -1) {
     fprintf (stderr,
     exit (1);
   }
 
   if (guestfs_mount (g, "/dev/sda1", "/") == -1) {
     fprintf (stderr,
-            _("libguestfs-test-tool: failed to mount /dev/sda1 on /\n"));
+             _("libguestfs-test-tool: failed to mount /dev/sda1 on /\n"));
     exit (1);
   }
 
   if (guestfs_mkdir (g, "/iso") == -1) {
     fprintf (stderr,
     exit (1);
   }
 
   if (guestfs_mkdir (g, "/iso") == -1) {
     fprintf (stderr,
-            _("libguestfs-test-tool: failed to mkdir /iso\n"));
+             _("libguestfs-test-tool: failed to mkdir /iso\n"));
     exit (1);
   }
 
   if (guestfs_mount (g, "/dev/sdb", "/iso") == -1) {
     fprintf (stderr,
     exit (1);
   }
 
   if (guestfs_mount (g, "/dev/sdb", "/iso") == -1) {
     fprintf (stderr,
-            _("libguestfs-test-tool: failed to mount /dev/sdb on /iso\n"));
+             _("libguestfs-test-tool: failed to mount /dev/sdb on /iso\n"));
     exit (1);
   }
 
     exit (1);
   }
 
@@ -243,7 +243,7 @@ main (int argc, char *argv[])
   str = guestfs_command (g, helper_args);
   if (str == NULL) {
     fprintf (stderr,
   str = guestfs_command (g, helper_args);
   if (str == NULL) {
     fprintf (stderr,
-            _("libguestfs-test-tool: could not run helper program, or helper failed\n"));
+             _("libguestfs-test-tool: could not run helper program, or helper failed\n"));
     exit (1);
   }
   free (str);
     exit (1);
   }
   free (str);
@@ -282,8 +282,8 @@ set_qemu (const char *path, int use_wrapper)
   if (!use_wrapper) {
     if (access (path, X_OK) == -1) {
       fprintf (stderr,
   if (!use_wrapper) {
     if (access (path, X_OK) == -1) {
       fprintf (stderr,
-              _("Binary '%s' does not exist or is not executable\n"),
-              path);
+               _("Binary '%s' does not exist or is not executable\n"),
+               path);
       exit (1);
     }
 
       exit (1);
     }
 
@@ -296,8 +296,8 @@ set_qemu (const char *path, int use_wrapper)
   if (stat (buffer, &statbuf) == -1 ||
       !S_ISDIR (statbuf.st_mode)) {
     fprintf (stderr,
   if (stat (buffer, &statbuf) == -1 ||
       !S_ISDIR (statbuf.st_mode)) {
     fprintf (stderr,
-            _("%s: does not look like a qemu source directory\n"),
-            path);
+             _("%s: does not look like a qemu source directory\n"),
+             path);
     exit (1);
   }
 
     exit (1);
   }
 
@@ -312,10 +312,10 @@ set_qemu (const char *path, int use_wrapper)
 
   fp = fdopen (fd, "w");
   fprintf (fp,
 
   fp = fdopen (fd, "w");
   fprintf (fp,
-          "#!/bin/sh -\n"
-          "qemudir='%s'\n"
-          "\"$qemudir\"/",
-          path);
+           "#!/bin/sh -\n"
+           "qemudir='%s'\n"
+           "\"$qemudir\"/",
+           path);
 
   /* Select the right qemu binary for the wrapper script. */
 #ifdef __i386__
 
   /* Select the right qemu binary for the wrapper script. */
 #ifdef __i386__
@@ -349,7 +349,7 @@ preruncheck (void)
       "available.  Expected to find it in '%s'\n"
       "\n"
       "Use the --helper option to specify the location of this program.\n"),
       "available.  Expected to find it in '%s'\n"
       "\n"
       "Use the --helper option to specify the location of this program.\n"),
-            helper);
+             helper);
     exit (1);
   }
 
     exit (1);
   }
 
@@ -372,7 +372,7 @@ preruncheck (void)
     _("Test tool helper program %s\n"
       "is not statically linked.  This is a build error when this test tool\n"
       "was built.\n"),
     _("Test tool helper program %s\n"
       "is not statically linked.  This is a build error when this test tool\n"
       "was built.\n"),
-            helper);
+             helper);
     exit (1);
   }
 }
     exit (1);
   }
 }
@@ -399,11 +399,11 @@ make_files (void)
   close (fd);
 
   snprintf (cmd, sizeof cmd, "mkisofs -quiet -rJT -o '%s' '%s'",
   close (fd);
 
   snprintf (cmd, sizeof cmd, "mkisofs -quiet -rJT -o '%s' '%s'",
-           isof, helper);
+            isof, helper);
   r = system (cmd);
   if (r == -1 || WEXITSTATUS(r) != 0) {
     fprintf (stderr,
   r = system (cmd);
   if (r == -1 || WEXITSTATUS(r) != 0) {
     fprintf (stderr,
-            _("mkisofs command failed: %s\n"), cmd);
+             _("mkisofs command failed: %s\n"), cmd);
     exit (1);
   }
 
     exit (1);
   }
 
index fb1f220..11d7cfd 100755 (executable)
@@ -160,9 +160,9 @@ Set the output guest name.
 =cut
 
 GetOptions ("help|?" => \$help,
 =cut
 
 GetOptions ("help|?" => \$help,
-           "version" => \$version,
-           "connect|c=s" => \$uri,
-           "output|o=s" => \$output,
+            "version" => \$version,
+            "connect|c=s" => \$uri,
+            "output|o=s" => \$output,
     ) or pod2usage (2);
 pod2usage (1) if $help;
 if ($version) {
     ) or pod2usage (2);
 pod2usage (1) if $help;
 if ($version) {
@@ -192,7 +192,7 @@ my @partitions = get_partitions ($g);
 # Now query each one to build up a picture of what's in it.
 my %fses =
     inspect_all_partitions ($g, \@partitions,
 # Now query each one to build up a picture of what's in it.
 my %fses =
     inspect_all_partitions ($g, \@partitions,
-                           use_windows_registry => $use_windows_registry);
+                            use_windows_registry => $use_windows_registry);
 
 #print "fses -----------\n";
 #print Dumper(\%fses);
 
 #print "fses -----------\n";
 #print Dumper(\%fses);