setlocale(LC_ALL, "");
bindtextdomain("bacula", LOCALEDIR);
textdomain("bacula");
+ init_stack_dump();
/* Sanity checks */
if (TAPE_BSIZE % B_DEV_BSIZE != 0 || TAPE_BSIZE / B_DEV_BSIZE == 0) {
}
x32 = 123456789;
bsnprintf(buf, sizeof(buf), "%u", x32);
- i = bsscanf(buf, "%u", &y32);
+ i = bsscanf(buf, "%lu", &y32);
if (i != 1 || x32 != y32) {
Pmsg3(-1, _("32 bit printf/scanf problem. i=%d x32=%u y32=%u\n"), i, x32, y32);
exit(1);
bsnprintf(buf, sizeof(buf), "%" llu, x64);
i = bsscanf(buf, "%llu", &y64);
if (i != 1 || x64 != y64) {
- Pmsg3(-1, _("64 bit printf/scanf problem. i=%d x64=%" llu " y64=%" llu "\n"), i, x64, y64);
+ Pmsg3(-1, _("64 bit printf/scanf problem. i=%d x64=%" llu " y64=%" llu "\n"),
+ i, x64, y64);
exit(1);
}
if (!dev) {
exit(1);
}
+ if (dev->is_dvd()) {
+ Pmsg0(000, _("btape does not work with DVD storage.\n"));
+ usage();
+ exit(1);
+ }
+ if (!dev->is_tape()) {
+ Pmsg0(000, _("btape only works with tape storage.\n"));
+ usage();
+ exit(1);
+ }
dcr = jcr->dcr;
if (!open_the_device()) {
goto terminate;
}
}
dev->rewind(dcr);
- write_new_volume_label_to_dev(dcr, cmd, "Default");
+ write_new_volume_label_to_dev(dcr, cmd, "Default", true /* label dvd now */);
Pmsg1(-1, _("Wrote Volume label for volume \"%s\".\n"), cmd);
}
file_index = 0;
if (last_block) {
free_block(last_block);
+ last_block = NULL;
}
last_block_num = last_block_num1;
last_file = last_file1;
unsigned int i;
bool found;
- while (get_cmd("*")) {
+ while (!quit && get_cmd("*")) {
sm_check(__FILE__, __LINE__, false);
found = false;
parse_args(cmd, &args, &argc, argk, argv, MAX_CMD_ARGS);
found = true;
break;
}
- if (!found)
- Pmsg1(0, _("%s is an illegal command\n"), cmd);
- if (quit)
- break;
+ if (!found) {
+ Pmsg1(0, _("\"%s\" is an illegal command\n"), cmd);
+ }
}
}
static void usage()
{
fprintf(stderr, _(
-"Copyright (C) 2000-2005 Kern Sibbald.\n"
+"Copyright (C) 2000-%s Kern Sibbald.\n"
"\nVersion: %s (%s)\n\n"
"Usage: btape <options> <device_name>\n"
" -b <file> specify bootstrap file\n"
" -s turn off signals\n"
" -v be verbose\n"
" -? print this message.\n"
-"\n"), VERSION, BDATE);
+"\n"), BYEAR, VERSION, BDATE);
}
if (dcr->VolumeName[0] == 0) {
return dir_ask_sysop_to_create_appendable_volume(dcr);
}
- dev->close();
Pmsg1(-1, "%s", dev->errmsg); /* print reason */
if (dcr->VolumeName[0] == 0 || strcmp(dcr->VolumeName, "TestVolume2") == 0) {
fprintf(stderr, _("Mount second Volume on device %s and press return when ready: "),
fprintf(stderr, _("Mount Volume \"%s\" on device %s and press return when ready: "),
dcr->VolumeName, dev->print_name());
}
+ dev->close();
getchar();
return true;
}
}
autochanger = autoload_device(dcr, 1, NULL);
if (!autochanger) {
- dev->close();
fprintf(stderr, _("Mount blank Volume on device %s and press return when ready: "),
dev->print_name());
+ dev->close();
getchar();
}
open_device(dcr);