Version 1.13.10.
[libguestfs.git] / fish / reopen.c
index 2dfc8db..c455a91 100644 (file)
 #include "fish.h"
 
 int
-do_reopen (const char *cmd, int argc, char *argv[])
+run_reopen (const char *cmd, size_t argc, char *argv[])
 {
   guestfs_h *g2;
   int r;
   const char *p;
+  guestfs_error_handler_cb cb;
+  void *cb_data;
 
   if (argc > 0) {
     fprintf (stderr, _("'reopen' command takes no parameters\n"));
@@ -50,6 +52,9 @@ do_reopen (const char *cmd, int argc, char *argv[])
   /* Now copy some of the settings from the old handle.  The settings
    * we copy are those which are set by guestfish itself.
    */
+  cb = guestfs_get_error_handler (g, &cb_data);
+  guestfs_set_error_handler (g2, cb, cb_data);
+
   r = guestfs_get_verbose (g);
   if (r >= 0)
     guestfs_set_verbose (g2, r);
@@ -66,6 +71,14 @@ do_reopen (const char *cmd, int argc, char *argv[])
   if (p)
     guestfs_set_path (g2, p);
 
+  r = guestfs_get_pgroup (g);
+  if (r >= 0)
+    guestfs_set_pgroup (g2, r);
+
+  if (progress_bars)
+    guestfs_set_event_callback (g2, progress_callback,
+                                GUESTFS_EVENT_PROGRESS, 0, NULL);
+
   /* Close the original handle. */
   guestfs_close (g);
   g = g2;