Patch level : 2.0 nopatch

Files correlati     : tutti
Ricompilazione Demo : [ ]
Commento            :
Cancellato un sacco, una sporta ed un sacchettino di plastica di roba inutile:
riferimenti a FOXPRO, simboli doppi, __tmp_string e compagnia bella.


git-svn-id: svn://10.65.10.50/trunk@10949 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2003-03-27 12:14:51 +00:00
parent 85776578c2
commit 80e4d5fb3e
20 changed files with 135 additions and 324 deletions

View File

@ -345,7 +345,6 @@ long TApplication::task_eh(WINDOW win, EVENT *ep)
create_backdrop();
do_events();
os_allow_another_instance();
}
break;
case E_UPDATE:
@ -557,8 +556,6 @@ bool TApplication::destroy()
void TApplication::terminate()
{
os_wake_up_caller();
close_all_dialogs();
if (_create_ok)

View File

@ -78,7 +78,7 @@
#define CCLEAREOL(w) xwclrtoeol(WINHND(w))
#define CCLEAREOS(w) xwclrtobot(WINHND(w))
#define CCLEARWIN(w) xpaint(WINHND(w), setattr[warr[(w)].bkat][iscolordisp])
#define INSET(c,s) (ustrchr((s), (c)) != (uchar *) NULL)
#define INSET(c,s) (ustrchr((s), (c)) != (byte *) NULL)
#define CBITTEST(w,p) (((w) & (0x0001 << (p))) != 0)
#define CBITSET(w,p,v) ((v) ? ((w) |= (0x0001 << (p))) : ((w) &= (~(0x0001 << (p)))))
/* @(!) 2.3.01.temp */
@ -87,43 +87,18 @@
#endif
/* @(:) 2.3.01.temp */
#define NoErr 0
//#define BADSIG (int (*)()) -1
//#define MAXMENUITEM 21
//#define MAXWIN 20
//#define MAXBORDERS 8
//#define MAXATTRS 20
//#define BackCh '_'
#define directory "dir.gen"
#define ntrrec "trc.gen"
#define nditta "dta.gen"
//#define printers "prt.gen"
//#define prcodes "prc.gen"
//#define WWMESS 0
//#define WWBAR 1
/* gia' definito in gm.h
typedef unsigned int word;
*/
typedef unsigned char byte;
#ifndef DOS
typedef unsigned char uchar;
#endif
#ifdef FOXPRO
typedef unsigned char uchar;
#endif
#ifdef XVT
#ifdef DOS
typedef unsigned char uchar;
#endif
#endif
typedef unsigned char byte;
typedef char Str8[9];
typedef char Str25[26];
typedef char Str30[32];
typedef char Str80[82];
typedef char Str255[256];
typedef uchar StCh[256];
typedef byte StCh[256];
typedef long TrDate;
typedef char PathSt[82];

View File

@ -2,7 +2,6 @@
#ifdef DOS
#define XVT_INCL_NATIVE
#include <xvt.h>
#include <checks.h>
@ -385,7 +384,8 @@ HIDDEN const char* prefname()
{
#ifdef DOS
char *s1 = getenv("PREFPATH");
if (s1 == NULL) s1 = "campo.ini";
if (s1 == NULL)
s1 = "campo.ini";
s = strdup(s1);
#else
s = malloc(32);
@ -428,7 +428,7 @@ HIDDEN BOOLEAN CGetPrawin()
BOOLEAN good = _access(prawin, 0x00) == 0;
if (good)
{
UINT len = GetPrivateProfileString("Main", "Study", "", __ptprf, sizeof(__ptprf), prawin);
const int len = xvt_sys_get_profile_string(prawin, "Main", "Study", "", __ptprf, sizeof(__ptprf));
good = len > 0;
if (good)
{
@ -441,7 +441,7 @@ HIDDEN BOOLEAN CGetPrawin()
__ptprf[len+1] = '\0';
}
GetPrivateProfileString("Main", "Firm", "COM", firm, sizeof(firm), prawin);
xvt_sys_get_profile_string(prawin, "Main", "Firm", "COM", firm, sizeof(firm));
ditta = atol(firm);
if (ditta > 0) sprintf(firm, "%05ldA", ditta);
_makepath(cprefix, NULL, __ptprf, firm, NULL);
@ -454,8 +454,8 @@ HIDDEN BOOLEAN CGetPrawin()
BOOLEAN CPutPrawin(const char* pref)
{
const char* prawin = CGetPrawinName();
BOOLEAN good = WritePrivateProfileString("Main", "Firm", pref, prawin);
WritePrivateProfileString("Main", "Study", __ptprf, prawin);
BOOLEAN good = xvt_sys_set_profile_string(prawin, "Main", "Firm", pref);
xvt_sys_set_profile_string(prawin, "Main", "Study", __ptprf);
return good;
}

View File

@ -1,4 +1,3 @@
#define XVT_INCL_NATIVE
#include <stdlib.h>
#include <applicat.h>
@ -18,7 +17,6 @@
#define USERADR 26952
#define AGAADR 26953
#define PRASSIADR 26954
#define PROCOMADR 26956
#define REFKEY (unsigned char*)"CAMPOKEY"
#define VERKEY (unsigned char*)"ìpÙˆ¬cê<"
@ -288,12 +286,6 @@ bool TDongle::hardlock_login(bool test_all_keys)
HL_LOGOUT();
if (HL_LOGIN(PRASSIADR, LOCAL_DEVICE, REFKEY, VERKEY) == STATUS_OK)
_type = _prassi_dongle;
else
{
HL_LOGOUT();
if (HL_LOGIN(PROCOMADR, LOCAL_DEVICE, REFKEY, VERKEY) == STATUS_OK)
_type = _procom_dongle;
}
}
}
HL_LOGOUT();

View File

@ -27,7 +27,7 @@ word TExternal_app::run(
comm_name.custom_path();
TString name(comm_name.name());
if (utente == TRUE) // utente puo' essere 0 = No, 1 = Si, 3 = Forzatura
if (utente == 1) // utente puo' essere 0 = No, 1 = Si, 3 = Forzatura
{
bool our_app = name.len() > 2;
if (our_app && atoi(name) < 70)

View File

@ -39,6 +39,9 @@
#define MOSTMEM 51200
#define LEASTMEM 10240
#define INT16 short
#define UINT16 unsigned short
/* @END */
/* @T */

View File

@ -196,15 +196,13 @@ const char* TDir::tab_des(const char* tab)
{
const char* t = tab; if (t[0] == '$' || t[0] == '%') t++;
TString256 tmp;
TString& tmp = get_tmp_string();
tmp << DESCDIR << "/d" << t << ".des";
#ifndef FOXPRO
TConfig cnf(tmp, DESCTAB);
t = cnf.get("Description", NULL, -1, tab);
#endif
tmp = cnf.get("Description", NULL, -1, tab);
return strcpy(__tmp_string, t);
return tmp;
}

View File

@ -448,9 +448,9 @@ void TForm_item::string_at(int x, int y, const char* s)
if (_width > 0 && strlen(s) > (word)_width) // Tronca testo se necessario
{
strncpy(__tmp_string, s, width());
__tmp_string[_width] = '\0';
s = __tmp_string;
TString& tmp = get_tmp_string();
tmp.strncpy(s, _width);
s = tmp;
}
row.put(s, x-1); // Stampa testo
}
@ -1187,15 +1187,15 @@ bool TForm_string::update()
const char* TForm_string::example() const
{
TString prova("XXXXXXXXXXXXXXXXXXXXXXXXXX");
TString& prova = get_tmp_string();
prova = "XXXXXXXXXXXXXXXXXXXXXXXXXX";
apply_format(prova);
const int w = width();
if (prova.size() > w && w > 0) prova.cut(w);
return strcpy(__tmp_string, prova);
if (prova.size() > w && w > 0)
prova.cut(w);
return prova;
}
///////////////////////////////////////////////////////////
// TForm_number
///////////////////////////////////////////////////////////
@ -1404,9 +1404,10 @@ void TForm_number::set_picture(const char *p)
const char* TForm_number::example() const
{
TString s("1234567890.123456");
TString& s = get_tmp_string();
s = "1234567890.123456";
apply_format(s);
return strcpy(__tmp_string, s);
return s;
}
///////////////////////////////////////////////////////////
@ -1747,8 +1748,9 @@ const char* TForm_date::example() const
{
const TDate dd(TODAY);
TFormatted_date d(dd); d.set_format(_format);
TString s(d.string());
return strcpy(__tmp_string, s);
TString& s = get_tmp_string();
s = d.string();
return s;
}
///////////////////////////////////////////////////////////
@ -3360,6 +3362,7 @@ void TForm::arrange_form()
// CHR(15), allora prima del posizionamento scrivo il chr(15) sulla stampante!
{
/*
int i, x;
TString str_pos;
TMask m("ba2100c");
@ -3386,14 +3389,8 @@ void TForm::arrange_form()
os_spool_row(str_pos);
os_close_spool_row();
} while (m.run() == K_ESC); // cicla sulla stampa posizionamento...
/* const int h = height(odd_page);
str_pos.cut(0);
for (i=0; i < h; i++) str_pos << "\n";
lpt = fopen(device,"w");
if (lpt == NULL) fatal_box("Non rieso ad aprire il device %s.",device);
fprintf(lpt, "%s", (const char*) str_pos); // Salta tante righe quanto e' lungo il form standard
fclose (lpt); */
printer().set_offset(-(_ipy-1), printer().get_column_offset());
*/
}
long TForm::records() const

View File

@ -481,7 +481,7 @@ void TMask::start_run()
for (int i = 0; i < max; i++)
{
TMask_field& f = fld(i);
if (f.dirty() <= TRUE)
if (f.dirty() <= 1) // Attenzione puo' valere anche 3 per i very dirty!
{
f.set_dirty(FALSE);
const bool op = f.is_operable() && !f.is_kind_of(CLASS_BUTTON_FIELD);
@ -496,20 +496,8 @@ void TMask::start_run()
for (int i = 0; i < max; i++)
{
TMask_field& f = fld(i);
/* Guy: proviamo a fregarcene
if (query_mode() && f.is_edit() && f.in_key(1) &&
!f.automagic() && !f.empty())
{
f.set_dirty(TRUE);
}
else
*/
{
if (f.dirty() == TRUE)
f.set_dirty(FALSE);
}
if (f.dirty() == 1) // Attenzione puo' valere anche 3 per i very dirty!
f.set_dirty(FALSE);
}
_init_time = clock()-start;

View File

@ -14,7 +14,6 @@ enum os_type { os_Unknown, os_Win32s, os_Windows, os_Windows95, os_Windows98,
os_type os_get_type();
void os_post_menu_event(WINDOW win, MENU_TAG tag);
void os_set_event_hook();
unsigned long os_get_free_memory();
bool os_is_removable_drive(const char* path);
@ -26,16 +25,11 @@ bool os_test_disk_free_space(const char* path, unsigned long filesize_bytes);
int os_execute(const TFilename& path, bool sync, bool iconizetask, bool showchild);
unsigned long os_execute_in_window(const TFilename& path, WINDOW win);
bool os_file_exist(const char* path);
bool os_destroy_native_icon(unsigned icon);
void os_draw_native_icon(WINDOW win, const RCT& rct, unsigned icon);
bool os_allow_another_instance();
bool os_deny_another_instance();
bool os_spawn_by_menu();
void os_wake_up_caller();
void os_iconize_window(WINDOW win);
void os_maximize_window(WINDOW win);
@ -44,9 +38,12 @@ void os_restore_window(WINDOW win);
int os_get_printer_names(TToken_string& printers);
bool os_set_default_printer(const char* name);
bool os_get_default_printer(TString& name);
/*
bool os_open_spool_row(const char* device);
bool os_spool_row(const char* str);
bool os_close_spool_row();
*/
bool os_dongle_server_running();

View File

@ -12,70 +12,10 @@
#include <utility.h>
#include <window.h>
///////////////////////////////////////////////////////////
// Win32 event hook
///////////////////////////////////////////////////////////
HIDDEN BOOLEAN event_hook(HWND hwnd,
UINT msg,
UINT wparam,
ULONG lparam,
long* ret)
{
switch(msg)
{
case WM_MENUCHAR:
if (wparam > ' ' && wparam <= 'z')
{
WINDOW win = cur_win();
if (win != NULL_WIN)
{
const KEY key = toupper(wparam)+K_CTRL;
dispatch_e_char(win, key);
*ret = 2 << 16;
}
}
break;
case WM_KEYDOWN:
if (wparam == VK_F1)
{
if ((lparam & (1<<29)) == 0) // Il tasto alt non e' premuto
{
KEY k = K_F1;
int sc = GetAsyncKeyState(VK_CONTROL); // Stato del tasto control
if (sc & 0x8000) k += K_CTRL;
int ss = GetAsyncKeyState(VK_SHIFT); // Stato del tasto shift
if (ss & 0x8000) k += K_SHIFT;
WINDOW win = cur_win();
if (win != NULL_WIN)
dispatch_e_char(win, k);
}
}
break;
default:
break;
}
return TRUE; // Continua col processo normale
}
///////////////////////////////////////////////////////////
// Operating system dependent functions
///////////////////////////////////////////////////////////
bool os_allow_another_instance()
{
return TRUE;
}
bool os_deny_another_instance()
{
return FALSE;
}
bool os_destroy_native_icon(unsigned icon)
{
return DestroyIcon((HICON)icon) != 0;
@ -131,8 +71,9 @@ static unsigned long get_disk_size(const char* path, bool tot, char unit)
case 'T': nBytes >>= 40; break; // Terabytes
default: break;
}
unsigned long nVal = nBytes > ULONG_MAX ? (unsigned long)ULONG_MAX
: (unsigned long)nBytes;
const unsigned long nMax = (unsigned long)(~0L);
unsigned long nVal = nBytes > nMax ? nMax : (unsigned long)nBytes;
return nVal;
}
@ -322,11 +263,10 @@ bool os_get_default_printer(TString& name)
bool os_spawn_by_menu()
{
#ifdef DBG
bool ok = TRUE;
#else
TString str = main_app().name();
bool ok = str == "ba0100";
bool ok = true;
#ifndef DBG
TString16 str = main_app().name();
ok = str == "ba0100";
if (!ok)
{
str.insert("ba0100->", 0);
@ -369,72 +309,6 @@ void os_post_menu_event(WINDOW win, MENU_TAG tag)
PostMessage(w, WM_COMMAND, tag, 0L);
}
void os_set_event_hook()
{
xvt_vobj_set_attr(NULL_WIN, ATTR_EVENT_HOOK, (long)event_hook);
long twin_style = WSF_ICONIZABLE | WSF_CLOSE | WSF_SIZE;
const int scx = GetSystemMetrics(SM_CXSCREEN);
const int scy = GetSystemMetrics(SM_CYSCREEN);
static RCT rct;
if (scx <= 640 && os_get_type() >= os_Windows95)
{
const int bcx = GetSystemMetrics(SM_CXFRAME);
const int bcy = GetSystemMetrics(SM_CYFRAME);
rct.left = -bcx;
rct.top = GetSystemMetrics(SM_CYCAPTION)-bcy-1;
rct.right = scx+bcx;
rct.bottom = scy+bcy;
xvt_vobj_set_attr(NULL_WIN, ATTR_WIN_PM_TWIN_STARTUP_RCT, long(&rct));
}
else
{
TConfig cfg(CONFIG_USER, "Colors");
const int res = cfg.get_int("Resolution");
if (res >= 640 && res < scx)
{
const int width = res + 2*GetSystemMetrics(SM_CXFRAME);
const int height = (res * 3) / 4 + 2*GetSystemMetrics(SM_CYFRAME) - GetSystemMetrics(SM_CYCAPTION) - 1;
const int deltax = (scx - width) / 2;
const int deltay = (scy - height) / 2;
rct.left = deltax;
rct.top = deltay;
rct.right = deltax + width;
rct.bottom = deltay + height;
xvt_vobj_set_attr(NULL_WIN, ATTR_WIN_PM_TWIN_STARTUP_RCT, long(&rct));
}
else
twin_style |= WSF_MAXIMIZED;
}
xvt_vobj_set_attr(NULL_WIN,ATTR_WIN_PM_TWIN_STARTUP_STYLE, twin_style);
}
void os_wake_up_caller()
{
HWND hwnd = (HWND)xvt_vobj_get_attr(TASK_WIN, ATTR_NATIVE_WINDOW);
}
bool os_file_exist(const char* file)
{
return FALSE;
}
bool os_open_spool_row(const char* device)
{
return TRUE;
}
bool os_spool_row(const char* str)
{
return FALSE;
}
bool os_close_spool_row()
{
return TRUE;
}
void os_iconize_window(WINDOW win)
{
HWND hwnd = (HWND)xvt_vobj_get_attr(win, ATTR_NATIVE_WINDOW);

View File

@ -1,4 +1,5 @@
#include <codeb.h>
#include <diction.h>
#include <extcdecl.h>
#include <currency.h>
#include <prefix.h>
@ -857,12 +858,13 @@ TFirm::TFirm(long code)
// TPrefix
///////////////////////////////////////////////////////////
HIDDEN const char* const glockname = "xx";
TPrefix::TPrefix() : _filelevel(0), _items(0), _firm(NULL)
{
_prefix = ".";
CGetPref();
if (!fexist(__ptprf) || strchr(__ptprf, ' ') != NULL)
fatal_box(FR("Percorso dati non valido: '%s'"), __ptprf);
const TFilename dir(cprefix);
const long primaditta = atol(dir.name());
@ -872,7 +874,6 @@ TPrefix::TPrefix() : _filelevel(0), _items(0), _firm(NULL)
DB_init();
}
TPrefix::~TPrefix()
{
set();
@ -988,7 +989,7 @@ bool TPrefix::test(const char* s) const
s1.add("dir.gen");
if (!s1.exist())
return error_box("Impossibile trovare il file '%s'", (const char*)s1);
return error_box(FR("Impossibile trovare il file '%s'"), (const char*)s1);
}
return TRUE;
@ -1043,6 +1044,9 @@ const char* TPrefix::get_studio() const
bool TPrefix::set_studio(const char* study, long ditta)
{
TFilename dirtest(study);
if (!dirtest.exist() || dirtest.find(' ') >= 0)
return FALSE;
dirtest.add("com/dir.gen");
if (!dirtest.exist())
return FALSE;

View File

@ -13,8 +13,6 @@
#include <bagn001a.h>
#define STYLE_NUM 4
HIDDEN TPrinter* _printer = NULL;
TPrinter& printer()
@ -1697,8 +1695,10 @@ void TPrinter::print_txt(TTextfile& txt)
xvt_print_open();
xvt_print_start_thread(start_print, (long) (&PrintWhat));
xvt_print_close();
/*
if (is_generic())
os_spool_row("\n"); // Force flushing on Generic printer
*/
}
}
@ -1745,8 +1745,6 @@ void TPrinter::close ()
else if (_printertype == winprinter && _txt.lines() > 0L)
{
print_txt(_txt);
if (is_generic())
os_spool_row("\n"); // Force flushing on Generic printer
os_set_default_printer(_defPrinter);
}
else if (_printertype == fileprinter)

View File

@ -976,7 +976,7 @@ bool TRelation_application::save(bool check_dirty)
const KEY last = _mask->last_key();
const bool annulla = last == K_ESC || last == K_QUIT || last == K_F9;
const bool errore = dirty && _mask->field(dirty).dirty() > TRUE;
const bool errore = dirty && _mask->field(dirty).dirty() > 1;
KEY k;
if (errore)

View File

@ -1,11 +1,9 @@
#ifndef __STDTYPES_H
#define __STDTYPES_H
#ifdef XVT
#ifndef XVT_INCL_XVTENV
#include <xvt_env.h>
#endif
#endif
#ifndef DBG
#ifndef NDEBUG
@ -20,76 +18,42 @@
#define EOL -1
#define NOERR 0
// @doc EXTERNAL
// @type UINT8 | Altro nome di assegnazione per gli unsigned char
typedef unsigned char UINT8;
// @type UINT16 | Altro nome di assegnazione per gli unsigned short
typedef unsigned short UINT16;
// @doc EXTERNAL
// @type UINT32 | Altro nome di assegnazione per gli unsigned long
#if XVT_OS==XVT_OS_WIN32
typedef unsigned int UINT32;
#else
typedef unsigned long UINT32;
#endif
// @doc EXTERNAL
// @type INT8 | Altro nome di assegnazione per i char
typedef char INT8;
// @type INT16 | Altro nome di assegnazione per gli short
typedef short INT16;
// @doc EXTERNAL
// @type INT32 | Altro nome di assegnazione per i long
#if XVT_OS==XVT_OS_WIN32
typedef int INT32;
#else
typedef long INT32;
#endif
// @doc EXTERNAL
// @type bool | Tipo booleano che puo' assumere i valori TRUE (definito come 1)
// e FALSE (definito come 0).
#if XVT_OS==XVT_OS_WIN32
#ifndef __cplusplus
typedef unsigned short bool;
#endif
#ifdef __cplusplus
#ifndef FALSE
#define FALSE false
#define TRUE true
#endif
#else
typedef unsigned char bool;
#endif
#ifndef FALSE
#define FALSE 0
#define TRUE 1
typedef unsigned short bool;
#ifndef FALSE
#define FALSE 0
#define TRUE 1
#endif
#endif
// @doc EXTERNAL
// @type word | Tipo per la definizione di tipi di lunghezza pari a due byte
typedef UINT16 word;
typedef unsigned short word;
// @doc EXTERNAL
// @type dword | Tipo per la definizione di tipi di lunghezza pari a quattro byte
typedef UINT32 dword;
typedef unsigned int dword;
// @doc EXTERNAL
// @type byte | Tipo per la definizione di tipi di lunghezza pari ad un byte
typedef UINT8 byte;
typedef unsigned char byte;
// @doc EXTERNAL
// @type KEY | Tipo per la definizione di variabili destinati a contenere i caratteri
// immessi da tastiera
typedef UINT16 KEY;
typedef unsigned short KEY;
#define UNDEFINED -32767
@ -103,13 +67,6 @@ void set_std_level(const long l);
void init_global_vars();
void free_global_vars();
/*
#ifdef __cplusplus
extern void* operator new(unsigned);
extern void operator delete(void*);
#endif
*/
#endif // __STDTYPES_H

View File

@ -754,6 +754,21 @@ TString& TString::picture(
return *this;
}
// Certified 99% (s != NULL)
int TString::strncpy(const char* s, int n)
{
if (n > size())
resize(n, FALSE);
int i = 0;
if (s && *s)
{
for (; *s && i < n; i++)
_str[i] = *s++;
}
_str[i] = '\0';
return i;
}
// Certified 90% (spark size limited)
// @doc EXTERNAL
@ -940,16 +955,6 @@ void TFixed_string::resize(int size, bool)
_size, size, _str);
}
// Certified 99% (s != NULL)
void TFixed_string::strncpy(const char* s, int n)
{
CHECKD(n <= _size, "Fixed string can't be strncpyed: lenght ", n);
int i = 0;
if (s && *s)
for (; *s && i < n; i++) _str[i] = *s++;
_str[i] = '\0';
}
// Certified 99%
// @doc EXTERNAL

View File

@ -168,6 +168,9 @@ public:
// @cmember Formatta una stringa usando il formato dato da pic
TString& picture(const char* pic, const char* s);
// @cmember Copia n caratteri nella stringa oggetto
int strncpy(const char* s, int n);
// @cmember Manda un output formattato alla stringa oggetto
virtual TString& format(const char* fmt, ...);
@ -293,8 +296,6 @@ public:
// @cmember Assegna la stringa passata
const TString& operator =(const char* str)
{ return set(str); }
// @cmember Copia n caratteri nella stringa oggetto
void strncpy(const char* s, int n);
};

View File

@ -1,5 +1,6 @@
#include <direct.h>
#include <diction.h>
#include <os_dep.h>
#include <strings.h>
@ -75,11 +76,6 @@ bool fexist(
const char* file) // @parm Nome del file di cui contrallare l'esistenza
{
int err = access(file, 0x00);
if (err) // Se la access fallisce provo con una funzione dipendente dal sistema
{
if (os_file_exist(file))
err = 0;
}
return err == 0;
}
@ -115,8 +111,6 @@ bool make_dir(
return res == 0;
}
#ifndef FOXPRO
// @doc EXTERNAL
// @func Ritorna la lista dei file il cui nome corrisponde alla stringa (con caratteri
@ -182,15 +176,19 @@ bool input_filename(TFilename& file)
strcpy(fs.name, file);
strcpy(fs.creator, "AGA");
const bool good = xvt_dm_post_file_open(&fs, "Selezionare il file ...") == FL_OK;
const bool good = xvt_dm_post_file_open(&fs, TR("Selezionare il file")) == FL_OK;
xvt_fsys_set_dir(&dir);
if (good)
file = fs.name;
if (good)
{
char buf[_MAX_PATH];
xvt_fsys_convert_dir_to_str(&fs.dir, buf, sizeof(buf));
file = buf;
file.add(fs.name);
}
return good;
}
#endif
// Certified 99%
// @doc EXTERNAL
@ -207,12 +205,15 @@ char* format(
{
va_list pars;
TString& tmp = get_tmp_string(512);
char* buf = tmp.get_buffer();
va_start(pars, fmt);
const int tot = vsprintf(__tmp_string, fmt, pars);
const int tot = vsprintf(buf, fmt, pars);
va_end(pars);
CHECK(tot >= 0 && tot < sizeof(__tmp_string)-1, "Ue'! Ma quanto scrivi?");
return(__tmp_string);
CHECK(tot >= 0 && tot < 512, "Ue'! Ma quanto scrivi?");
return buf;
}
// @doc EXTERNAL

View File

@ -2603,8 +2603,8 @@ TViswin::TViswin(const char *fname,
_showbuts = cnf.get_bool("Bottoni", NULL, -1,TRUE);
// Se rulers vale 3 allora leggi dal config il vero valore
if (_rulers != FALSE && _rulers != TRUE)
_rulers = cnf.get_bool("Righelli", NULL, -1,TRUE);
if (_rulers != 0 && _rulers != 1)
_rulers = cnf.get_bool("Righelli", NULL, -1, TRUE);
PRINT_HEIGHT = cnf.get_int("FontSize", NULL, -1, PRINT_HEIGHT);
}

View File

@ -1,5 +1,6 @@
#include <applicat.h>
#include <colors.h>
#include <config.h>
#include <controls.h>
#include <mask.h>
#include <os_dep.h>
@ -377,7 +378,34 @@ void set_xvt_hooks()
{
xvt_vobj_set_attr(NULL_WIN,ATTR_ERRMSG_HANDLER, (long)error_hook);
xvt_vobj_set_attr(NULL_WIN,ATTR_WIN_PM_DRAWABLE_TWIN, TRUE);
os_set_event_hook();
long twin_style = WSF_ICONIZABLE | WSF_CLOSE | WSF_SIZE;
TConfig cfg(CONFIG_USER, "Colors");
const int res = cfg.get_int("Resolution");
const int scx = xvt_vobj_get_attr(NULL_WIN, ATTR_SCREEN_WIDTH);
const int scy = xvt_vobj_get_attr(NULL_WIN, ATTR_SCREEN_HEIGHT);
if (res >= 640 && res < scx)
{
const fx = xvt_vobj_get_attr(NULL_WIN, ATTR_FRAME_WIDTH);
const fy = xvt_vobj_get_attr(NULL_WIN, ATTR_FRAME_HEIGHT);
const cy = xvt_vobj_get_attr(NULL_WIN, ATTR_TITLE_HEIGHT);
const int width = res + 2*fx;
const int height = (res * scy) / scx + 2*fy + cy;
const int deltax = (scx - width) / 2;
const int deltay = (scy - height) / 2;
RCT rct;
rct.left = deltax;
rct.top = deltay;
rct.right = deltax + width;
rct.bottom = deltay + height;
xvt_vobj_set_attr(NULL_WIN, ATTR_WIN_PM_TWIN_STARTUP_RCT, long(&rct));
}
else
twin_style |= WSF_MAXIMIZED;
xvt_vobj_set_attr(NULL_WIN,ATTR_WIN_PM_TWIN_STARTUP_STYLE, twin_style);
}
// @doc INTERNAL
@ -388,15 +416,11 @@ void customize_controls(
{
if (on)
{
//#if XVT_OS == XVT_OS_WIN || XVT_OS == XVT_OS_WIN32
// HInstance = (HINSTANCE)xvt_vobj_get_attr(NULL_WIN, ATTR_WIN_INSTANCE);
//#endif
customize_colors();
init_controls();
}
else
{
os_deny_another_instance();
free_controls();
}
}