*** empty log message ***

This commit is contained in:
hyung-hwan 2007-01-10 14:30:44 +00:00
parent e1d050a3bb
commit d08f469091
5 changed files with 81 additions and 88 deletions

View File

@ -1,5 +1,5 @@
/* /*
* $Id: Awk.cpp,v 1.14 2007-01-07 07:30:40 bacon Exp $ * $Id: Awk.cpp,v 1.15 2007-01-10 14:30:43 bacon Exp $
*/ */
#include "stdafx.h" #include "stdafx.h"
@ -29,17 +29,12 @@ STDMETHODIMP CAwk::InterfaceSupportsErrorInfo(REFIID riid)
} }
CAwk::CAwk (): CAwk::CAwk ():
handle(NULL), handle (NULL),
read_src_buf(NULL), read_src_buf (NULL),
write_src_buf(NULL), write_src_buf (NULL),
write_extio_buf(NULL) write_extio_buf (NULL),
entry_point (NULL)
{ {
#ifdef _DEBUG
TCHAR x[128];
_sntprintf (x, 128, _T("CAwk::CAwk %p"), this);
MessageBox (NULL, x, x, MB_OK);
#endif
/* TODO: what is the best default option? */ /* TODO: what is the best default option? */
option = option =
ASE_AWK_IMPLICIT | ASE_AWK_IMPLICIT |
@ -58,31 +53,16 @@ CAwk::CAwk ():
errnum = 0; errnum = 0;
errlin = 0; errlin = 0;
errmsg[0] = _T('\0'); errmsg[0] = ASE_T('\0');
} }
CAwk::~CAwk () CAwk::~CAwk ()
{ {
#ifdef _DEBUG if (entry_point != NULL) SysFreeString (entry_point);
TCHAR x[128];
_sntprintf (x, 128, _T("CAwk::~CAwk %p"), this);
MessageBox (NULL, x, x, MB_OK);
#endif
if (write_extio_buf != NULL) if (write_extio_buf != NULL) write_extio_buf->Release ();
{ if (write_src_buf != NULL) write_src_buf->Release ();
write_extio_buf->Release (); if (read_src_buf != NULL) read_src_buf->Release ();
}
if (write_src_buf != NULL)
{
write_src_buf->Release ();
}
if (read_src_buf != NULL)
{
read_src_buf->Release ();
}
if (handle != NULL) if (handle != NULL)
{ {
@ -204,11 +184,7 @@ static ase_ssize_t __read_source (
HRESULT hr = CoCreateInstance ( HRESULT hr = CoCreateInstance (
CLSID_Buffer, NULL, CLSCTX_ALL, CLSID_Buffer, NULL, CLSCTX_ALL,
IID_IBuffer, (void**)&awk->read_src_buf); IID_IBuffer, (void**)&awk->read_src_buf);
if (FAILED(hr)) if (FAILED(hr)) return -1;
{
MessageBox (NULL, _T("COCREATEINSTANCE FAILED"), _T("FUCK"), MB_OK);
return -1;
}
awk->read_src_pos = 0; awk->read_src_pos = 0;
awk->read_src_len = 0; awk->read_src_len = 0;
@ -275,15 +251,11 @@ static ase_ssize_t __write_source (
hr = CoCreateInstance ( hr = CoCreateInstance (
CLSID_Buffer, NULL, CLSCTX_ALL, CLSID_Buffer, NULL, CLSCTX_ALL,
IID_IBuffer, (void**)&awk->write_src_buf); IID_IBuffer, (void**)&awk->write_src_buf);
if (FAILED(hr)) if (FAILED(hr)) return -1;
{
MessageBox (NULL, _T("COCREATEINSTANCE FAILED"), _T("FUCK"), MB_OK);
return -1;
}
} }
CBuffer* tmp = (CBuffer*)awk->write_src_buf; CBuffer* tmp = (CBuffer*)awk->write_src_buf;
if (tmp->PutValue (data, count) == FALSE) return -1; /* TODO: better error handling */ if (tmp->PutValue (data, count) == FALSE) return -1;
INT n = awk->Fire_WriteSource (awk->write_src_buf); INT n = awk->Fire_WriteSource (awk->write_src_buf);
if (n > (INT)count) return -1; if (n > (INT)count) return -1;
@ -390,7 +362,7 @@ static ase_ssize_t __process_extio (
HRESULT hr = CoCreateInstance ( HRESULT hr = CoCreateInstance (
CLSID_AwkExtio, NULL, CLSCTX_ALL, CLSID_AwkExtio, NULL, CLSCTX_ALL,
IID_IAwkExtio, (void**)&extio); IID_IAwkExtio, (void**)&extio);
if (FAILED(hr)) return -1; /* TODO: better error handling.. */ if (FAILED(hr)) return -1;
hr = CoCreateInstance ( hr = CoCreateInstance (
CLSID_Buffer, NULL, CLSCTX_ALL, CLSID_Buffer, NULL, CLSCTX_ALL,
@ -406,7 +378,7 @@ static ase_ssize_t __process_extio (
{ {
read_buf->Release (); read_buf->Release ();
extio->Release (); extio->Release ();
return -1; /* TODO: better error handling */ return -1;
} }
extio2->type = epa->type & 0xFF; extio2->type = epa->type & 0xFF;
extio2->mode = epa->mode; extio2->mode = epa->mode;
@ -506,7 +478,7 @@ static ase_ssize_t __process_extio (
} }
CBuffer* tmp = (CBuffer*)awk->write_extio_buf; CBuffer* tmp = (CBuffer*)awk->write_extio_buf;
if (tmp->PutValue (data, size) == FALSE) return -1; /* TODO: better error handling */ if (tmp->PutValue (data, size) == FALSE) return -1;
INT n = awk->Fire_WriteExtio (extio, awk->write_extio_buf); INT n = awk->Fire_WriteExtio (extio, awk->write_extio_buf);
if (n > (INT)size) return -1; if (n > (INT)size) return -1;
@ -530,10 +502,14 @@ static ase_ssize_t __process_extio (
HRESULT CAwk::Run (int* ret) HRESULT CAwk::Run (int* ret)
{ {
const ase_char_t* entry = NULL;
if (handle == NULL) if (handle == NULL)
{ {
/* TODO: better error handling... */ errnum = ASE_AWK_EINTERN;
/* call parse first... */ errlin = 0;
_tcscpy (errmsg, _T("parse not called yet"));
*ret = -1; *ret = -1;
return S_OK; return S_OK;
} }
@ -545,7 +521,10 @@ HRESULT CAwk::Run (int* ret)
runios.console = __process_extio; runios.console = __process_extio;
runios.custom_data = this; runios.custom_data = this;
if (ase_awk_run (handle, NULL, &runios, NULL, NULL, this) == -1) if (entry_point != NULL &&
SysStringLen(entry_point) > 0) entry = entry_point;
if (ase_awk_run (handle, entry, &runios, NULL, NULL, this) == -1)
{ {
const ase_char_t* msg; const ase_char_t* msg;
@ -819,7 +798,7 @@ STDMETHODIMP CAwk::put_MaxDepthForBlockRun(int newVal)
return S_OK; return S_OK;
} }
STDMETHODIMP CAwk::get_MaxDepthForExpressionParse(int *pVal) STDMETHODIMP CAwk::get_MaxDepthForExprParse(int *pVal)
{ {
if (handle != NULL) if (handle != NULL)
{ {
@ -830,7 +809,7 @@ STDMETHODIMP CAwk::get_MaxDepthForExpressionParse(int *pVal)
return S_OK; return S_OK;
} }
STDMETHODIMP CAwk::put_MaxDepthForExpressionParse(int newVal) STDMETHODIMP CAwk::put_MaxDepthForExprParse(int newVal)
{ {
max_depth.expr.parse = newVal; max_depth.expr.parse = newVal;
if (handle != NULL) if (handle != NULL)
@ -841,7 +820,7 @@ STDMETHODIMP CAwk::put_MaxDepthForExpressionParse(int newVal)
return S_OK; return S_OK;
} }
STDMETHODIMP CAwk::get_MaxDepthForExpressionRun(int *pVal) STDMETHODIMP CAwk::get_MaxDepthForExprRun(int *pVal)
{ {
if (handle != NULL) if (handle != NULL)
{ {
@ -852,7 +831,7 @@ STDMETHODIMP CAwk::get_MaxDepthForExpressionRun(int *pVal)
return S_OK; return S_OK;
} }
STDMETHODIMP CAwk::put_MaxDepthForExpressionRun(int newVal) STDMETHODIMP CAwk::put_MaxDepthForExprRun(int newVal)
{ {
max_depth.expr.run = newVal; max_depth.expr.run = newVal;
if (handle != NULL) if (handle != NULL)
@ -906,3 +885,30 @@ STDMETHODIMP CAwk::put_MaxDepthForRexMatch(int newVal)
} }
return S_OK; return S_OK;
} }
STDMETHODIMP CAwk::get_EntryPoint(BSTR *pVal)
{
if (entry_point == NULL) *pVal = NULL;
else
{
BSTR tmp = SysAllocStringLen (
entry_point, SysStringLen(entry_point));
if (tmp == NULL) return E_OUTOFMEMORY;
*pVal = tmp;
}
return S_OK;
}
STDMETHODIMP CAwk::put_EntryPoint(BSTR newVal)
{
if (entry_point != NULL) SysFreeString (entry_point);
if (newVal == NULL) entry_point = newVal;
else
{
entry_point = SysAllocStringLen (newVal, SysStringLen(newVal));
if (entry_point == NULL) return E_OUTOFMEMORY;
}
return S_OK;
}

View File

@ -1,5 +1,5 @@
/* /*
* $Id: Awk.h,v 1.8 2007-01-06 15:45:50 bacon Exp $ * $Id: Awk.h,v 1.9 2007-01-10 14:30:44 bacon Exp $
*/ */
#ifndef _ASE_COM_AWK_H_ #ifndef _ASE_COM_AWK_H_
@ -53,12 +53,15 @@ public:
int match; int match;
} rex; } rex;
} max_depth; } max_depth;
IBuffer* read_src_buf; IBuffer* read_src_buf;
IBuffer* write_src_buf; IBuffer* write_src_buf;
ase_size_t read_src_pos; ase_size_t read_src_pos;
ase_size_t read_src_len; ase_size_t read_src_len;
IBuffer* write_extio_buf; IBuffer* write_extio_buf;
BSTR entry_point;
public: public:
CAwk(); CAwk();
~CAwk (); ~CAwk ();
@ -86,14 +89,16 @@ DECLARE_REGISTRY_RESOURCEID(IDR_AWK)
// IAwk // IAwk
public: public:
STDMETHOD(get_EntryPoint)(/*[out, retval]*/ BSTR *pVal);
STDMETHOD(put_EntryPoint)(/*[in]*/ BSTR newVal);
STDMETHOD(get_MaxDepthForRexMatch)(/*[out, retval]*/ int *pVal); STDMETHOD(get_MaxDepthForRexMatch)(/*[out, retval]*/ int *pVal);
STDMETHOD(put_MaxDepthForRexMatch)(/*[in]*/ int newVal); STDMETHOD(put_MaxDepthForRexMatch)(/*[in]*/ int newVal);
STDMETHOD(get_MaxDepthForRexBuild)(/*[out, retval]*/ int *pVal); STDMETHOD(get_MaxDepthForRexBuild)(/*[out, retval]*/ int *pVal);
STDMETHOD(put_MaxDepthForRexBuild)(/*[in]*/ int newVal); STDMETHOD(put_MaxDepthForRexBuild)(/*[in]*/ int newVal);
STDMETHOD(get_MaxDepthForExpressionRun)(/*[out, retval]*/ int *pVal); STDMETHOD(get_MaxDepthForExprRun)(/*[out, retval]*/ int *pVal);
STDMETHOD(put_MaxDepthForExpressionRun)(/*[in]*/ int newVal); STDMETHOD(put_MaxDepthForExprRun)(/*[in]*/ int newVal);
STDMETHOD(get_MaxDepthForExpressionParse)(/*[out, retval]*/ int *pVal); STDMETHOD(get_MaxDepthForExprParse)(/*[out, retval]*/ int *pVal);
STDMETHOD(put_MaxDepthForExpressionParse)(/*[in]*/ int newVal); STDMETHOD(put_MaxDepthForExprParse)(/*[in]*/ int newVal);
STDMETHOD(get_MaxDepthForBlockRun)(/*[out, retval]*/ int *pVal); STDMETHOD(get_MaxDepthForBlockRun)(/*[out, retval]*/ int *pVal);
STDMETHOD(put_MaxDepthForBlockRun)(/*[in]*/ int newVal); STDMETHOD(put_MaxDepthForBlockRun)(/*[in]*/ int newVal);
STDMETHOD(get_MaxDepthForBlockParse)(/*[out, retval]*/ int *pVal); STDMETHOD(get_MaxDepthForBlockParse)(/*[out, retval]*/ int *pVal);

View File

@ -1,5 +1,5 @@
/* /*
* $Id: AwkExtio.cpp,v 1.7 2006-12-15 06:47:08 bacon Exp $ * $Id: AwkExtio.cpp,v 1.8 2007-01-10 14:30:44 bacon Exp $
*/ */
#include "stdafx.h" #include "stdafx.h"
@ -12,21 +12,11 @@
CAwkExtio::CAwkExtio (): name (NULL) CAwkExtio::CAwkExtio (): name (NULL)
{ {
#ifdef _DEBUG
TCHAR x[128];
_sntprintf (x, 128, _T("CAwkExtio::CAwkExtio %p"), this);
MessageBox (NULL, x, x, MB_OK);
#endif
VariantInit (&handle); VariantInit (&handle);
} }
CAwkExtio::~CAwkExtio () CAwkExtio::~CAwkExtio ()
{ {
#ifdef _DEBUG
TCHAR x[128];
_sntprintf (x, 128, _T("CAwkExtio::~CAwkExtio %p"), this);
MessageBox (NULL, x, x, MB_OK);
#endif
if (name != NULL) SysFreeString (name); if (name != NULL) SysFreeString (name);
VariantClear (&handle); VariantClear (&handle);
} }

View File

@ -1,5 +1,5 @@
/* /*
* $Id: Buffer.cpp,v 1.4 2006-12-10 16:13:50 bacon Exp $ * $Id: Buffer.cpp,v 1.5 2007-01-10 14:30:44 bacon Exp $
*/ */
#include "stdafx.h" #include "stdafx.h"
@ -7,21 +7,11 @@
CBuffer::CBuffer () CBuffer::CBuffer ()
{ {
#ifdef _DEBUG
TCHAR x[128];
_sntprintf (x, 128, _T("CBuffer::CBuffer %p"), this);
MessageBox (NULL, x, x, MB_OK);
#endif
str = NULL; str = NULL;
} }
CBuffer::~CBuffer () CBuffer::~CBuffer ()
{ {
#ifdef _DEBUG
TCHAR x[128];
_sntprintf (x, 128, _T("CBuffer::~CBuffer %p"), this);
MessageBox (NULL, x, x, MB_OK);
#endif
if (str != NULL) SysFreeString (str); if (str != NULL) SysFreeString (str);
} }

View File

@ -1,5 +1,5 @@
/* /*
* $Id: ase.idl,v 1.8 2007-01-07 07:30:40 bacon Exp $ * $Id: ase.idl,v 1.9 2007-01-10 14:30:44 bacon Exp $
*/ */
import "oaidl.idl"; import "oaidl.idl";
@ -106,15 +106,15 @@ interface IAwk : IDispatch
[propput, id(20), helpstring("property MaxDepthForBlockRun")] [propput, id(20), helpstring("property MaxDepthForBlockRun")]
HRESULT MaxDepthForBlockRun([in] int newVal); HRESULT MaxDepthForBlockRun([in] int newVal);
[propget, id(21), helpstring("property MaxDepthForExpressionParse")] [propget, id(21), helpstring("property MaxDepthForExprParse")]
HRESULT MaxDepthForExpressionParse([out, retval] int *pVal); HRESULT MaxDepthForExprParse([out, retval] int *pVal);
[propput, id(21), helpstring("property MaxDepthForExpressionParse")] [propput, id(21), helpstring("property MaxDepthForExprParse")]
HRESULT MaxDepthForExpressionParse([in] int newVal); HRESULT MaxDepthForExprParse([in] int newVal);
[propget, id(22), helpstring("property MaxDepthForExpressionRun")] [propget, id(22), helpstring("property MaxDepthForExprRun")]
HRESULT MaxDepthForExpressionRun([out, retval] int *pVal); HRESULT MaxDepthForExprRun([out, retval] int *pVal);
[propput, id(22), helpstring("property MaxDepthForExpressionRun")] [propput, id(22), helpstring("property MaxDepthForExprRun")]
HRESULT MaxDepthForExpressionRun([in] int newVal); HRESULT MaxDepthForExprRun([in] int newVal);
[propget, id(23), helpstring("property MaxDepthForRexBuild")] [propget, id(23), helpstring("property MaxDepthForRexBuild")]
HRESULT MaxDepthForRexBuild([out, retval] int *pVal); HRESULT MaxDepthForRexBuild([out, retval] int *pVal);
@ -125,6 +125,8 @@ interface IAwk : IDispatch
HRESULT MaxDepthForRexMatch([out, retval] int *pVal); HRESULT MaxDepthForRexMatch([out, retval] int *pVal);
[propput, id(24), helpstring("property MaxDepthForRexMatch")] [propput, id(24), helpstring("property MaxDepthForRexMatch")]
HRESULT MaxDepthForRexMatch([in] int newVal); HRESULT MaxDepthForRexMatch([in] int newVal);
[propget, id(25), helpstring("property EntryPoint")] HRESULT EntryPoint([out, retval] BSTR *pVal);
[propput, id(25), helpstring("property EntryPoint")] HRESULT EntryPoint([in] BSTR newVal);
}; };
/* ASELib */ /* ASELib */