From a0b2c1c372f609b078e389871b224111d27f5a9b Mon Sep 17 00:00:00 2001 From: guy Date: Fri, 7 Nov 1997 15:07:06 +0000 Subject: [PATCH] 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 --- include/golem.cpp | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/include/golem.cpp b/include/golem.cpp index 3f25f1c9e..8ac84da8f 100755 --- a/include/golem.cpp +++ b/include/golem.cpp @@ -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);