This allows ctm_rmail -B backup_dir to pass the -B backup_dir down to ctm -B backup_dir *** old/src/usr.sbin/ctm/ctm_rmail/ctm_rmail.1 Fri Sep 27 19:11:06 1996 --- new/src/usr.sbin/ctm/ctm_rmail/ctm_rmail.1 Sat Aug 31 11:49:56 1996 *************** *** 26,31 **** --- 26,32 ---- .Op Fl p Ar piecedir .Op Fl d Ar deltadir .Op Fl b Ar basedir + .Op Fl B Ar backup_dir .Op Ar .Sh DESCRIPTION In conjuction with the *************** *** 118,123 **** --- 119,128 ---- (or if .Li .ctm_status does not exist). + .It Fl B Ar backup_dir + Specify a backup directory for use by + .Nm ctm + .Fl B .It Fl D Delete deltas after successful application by .Xr ctm . *** old/src/usr.sbin/ctm/ctm_rmail/ctm_rmail.c Fri Sep 27 18:19:04 1996 --- new/src/usr.sbin/ctm/ctm_rmail/ctm_rmail.c Fri Sep 27 18:51:17 1996 *************** *** 28,33 **** --- 28,34 ---- char *piece_dir = NULL; /* Where to store pieces of deltas. */ char *delta_dir = NULL; /* Where to store completed deltas. */ char *base_dir = NULL; /* The tree to apply deltas to. */ + char *backup_dir = NULL; /* The tree to make backups in. */ int delete_after = 0; /* Delete deltas after ctm applies them. */ int apply_verbose = 0; /* Run with '-v' */ int set_time = 0; /* Set the time of the files that is changed. */ *************** *** 62,68 **** err_prog_name(argv[0]); ! OPTIONS("[-Dfuv] [-p piecedir] [-d deltadir] [-b basedir] [-l log] [file ...]") FLAG('D', delete_after) FLAG('f', fork_ctm) FLAG('u', set_time) --- 63,69 ---- err_prog_name(argv[0]); ! OPTIONS("[-Dfuv] [-p piecedir] [-d deltadir] [-b basedir] [-B backup_dir] [-l log] [file ...]") FLAG('D', delete_after) FLAG('f', fork_ctm) FLAG('u', set_time) *************** *** 71,76 **** --- 72,78 ---- STRING('d', delta_dir) STRING('b', base_dir) STRING('l', log_file) + STRING('B', backup_dir) ENDOPTS if (delta_dir == NULL) *************** *** 198,206 **** if (stat(fname, &sb) < 0) break; ! sprintf(buf, "(cd %s && ctm %s%s%s%s) 2>&1", base_dir, set_time ? "-u " : "", ! apply_verbose ? "-v " : "", here, fname); if ((ctm = popen(buf, "r")) == NULL) { err("ctm failed to apply %s", delta); --- 200,211 ---- if (stat(fname, &sb) < 0) break; ! sprintf(buf, "(cd %s && ctm %s%s%s%s%s%s) 2>&1", base_dir, set_time ? "-u " : "", ! apply_verbose ? "-v " : "", ! (backup_dir == NULL) ? "" : "-B ", ! (backup_dir == NULL) ? "" : backup_dir, ! here, fname); if ((ctm = popen(buf, "r")) == NULL) { err("ctm failed to apply %s", delta);