From ea2f5a31eb124e5150723c1ac8cfca87c33be0d9 Mon Sep 17 00:00:00 2001 From: luca Date: Tue, 4 May 2004 11:44:23 +0000 Subject: [PATCH] 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 --- ba/ba0101.cpp | 4 ++-- ba/ba1700.cpp | 24 ++++++++++++++---------- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/ba/ba0101.cpp b/ba/ba0101.cpp index 3301b1c2f..23cd778e7 100755 --- a/ba/ba0101.cpp +++ b/ba/ba0101.cpp @@ -286,7 +286,7 @@ bool TMenuitem::perform_program() const TExternal_app a(_action); 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) { char line1[16],line2[16]; @@ -316,7 +316,7 @@ bool TMenuitem::perform_program() const } 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()) main_app().stop_run(); } diff --git a/ba/ba1700.cpp b/ba/ba1700.cpp index e2087598a..0334db97e 100755 --- a/ba/ba1700.cpp +++ b/ba/ba1700.cpp @@ -129,7 +129,7 @@ public: bool installed() { return _installed;} bool autoload(); bool install(const TString& module, int patch); - bool run_ba0close() const { return _reboot_program >= NEW_MENUPRG; } + bool run_ba0close() const { return _reboot_program >= NEW_MENUPRG; } TInstaller_mask(); virtual ~TInstaller_mask(); @@ -458,13 +458,11 @@ bool TInstaller_mask::autoload() TString& ininame = *arow; ininame.lower(); 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); - int r; - TConfig ini(ininame, module); - + TConfig ini(ininame, module); 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)) break; if (r >= 0) @@ -552,7 +550,7 @@ bool TInstaller_mask::can_install(const char* module, TInstall_ini& ini) #endif 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 bool ok = TRUE; @@ -1237,7 +1235,7 @@ bool TInstaller_mask::quit_handler(TMask_field& f, KEY k) { 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(); _curr_mask->enable_check(TRUE); const bool some = _curr_mask->one_checked(); @@ -1326,7 +1324,7 @@ TInstaller_mask::~TInstaller_mask() if (_reboot_program & NEW_MENUPRG) msg << TR("navigatore dei menu;"); if (_reboot_program & NEW_INSTALLER) - msg << TR("installatore"); + msg << TR("installatore;"); if (_reboot_program & NEW_DLL) msg << TR("librerie di base;"); @@ -1442,8 +1440,14 @@ void TExtendedInstaller::main_loop() conversion.run(); } + const bool reboot = _m->run_ba0close(); 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[]) @@ -1461,4 +1465,4 @@ int ba1700(int argc, char* argv[]) app.run(argc, argv, PROGNAME); } return 0; -} +} \ No newline at end of file