Patch level : 10.0

Files correlati     : ba0.exe
Ricompilazione Demo : [ ]
Commento            :
Corretta esecuzione da menu di programmi di conversione (??cnv.exe)
Raddoppiata dimensione massima delle stringhe da 32 a 64 KB


git-svn-id: svn://10.65.10.50/branches/R_10_00@22355 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2011-06-30 08:11:19 +00:00
parent 187bdfaf6c
commit c88a888656
5 changed files with 27 additions and 35 deletions

View File

@ -3,9 +3,8 @@
#define DEFFLD(fldname) const char* const ALL_##fldname = #fldname; #define DEFFLD(fldname) const char* const ALL_##fldname = #fldname;
// Key 1 = ANNO+CODATT+PROGR // Key 1 = ANNO+PROGR
DEFFLD(ANNO) DEFFLD(ANNO)
DEFFLD(CODATT)
DEFFLD(PROGR) DEFFLD(PROGR)
// Key 2 = TIPOCF+CODCF+OCFPI+PROGR // Key 2 = TIPOCF+CODCF+OCFPI+PROGR

View File

@ -42,7 +42,7 @@ long TExternal_app::run(
params = ps; params = ps;
if (params > 0) if (params > 0)
comm_name.cut(params); 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"); comm_name.ext("exe");
const bool found = comm_name.custom_path(); //cerca il file in custom o in locale 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; bool our_app = name.len() > 2;
if (our_app && atoi(name) < 70) 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 ... if (!our_app) // Non e' un programma di campo per cui ...
utente = 0; // ... non aggiungo il codice utente al comando utente = 0; // ... non aggiungo il codice utente al comando
@ -65,7 +66,7 @@ long TExternal_app::run(
path << _path.mid(params); path << _path.mid(params);
} }
if (utente) if (utente && path.find(" /u") < 0)
path << " /u" << user(); path << " /u" << user();
// save cwd // save cwd

View File

@ -3618,30 +3618,29 @@ bool TRectype::get_bool(const char* fieldname) const
TDate TRectype::get_date(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; return d;
} }
void TRectype::put(const char* fieldname, int val) void TRectype::put(const char* fieldname, int val)
{ {
TString16 tmp; char tmp[16];
tmp.format("%d", val); itoa(val, tmp, 10);
put_str(fieldname, tmp); put_str(fieldname, tmp);
} }
void TRectype::put(const char* fieldname, long val) void TRectype::put(const char* fieldname, long val)
{ {
TString16 tmp; char tmp[16];
tmp.format("%ld", val); ltoa(val, tmp, 10);
put_str(fieldname, tmp); put_str(fieldname, tmp);
} }
void TRectype::put(const char* fieldname, word val) void TRectype::put(const char* fieldname, word val)
{ {
TString16 tmp; tmp.format("%u", val); put(fieldname, (int)val);
put_str( fieldname, tmp);
} }
void TRectype::put(const char* fieldname, const real& 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) void TRectype::put(const char* fieldname, const TDate& val)
{ {
// put_str( fieldname, val.string(full));
put( fieldname, val.date2ansi()); put( fieldname, val.date2ansi());
} }
@ -3669,7 +3667,7 @@ void TRectype::put(const char* fieldname, char val)
void TRectype::put(const char* fieldname, bool val) void TRectype::put(const char* fieldname, bool val)
{ {
put( fieldname, val ? 'X' : ' '); put(fieldname, val ? 'X' : ' ');
} }

View File

@ -376,10 +376,10 @@ public:
// @cmember Azzera il campo // @cmember Azzera il campo
void reset(const char * fld_id) {set(fld_id, "");} void reset(const char * fld_id) {set(fld_id, "");}
// @cmember Legge, dalla relazione <p Trelation>, i valori del campo con specifica FIELD // @cmember Legge, dalla relazione <p TRelation>, i valori del campo con specifica FIELD
void autoload(const TRelation& r); virtual void autoload(const TRelation& r);
// @cmember Scrive, dalla relazione <p Trelation>, i valori del campo con specifica FIELD // @cmember Scrive, dalla relazione <p TRelation>, i valori del campo con specifica FIELD
void autosave(TRelation& r) const; virtual void autosave(TRelation& r) const;
// @cmember Permette di mandare un tasto ad un campo // @cmember Permette di mandare un tasto ad un campo
void send_key(KEY key, short id, TMask_field* from = NULL); void send_key(KEY key, short id, TMask_field* from = NULL);

View File

@ -24,7 +24,7 @@ const TToken_string& empty_string()
// Most descriptions will fit in fifty characters // Most descriptions will fit in fifty characters
const int DEFAULT_SIZE = 50; const int DEFAULT_SIZE = 50;
const int MAX_SIZE = 32000; const int MAX_SIZE = 65535;
inline bool is_space(char c) inline bool is_space(char c)
{ return c >= '\t' && c <= ' '; } { return c >= '\t' && c <= ' '; }
@ -97,7 +97,7 @@ int TString::make_room(
if (new_size > MAX_SIZE) if (new_size > MAX_SIZE)
new_size = MAX_SIZE; new_size = MAX_SIZE;
if (new_size < min_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); resize(int(new_size), true);
} }
return lun; return lun;
@ -149,7 +149,6 @@ char TString::shift(int n)
return r; return r;
} }
TString& TString::operator <<(const char* s) TString& TString::operator <<(const char* s)
{ {
if (s && *s) if (s && *s)
@ -171,23 +170,20 @@ TString& TString::operator <<(char c)
TString& TString::operator <<(int n) TString& TString::operator <<(int n)
{ {
char s[16]; char s[16]; _itoa(n, s, 10);
sprintf(s, "%d", n);
return operator <<(s); return operator <<(s);
} }
TString& TString::operator <<(long n) TString& TString::operator <<(long n)
{ {
char s[16]; char s[16]; _ltoa(n, s, 10);
sprintf(s, "%ld", n);
return operator <<(s); return operator <<(s);
} }
TString& TString::operator <<(double n) TString& TString::operator <<(double n)
{ {
char s[32]; char s[32]; sprintf(s, "%lg", n);
sprintf(s, "%lg", n);
return operator <<(s); return operator <<(s);
} }
@ -245,7 +241,6 @@ bool TString::full() const
} }
TString& TString::strip_spaces() TString& TString::strip_spaces()
{ {
char instring = '\0'; char instring = '\0';
@ -1826,7 +1821,7 @@ int TToken_string::get_pos(const char* s)
// Certified 80% // Certified 80%
int TToken_string::get_pos(long n) 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); return get_pos(s);
} }
@ -1894,8 +1889,7 @@ void TToken_string::add(char c, int pos)
// Certified 100% // Certified 100%
void TToken_string::add(long n, int pos) void TToken_string::add(long n, int pos)
{ {
char s[16]; char s[16]; _ltoa(n, s, 10);
sprintf(s, "%ld", n);
add(s, pos); add(s, pos);
} }
@ -1903,8 +1897,7 @@ void TToken_string::add(long n, int pos)
// Certified 100% // Certified 100%
void TToken_string::add(int n, int pos) void TToken_string::add(int n, int pos)
{ {
char s[16]; char s[16]; _itoa(n, s, 10);
sprintf(s, "%d", n);
add(s, pos); 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) TParagraph_string::TParagraph_string(const char* s, int width)
: TToken_string(s, '|'), _width(width) : TToken_string(s, '|'), _width(width)
{ tokenize(); } { tokenize(); }
const TString& TParagraph_string::operator =(const char* s) 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) if (objptr(n) == NULL)
n = TArray::add(new TToken_string(s), n); n = TArray::add(new TToken_string(s), n);
else row(n) = s; else
row(n) = s;
return n; return n;
} }