diff --git a/include/alleg.h b/include/alleg.h index 4aa9c406b..1ae134bc4 100755 --- a/include/alleg.h +++ b/include/alleg.h @@ -3,9 +3,8 @@ #define DEFFLD(fldname) const char* const ALL_##fldname = #fldname; -// Key 1 = ANNO+CODATT+PROGR +// Key 1 = ANNO+PROGR DEFFLD(ANNO) -DEFFLD(CODATT) DEFFLD(PROGR) // Key 2 = TIPOCF+CODCF+OCFPI+PROGR diff --git a/include/execp.cpp b/include/execp.cpp index 30e63c11d..993cd5262 100755 --- a/include/execp.cpp +++ b/include/execp.cpp @@ -42,7 +42,7 @@ long TExternal_app::run( params = ps; if (params > 0) comm_name.cut(params); - if (*comm_name.ext() == '\0') //se non c'e' estensione ci mette .exe (sono programmi) + if (*comm_name.ext() == '\0') // se non c'e' estensione ci mette .exe (sono programmi) comm_name.ext("exe"); const bool found = comm_name.custom_path(); //cerca il file in custom o in locale @@ -52,7 +52,8 @@ long TExternal_app::run( bool our_app = name.len() > 2; if (our_app && atoi(name) < 70) { - our_app = isalpha(name[0]) && isalpha(name[1]) && isdigit(name[2]); + our_app = (isalpha(name[0]) && isalpha(name[1])) && + (isdigit(name[2]) || name.ends_with("cnv")); } if (!our_app) // Non e' un programma di campo per cui ... utente = 0; // ... non aggiungo il codice utente al comando @@ -65,7 +66,7 @@ long TExternal_app::run( path << _path.mid(params); } - if (utente) + if (utente && path.find(" /u") < 0) path << " /u" << user(); // save cwd diff --git a/include/isam.cpp b/include/isam.cpp index bb9cc512b..b15a8092e 100755 --- a/include/isam.cpp +++ b/include/isam.cpp @@ -3618,30 +3618,29 @@ bool TRectype::get_bool(const char* fieldname) const TDate TRectype::get_date(const char* fieldname) const { - TDate d(get_str(fieldname)); + const TDate d(get_str(fieldname)); return d; } void TRectype::put(const char* fieldname, int val) { - TString16 tmp; - tmp.format("%d", val); + char tmp[16]; + itoa(val, tmp, 10); put_str(fieldname, tmp); } void TRectype::put(const char* fieldname, long val) { - TString16 tmp; - tmp.format("%ld", val); + char tmp[16]; + ltoa(val, tmp, 10); put_str(fieldname, tmp); } void TRectype::put(const char* fieldname, word val) { - TString16 tmp; tmp.format("%u", val); - put_str( fieldname, tmp); + put(fieldname, (int)val); } void TRectype::put(const char* fieldname, const real& val) @@ -3656,7 +3655,6 @@ void TRectype::put(const char* fieldname, const TCurrency& val) void TRectype::put(const char* fieldname, const TDate& val) { - // put_str( fieldname, val.string(full)); put( fieldname, val.date2ansi()); } @@ -3669,7 +3667,7 @@ void TRectype::put(const char* fieldname, char val) void TRectype::put(const char* fieldname, bool val) { - put( fieldname, val ? 'X' : ' '); + put(fieldname, val ? 'X' : ' '); } diff --git a/include/mask.h b/include/mask.h index 021b580d8..8f7a197ac 100755 --- a/include/mask.h +++ b/include/mask.h @@ -376,10 +376,10 @@ public: // @cmember Azzera il campo void reset(const char * fld_id) {set(fld_id, "");} - // @cmember Legge, dalla relazione
, i valori del campo con specifica FIELD - void autoload(const TRelation& r); - // @cmember Scrive, dalla relazione
, i valori del campo con specifica FIELD - void autosave(TRelation& r) const; + // @cmember Legge, dalla relazione
, i valori del campo con specifica FIELD + virtual void autoload(const TRelation& r); + // @cmember Scrive, dalla relazione
, i valori del campo con specifica FIELD + virtual void autosave(TRelation& r) const; // @cmember Permette di mandare un tasto ad un campo void send_key(KEY key, short id, TMask_field* from = NULL); diff --git a/include/strings.cpp b/include/strings.cpp index f48e861b6..8952ef3d9 100755 --- a/include/strings.cpp +++ b/include/strings.cpp @@ -24,7 +24,7 @@ const TToken_string& empty_string() // Most descriptions will fit in fifty characters const int DEFAULT_SIZE = 50; -const int MAX_SIZE = 32000; +const int MAX_SIZE = 65535; inline bool is_space(char c) { return c >= '\t' && c <= ' '; } @@ -97,7 +97,7 @@ int TString::make_room( if (new_size > MAX_SIZE) new_size = MAX_SIZE; if (new_size < min_size) - fatal_box("Stringa di lunghezza eccessiva (%ld)", min_size); + fatal_box("Stringa di lunghezza eccessiva (%d)", min_size); resize(int(new_size), true); } return lun; @@ -149,7 +149,6 @@ char TString::shift(int n) return r; } - TString& TString::operator <<(const char* s) { if (s && *s) @@ -171,23 +170,20 @@ TString& TString::operator <<(char c) TString& TString::operator <<(int n) { - char s[16]; - sprintf(s, "%d", n); + char s[16]; _itoa(n, s, 10); return operator <<(s); } TString& TString::operator <<(long n) { - char s[16]; - sprintf(s, "%ld", n); + char s[16]; _ltoa(n, s, 10); return operator <<(s); } TString& TString::operator <<(double n) { - char s[32]; - sprintf(s, "%lg", n); + char s[32]; sprintf(s, "%lg", n); return operator <<(s); } @@ -245,7 +241,6 @@ bool TString::full() const } - TString& TString::strip_spaces() { char instring = '\0'; @@ -1826,7 +1821,7 @@ int TToken_string::get_pos(const char* s) // Certified 80% int TToken_string::get_pos(long n) { - char s[16]; sprintf(s, "%ld", n); + char s[16]; _ltoa(n, s, 10); return get_pos(s); } @@ -1894,8 +1889,7 @@ void TToken_string::add(char c, int pos) // Certified 100% void TToken_string::add(long n, int pos) { - char s[16]; - sprintf(s, "%ld", n); + char s[16]; _ltoa(n, s, 10); add(s, pos); } @@ -1903,8 +1897,7 @@ void TToken_string::add(long n, int pos) // Certified 100% void TToken_string::add(int n, int pos) { - char s[16]; - sprintf(s, "%d", n); + char s[16]; _itoa(n, s, 10); add(s, pos); } @@ -2010,7 +2003,7 @@ TAuto_token_string& TAuto_token_string::create(const char* ts) /////////////////////////////////////////////////////////// TParagraph_string::TParagraph_string(const char* s, int width) -: TToken_string(s, '|'), _width(width) + : TToken_string(s, '|'), _width(width) { tokenize(); } const TString& TParagraph_string::operator =(const char* s) @@ -2075,7 +2068,8 @@ int TString_array::add(const char* s, int n) { if (objptr(n) == NULL) n = TArray::add(new TToken_string(s), n); - else row(n) = s; + else + row(n) = s; return n; }