Patch level :10.0 nuovo cd

Files correlati     :
Ricompilazione Demo : [ ]
Commento            :0000945: Installazione
Descrizione  Installando le versioni abbiamo gli errori allegato (solo se presnte il modulo LV)


git-svn-id: svn://10.65.10.50/trunk@17567 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
luca 2008-11-06 11:40:50 +00:00
parent 18c1bbee09
commit 846fdf6e39

View File

@ -843,14 +843,14 @@ void TManutenzione_app::update_dir()
if (prefix().get_codditta() <= _history_firm)
return;
const int orig_items = _dirs.last();
const int last_new_item = _dirs.last(); //quale è il numero dell'ultimo file nuovo?
TDir d ;
d.get(LF_DIR);
const int items = (int)d.eod();
const int last_curr_item = (int)d.eod(); //quale è il numero dell'ultimo file attualmente presente
const int update_items = (orig_items < items) ? orig_items : items;
const int update_items = (last_new_item < last_curr_item) ? last_new_item : last_curr_item;
TString prompt(128);
if (is_com)
@ -931,17 +931,25 @@ void TManutenzione_app::update_dir()
{
TSystemisamfile b(i);
int err = b.is_valid(true);
if ((err == _istrcerr) && (d.eod() == 0) && (fsize(d.filename()) < 4096) &&
yesno_box(FR("Il tracciato record del file %d e' incoerente:\nSi desidera eliminare il file vuoto %s?"), i, d.filename()))
{
TFilename n(d.filename()); remove(n);
n.ext("cdx"); remove(n);
n.ext("fpt"); remove(n);
err = NOERR;
}
if ((err == _istrcerr) && (d.eod() == 0) && (fsize(d.filename()) < 4096))
{
bool kill = true;
if (is_power_station())
kill = yesno_box(FR("Il tracciato record del file %d e' incoerente:\nSi desidera eliminare il file vuoto %s?"), i, d.filename());
if (kill)
{
TFilename n(d.filename());
save_file(n);
remove(n);
n.ext("cdx"); remove(n);
n.ext("fpt"); remove(n);
err = NOERR;
}
} //if((err==_istrcerr...
if (err != NOERR && flags < 10000L)
{
if (err == _istrcerr)
if (err == _istrcerr || err == _isbadtrc)
{
repair_file(i);
err = NOERR;
@ -1133,11 +1141,16 @@ void TManutenzione_app::update_dir()
}
if (towrite)
d.put(i, _nordir, _sysdirop);
} // end of for scope
} //for(i=LF_USER; i<=update_items; i++)
if (items >= orig_items) return;
//se il numero totale di files nuovi è inferiore a quello dei files già presenti c'è qualcosa che probabilmente..
//..non va (aggiornamento da un cd vecchio ad esempio); comunque ha finito il suo lavoro qui, perchè quello che..
//..segue riguarda solo i files nuovi
if (last_curr_item >= last_new_item)
return;
for (i = items + 1; i <= orig_items; i++)
//aggiornatore degli EOX EOD ecc. dei files nuovi
for (i = last_curr_item + 1; i <= last_new_item; i++)
{
TDir d1((TDir &) _dirs[i]);
@ -1145,11 +1158,12 @@ void TManutenzione_app::update_dir()
d1.eox() = 0L;
d1.eod() = 0L;
d1.flags() = 0L;
d1.put(i, _nordir, _sysdirop);
d1.put(i, _nordir, _sysdirop); //scrive su dir.gen il nuovo file aggiunto (mettendo numero,eox,eod,flags)
}
//allinea i valori di eox ed eod (eox non può mai essere < eod!)
d.get(LF_DIR, _nolock, _nordir, _sysdirop);
d.eod() = orig_items;
d.eod() = last_new_item;
if (d.eox() < d.eod())
d.eox() = d.eod();
d.put(LF_DIR, _nordir, _sysdirop);
@ -1162,13 +1176,13 @@ void TManutenzione_app::convert_dir()
const TString pref(prefix().name());
const bool is_com = prefix().is_com();
const int orig_items = _dirs.last();
const int last_new_item = _dirs.last();
TDir d;
d.get(LF_DIR);
const int items = (int)d.eod();
const int last_curr_item = (int)d.eod();
const int update_items = (orig_items < items) ? orig_items : items;
const int update_items = (last_new_item < last_curr_item) ? last_new_item : last_curr_item;
TString s;
if (is_com)