Patch level :2.1 26

Files correlati     :ba0.exe ba1.exe
Ricompilazione Demo : [ ]
Commento            :forza uscita dal programma in caso di installazione SY;lancia una sola volta
ba0close stabilendo se si tratta di una prima installazione o di un aggiornamento


git-svn-id: svn://10.65.10.50/trunk@12050 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
luca 2004-05-04 11:44:23 +00:00
parent 532584d829
commit ea2f5a31eb
2 changed files with 16 additions and 12 deletions

View File

@ -286,7 +286,7 @@ bool TMenuitem::perform_program() const
TExternal_app a(_action); TExternal_app a(_action);
a.run(FALSE,3); a.run(FALSE,3);
const bool maintenance_app = _action.starts_with("ba1 -0", TRUE) == 0; const bool maintenance_app = _action.starts_with("ba1 -0", TRUE);
if (maintenance_app) if (maintenance_app)
{ {
char line1[16],line2[16]; char line1[16],line2[16];
@ -316,7 +316,7 @@ bool TMenuitem::perform_program() const
} }
prefix().set("DEF"); // Aggiorna prefix prefix().set("DEF"); // Aggiorna prefix
const bool install_app = _action.starts_with("ba1 -6", TRUE) == 0; const bool install_app = _action.starts_with("ba1 -6", TRUE);
if (install_app && sys_dll_changed()) if (install_app && sys_dll_changed())
main_app().stop_run(); main_app().stop_run();
} }

View File

@ -458,13 +458,11 @@ bool TInstaller_mask::autoload()
TString& ininame = *arow; TString& ininame = *arow;
ininame.lower(); ininame.lower();
const int pos = ininame.find("a.ini"); const int pos = ininame.find("a.ini");
CHECKS(pos >= 6, TR("Invalid installation configuration: "), (const char*)ininame); CHECKS(pos >= 6, TR("Configurazione di installazione non valida: "), (const char*)ininame);
const TString16 module = ininame.mid(pos-6, 2); const TString16 module = ininame.mid(pos-6, 2);
int r;
TConfig ini(ininame, module); TConfig ini(ininame, module);
ini.write_protect(); ini.write_protect();
for (r = int(items()-1); r >=0; r--) for (int r = int(items()-1); r >=0; r--)
if (module == row(r).get(C_CODE)) if (module == row(r).get(C_CODE))
break; break;
if (r >= 0) if (r >= 0)
@ -552,7 +550,7 @@ bool TInstaller_mask::can_install(const char* module, TInstall_ini& ini)
#endif #endif
TAuto_token_string altri(ini.get("Moduli", module)); TAuto_token_string altri(ini.get("Moduli", module));
if (xvt_str_compare_ignoring_case(module, "ba") != 0 && altri.get_pos("ba") < 0) if (stricmp(module, "ba") != 0 && altri.get_pos("ba") < 0)
altri.add("ba"); // La base e' obbligatoria per tutti altri.add("ba"); // La base e' obbligatoria per tutti
bool ok = TRUE; bool ok = TRUE;
@ -1237,7 +1235,7 @@ bool TInstaller_mask::quit_handler(TMask_field& f, KEY k)
{ {
if (k == K_SPACE) if (k == K_SPACE)
{ {
// TInstaller_mask & m=(TInstaller_mask &) f.mask(); inutile verificare TInstaller_mask & m=(TInstaller_mask &) f.mask();
const bool check_on = _curr_mask->check_enabled(); const bool check_on = _curr_mask->check_enabled();
_curr_mask->enable_check(TRUE); _curr_mask->enable_check(TRUE);
const bool some = _curr_mask->one_checked(); const bool some = _curr_mask->one_checked();
@ -1326,7 +1324,7 @@ TInstaller_mask::~TInstaller_mask()
if (_reboot_program & NEW_MENUPRG) if (_reboot_program & NEW_MENUPRG)
msg << TR("navigatore dei menu;"); msg << TR("navigatore dei menu;");
if (_reboot_program & NEW_INSTALLER) if (_reboot_program & NEW_INSTALLER)
msg << TR("installatore"); msg << TR("installatore;");
if (_reboot_program & NEW_DLL) if (_reboot_program & NEW_DLL)
msg << TR("librerie di base;"); msg << TR("librerie di base;");
@ -1442,8 +1440,14 @@ void TExtendedInstaller::main_loop()
conversion.run(); conversion.run();
} }
const bool reboot = _m->run_ba0close();
delete _m; _m = NULL; delete _m; _m = NULL;
if (reboot && !fexist("ba3.exe")) //e' una prima installazione (non ha ancora installato la base)
{
TExternal_app ba0close("ba0close.exe");
ba0close.run(TRUE,TRUE,TRUE); // run asynchronous...
}
} }
int ba1700(int argc, char* argv[]) int ba1700(int argc, char* argv[])