Corretto il salvataggio degli oggetti golem e la determinazione della

esatta directory da utilizzare per i medesimi (com o ditta?)


git-svn-id: svn://10.65.10.50/trunk@5578 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 1997-11-07 15:07:06 +00:00
parent 1ccc383de3
commit a0b2c1c372

View File

@ -224,17 +224,16 @@ bool TGolem_mask::file_handler(TMask_field& f, KEY k)
strcpy(fs.name, "*.*");
strcpy(fs.creator, "GOLEM");
xvt_fsys_save_dir();
DIRECTORY dir; xvt_fsys_get_dir(&dir);
FL_STATUS ok = xvt_dm_post_file_open(&fs, "Selezionare il file ...");
xvt_fsys_set_dir(&dir);
if (ok == FL_OK)
{
xvt_fsys_restore_dir();
TFilename file;
xvt_fsys_convert_dir_to_str(&fs.dir, file.get_buffer(), file.size());
file.add(fs.name);
file.ext(fs.type);
f.set(file);
m.set(S_FILE, file);
k = K_TAB;
}
}
@ -468,9 +467,12 @@ bool TGolem_field::autosave(TRelation& r)
TToken_string new_value(get(), '\n');
if (new_value != _old_value)
{
TFilename golem_path;
TDir dir; dir.get(r.lfile().num());
TDir dir;
const int logicnum = r.lfile().num();
dir.get(logicnum, _nolock, _nordir, _sysdirop);
const long ditta = dir.is_com() ? 0 : prefix().get_codditta();
TFilename golem_path;
golem_path = firm2dir(ditta);
golem_path.add("golem");
if (!fexist(golem_path))
@ -492,15 +494,16 @@ bool TGolem_field::autosave(TRelation& r)
if (old_file != new_file)
{
const was_stored = old_row.get_char(2) <= ' ';
const is_stored = new_row.get_char(2) <= ' ';
const was_stored = old_row.get_char(2) <= ' ' &&
golem_path.compare(old_file, golem_path.len(), TRUE) == 0;
const tobe_stored = new_row.get_char(2) <= ' ';
if (was_stored && fexist(old_file))
::remove(old_file);
if (is_stored && !new_file.blank())
if (tobe_stored && !new_file.blank())
{
char ext[_MAX_EXT];
_splitpath(new_file, NULL, NULL, NULL, ext);
old_file.temp(golem_path, ext);
old_file.temp(golem_path, ext);
fcopy(new_file, old_file);
new_row.add(old_file, 0);
@ -513,7 +516,7 @@ bool TGolem_field::autosave(TRelation& r)
}
}
}
_old_value = new_value;
set(_old_value = new_value);
}
}
return TEditable_field::autosave(r);