diff --git a/include/form.h b/include/form.h index edfb96062..b4e8d5fe4 100755 --- a/include/form.h +++ b/include/form.h @@ -637,7 +637,7 @@ public: virtual TForm_item* create_item(const TString& typ); // @cmember Ritorna il numero di campi da stampare word fields() const - { return word(_item.items()); } + { return _item.items(); } // @cmember Ritorna il numero di campi stampabili (0 se non e' COLUMNWISE) word columns() { tab(0); return _nfld; } @@ -841,7 +841,7 @@ public: { return _effective_height; } // @cmember Imposta l'altezza effettiva del campo virtual void set_effective_height(int val) - { _effective_height=short(val); } + { _effective_height=val; } // @cmember Formatta la stringa

. Funzione che per default non fa nulla. // Ridefinita solo per TForm_number e TForm_string. virtual void apply_format(TString & s) const {} diff --git a/include/isam.cpp b/include/isam.cpp index 37c3bf454..52fc4d1e4 100755 --- a/include/isam.cpp +++ b/include/isam.cpp @@ -1452,8 +1452,8 @@ int TIsamtempfile::open( filename.ext("dbf"); if (err == -60) { - if (access(filename,0)) // check for existence - fatal_box("Apertura file %s : errore n. %d. File non esistente.",(const char*) filename,err); + if (!filename.exist()) + fatal_box("Apertura file %s : errore n. %d. File non esistente.",(const char*)filename,err); else fatal_box("Apertura file %s : errore n. %d. File aperto in uso esclusivo da un'altra applicazione.",(const char*)filename,err); } diff --git a/include/mov.h b/include/mov.h index c1b1f29f2..63c0d75d1 100755 --- a/include/mov.h +++ b/include/mov.h @@ -21,7 +21,6 @@ #define MOV_REG "REG" #define MOV_PROTIVA "PROTIVA" #define MOV_UPROTIVA "UPROTIVA" -#define MOV_MESELIQ "MESELIQ" #define MOV_CODVAL "CODVAL" #define MOV_CAMBIO "CAMBIO" #define MOV_CONTROEURO "CONTROEURO" diff --git a/include/os_win32.cpp b/include/os_win32.cpp index a015eb8aa..1958fc217 100755 --- a/include/os_win32.cpp +++ b/include/os_win32.cpp @@ -3,6 +3,7 @@ #include #include +#include #include @@ -415,15 +416,17 @@ bool os_get_image_editor_path(TFilename& name) os_type os_get_type() { + os_type t = os_Unknown; OSVERSIONINFO ovi; - GetVersionEx(&ovi); - os_type t; - switch (ovi.dwPlatformId) + if (GetVersionEx(&ovi)) { - case VER_PLATFORM_WIN32s : t = os_Win32s; break; - case VER_PLATFORM_WIN32_NT : t = os_WindowsNT; break; - case VER_PLATFORM_WIN32_WINDOWS: t = os_Windows95; break; - default : t = os_Unknown; break; + switch (ovi.dwPlatformId) + { + case VER_PLATFORM_WIN32s : t = os_Win32s; break; + case VER_PLATFORM_WIN32_NT : t = os_WindowsNT; break; + case VER_PLATFORM_WIN32_WINDOWS: t = os_Windows95; break; + default : t = os_Unknown; break; + } } return t; } @@ -537,6 +540,41 @@ bool os_dongle_server_running() return a != 0; } +bool os_test_network_version() +{ + if (os_get_type() == os_Windows95) + { + char* VREDIRNAME = "vredir.vxd"; + DWORD handle; + + DWORD dwSize = GetFileVersionInfoSize(VREDIRNAME,&handle); + if (dwSize) + { + BYTE infoBuffer[512]; + GetFileVersionInfo(VREDIRNAME,handle,dwSize,infoBuffer); + long *language; + void * lpBuffer; + UINT Size; + if (VerQueryValue(infoBuffer, "\\VarFileInfo\\Translation", (void **)&language, &Size) && Size!=0) + { + char szName[128]; + sprintf(szName, "\\StringFileInfo\\%04x%04x\\FileVersion",LOWORD(*language), HIWORD(*language)); + if (VerQueryValue(infoBuffer, szName, &lpBuffer, &Size) && Size!=0) + { + TToken_string v((const char *)lpBuffer,'.'); + int subver=atoi(v.get(2)); + if (subver >=1111 && subver <=1115) + return error_box("La versione %s del driver di rete '%s' contiene un bug riconosciuto da Microsoft.\nConsultare la documentazione sul sito AGA per eliminare questo inconveniente.",(const char *)lpBuffer, VREDIRNAME); + else + return TRUE; + } + } + } + message_box("Impossibile determinare la versione del driver di rete '%s'",VREDIRNAME); + } + return TRUE; +} + HIDDEN const char* _file_to_find = NULL; struct TFindWindowInfo @@ -619,4 +657,3 @@ unsigned long os_execute_in_window(const TFilename& path, WINDOW win) return (unsigned long) w._hwnd; } - diff --git a/include/stdtypes.cpp b/include/stdtypes.cpp index edbcb7cb8..d2b96059f 100755 --- a/include/stdtypes.cpp +++ b/include/stdtypes.cpp @@ -23,10 +23,11 @@ void set_std_level(const long l) // @rdesc Numero di serie della chiave int get_serial_number() { - bool ok = dongle().ok(); + TDongle& din = dongle(); + bool ok = din.ok(); if (!ok) - ok = dongle().login(); - return ok ? int(dongle().number()) : -1; + ok = din.login(); + return ok ? int(din.number()) : -1; } bool test_assistance_year() diff --git a/include/strings.cpp b/include/strings.cpp index df373903d..fc3ecc2b9 100755 --- a/include/strings.cpp +++ b/include/strings.cpp @@ -263,7 +263,7 @@ TString& TString::operator <<(double n) // Appends an object to the string // Certified 50% -// The object should be completely storable in _spark +// The object should be completely storable in spark TString& TString::operator <<(const TObject& obj) { TString256 spark; @@ -479,8 +479,8 @@ const TString& TString::left( // @rdesc Ritorna l'indirizzo della stringa contenente i

caratteri da sinistra { - _spark.strncpy(_str, count); - return _spark; + spark.strncpy(_str, count); + return spark; } // Certified 99% @@ -494,8 +494,8 @@ const TString& TString::right( { int from = len()-count; if (from < 0) from = 0; - _spark = _str + from; - return _spark; + spark = _str + from; + return spark; } @@ -522,8 +522,8 @@ const TString& TString::mid( if (from > l) from = l; if (count < 0 || from+count>l) count = l-from; - _spark.strncpy(&_str[from], count); - return _spark; + spark.strncpy(&_str[from], count); + return spark; } @@ -738,9 +738,9 @@ TString& TString::right_just( { if (n < 0) n = size(); trim(); - _spark = _str; + spark = _str; fill(c, n); - overwrite(_spark, n-_spark.len()); + overwrite(spark, n-spark.len()); return *this; } @@ -760,10 +760,10 @@ TString& TString::center_just( { if (n < 0) n = size(); trim(); - _spark = _str; + spark = _str; fill(c, n); - const int p = (n-_spark.len()) >> 1; - overwrite(_spark, p); + const int p = (n-spark.len()) >> 1; + overwrite(spark, p); return *this; } @@ -783,9 +783,9 @@ TString& TString::left_just( { if (n < 0) n = size(); trim(); - _spark = _str; + spark = _str; fill(c, n); - overwrite(_spark, 0); + overwrite(spark, 0); return *this; } @@ -815,7 +815,7 @@ TString& TString::picture( return *this; } -// Certified 90% (_spark size limited) +// Certified 90% (spark size limited) // @doc EXTERNAL // @mfunc Manda un output formattato alla stringa oggetto @@ -828,12 +828,12 @@ TString& TString::format( { va_list pars; va_start(pars, fmt); - const int tot = vsprintf(_spark.get_buffer(), fmt, pars); + const int tot = vsprintf(spark.get_buffer(), fmt, pars); va_end(pars); - CHECK(tot >= 0 && tot < _spark.size(), "Ue'! Quanto scrivi?"); + CHECK(tot >= 0 && tot < spark.size(), "Ue'! Quanto scrivi?"); if (tot > size()) resize(tot, FALSE); - strcpy(_str, _spark); + strcpy(_str, spark); return *this; } @@ -948,9 +948,9 @@ TString& TString::insert( { const int l = strlen(s); make_room(l); - mid(pos); // Scrivi in _spark la stringa da pos in poi + mid(pos); // Scrivi in spark la stringa da pos in poi overwrite(s, pos); // Aggiungi s - strcpy(&_str[pos+l], _spark); // Aggiungi _spark + strcpy(&_str[pos+l], spark); // Aggiungi spark } return *this; } @@ -1022,7 +1022,7 @@ TString& TFixed_string::format( // @comm Funziona come la funzione "sprintf" standard del C e ritorna la // stringa formattata con i parametri passati. - // E' piu' efficiente di poiche' non usa _spark + // E' piu' efficiente di poiche' non usa spark { va_list pars; va_start(pars, fmt); @@ -1083,8 +1083,8 @@ const char* TFilename::name() const if (_str[i] == '/' || _str[i] == '\\' || _str[i] == ':') break; - _spark.strncpy(&_str[i+1], start-i); - return _spark; + spark.strncpy(&_str[i+1], start-i); + return spark; } // Certified 95% @@ -1096,8 +1096,8 @@ const char* TFilename::path() const for (int i = start; i >= 0; i--) if (_str[i] == '/' || _str[i] == '\\' || _str[i] == ':') break; - _spark.strncpy(_str, i+1); - return _spark; + spark.strncpy(_str, i+1); + return spark; } @@ -1454,13 +1454,13 @@ const char* TToken_string::get( char* p = strchr(s, _separator); if (p == NULL) { - _spark = s; + spark = s; _last = -1; } else { *p = '\0'; - _spark = s; + spark = s; *p = _separator; _last = (int)((const char*)p - _str) + 1; } @@ -1471,7 +1471,7 @@ const char* TToken_string::get( return NULL; } - return _spark; + return spark; } // Certified 99% @@ -1614,9 +1614,9 @@ bool TToken_string::set_item(const char* v, int n) int e = find(_separator, i); if (e < 0) e = len(); - _spark = &_str[e]; // Salva items seguenti - cut(i); // Considera solo items precedenti - *this << v << _spark; // Aggiunge item desiderato e seguenti + spark = _str+e; // Salva items seguenti + cut(i); // Considera solo items precedenti + *this << v << spark; // Aggiunge item desiderato e seguenti return TRUE; } diff --git a/include/strings.h b/include/strings.h index ea5648211..894b79296 100755 --- a/include/strings.h +++ b/include/strings.h @@ -10,6 +10,7 @@ #endif #define SAFE_PIPE_CHR '¦' + // @doc EXTERNAL // @class Classe per la definizione della stringhe