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;
// Key 1 = ANNO+CODATT+PROGR
// Key 1 = ANNO+PROGR
DEFFLD(ANNO)
DEFFLD(CODATT)
DEFFLD(PROGR)
// Key 2 = TIPOCF+CODCF+OCFPI+PROGR

View File

@ -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

View File

@ -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' : ' ');
}

View File

@ -376,10 +376,10 @@ public:
// @cmember Azzera il campo
void reset(const char * fld_id) {set(fld_id, "");}
// @cmember Legge, dalla relazione <p Trelation>, i valori del campo con specifica FIELD
void autoload(const TRelation& r);
// @cmember Scrive, dalla relazione <p Trelation>, i valori del campo con specifica FIELD
void autosave(TRelation& r) const;
// @cmember Legge, dalla relazione <p TRelation>, i valori del campo con specifica FIELD
virtual void autoload(const TRelation& r);
// @cmember Scrive, dalla relazione <p TRelation>, 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);

View File

@ -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;
}