X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=fish%2Freopen.c;h=56c189ea54df35eae685d9d23d69ec84fc53764e;hb=ddb3fac1bf1b0493779c9425b518598473ef106a;hp=f2d35c7fc669636def4bc7e55d7305b88e893346;hpb=625d0bd56189450f48b6308371bf08ee6312d59f;p=libguestfs.git diff --git a/fish/reopen.c b/fish/reopen.c index f2d35c7..56c189e 100644 --- a/fish/reopen.c +++ b/fish/reopen.c @@ -13,7 +13,7 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include @@ -26,11 +26,13 @@ #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,10 +52,17 @@ 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); + r = guestfs_get_trace (g); + if (r >= 0) + guestfs_set_trace (g2, r); + r = guestfs_get_autosync (g); if (r >= 0) guestfs_set_autosync (g2, r); @@ -62,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;