ba0.cpp Tolto salto immediato nei menu con una sola voce
ba1600?.* Mitiche installazioni git-svn-id: svn://10.65.10.50/trunk@5563 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
		
							parent
							
								
									2a831c5f10
								
							
						
					
					
						commit
						c25be31d15
					
				
							
								
								
									
										11
									
								
								ba/ba0.cpp
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								ba/ba0.cpp
									
									
									
									
									
								
							@ -544,6 +544,7 @@ bool TMenuitem::perform_submenu() const
 | 
				
			|||||||
  bool ok = mnu != NULL && mnu->enabled();
 | 
					  bool ok = mnu != NULL && mnu->enabled();
 | 
				
			||||||
  if (ok)
 | 
					  if (ok)
 | 
				
			||||||
  {            
 | 
					  {            
 | 
				
			||||||
 | 
					/* Cristina 6/11/97 
 | 
				
			||||||
    if (mnu->items() == 1)
 | 
					    if (mnu->items() == 1)
 | 
				
			||||||
    {   
 | 
					    {   
 | 
				
			||||||
      if (mnu->query_firm())
 | 
					      if (mnu->query_firm())
 | 
				
			||||||
@ -555,6 +556,7 @@ bool TMenuitem::perform_submenu() const
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    }  
 | 
					    }  
 | 
				
			||||||
    else
 | 
					    else
 | 
				
			||||||
 | 
					*/    
 | 
				
			||||||
      menu().jumpto(mnu);
 | 
					      menu().jumpto(mnu);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
@ -682,6 +684,8 @@ void TSubmenu::read(TScanner& scanner)
 | 
				
			|||||||
    {                 
 | 
					    {                 
 | 
				
			||||||
      TString16 flags;
 | 
					      TString16 flags;
 | 
				
			||||||
      get_next_string(line, 6, flags, brace);
 | 
					      get_next_string(line, 6, flags, brace);
 | 
				
			||||||
 | 
					      if (flags.find('D') >= 0)
 | 
				
			||||||
 | 
					        _enabled = FALSE; 
 | 
				
			||||||
      if (flags.find('F') >= 0)
 | 
					      if (flags.find('F') >= 0)
 | 
				
			||||||
        _firm = TRUE; 
 | 
					        _firm = TRUE; 
 | 
				
			||||||
    } else
 | 
					    } else
 | 
				
			||||||
@ -698,8 +702,7 @@ int TSubmenu::find_string(const char* str) const
 | 
				
			|||||||
{             
 | 
					{             
 | 
				
			||||||
  bool found = FALSE;
 | 
					  bool found = FALSE;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  TString caption(32);
 | 
					  TString caption;
 | 
				
			||||||
  
 | 
					 | 
				
			||||||
  caption = _caption; caption.upper();
 | 
					  caption = _caption; caption.upper();
 | 
				
			||||||
  if (caption.find(str) >= 0)
 | 
					  if (caption.find(str) >= 0)
 | 
				
			||||||
    found = TRUE;
 | 
					    found = TRUE;
 | 
				
			||||||
@ -728,7 +731,7 @@ bool TSubmenu::perform(int i)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
bool TMenu::read(const char* name, TString& root)
 | 
					bool TMenu::read(const char* name, TString& root)
 | 
				
			||||||
{   
 | 
					{   
 | 
				
			||||||
  TString80 str;
 | 
					  TString str(255);
 | 
				
			||||||
  bool first = TRUE;
 | 
					  bool first = TRUE;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  TScanner scanner(name);
 | 
					  TScanner scanner(name);
 | 
				
			||||||
@ -762,7 +765,7 @@ bool TMenu::read(const char* name, TString& root)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
bool TMenu::read(const char* name) 
 | 
					bool TMenu::read(const char* name) 
 | 
				
			||||||
{ 
 | 
					{ 
 | 
				
			||||||
  TString80 root;
 | 
					  TString root(50);
 | 
				
			||||||
  bool ok = read(name, root); 
 | 
					  bool ok = read(name, root); 
 | 
				
			||||||
  if (ok && _current == NULL)
 | 
					  if (ok && _current == NULL)
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										134
									
								
								ba/ba1600.cpp
									
									
									
									
									
								
							
							
						
						
									
										134
									
								
								ba/ba1600.cpp
									
									
									
									
									
								
							@ -11,11 +11,14 @@
 | 
				
			|||||||
#include "ba1600.h"
 | 
					#include "ba1600.h"
 | 
				
			||||||
#include "ba1600a.h"
 | 
					#include "ba1600a.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define FOR_EACH_SHEET_ROW(sheet, row) TToken_string* row; for (int __row = 0; __row < sheet.items() && (const char*)(row = &sheet.row(__row)); __row++)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
///////////////////////////////////////////////////////////
 | 
					///////////////////////////////////////////////////////////
 | 
				
			||||||
// Configurazione per installazione
 | 
					// Configurazione per installazione
 | 
				
			||||||
///////////////////////////////////////////////////////////
 | 
					///////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int TInstall_ini::build_list(const TString& module, TString_array& a, const char* sommario)
 | 
					int TInstall_ini::build_list(const TString& module, TString_array& a, 
 | 
				
			||||||
 | 
					                             const char* sommario, bool agg)
 | 
				
			||||||
{            
 | 
					{            
 | 
				
			||||||
  CHECKS(module.len() >= 2, "Bad module ", (const char*)module);
 | 
					  CHECKS(module.len() >= 2, "Bad module ", (const char*)module);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -23,10 +26,11 @@ int TInstall_ini::build_list(const TString& module, TString_array& a, const char
 | 
				
			|||||||
  if (sommario)
 | 
					  if (sommario)
 | 
				
			||||||
    sum = new TConfig(sommario, module);
 | 
					    sum = new TConfig(sommario, module);
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  TToken_string tmp;
 | 
					  TAuto_token_string tmp;
 | 
				
			||||||
 | 
					  TString paragraph;
 | 
				
			||||||
  for (int sub = 0; ; sub++)
 | 
					  for (int sub = 0; ; sub++)
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    TString16 paragraph = module;
 | 
					    paragraph = module;
 | 
				
			||||||
    if (module[2] == '\0')     // Ho specificato un modulo principale
 | 
					    if (module[2] == '\0')     // Ho specificato un modulo principale
 | 
				
			||||||
      paragraph << sub;
 | 
					      paragraph << sub;
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
@ -34,10 +38,16 @@ int TInstall_ini::build_list(const TString& module, TString_array& a, const char
 | 
				
			|||||||
    {
 | 
					    {
 | 
				
			||||||
      for (int index = 0; exist("File", index); index++)
 | 
					      for (int index = 0; exist("File", index); index++)
 | 
				
			||||||
      { 
 | 
					      { 
 | 
				
			||||||
        tmp = get("File", NULL, index);
 | 
					        tmp = get("File", NULL, index);     // Nome e  aggiornamento
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        // Quando creo il disco di aggiornamento salto tutti i file
 | 
				
			||||||
 | 
					        // che non hanno il flag di aggiornamento settato
 | 
				
			||||||
 | 
					        if (agg && tmp.get_char(1) <= ' ')
 | 
				
			||||||
 | 
					          continue;
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
        if (sum) 
 | 
					        if (sum) 
 | 
				
			||||||
          sum->set("File", tmp, paragraph, TRUE, index);
 | 
					          sum->set("File", tmp, paragraph, TRUE, index);
 | 
				
			||||||
        tmp.add(paragraph);
 | 
					        tmp.add(paragraph, 2);              // Sottomodulo
 | 
				
			||||||
        tmp.lower();  
 | 
					        tmp.lower();  
 | 
				
			||||||
        a.add(tmp);
 | 
					        a.add(tmp);
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
@ -55,15 +65,17 @@ int TInstall_ini::build_list(const TString& module, TString_array& a, const char
 | 
				
			|||||||
  return a.items();
 | 
					  return a.items();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int TInstall_ini::build_complete_list(const TString& module, TString_array& a, const char* sommario)
 | 
					int TInstall_ini::build_complete_list(const TString& module, TString_array& a, 
 | 
				
			||||||
 | 
					                                      const char* sommario, bool agg)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  build_list(module, a, sommario);
 | 
					  build_list(module, a, sommario, agg);
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
  TAuto_token_string altri(get("Moduli", module));
 | 
					  TAuto_token_string altri(get("Moduli", module));
 | 
				
			||||||
 | 
					  TString submodule;
 | 
				
			||||||
  for (const char* mod = altri.get(0); mod; mod = altri.get())
 | 
					  for (const char* mod = altri.get(0); mod; mod = altri.get())
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    const TString16 submodule = mod;
 | 
					    submodule = mod;
 | 
				
			||||||
    if (!submodule.blank())
 | 
					    copy_paragraph(submodule, sommario);
 | 
				
			||||||
      build_list(submodule, a, sommario);
 | 
					 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  return a.items();
 | 
					  return a.items();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -83,7 +95,7 @@ void TInstall_ini::copy_paragraph(const char* module, const char* summary)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
void TInstall_ini::copy_module_paragraphs(const char* module, const char* summary)
 | 
					void TInstall_ini::copy_module_paragraphs(const char* module, const char* summary)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  TString16 mod;
 | 
					  TString mod;
 | 
				
			||||||
  for (int sub = -1; ; sub++)
 | 
					  for (int sub = -1; ; sub++)
 | 
				
			||||||
  {            
 | 
					  {            
 | 
				
			||||||
    mod = module;  
 | 
					    mod = module;  
 | 
				
			||||||
@ -93,14 +105,6 @@ void TInstall_ini::copy_module_paragraphs(const char* module, const char* summar
 | 
				
			|||||||
    else
 | 
					    else
 | 
				
			||||||
      break;
 | 
					      break;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  
 | 
					 | 
				
			||||||
  TAuto_token_string modules(get("Moduli", module));
 | 
					 | 
				
			||||||
  for (const char* m = modules.get(0); m; m = modules.get())
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    mod = m;
 | 
					 | 
				
			||||||
    if (!mod.blank())
 | 
					 | 
				
			||||||
      copy_paragraph(mod, summary);
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
///////////////////////////////////////////////////////////
 | 
					///////////////////////////////////////////////////////////
 | 
				
			||||||
@ -115,7 +119,7 @@ TAuto_token_string& TAuto_token_string::create(const char* ts)
 | 
				
			|||||||
  // Calcola il separatore
 | 
					  // Calcola il separatore
 | 
				
			||||||
  for (const char* s = get_buffer(); *s; s++)
 | 
					  for (const char* s = get_buffer(); *s; s++)
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    if (strchr("|;,!^&", *s) != NULL)
 | 
					    if (strchr("|;,!^&+", *s) != NULL)
 | 
				
			||||||
    {                  
 | 
					    {                  
 | 
				
			||||||
      separator(*s);
 | 
					      separator(*s);
 | 
				
			||||||
      break;
 | 
					      break;
 | 
				
			||||||
@ -136,6 +140,7 @@ protected:
 | 
				
			|||||||
  static bool missing_notify(TSheet_field& sf, int row, KEY key);
 | 
					  static bool missing_notify(TSheet_field& sf, int row, KEY key);
 | 
				
			||||||
  static bool file_handler(TMask_field& f, KEY k);
 | 
					  static bool file_handler(TMask_field& f, KEY k);
 | 
				
			||||||
  static bool link_handler(TMask_field& f, KEY k);
 | 
					  static bool link_handler(TMask_field& f, KEY k);
 | 
				
			||||||
 | 
					  static bool deselect_handler(TMask_field& f, KEY k);
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  bool find(const TString& name) const;
 | 
					  bool find(const TString& name) const;
 | 
				
			||||||
  bool kill_missing(const char* name, bool update);
 | 
					  bool kill_missing(const char* name, bool update);
 | 
				
			||||||
@ -152,9 +157,9 @@ public:
 | 
				
			|||||||
bool TModule_mask::find(const TString& name) const
 | 
					bool TModule_mask::find(const TString& name) const
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  TSheet_field& sf = sfield(F_SHEET);
 | 
					  TSheet_field& sf = sfield(F_SHEET);
 | 
				
			||||||
  for (int m = sf.items()-1; m >= 0; m--)
 | 
					  FOR_EACH_SHEET_ROW(sf, row)
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    if (name.compare(sf.row(m).get(0), -1, TRUE) == 0)
 | 
					    if (name.compare(row->get(0), -1, TRUE) == 0)
 | 
				
			||||||
      break;
 | 
					      break;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  return m >= 0;
 | 
					  return m >= 0;
 | 
				
			||||||
@ -164,11 +169,11 @@ bool TModule_mask::find(const TString& name) const
 | 
				
			|||||||
bool TModule_mask::kill_missing(const char* name, bool update)
 | 
					bool TModule_mask::kill_missing(const char* name, bool update)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  TSheet_field& miss = sfield(F_MISSING);
 | 
					  TSheet_field& miss = sfield(F_MISSING);
 | 
				
			||||||
  for (int m = miss.items()-1; m >= 0; m--)
 | 
					  FOR_EACH_SHEET_ROW(miss, row)
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    if (miss.row(m).compare(name, -1, TRUE) == 0)
 | 
					    if (row->compare(name, -1, TRUE) == 0)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      miss.destroy(m, update);
 | 
					      miss.destroy(__row, update);
 | 
				
			||||||
      break;
 | 
					      break;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
@ -269,14 +274,16 @@ bool TModule_mask::missing_notify(TSheet_field& sf, int r, KEY key)
 | 
				
			|||||||
    // Sposto tutte le righe nello spreadsheet a fianco
 | 
					    // Sposto tutte le righe nello spreadsheet a fianco
 | 
				
			||||||
    TMask& mainmask = sf.mask();
 | 
					    TMask& mainmask = sf.mask();
 | 
				
			||||||
    TSheet_field& sheet = mainmask.sfield(F_SHEET);
 | 
					    TSheet_field& sheet = mainmask.sfield(F_SHEET);
 | 
				
			||||||
    for (int i = 0; i < sf.items(); i++)
 | 
					
 | 
				
			||||||
 | 
					    FOR_EACH_SHEET_ROW(sf, row)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      TToken_string& newrow = sheet.row(-1);
 | 
					      TToken_string& newrow = sheet.row(-1);
 | 
				
			||||||
      newrow = sf.row(i);
 | 
					      newrow = *row;
 | 
				
			||||||
      TString16 submod = newrow.left(2);
 | 
					      TString16 submod = newrow.left(2);
 | 
				
			||||||
      submod << '0';
 | 
					      submod << '0';
 | 
				
			||||||
      newrow.add(submod);
 | 
					      newrow.add(submod);
 | 
				
			||||||
    } 
 | 
					    } 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    sf.destroy();
 | 
					    sf.destroy();
 | 
				
			||||||
    sf.force_update();
 | 
					    sf.force_update();
 | 
				
			||||||
    sheet.force_update();
 | 
					    sheet.force_update();
 | 
				
			||||||
@ -358,6 +365,27 @@ bool TModule_mask::link_handler(TMask_field& f, KEY k)
 | 
				
			|||||||
  return TRUE;
 | 
					  return TRUE;
 | 
				
			||||||
}  
 | 
					}  
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool TModule_mask::deselect_handler(TMask_field& f, KEY k)
 | 
				
			||||||
 | 
					{                          
 | 
				
			||||||
 | 
					  if (k == K_SPACE)
 | 
				
			||||||
 | 
					  {           
 | 
				
			||||||
 | 
					    TSheet_field& sheet = f.mask().sfield(F_SHEET);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//    for (int r = sheet.items()-1; r >= 0; r--)
 | 
				
			||||||
 | 
					//    {
 | 
				
			||||||
 | 
					//      sheet.row(r).add(" ", 1);
 | 
				
			||||||
 | 
					//    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    FOR_EACH_SHEET_ROW(sheet, row)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      row->add(" ", 1);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    sheet.force_update();  
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  return TRUE;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void TModule_mask::load(const char* module)
 | 
					void TModule_mask::load(const char* module)
 | 
				
			||||||
{                 
 | 
					{                 
 | 
				
			||||||
  TWait_cursor hourglass;
 | 
					  TWait_cursor hourglass;
 | 
				
			||||||
@ -421,7 +449,7 @@ void TModule_mask::save()
 | 
				
			|||||||
  TInstall_ini ini;
 | 
					  TInstall_ini ini;
 | 
				
			||||||
  int index;       
 | 
					  int index;       
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  const TString16 module = get(F_MODULE);
 | 
					  const TString module = get(F_MODULE);
 | 
				
			||||||
  for (index = 0; ; index++)
 | 
					  for (index = 0; ; index++)
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    TString16 sub; sub << module << index;
 | 
					    TString16 sub; sub << module << index;
 | 
				
			||||||
@ -434,15 +462,17 @@ void TModule_mask::save()
 | 
				
			|||||||
      break;
 | 
					      break;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  TString tmp;    
 | 
					  TToken_string tmp;    
 | 
				
			||||||
  index = 0;
 | 
					  index = 0;
 | 
				
			||||||
  for (int r = 0; r < sheet.items(); r++)
 | 
					  for (int r = 0; r < sheet.items(); r++)
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    TToken_string& row = sheet.row(r);
 | 
					    TToken_string& row = sheet.row(r);
 | 
				
			||||||
    TString16 sub = row.get(1);
 | 
					    TString16 sub = row.get(2);
 | 
				
			||||||
    if (isdigit(sub[0]) || sub.left(2) == module)
 | 
					    if (isdigit(sub[0]) || sub.left(2) == module)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      tmp = row.get(0);
 | 
					      tmp = row.get(0);       // Nome del file
 | 
				
			||||||
 | 
					      const bool agg = *row.get() > ' ';
 | 
				
			||||||
 | 
					      if (agg) tmp.add("X");  // Flag aggiornamento
 | 
				
			||||||
      ini.set("File", tmp, sub, TRUE, index++);
 | 
					      ini.set("File", tmp, sub, TRUE, index++);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
@ -452,6 +482,8 @@ void TModule_mask::save()
 | 
				
			|||||||
TModule_mask::TModule_mask()
 | 
					TModule_mask::TModule_mask()
 | 
				
			||||||
            : TMask("ba1600b")
 | 
					            : TMask("ba1600b")
 | 
				
			||||||
{                
 | 
					{                
 | 
				
			||||||
 | 
					  set_handler(F_DESELECT, deselect_handler);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  TSheet_field& s = sfield(F_SHEET);
 | 
					  TSheet_field& s = sfield(F_SHEET);
 | 
				
			||||||
  s.set_notify(sheet_notify);
 | 
					  s.set_notify(sheet_notify);
 | 
				
			||||||
  s.sheet_mask().set_handler(S_FILE, file_handler);
 | 
					  s.sheet_mask().set_handler(S_FILE, file_handler);
 | 
				
			||||||
@ -475,7 +507,7 @@ protected:
 | 
				
			|||||||
  bool zip_file(const char* archive, const char* file) const;
 | 
					  bool zip_file(const char* archive, const char* file) const;
 | 
				
			||||||
  int  split_file(const TFilename& file, long size) const;
 | 
					  int  split_file(const TFilename& file, long size) const;
 | 
				
			||||||
  bool move_file(const TFilename& file, const char* dir) const;
 | 
					  bool move_file(const TFilename& file, const char* dir) const;
 | 
				
			||||||
  bool zip_module(const TString& module) const;
 | 
					  bool zip_module(const TString& module, bool agg) const;
 | 
				
			||||||
       
 | 
					       
 | 
				
			||||||
public:
 | 
					public:
 | 
				
			||||||
  void load();
 | 
					  void load();
 | 
				
			||||||
@ -514,9 +546,9 @@ bool TFascicolator_mask::save_handler(TMask_field& f, KEY k)
 | 
				
			|||||||
      ini.set("PreProcess", m.get(S_PREPROCESS));
 | 
					      ini.set("PreProcess", m.get(S_PREPROCESS));
 | 
				
			||||||
      ini.set("PostProcess", m.get(S_POSTPROCESS));
 | 
					      ini.set("PostProcess", m.get(S_POSTPROCESS));
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					    const bool agg = f.dlg() == S_SAVEAGG;
 | 
				
			||||||
    TFascicolator_mask& fm = (TFascicolator_mask&)m.get_sheet()->mask();
 | 
					    TFascicolator_mask& fm = (TFascicolator_mask&)m.get_sheet()->mask();
 | 
				
			||||||
    fm.zip_module(module);
 | 
					    fm.zip_module(module, agg);
 | 
				
			||||||
  }  
 | 
					  }  
 | 
				
			||||||
  return TRUE;
 | 
					  return TRUE;
 | 
				
			||||||
}  
 | 
					}  
 | 
				
			||||||
@ -718,15 +750,13 @@ int TFascicolator_mask::split_file(const TFilename& archive, long size) const
 | 
				
			|||||||
      else
 | 
					      else
 | 
				
			||||||
        break;
 | 
					        break;
 | 
				
			||||||
    }  
 | 
					    }  
 | 
				
			||||||
    
 | 
					 | 
				
			||||||
    if (disks > 1)
 | 
					 | 
				
			||||||
    ::remove(archive);
 | 
					    ::remove(archive);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  return disks;  
 | 
					  return disks;  
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool TFascicolator_mask::zip_module(const TString& main_module) const
 | 
					bool TFascicolator_mask::zip_module(const TString& main_module, bool agg) const
 | 
				
			||||||
{  
 | 
					{  
 | 
				
			||||||
  TString_array arr;
 | 
					  TString_array arr;
 | 
				
			||||||
  TInstall_ini ini;
 | 
					  TInstall_ini ini;
 | 
				
			||||||
@ -735,7 +765,7 @@ bool TFascicolator_mask::zip_module(const TString& main_module) const
 | 
				
			|||||||
  sommario.add(main_module);
 | 
					  sommario.add(main_module);
 | 
				
			||||||
  sommario << "inst.ini";            // Nome del file sommario completo
 | 
					  sommario << "inst.ini";            // Nome del file sommario completo
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  ini.build_complete_list(main_module, arr, sommario);
 | 
					  ini.build_complete_list(main_module, arr, sommario, agg);
 | 
				
			||||||
  if (arr.items() == 0)
 | 
					  if (arr.items() == 0)
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    ::remove(sommario);
 | 
					    ::remove(sommario);
 | 
				
			||||||
@ -746,27 +776,33 @@ bool TFascicolator_mask::zip_module(const TString& main_module) const
 | 
				
			|||||||
  archivio.ext("zip");            // Nome del file archivio completo
 | 
					  archivio.ext("zip");            // Nome del file archivio completo
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  bool aborted = FALSE;                                                              
 | 
					  bool aborted = FALSE;                                                              
 | 
				
			||||||
  TString msg(80);
 | 
					  TString msg;
 | 
				
			||||||
  msg << "Creazione del file " << archivio << " ...";
 | 
					  msg << "Creazione del file " << archivio << " ...";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  TProgind pi(arr.items(), msg, TRUE, TRUE); 
 | 
					  TProgind pi(arr.items(), msg, TRUE, TRUE); 
 | 
				
			||||||
  TFilename cmd;
 | 
					  TFilename cmd;
 | 
				
			||||||
  for (int i = arr.items()-1; i >= 0; i--)
 | 
					  for (int i = arr.items()-1; i >= 0; i--)
 | 
				
			||||||
  {                    
 | 
					  {                    
 | 
				
			||||||
    pi.addstatus(1);
 | 
					    pi.addstatus(1);
 | 
				
			||||||
    cmd << ' ' << arr.row(i).get(0);
 | 
					 | 
				
			||||||
    if (cmd.len() > 80)
 | 
					 | 
				
			||||||
    {                              
 | 
					 | 
				
			||||||
      zip_file(archivio, cmd);
 | 
					 | 
				
			||||||
      cmd.cut(0);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    if (pi.iscancelled())
 | 
					    if (pi.iscancelled())
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      aborted = TRUE;
 | 
					      aborted = TRUE;
 | 
				
			||||||
      break;
 | 
					      break;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    TToken_string& row = arr.row(i);
 | 
				
			||||||
 | 
					      
 | 
				
			||||||
 | 
					    // Aggiungo il nome corrente alla lista dei files da compattare
 | 
				
			||||||
 | 
					    cmd << ' ' << row.get(0);
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    if (cmd.len() > 80)         // Se la riga ha raggiunto la dimensione giusta...
 | 
				
			||||||
 | 
					    {                              
 | 
				
			||||||
 | 
					      zip_file(archivio, cmd);  // ... allora compatto
 | 
				
			||||||
 | 
					      cmd.cut(0);               // e svuoto la riga di comando
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  if (cmd.len() > 0 && !aborted)
 | 
					  if (cmd.len() > 0 && !aborted)
 | 
				
			||||||
    zip_file(archivio, cmd);
 | 
					    zip_file(archivio, cmd);    // Compatto gli eventuali ultimi rimasti
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
  msg.cut(0);
 | 
					  msg.cut(0);
 | 
				
			||||||
  msg << "Separazione del file " << archivio << " ...";
 | 
					  msg << "Separazione del file " << archivio << " ...";
 | 
				
			||||||
@ -794,12 +830,9 @@ bool TFascicolator_mask::zip_module(const TString& main_module) const
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    // Costruisco il nome del file da copiare su dischetto  
 | 
					    // Costruisco il nome del file da copiare su dischetto  
 | 
				
			||||||
    TFilename src(archivio);
 | 
					    TFilename src(archivio);
 | 
				
			||||||
    if (d > 1 || disks > 1) 
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
    src.ext("");
 | 
					    src.ext("");
 | 
				
			||||||
    src << d;
 | 
					    src << d;
 | 
				
			||||||
    src.ext("zip");
 | 
					    src.ext("zip");
 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg.cut(0);
 | 
					    msg.cut(0);
 | 
				
			||||||
    msg << "Generazione del disco " << d << " di " << disks
 | 
					    msg << "Generazione del disco " << d << " di " << disks
 | 
				
			||||||
@ -824,7 +857,8 @@ TFascicolator_mask::TFascicolator_mask()
 | 
				
			|||||||
  TSheet_field& s = sfield(F_SHEET);
 | 
					  TSheet_field& s = sfield(F_SHEET);
 | 
				
			||||||
  TMask& m = s.sheet_mask();
 | 
					  TMask& m = s.sheet_mask();
 | 
				
			||||||
  m.set_handler(S_LIST, list_handler);
 | 
					  m.set_handler(S_LIST, list_handler);
 | 
				
			||||||
  m.set_handler(100, save_handler);
 | 
					  m.set_handler(S_SAVE, save_handler);
 | 
				
			||||||
 | 
					  m.set_handler(S_SAVEAGG, save_handler);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
///////////////////////////////////////////////////////////
 | 
					///////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
				
			|||||||
@ -8,8 +8,10 @@
 | 
				
			|||||||
class TInstall_ini : public TConfig
 | 
					class TInstall_ini : public TConfig
 | 
				
			||||||
{ 
 | 
					{ 
 | 
				
			||||||
public:
 | 
					public:
 | 
				
			||||||
  int build_list(const TString& m, TString_array& a, const char* s = NULL);
 | 
					  int build_list(const TString& m, TString_array& a, 
 | 
				
			||||||
  int build_complete_list(const TString& m, TString_array& a, const char* s = NULL);
 | 
					                 const char* s = NULL, bool agg = FALSE);
 | 
				
			||||||
 | 
					  int build_complete_list(const TString& m, TString_array& a, 
 | 
				
			||||||
 | 
					                          const char* s = NULL, bool agg = FALSE);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  void copy_paragraph(const char* module, const char* summary);
 | 
					  void copy_paragraph(const char* module, const char* summary);
 | 
				
			||||||
  void copy_module_paragraphs(const char* module, const char* summary);
 | 
					  void copy_module_paragraphs(const char* module, const char* summary);
 | 
				
			||||||
@ -32,6 +34,7 @@ public:
 | 
				
			|||||||
  TAuto_token_string& operator=(const TString& ts) { return create(ts); }
 | 
					  TAuto_token_string& operator=(const TString& ts) { return create(ts); }
 | 
				
			||||||
  TAuto_token_string& operator=(const TToken_string& ts) { return create(ts); }
 | 
					  TAuto_token_string& operator=(const TToken_string& ts) { return create(ts); }
 | 
				
			||||||
  TAuto_token_string& operator=(const TAuto_token_string& ts) { return create(ts); }
 | 
					  TAuto_token_string& operator=(const TAuto_token_string& ts) { return create(ts); }
 | 
				
			||||||
 | 
					  TAuto_token_string() : TToken_string(50) { }
 | 
				
			||||||
  TAuto_token_string(const char* ts) { create(ts); }
 | 
					  TAuto_token_string(const char* ts) { create(ts); }
 | 
				
			||||||
  virtual ~TAuto_token_string() { }
 | 
					  virtual ~TAuto_token_string() { }
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
				
			|||||||
@ -6,6 +6,7 @@
 | 
				
			|||||||
#define F_SHEET       203
 | 
					#define F_SHEET       203
 | 
				
			||||||
#define F_MISSING     204
 | 
					#define F_MISSING     204
 | 
				
			||||||
#define F_MODULE      205
 | 
					#define F_MODULE      205
 | 
				
			||||||
 | 
					#define F_DESELECT    251
 | 
				
			||||||
              
 | 
					              
 | 
				
			||||||
#define S_FILE        101              
 | 
					#define S_FILE        101              
 | 
				
			||||||
#define S_MODULE      102
 | 
					#define S_MODULE      102
 | 
				
			||||||
@ -14,6 +15,9 @@
 | 
				
			|||||||
#define S_EXTERN      105
 | 
					#define S_EXTERN      105
 | 
				
			||||||
#define S_PREPROCESS  106
 | 
					#define S_PREPROCESS  106
 | 
				
			||||||
#define S_POSTPROCESS 107
 | 
					#define S_POSTPROCESS 107
 | 
				
			||||||
#define S_LIST        200
 | 
					
 | 
				
			||||||
 | 
					#define S_LIST        100
 | 
				
			||||||
 | 
					#define S_SAVE        151
 | 
				
			||||||
 | 
					#define S_SAVEAGG     152
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
				
			|||||||
@ -47,7 +47,7 @@ ENDPAGE
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
ENDMASK
 | 
					ENDMASK
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PAGE "Modulo" -1 -1 52 8
 | 
					PAGE "Modulo" -1 -1 52 10
 | 
				
			||||||
 | 
					
 | 
				
			||||||
STRING 101 36
 | 
					STRING 101 36
 | 
				
			||||||
BEGIN
 | 
					BEGIN
 | 
				
			||||||
@ -86,28 +86,30 @@ BEGIN
 | 
				
			|||||||
  PROMPT 1 5 "Post-processing "
 | 
					  PROMPT 1 5 "Post-processing "
 | 
				
			||||||
END
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
BUTTON DLG_OK 10 2
 | 
					BUTTON DLG_OK 14 2
 | 
				
			||||||
BEGIN
 | 
					BEGIN
 | 
				
			||||||
  PROMPT -14 -1 ""
 | 
					  PROMPT -13 -3 ""
 | 
				
			||||||
END
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
BUTTON 100 10 2
 | 
					BUTTON DLG_CANCEL 14 2
 | 
				
			||||||
BEGIN
 | 
					BEGIN
 | 
				
			||||||
  PROMPT -24 -1 ""
 | 
					  PROMPT -13 -1 ""
 | 
				
			||||||
  PICTURE BMP_SAVEREC
 | 
					 | 
				
			||||||
  PICTURE BMP_SAVERECDN
 | 
					 | 
				
			||||||
END
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
BUTTON S_LIST 10 2
 | 
					BUTTON S_SAVE 14 2
 | 
				
			||||||
BEGIN
 | 
					BEGIN
 | 
				
			||||||
  PROMPT -34 -1 "Lista file"
 | 
					  PROMPT -23 -3 "&Versione"
 | 
				
			||||||
END
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
BUTTON DLG_CANCEL 10 2
 | 
					BUTTON S_SAVEAGG 14 2
 | 
				
			||||||
BEGIN
 | 
					BEGIN
 | 
				
			||||||
  PROMPT -44 -1 ""
 | 
					  PROMPT -23 -1 "&Aggiornamento"
 | 
				
			||||||
END
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					BUTTON S_LIST 14 2
 | 
				
			||||||
 | 
					BEGIN
 | 
				
			||||||
 | 
					  PROMPT -33 -1 "Lista file"
 | 
				
			||||||
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ENDPAGE
 | 
					ENDPAGE
 | 
				
			||||||
                
 | 
					                
 | 
				
			||||||
 | 
				
			|||||||
@ -4,12 +4,17 @@ TOOLBAR "" 0 20 0 2
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
BUTTON DLG_OK 10 2
 | 
					BUTTON DLG_OK 10 2
 | 
				
			||||||
BEGIN
 | 
					BEGIN
 | 
				
			||||||
  PROMPT -12 -11 ""
 | 
					  PROMPT -13 -11 ""
 | 
				
			||||||
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					BUTTON F_DESELECT 20 2
 | 
				
			||||||
 | 
					BEGIN              
 | 
				
			||||||
 | 
					  PROMPT -11 -11 "Annulla selezione"
 | 
				
			||||||
END
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
BUTTON DLG_CANCEL 10 2
 | 
					BUTTON DLG_CANCEL 10 2
 | 
				
			||||||
BEGIN
 | 
					BEGIN
 | 
				
			||||||
  PROMPT -22 -11 ""
 | 
					  PROMPT -33 -11 ""
 | 
				
			||||||
END
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ENDPAGE
 | 
					ENDPAGE
 | 
				
			||||||
@ -25,7 +30,8 @@ END
 | 
				
			|||||||
SPREADSHEET F_SHEET 46
 | 
					SPREADSHEET F_SHEET 46
 | 
				
			||||||
BEGIN
 | 
					BEGIN
 | 
				
			||||||
  PROMPT 1 1 ""
 | 
					  PROMPT 1 1 ""
 | 
				
			||||||
  ITEM "File@32"
 | 
					  ITEM "File@28"
 | 
				
			||||||
 | 
					  ITEM "Agg."
 | 
				
			||||||
  ITEM "Mod."
 | 
					  ITEM "Mod."
 | 
				
			||||||
END
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -48,9 +54,14 @@ BEGIN
 | 
				
			|||||||
  FLAGS "B"
 | 
					  FLAGS "B"
 | 
				
			||||||
END
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
STRING S_MODULE 3
 | 
					BOOLEAN 102
 | 
				
			||||||
BEGIN
 | 
					BEGIN
 | 
				
			||||||
  PROMPT 1 2 "Sottomodulo "
 | 
					  PROMPT 1 2 "Includi nell'aggiornamento"
 | 
				
			||||||
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					STRING 103 3
 | 
				
			||||||
 | 
					BEGIN
 | 
				
			||||||
 | 
					  PROMPT 30 2 "Sottomodulo "
 | 
				
			||||||
END
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
BUTTON DLG_OK 10 2
 | 
					BUTTON DLG_OK 10 2
 | 
				
			||||||
 | 
				
			|||||||
@ -169,9 +169,37 @@ bool TInstaller_mask::do_process(TAuto_token_string& commands) const
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool TInstaller_mask::pre_process(TInstall_ini& ini, const char* module) const
 | 
					bool TInstaller_mask::pre_process(TInstall_ini& ini, const char* module) const
 | 
				
			||||||
 | 
					{                           
 | 
				
			||||||
 | 
					  bool ok = TRUE;
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  TInstall_ini cur_ini;
 | 
				
			||||||
 | 
					  TAuto_token_string altri(ini.get("Moduli", module));
 | 
				
			||||||
 | 
					  altri.add("ba");  // La base e' obbligatoria per tutti
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  TString submodule, curver, reqver;
 | 
				
			||||||
 | 
					  for (const char* mod = altri.get(0); mod && ok; mod = altri.get())
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    submodule = mod;
 | 
				
			||||||
 | 
					    submodule.cut(2);
 | 
				
			||||||
 | 
					    reqver = ini.get("Versione", submodule);
 | 
				
			||||||
 | 
					    curver = cur_ini.get("Versione", submodule);
 | 
				
			||||||
 | 
					    ok = compare_version(reqver, curver) <= 0;
 | 
				
			||||||
 | 
					    if (!ok)
 | 
				
			||||||
 | 
					    {        
 | 
				
			||||||
 | 
					      TString msg;
 | 
				
			||||||
 | 
					      msg << "L'installazione del modulo " << module
 | 
				
			||||||
 | 
					          << " richiede\nla versione " << reqver
 | 
				
			||||||
 | 
					          << " del sottomodulo " << submodule;
 | 
				
			||||||
 | 
					      error_box(msg);    
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }  
 | 
				
			||||||
 | 
					  if (ok)
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    TAuto_token_string commands(ini.get("PreProcess", module));
 | 
					    TAuto_token_string commands(ini.get("PreProcess", module));
 | 
				
			||||||
  return do_process(commands);
 | 
					    ok = do_process(commands);
 | 
				
			||||||
 | 
					  }  
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  return ok;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool TInstaller_mask::post_process(TInstall_ini& ini, const char* module) const
 | 
					bool TInstaller_mask::post_process(TInstall_ini& ini, const char* module) const
 | 
				
			||||||
@ -196,18 +224,24 @@ bool TInstaller_mask::install(const TString& module)
 | 
				
			|||||||
    const int dischi = ini.get_int("Dischi", module);
 | 
					    const int dischi = ini.get_int("Dischi", module);
 | 
				
			||||||
    ok = dischi > 0;
 | 
					    ok = dischi > 0;
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    if (ok)
 | 
					    if (!ok)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      return error_box("Impossibile determinare il numero dei dischetti");
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
      ok = pre_process(ini, module);
 | 
					      ok = pre_process(ini, module);
 | 
				
			||||||
 | 
					      if (!ok) return FALSE;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    TProgind pi(dischi, "Decompressione in corso...", FALSE, TRUE);
 | 
					    TProgind pi(dischi, "Decompressione in corso...", FALSE, TRUE);
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    TFilename cmdline;
 | 
					    TFilename cmdline;
 | 
				
			||||||
    for (int d = 1; d <= dischi && ok; d++)
 | 
					    for (int d = 1; d <= dischi && ok; d++)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      cmdline = ininame.path();
 | 
					      cmdline = path;
 | 
				
			||||||
      cmdline.add(module);  
 | 
					      cmdline.add(module);  
 | 
				
			||||||
      cmdline << "inst";
 | 
					      cmdline << "inst" << d;
 | 
				
			||||||
      if (dischi > 1) cmdline << d;
 | 
					 | 
				
			||||||
      cmdline.ext("zip");
 | 
					      cmdline.ext("zip");
 | 
				
			||||||
      
 | 
					      
 | 
				
			||||||
      ok = fexist(cmdline);
 | 
					      ok = fexist(cmdline);
 | 
				
			||||||
@ -251,7 +285,6 @@ bool TInstaller_mask::install(const TString& module)
 | 
				
			|||||||
    { 
 | 
					    { 
 | 
				
			||||||
      post_process(ini, module);
 | 
					      post_process(ini, module);
 | 
				
			||||||
      ini.copy_module_paragraphs(module, ini.default_name());
 | 
					      ini.copy_module_paragraphs(module, ini.default_name());
 | 
				
			||||||
      
 | 
					 | 
				
			||||||
    }  
 | 
					    }  
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  else
 | 
					  else
 | 
				
			||||||
@ -263,11 +296,13 @@ bool TInstaller_mask::install(const TString& module)
 | 
				
			|||||||
    {
 | 
					    {
 | 
				
			||||||
      TInstall_ini ini(ininame);
 | 
					      TInstall_ini ini(ininame);
 | 
				
			||||||
      TString_array list;
 | 
					      TString_array list;
 | 
				
			||||||
      const int files = ini.build_complete_list(module, list);
 | 
					      const int files = ini.build_list(module, list);
 | 
				
			||||||
      if (files > 0)
 | 
					      if (files > 0)
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
        pre_process(ini, module);
 | 
					        ok = pre_process(ini, module);
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
 | 
					        if (ok)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
          TProgind pi(files, "Copia in corso...", FALSE, TRUE);
 | 
					          TProgind pi(files, "Copia in corso...", FALSE, TRUE);
 | 
				
			||||||
          TFilename src, dst;
 | 
					          TFilename src, dst;
 | 
				
			||||||
          for (int f = 0; f < files && ok; f++)
 | 
					          for (int f = 0; f < files && ok; f++)
 | 
				
			||||||
@ -278,6 +313,8 @@ bool TInstaller_mask::install(const TString& module)
 | 
				
			|||||||
            src.add(dst);
 | 
					            src.add(dst);
 | 
				
			||||||
            ok = fcopy(src, dst);
 | 
					            ok = fcopy(src, dst);
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (ok)
 | 
					        if (ok)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
          ini.copy_module_paragraphs(module, ini.default_name());
 | 
					          ini.copy_module_paragraphs(module, ini.default_name());
 | 
				
			||||||
@ -293,6 +330,9 @@ bool TInstaller_mask::install(const TString& module)
 | 
				
			|||||||
    ini.set("DiskPath", path);
 | 
					    ini.set("DiskPath", path);
 | 
				
			||||||
    ini.set("Data", TDate(TODAY), module);
 | 
					    ini.set("Data", TDate(TODAY), module);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  // Non spostare nell'if precedente
 | 
				
			||||||
 | 
					  if (ok)
 | 
				
			||||||
    update_version(); 
 | 
					    update_version(); 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  return ok;
 | 
					  return ok;
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user