diff --git a/ba/ba2.cpp b/ba/ba2.cpp index 839d29bb7..5bfb6f683 100755 --- a/ba/ba2.cpp +++ b/ba/ba2.cpp @@ -15,12 +15,12 @@ int main(int argc, char** argv) { case 0: rt = ba2100(argc, argv); break; -#if XVT_OS == XVT_OS_SCOUNIX case 1: rt = ba2200(argc, argv); break; -#endif +#if XVT_OS == XVT_OS_SCOUNIX case 2: rt = ba2300(argc, argv) ; break; +#endif case 3: rt = ba2400(argc, argv) ; break; default: diff --git a/ba/ba2200.cpp b/ba/ba2200.cpp index 9a5d386d8..001aadfea 100755 --- a/ba/ba2200.cpp +++ b/ba/ba2200.cpp @@ -310,15 +310,22 @@ bool TArchive::restore(const char* dir, char floppy, bool tmp) "nel direttorio %s. Continuare?", floppy, (const char*)work)) return FALSE; - const TString16 old(prefix().name()); - prefix().set(NULL); xvt_fsys_save_dir(); bool ok = chdir(work) == 0; if (!ok) { - prefix().set(old); - return error_box("Impossibile accedere a %s", (const char*)work); + ok = yesno_box("Non esiste il direttorio %s: si desidera crearlo?", (const char*)work); + if (ok) + { + make_dir(work); + ok = chdir(work) == 0; + } + if (!ok) + return error_box("Impossibile accedere a %s", (const char*)work); } + + const TString16 old(prefix().name()); + prefix().set(NULL); ok = fbuild(output, floppy);