Patch: 2.1 no patch (linux)
Files : Modifiche per la compilazione sotto Linux. Verificare la eatwhite (il file incstr.cpp di xvaga.cpp non deve servire sotto Windows). Verificare anche incstr.h git-svn-id: svn://10.65.10.50/trunk@12158 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
		
							parent
							
								
									4b78c47bc4
								
							
						
					
					
						commit
						320f34e5c8
					
				@ -8,11 +8,10 @@
 | 
			
		||||
#include <reprint.h>
 | 
			
		||||
#include <statbar.h>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
TVariant& TVariant_stack::peek(int depth)
 | 
			
		||||
{
 | 
			
		||||
  const int sp = _sp-depth-1;
 | 
			
		||||
  return sp >= 0 ? (TVariant&)_var[sp] : NULL_VARIANT;
 | 
			
		||||
  return sp >= 0 ? (TVariant&)_var[sp] : (TVariant &)NULL_VARIANT;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool TVariant_stack::drop()
 | 
			
		||||
@ -498,7 +497,7 @@ void TAVM::log_error(const char* str)
 | 
			
		||||
bool TAVM::get_token(istream& instr, TString& str) const
 | 
			
		||||
{
 | 
			
		||||
  str.cut(0);
 | 
			
		||||
  instr.eatwhite();
 | 
			
		||||
  eatwhite(instr);
 | 
			
		||||
  if (instr.eof())
 | 
			
		||||
    return false;
 | 
			
		||||
  char c;
 | 
			
		||||
@ -661,7 +660,7 @@ bool TAVM::compile(istream& instr, TBytecode& bytecode)
 | 
			
		||||
          case avm_loop:
 | 
			
		||||
          case avm_plus_loop:
 | 
			
		||||
            {
 | 
			
		||||
              const do_pos = find_matching(bytecode, avm_do);
 | 
			
		||||
              const int do_pos = find_matching(bytecode, avm_do);
 | 
			
		||||
              if (do_pos < 0)
 | 
			
		||||
              {
 | 
			
		||||
                _last_error.cut(0) << str << " without matching DO";
 | 
			
		||||
@ -1133,7 +1132,7 @@ void TAVM::do_restart(bool cold)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
TAVM::TAVM(TAlex_virtual_machine* vm) 
 | 
			
		||||
    : _vm(vm), _outstr(NULL), _interactive(false)
 | 
			
		||||
    : _vm(vm), _interactive(false), _outstr(NULL)
 | 
			
		||||
{ 
 | 
			
		||||
  do_restart(true);
 | 
			
		||||
}
 | 
			
		||||
@ -1172,7 +1171,12 @@ bool TAlex_virtual_machine::execute(const TBytecode& bc)
 | 
			
		||||
 | 
			
		||||
bool TAlex_virtual_machine::compile(const char* cmd, TBytecode& bc)
 | 
			
		||||
{
 | 
			
		||||
  istrstream instr((char*)cmd, strlen(cmd));
 | 
			
		||||
#ifdef LINUX
 | 
			
		||||
	string s(cmd);
 | 
			
		||||
  istringstream instr(s);
 | 
			
		||||
#else
 | 
			
		||||
  istrstream instr((char*)cmd, (size_t)strlen(cmd));
 | 
			
		||||
#endif
 | 
			
		||||
  return compile(instr, bc);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,8 +1,4 @@
 | 
			
		||||
#ifdef WIN32
 | 
			
		||||
#include <fstream.h>
 | 
			
		||||
#else
 | 
			
		||||
#include "../xvaga/incstr.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include <diction.h>
 | 
			
		||||
#include <extcdecl.h>
 | 
			
		||||
@ -18,14 +14,14 @@
 | 
			
		||||
// TVariant
 | 
			
		||||
///////////////////////////////////////////////////////////
 | 
			
		||||
 | 
			
		||||
static const TVariant NULL_VARIANT;
 | 
			
		||||
const TVariant NULL_VARIANT;
 | 
			
		||||
 | 
			
		||||
void TVariant::set_null()
 | 
			
		||||
{
 | 
			
		||||
  if (_ptr != NULL)
 | 
			
		||||
  {
 | 
			
		||||
    if (_type != _nullfld && _type != _longfld)
 | 
			
		||||
      delete _ptr;
 | 
			
		||||
      delete (char *) _ptr;
 | 
			
		||||
    _ptr = NULL;
 | 
			
		||||
  }
 | 
			
		||||
  _type = _nullfld;
 | 
			
		||||
@ -609,7 +605,8 @@ bool TRecordset::save_as(const char* path, TRecordsetExportFormat fmt)
 | 
			
		||||
 | 
			
		||||
int TRecordset::find_column(const char* column_name) const
 | 
			
		||||
{
 | 
			
		||||
  for (int i = columns()-1; i >= 0; i--)
 | 
			
		||||
	int i;
 | 
			
		||||
  for (i = columns()-1; i >= 0; i--)
 | 
			
		||||
  {
 | 
			
		||||
    const TRecordset_column_info& info = column_info(i);
 | 
			
		||||
    if (info._name == column_name)
 | 
			
		||||
@ -1441,7 +1438,7 @@ const TString& TCursor_parser::pop()
 | 
			
		||||
  {
 | 
			
		||||
    _token.cut(0);
 | 
			
		||||
   
 | 
			
		||||
    _instr.eatwhite();
 | 
			
		||||
    eatwhite(_instr);
 | 
			
		||||
    if (_instr.eof())
 | 
			
		||||
      return _token;
 | 
			
		||||
  
 | 
			
		||||
@ -1691,7 +1688,6 @@ TCursor_parser::TCursor_parser(istream& instr, TArray& col)
 | 
			
		||||
    return;
 | 
			
		||||
 | 
			
		||||
  const int logicnum = table2logic(tok);
 | 
			
		||||
  const char* tab = NULL;
 | 
			
		||||
 | 
			
		||||
  if (logicnum != LF_TAB && logicnum != LF_TABCOM)
 | 
			
		||||
    _relation = new TRelation(logicnum);
 | 
			
		||||
@ -1915,7 +1911,12 @@ TCursor* TISAM_recordset::cursor() const
 | 
			
		||||
    TString use; parsed_text(use);
 | 
			
		||||
    TPerformance_profiler prof("ISAM query");
 | 
			
		||||
    TISAM_recordset* my = (TISAM_recordset*)this;
 | 
			
		||||
#ifdef LINUX
 | 
			
		||||
		string s(use.get_buffer());
 | 
			
		||||
    istringstream instr(s);
 | 
			
		||||
#else
 | 
			
		||||
    istrstream instr(use.get_buffer(), use.len());
 | 
			
		||||
#endif
 | 
			
		||||
    TCursor_parser parser(instr, my->_column);
 | 
			
		||||
 | 
			
		||||
    my->_relation = parser.get_relation();
 | 
			
		||||
 | 
			
		||||
@ -166,12 +166,12 @@ bool TReport_font::load(const TXmlItem& item)
 | 
			
		||||
  return font != NULL;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
TReport_font::TReport_font() : _fontid(NULL), _win_mapped(NULL_WIN)
 | 
			
		||||
TReport_font::TReport_font() : _win_mapped(NULL_WIN), _fontid(NULL)
 | 
			
		||||
{ 
 | 
			
		||||
  create("Courier New", DEFAULT_FONT_SIZE, XVT_FS_NONE);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
TReport_font::TReport_font(const TReport_font& f) : _fontid(NULL), _win_mapped(NULL_WIN)
 | 
			
		||||
TReport_font::TReport_font(const TReport_font& f) : _win_mapped(NULL_WIN), _fontid(NULL)
 | 
			
		||||
{ copy(f); }
 | 
			
		||||
 | 
			
		||||
TReport_font::~TReport_font() 
 | 
			
		||||
@ -441,7 +441,7 @@ static short get_num_attr(const TXmlItem& item, const char* attr, short def = 0)
 | 
			
		||||
  const TString& str = item.GetAttr(attr);
 | 
			
		||||
  if (str.not_empty())
 | 
			
		||||
  {
 | 
			
		||||
    real n = str; n *=CENTO ;
 | 
			
		||||
    real n(str); n *=CENTO ;
 | 
			
		||||
    def = (short)n.integer();
 | 
			
		||||
  }
 | 
			
		||||
  return def;
 | 
			
		||||
@ -548,7 +548,9 @@ int TReport_section::add(TObject& obj)
 | 
			
		||||
 | 
			
		||||
int TReport_section::find_field_pos(int id)
 | 
			
		||||
{
 | 
			
		||||
  for (int i = items()-1; i >= 0; i--)
 | 
			
		||||
	int i;
 | 
			
		||||
	
 | 
			
		||||
  for (i = items()-1; i >= 0; i--)
 | 
			
		||||
  {
 | 
			
		||||
    if (field(i).id() == id)
 | 
			
		||||
      break;
 | 
			
		||||
@ -750,10 +752,12 @@ void TReport_section::load(const TXmlItem& sec)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
TReport_section::TReport_section(TReport& r, char t, int l) 
 | 
			
		||||
               : _report(r), _type(t), _level(l), _font(NULL), 
 | 
			
		||||
                 _size(0,0), _pos(0,0), 
 | 
			
		||||
                 _page_break(false), _hidden_if_needed(false), _repeat(false),
 | 
			
		||||
                 _hidden(false), _deactivated(false)
 | 
			
		||||
               : _report(r), _type(t), _level(l), _pos(0,0),
 | 
			
		||||
                 _size(0,0), _page_break(false), _hidden_if_needed(false),
 | 
			
		||||
                 _repeat(false), _hidden(false), _deactivated(false), _font(NULL)
 | 
			
		||||
 | 
			
		||||
                 
 | 
			
		||||
 | 
			
		||||
{ }
 | 
			
		||||
 | 
			
		||||
TReport_section::~TReport_section()
 | 
			
		||||
@ -1569,10 +1573,11 @@ int TReport_field::compare(const TSortable& s) const
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
TReport_field::TReport_field(TReport_section* sec) 
 | 
			
		||||
             : _section(sec), _id(0), _type('T'),
 | 
			
		||||
               _font(NULL), _halign('L'), _valign('T'),_dynamic_height(false),
 | 
			
		||||
               _selected(false), _hidden(false), _deactivated(false), _hide_zeroes(false),
 | 
			
		||||
               _border(0), _fgcolor(COLOR_BLACK), _bgcolor(COLOR_WHITE), _rct(0,0,1000,100)
 | 
			
		||||
             : _section(sec), _id(0), _type('T'), _rct(0,0,1000,100),
 | 
			
		||||
               _fgcolor(COLOR_BLACK), _bgcolor(COLOR_WHITE),
 | 
			
		||||
               _border(0), _halign('L'), _valign('T'),_dynamic_height(false), _font(NULL),
 | 
			
		||||
               _hidden(false), _deactivated(false), _hide_zeroes(false), _selected(false)
 | 
			
		||||
               
 | 
			
		||||
{ }
 | 
			
		||||
 | 
			
		||||
TReport_field::TReport_field(const TReport_field& rf) : _font(NULL)
 | 
			
		||||
@ -2448,7 +2453,7 @@ void TReport::include_libraries(bool reload)
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
TReport::TReport() : _lpi(6), _recordset(NULL), _curr_field(NULL), _include(15, ',')
 | 
			
		||||
TReport::TReport() : _lpi(6), _include(15, ','), _recordset(NULL), _curr_field(NULL)
 | 
			
		||||
{ 
 | 
			
		||||
  _expressions.set_report(this);  
 | 
			
		||||
  _prescript.set_description("PRESCRIPT");
 | 
			
		||||
 | 
			
		||||
@ -314,16 +314,16 @@ void TPrint_preview_window::handler(WINDOW win, EVENT* ep)
 | 
			
		||||
void TPrint_preview_window::do_scroll(int kx, int ky)
 | 
			
		||||
{
 | 
			
		||||
  const TPoint& r = range();
 | 
			
		||||
  TPoint or = origin();
 | 
			
		||||
  or.x += kx * r.x/8;
 | 
			
		||||
  or.y += ky * r.y/6;
 | 
			
		||||
  if (or.x < 0) or.x = 0;
 | 
			
		||||
  if (or.x > r.x) or.x = r.x;
 | 
			
		||||
  if (or.y < 0) or.y = 0;
 | 
			
		||||
  if (or.y > r.y) or.y = r.y;
 | 
			
		||||
  if (or != origin())
 | 
			
		||||
  TPoint orig = origin();
 | 
			
		||||
  orig.x += kx * r.x/8;
 | 
			
		||||
  orig.y += ky * r.y/6;
 | 
			
		||||
  if (orig.x < 0) orig.x = 0;
 | 
			
		||||
  if (orig.x > r.x) orig.x = r.x;
 | 
			
		||||
  if (orig.y < 0) orig.y = 0;
 | 
			
		||||
  if (orig.y > r.y) orig.y = r.y;
 | 
			
		||||
  if (orig != origin())
 | 
			
		||||
  {
 | 
			
		||||
    update_thumb(or.x, or.y);
 | 
			
		||||
    update_thumb(orig.x, orig.y);
 | 
			
		||||
    force_update();
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -396,7 +396,7 @@ protected:
 | 
			
		||||
  virtual void handler(WINDOW win, EVENT* ep);
 | 
			
		||||
  
 | 
			
		||||
public:
 | 
			
		||||
  void export();
 | 
			
		||||
  void export_text();
 | 
			
		||||
  TPreview_mask(TBook* book);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
@ -433,7 +433,7 @@ void TPreview_mask::handler(WINDOW win, EVENT* ep)
 | 
			
		||||
  TAutomask::handler(win, ep);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void TPreview_mask::export()
 | 
			
		||||
void TPreview_mask::export_text()
 | 
			
		||||
{
 | 
			
		||||
  TFilename n; n.temp(NULL, "txt");
 | 
			
		||||
  if (_book->export_text(n))
 | 
			
		||||
@ -451,7 +451,7 @@ bool TPreview_mask::on_field_event(TOperable_field& o, TField_event e, long joll
 | 
			
		||||
    case DLG_FINDREC : dispatch_e_menu(_pvf->win().win(), POPUP_SEARCH);break;
 | 
			
		||||
    case DLG_NEXTREC : dispatch_e_menu(_pvf->win().win(), POPUP_NEXT);  break;
 | 
			
		||||
    case DLG_LASTREC : dispatch_e_menu(_pvf->win().win(), POPUP_LAST);  break;
 | 
			
		||||
    case DLG_EDIT    : export(); break;
 | 
			
		||||
    case DLG_EDIT    : export_text(); break;
 | 
			
		||||
    default: break;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user