diff --git a/src/ba/ba1600.cpp b/src/ba/ba1600.cpp index 51a67e788..f23ed6639 100755 --- a/src/ba/ba1600.cpp +++ b/src/ba/ba1600.cpp @@ -90,19 +90,22 @@ int TInstall_ini::build_list(const TString& module, TString_array& a, TAssoc_array& varlist = list_variables(paragraph); FOR_EACH_ASSOC_STRING(varlist, obj, key, str) { - TString val(str); - const bool is_file = strncmp(key, "File", 4) == 0; + const bool is_file = strncmp(key, "File", 4) == 0; const bool is_patch = strncmp(key, "Patch", 5) == 0; - if (is_patch) + if (sommario && *sommario && is_patch) { - TString4 real_patch; + TFilename real_patch(sommario); - real_patch << patch(module); - if (real_patch != val) - val = real_patch; + real_patch = real_patch.name_only(); + real_patch = real_patch.smid(2, 4); + if (atoi(real_patch) > 0 && strncmp(str, (const char *)real_patch, 4) != 0) + tmp = real_patch; + else + tmp = str; } - tmp = val; // Nome e aggiornamento + else + tmp = str; // Nome e aggiornamento // Quando creo il disco di aggiornamento salto tutti i file // che non hanno il flag di aggiornamento settato if (agg && is_file && tmp.get_char(1) != 'X')