*** empty log message ***
This commit is contained in:
parent
80626d9d9a
commit
d46e714d24
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: awk.h,v 1.161 2006-12-08 06:02:41 bacon Exp $
|
* $Id: awk.h,v 1.162 2006-12-11 14:58:25 bacon Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _ASE_AWK_AWK_H_
|
#ifndef _ASE_AWK_AWK_H_
|
||||||
@ -170,11 +170,8 @@ enum
|
|||||||
/* support blockless patterns */
|
/* support blockless patterns */
|
||||||
ASE_AWK_BLOCKLESS = (1 << 9),
|
ASE_AWK_BLOCKLESS = (1 << 9),
|
||||||
|
|
||||||
/* execution starts from main */
|
|
||||||
ASE_AWK_RUNMAIN = (1 << 10),
|
|
||||||
|
|
||||||
/* use 1 as the start index for string operations */
|
/* use 1 as the start index for string operations */
|
||||||
ASE_AWK_STRINDEXONE = (1 << 11),
|
ASE_AWK_STRINDEXONE = (1 << 10),
|
||||||
|
|
||||||
/* strip off leading and trailing spaces when splitting a record
|
/* strip off leading and trailing spaces when splitting a record
|
||||||
* into fields with a regular expression.
|
* into fields with a regular expression.
|
||||||
@ -189,13 +186,13 @@ enum
|
|||||||
* The program splits " a b c " into [a], [b], [c] when this
|
* The program splits " a b c " into [a], [b], [c] when this
|
||||||
* option is on while into [], [a], [b], [c], [] when it is off.
|
* option is on while into [], [a], [b], [c], [] when it is off.
|
||||||
*/
|
*/
|
||||||
ASE_AWK_STRIPSPACES = (1 << 12),
|
ASE_AWK_STRIPSPACES = (1 << 11),
|
||||||
|
|
||||||
/* enable the nextoutfile keyword */
|
/* enable the nextoutfile keyword */
|
||||||
ASE_AWK_NEXTOFILE = (1 << 13),
|
ASE_AWK_NEXTOFILE = (1 << 12),
|
||||||
|
|
||||||
/* a newline terminates a statement */
|
/* a newline terminates a statement */
|
||||||
ASE_AWK_NEWLINE = (1 << 14)
|
ASE_AWK_NEWLINE = (1 << 13)
|
||||||
};
|
};
|
||||||
|
|
||||||
/* error code */
|
/* error code */
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: Awk.cpp,v 1.6 2006-12-11 08:44:52 bacon Exp $
|
* $Id: Awk.cpp,v 1.7 2006-12-11 14:58:25 bacon Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "stdafx.h"
|
#include "stdafx.h"
|
||||||
@ -37,6 +37,20 @@ CAwk::CAwk (): handle(NULL),
|
|||||||
_sntprintf (x, 128, _T("CAwk::CAwk %p"), this);
|
_sntprintf (x, 128, _T("CAwk::CAwk %p"), this);
|
||||||
MessageBox (NULL, x, x, MB_OK);
|
MessageBox (NULL, x, x, MB_OK);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* TODO: what is the best default option? */
|
||||||
|
option = ASE_AWK_IMPLICIT |
|
||||||
|
ASE_AWK_EXPLICIT |
|
||||||
|
ASE_AWK_UNIQUEAFN |
|
||||||
|
ASE_AWK_HASHSIGN |
|
||||||
|
/*ASE_AWK_IDIV |
|
||||||
|
ASE_AWK_SHADING |
|
||||||
|
ASE_AWK_SHIFT | */
|
||||||
|
ASE_AWK_EXTIO /*|
|
||||||
|
ASE_AWK_BLOCKLESS |
|
||||||
|
ASE_AWK_STRINDEXONE |
|
||||||
|
ASE_AWK_STRIPSPACES |
|
||||||
|
ASE_AWK_NEXTOFILE*/;
|
||||||
}
|
}
|
||||||
|
|
||||||
CAwk::~CAwk ()
|
CAwk::~CAwk ()
|
||||||
@ -306,20 +320,7 @@ HRESULT CAwk::Parse (int* ret)
|
|||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
int opt = ASE_AWK_IMPLICIT |
|
ase_awk_setopt (handle, option);
|
||||||
ASE_AWK_EXPLICIT |
|
|
||||||
ASE_AWK_UNIQUEAFN |
|
|
||||||
ASE_AWK_HASHSIGN |
|
|
||||||
/*ASE_AWK_IDIV |
|
|
||||||
ASE_AWK_SHADING |
|
|
||||||
ASE_AWK_SHIFT | */
|
|
||||||
ASE_AWK_EXTIO /*|
|
|
||||||
ASE_AWK_BLOCKLESS |
|
|
||||||
ASE_AWK_STRINDEXONE |
|
|
||||||
ASE_AWK_STRIPSPACES |
|
|
||||||
ASE_AWK_NEXTOFILE*/;
|
|
||||||
|
|
||||||
ase_awk_setopt (handle, opt);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ase_awk_srcios_t srcios;
|
ase_awk_srcios_t srcios;
|
||||||
@ -477,10 +478,15 @@ static ase_ssize_t __process_extio (
|
|||||||
}
|
}
|
||||||
else if (cmd == ASE_AWK_IO_FLUSH)
|
else if (cmd == ASE_AWK_IO_FLUSH)
|
||||||
{
|
{
|
||||||
return 1;
|
IAwkExtio* extio = (IAwkExtio*)epa->handle;
|
||||||
|
ASE_AWK_ASSERT (ase_awk_getrunawk(epa->run), extio != NULL);
|
||||||
|
return awk->Fire_FlushExtio (extio);
|
||||||
}
|
}
|
||||||
else if (cmd == ASE_AWK_IO_NEXT)
|
else if (cmd == ASE_AWK_IO_NEXT)
|
||||||
{
|
{
|
||||||
|
IAwkExtio* extio = (IAwkExtio*)epa->handle;
|
||||||
|
ASE_AWK_ASSERT (ase_awk_getrunawk(epa->run), extio != NULL);
|
||||||
|
return awk->Fire_NextExtio (extio);
|
||||||
}
|
}
|
||||||
|
|
||||||
return -1;
|
return -1;
|
||||||
@ -514,3 +520,15 @@ MessageBox (NULL, ase_awk_geterrstr(err), ase_awk_geterrstr(err), MB_OK);
|
|||||||
*ret = 0;
|
*ret = 0;
|
||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
STDMETHODIMP CAwk::get_Option (int *pVal)
|
||||||
|
{
|
||||||
|
*pVal = option;
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
STDMETHODIMP CAwk::put_Option (int newVal)
|
||||||
|
{
|
||||||
|
newVal = option;
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: Awk.h,v 1.3 2006-12-11 06:29:19 bacon Exp $
|
* $Id: Awk.h,v 1.4 2006-12-11 14:58:25 bacon Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _ASE_COM_AWK_H_
|
#ifndef _ASE_COM_AWK_H_
|
||||||
@ -29,6 +29,7 @@ class CAwk :
|
|||||||
|
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
int option;
|
||||||
ase_awk_t* handle;
|
ase_awk_t* handle;
|
||||||
|
|
||||||
IBuffer* read_src_buf;
|
IBuffer* read_src_buf;
|
||||||
@ -64,6 +65,8 @@ DECLARE_REGISTRY_RESOURCEID(IDR_AWK)
|
|||||||
|
|
||||||
// IAwk
|
// IAwk
|
||||||
public:
|
public:
|
||||||
|
STDMETHOD(get_Option)(/*[out, retval]*/ int *pVal);
|
||||||
|
STDMETHOD(put_Option)(/*[in]*/ int newVal);
|
||||||
HRESULT __stdcall Parse (int* ret);
|
HRESULT __stdcall Parse (int* ret);
|
||||||
HRESULT __stdcall Run (int* ret);
|
HRESULT __stdcall Run (int* ret);
|
||||||
};
|
};
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: AwkExtio.cpp,v 1.3 2006-12-10 16:13:50 bacon Exp $
|
* $Id: AwkExtio.cpp,v 1.4 2006-12-11 14:58:25 bacon Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "stdafx.h"
|
#include "stdafx.h"
|
||||||
@ -61,3 +61,14 @@ STDMETHODIMP CAwkExtio::get_Mode(int *pVal)
|
|||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
STDMETHODIMP CAwkExtio::get_Handle (VARIANT *pVal)
|
||||||
|
{
|
||||||
|
*pVal = handle;
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
STDMETHODIMP CAwkExtio::put_Handle (VARIANT newVal)
|
||||||
|
{
|
||||||
|
handle.Copy (&newVal);
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: AwkExtio.h,v 1.6 2006-12-11 08:44:52 bacon Exp $
|
* $Id: AwkExtio.h,v 1.7 2006-12-11 14:58:25 bacon Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _ASE_COM_AWKEXTIO_H_
|
#ifndef _ASE_COM_AWKEXTIO_H_
|
||||||
@ -41,6 +41,8 @@ END_COM_MAP()
|
|||||||
|
|
||||||
// IAwkExtio
|
// IAwkExtio
|
||||||
public:
|
public:
|
||||||
|
STDMETHOD(get_Handle)(/*[out, retval]*/ VARIANT *pVal);
|
||||||
|
STDMETHOD(put_Handle)(/*[in]*/ VARIANT newVal);
|
||||||
STDMETHOD(get_Mode)(/*[out, retval]*/ int *pVal);
|
STDMETHOD(get_Mode)(/*[out, retval]*/ int *pVal);
|
||||||
STDMETHOD(get_Type)(/*[out, retval]*/ int *pVal);
|
STDMETHOD(get_Type)(/*[out, retval]*/ int *pVal);
|
||||||
STDMETHOD(get_Name)(/*[out, retval]*/ BSTR *pVal);
|
STDMETHOD(get_Name)(/*[out, retval]*/ BSTR *pVal);
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: ase.idl,v 1.2 2006-12-09 17:36:27 bacon Exp $
|
* $Id: ase.idl,v 1.3 2006-12-11 14:58:25 bacon Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import "oaidl.idl";
|
import "oaidl.idl";
|
||||||
@ -20,6 +20,12 @@ interface IAwk : IDispatch
|
|||||||
|
|
||||||
[id(2), helpstring("method Run")]
|
[id(2), helpstring("method Run")]
|
||||||
HRESULT Run([out, retval] int* ret);
|
HRESULT Run([out, retval] int* ret);
|
||||||
|
|
||||||
|
[propget, id(3), helpstring("property Option")]
|
||||||
|
HRESULT Option([out, retval] int *pVal);
|
||||||
|
|
||||||
|
[propput, id(3), helpstring("property Option")]
|
||||||
|
HRESULT Option([in] int newVal);
|
||||||
};
|
};
|
||||||
|
|
||||||
/* ASELib */
|
/* ASELib */
|
||||||
@ -33,6 +39,51 @@ library ASELib
|
|||||||
importlib("stdole32.tlb");
|
importlib("stdole32.tlb");
|
||||||
importlib("stdole2.tlb");
|
importlib("stdole2.tlb");
|
||||||
|
|
||||||
|
[helpstring("Awk options")]
|
||||||
|
typedef [v1_enum] enum AwkOption
|
||||||
|
{
|
||||||
|
AWK_IMPLICIT = (1 << 0),
|
||||||
|
AWK_EXPLICIT = (1 << 1),
|
||||||
|
AWK_UNIQUEAFN = (1 << 2),
|
||||||
|
AWK_SHADING = (1 << 3),
|
||||||
|
AWK_SHIFT = (1 << 4),
|
||||||
|
AWK_IDIV = (1 << 5),
|
||||||
|
AWK_HASHSIGN = (1 << 6),
|
||||||
|
AWK_STRCONCAT = (1 << 7),
|
||||||
|
AWK_EXTIO = (1 << 8),
|
||||||
|
AWK_BLOCKLESS = (1 << 9),
|
||||||
|
AWK_STRINDEXONE = (1 << 10),
|
||||||
|
AWK_STRIPSPACES = (1 << 11),
|
||||||
|
AWK_NEXTOFILE = (1 << 12)
|
||||||
|
} AwkOption;
|
||||||
|
|
||||||
|
[helpstring("AwkExtio tpe")]
|
||||||
|
typedef [v1_enum] enum AwkExtioType
|
||||||
|
{
|
||||||
|
AWK_EXTIO_PIPE = 0,
|
||||||
|
AWK_EXTIO_COPROC = 1,
|
||||||
|
AWK_EXTIO_FILE = 2,
|
||||||
|
AWK_EXTIO_CONSOLE = 3
|
||||||
|
} AwkExtioType;
|
||||||
|
|
||||||
|
[helpstring("AwkExtio mode")]
|
||||||
|
typedef [v1_enum] enum AwkExtioMode
|
||||||
|
{
|
||||||
|
AWK_EXTIO_PIPE_READ = 0,
|
||||||
|
AWK_EXTIO_PIPE_WRITE = 1,
|
||||||
|
|
||||||
|
AWK_EXTIO_COPROC_READ = 0,
|
||||||
|
AWK_EXTIO_COPROC_WRITE = 1,
|
||||||
|
AWK_EXTIO_COPROC_RDWR = 2,
|
||||||
|
|
||||||
|
AWK_EXTIO_FILE_READ = 0,
|
||||||
|
AWK_EXTIO_FILE_WRITE = 1,
|
||||||
|
AWK_EXTIO_FILE_APPEND = 2,
|
||||||
|
|
||||||
|
AWK_EXTIO_CONSOLE_READ = 0,
|
||||||
|
AWK_EXTIO_CONSOLE_WRITE = 1
|
||||||
|
} AwkExtioMode;
|
||||||
|
|
||||||
/* IBuffer */
|
/* IBuffer */
|
||||||
[
|
[
|
||||||
object,
|
object,
|
||||||
@ -68,6 +119,11 @@ library ASELib
|
|||||||
|
|
||||||
[propget, id(3), helpstring("property Mode")]
|
[propget, id(3), helpstring("property Mode")]
|
||||||
HRESULT Mode([out, retval] int *pVal);
|
HRESULT Mode([out, retval] int *pVal);
|
||||||
|
|
||||||
|
[propget, id(4), helpstring("property Handle")]
|
||||||
|
HRESULT Handle([out, retval] VARIANT *pVal);
|
||||||
|
[propput, id(4), helpstring("property Handle")]
|
||||||
|
HRESULT Handle([in] VARIANT newVal);
|
||||||
};
|
};
|
||||||
|
|
||||||
/* IAwkEvents */
|
/* IAwkEvents */
|
||||||
@ -102,6 +158,12 @@ library ASELib
|
|||||||
|
|
||||||
[id(8), helpstring("method WriteExtio")]
|
[id(8), helpstring("method WriteExtio")]
|
||||||
int WriteExtio([in] IAwkExtio* extio, [in] IBuffer* buf);
|
int WriteExtio([in] IAwkExtio* extio, [in] IBuffer* buf);
|
||||||
|
|
||||||
|
[id(9), helpstring("method FlushExtio")]
|
||||||
|
int FlushExtio([in] IAwkExtio* extio);
|
||||||
|
|
||||||
|
[id(10), helpstring("method NextExtio")]
|
||||||
|
int NextExtio([in] IAwkExtio* extio);
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Awk */
|
/* Awk */
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: awk_cp.h,v 1.4 2006-12-11 08:44:52 bacon Exp $
|
* $Id: awk_cp.h,v 1.5 2006-12-11 14:58:25 bacon Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _AWK_CP_H_
|
#ifndef _AWK_CP_H_
|
||||||
@ -408,6 +408,102 @@ public:
|
|||||||
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
INT Fire_FlushExtio (IAwkExtio* extio)
|
||||||
|
{
|
||||||
|
T* pT = static_cast<T*>(this);
|
||||||
|
int i, nconns = m_vec.GetSize();
|
||||||
|
CComVariant args[1], ret;
|
||||||
|
|
||||||
|
for (i = 0; i < nconns; i++)
|
||||||
|
{
|
||||||
|
pT->Lock();
|
||||||
|
CComPtr<IUnknown> sp = m_vec.GetAt(i);
|
||||||
|
pT->Unlock();
|
||||||
|
|
||||||
|
IDispatch* pDispatch =
|
||||||
|
reinterpret_cast<IDispatch*>(sp.p);
|
||||||
|
if (pDispatch == NULL) continue;
|
||||||
|
|
||||||
|
VariantClear (&ret);
|
||||||
|
VariantClear (&args[0]);
|
||||||
|
|
||||||
|
args[0] = (IUnknown*)extio;
|
||||||
|
|
||||||
|
DISPPARAMS disp = { args, NULL, 1, 0 };
|
||||||
|
HRESULT hr = pDispatch->Invoke (
|
||||||
|
0x9, IID_NULL, LOCALE_USER_DEFAULT,
|
||||||
|
DISPATCH_METHOD, &disp, &ret, NULL, NULL);
|
||||||
|
if (FAILED(hr)) continue;
|
||||||
|
|
||||||
|
if (ret.vt == VT_EMPTY)
|
||||||
|
{
|
||||||
|
/* probably, the handler has not been implemeted*/
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
hr = ret.ChangeType (VT_I4);
|
||||||
|
if (FAILED(hr))
|
||||||
|
{
|
||||||
|
/* TODO: set the error code properly... */
|
||||||
|
/* invalid value returned... */
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret.lVal;
|
||||||
|
}
|
||||||
|
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
INT Fire_NextExtio (IAwkExtio* extio)
|
||||||
|
{
|
||||||
|
T* pT = static_cast<T*>(this);
|
||||||
|
int i, nconns = m_vec.GetSize();
|
||||||
|
CComVariant args[1], ret;
|
||||||
|
|
||||||
|
for (i = 0; i < nconns; i++)
|
||||||
|
{
|
||||||
|
pT->Lock();
|
||||||
|
CComPtr<IUnknown> sp = m_vec.GetAt(i);
|
||||||
|
pT->Unlock();
|
||||||
|
|
||||||
|
IDispatch* pDispatch =
|
||||||
|
reinterpret_cast<IDispatch*>(sp.p);
|
||||||
|
if (pDispatch == NULL) continue;
|
||||||
|
|
||||||
|
VariantClear (&ret);
|
||||||
|
VariantClear (&args[0]);
|
||||||
|
|
||||||
|
args[0] = (IUnknown*)extio;
|
||||||
|
|
||||||
|
DISPPARAMS disp = { args, NULL, 1, 0 };
|
||||||
|
HRESULT hr = pDispatch->Invoke (
|
||||||
|
0xA, IID_NULL, LOCALE_USER_DEFAULT,
|
||||||
|
DISPATCH_METHOD, &disp, &ret, NULL, NULL);
|
||||||
|
if (FAILED(hr)) continue;
|
||||||
|
|
||||||
|
if (ret.vt == VT_EMPTY)
|
||||||
|
{
|
||||||
|
/* probably, the handler has not been implemeted*/
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
hr = ret.ChangeType (VT_I4);
|
||||||
|
if (FAILED(hr))
|
||||||
|
{
|
||||||
|
/* TODO: set the error code properly... */
|
||||||
|
/* invalid value returned... */
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret.lVal;
|
||||||
|
}
|
||||||
|
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -93,57 +93,57 @@ Attribute VB_PredeclaredId = True
|
|||||||
Attribute VB_Exposed = False
|
Attribute VB_Exposed = False
|
||||||
Option Explicit
|
Option Explicit
|
||||||
|
|
||||||
Public WithEvents abc As ASELib.Awk
|
Public WithEvents Awk As ASELib.Awk
|
||||||
Attribute abc.VB_VarHelpID = -1
|
Attribute Awk.VB_VarHelpID = -1
|
||||||
Private first As Boolean
|
Private first As Boolean
|
||||||
|
|
||||||
Private extio_first As Boolean
|
Private extio_first As Boolean
|
||||||
|
|
||||||
Private Sub Execute_Click()
|
Private Sub Execute_Click()
|
||||||
Dim a As Long
|
|
||||||
Dim x As Object
|
|
||||||
|
|
||||||
first = True
|
first = True
|
||||||
|
|
||||||
ConsoleOut.Text = ""
|
ConsoleOut.Text = ""
|
||||||
SourceOut.Text = ""
|
SourceOut.Text = ""
|
||||||
|
|
||||||
Set abc = New ASELib.Awk
|
Set Awk = New ASELib.Awk
|
||||||
If abc.Parse() = -1 Then
|
Awk.Option = Awk.Option Or ASELib.AWK_SHADING Or ASELib.AWK_IDIV
|
||||||
|
|
||||||
|
If Awk.Parse() = -1 Then
|
||||||
MsgBox "PARSE ERROR OCCURRED!!!"
|
MsgBox "PARSE ERROR OCCURRED!!!"
|
||||||
End If
|
End If
|
||||||
If abc.Run() = -1 Then
|
If Awk.Run() = -1 Then
|
||||||
MsgBox "RUN ERROR OCCURRED!!!"
|
MsgBox "RUN ERROR OCCURRED!!!"
|
||||||
End If
|
End If
|
||||||
Set abc = Nothing
|
Set Awk = Nothing
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Function abc_OpenSource(ByVal mode As Long) As Long
|
Function Awk_OpenSource(ByVal mode As Long) As Long
|
||||||
abc_OpenSource = 1
|
Awk_OpenSource = 1
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Function abc_CloseSource(ByVal mode As Long) As Long
|
Function Awk_CloseSource(ByVal mode As Long) As Long
|
||||||
abc_CloseSource = 0
|
Awk_CloseSource = 0
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Function abc_ReadSource(ByVal buf As ASELib.Buffer) As Long
|
Function Awk_ReadSource(ByVal buf As ASELib.Buffer) As Long
|
||||||
If first Then
|
If first Then
|
||||||
buf.value = SourceIn.Text
|
buf.value = SourceIn.Text
|
||||||
abc_ReadSource = Len(buf.value)
|
Awk_ReadSource = Len(buf.value)
|
||||||
first = False
|
first = False
|
||||||
Else
|
Else
|
||||||
abc_ReadSource = 0
|
Awk_ReadSource = 0
|
||||||
End If
|
End If
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Function abc_WriteSource(ByVal buf As ASELib.Buffer) As Long
|
Function Awk_WriteSource(ByVal buf As ASELib.Buffer) As Long
|
||||||
Dim value As String, value2 As String, c As String
|
Dim value As String, value2 As String, c As String
|
||||||
Dim i As Integer, l As Integer
|
Dim i As Integer, l As Integer
|
||||||
|
|
||||||
value = buf.value
|
value = buf.value
|
||||||
If value = vbLf Then
|
If value = vbLf Then
|
||||||
SourceOut.Text = SourceOut.Text + vbCrLf
|
SourceOut.Text = SourceOut.Text + vbCrLf
|
||||||
abc_WriteSource = 1
|
Awk_WriteSource = 1
|
||||||
Else
|
Else
|
||||||
l = Len(value)
|
l = Len(value)
|
||||||
For i = 1 To l
|
For i = 1 To l
|
||||||
@ -156,40 +156,67 @@ Function abc_WriteSource(ByVal buf As ASELib.Buffer) As Long
|
|||||||
Next i
|
Next i
|
||||||
|
|
||||||
SourceOut.Text = SourceOut.Text + value2
|
SourceOut.Text = SourceOut.Text + value2
|
||||||
abc_WriteSource = l
|
Awk_WriteSource = l
|
||||||
End If
|
End If
|
||||||
|
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Function abc_OpenExtio(ByVal extio As ASELib.AwkExtio) As Long
|
Function Awk_OpenExtio(ByVal extio As ASELib.AwkExtio) As Long
|
||||||
MsgBox "abc_OpenExtio"
|
|
||||||
If extio.mode = 0 Then
|
Dim console As AwkExtioConsole
|
||||||
|
Awk_OpenExtio = -1
|
||||||
|
|
||||||
|
Select Case extio.Type
|
||||||
|
Case ASELib.AWK_EXTIO_CONSOLE
|
||||||
|
If extio.mode = ASELib.AWK_EXTIO_CONSOLE_READ Then
|
||||||
extio_first = True
|
extio_first = True
|
||||||
abc_OpenExtio = 1
|
extio.Handle = 1234
|
||||||
Exit Function
|
Awk_OpenExtio = 1
|
||||||
ElseIf extio.mode = 1 Then
|
ElseIf extio.mode = ASELib.AWK_EXTIO_CONSOLE_WRITE Then
|
||||||
abc_OpenExtio = 1
|
extio_first = True
|
||||||
Exit Function
|
Set console = New AwkExtioConsole
|
||||||
|
console.Active = True
|
||||||
|
console.Count = 0
|
||||||
|
extio.Handle = console
|
||||||
|
Awk_OpenExtio = 1
|
||||||
End If
|
End If
|
||||||
|
Case ASELib.AWK_EXTIO_FILE
|
||||||
|
Case ASELib.AWK_EXTIO_PIPE
|
||||||
|
Case ASELib.AWK_EXTIO_COPROC
|
||||||
|
End Select
|
||||||
|
|
||||||
abc_OpenExtio = -1
|
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Function abc_CloseExtio(ByVal extio As ASELib.AwkExtio) As Long
|
Function Awk_CloseExtio(ByVal extio As ASELib.AwkExtio) As Long
|
||||||
MsgBox "abc_CloseExtio"
|
|
||||||
abc_CloseExtio = 0
|
Awk_CloseExtio = -1
|
||||||
|
|
||||||
|
Select Case extio.Type
|
||||||
|
Case ASELib.AWK_EXTIO_CONSOLE
|
||||||
|
If extio.mode = ASELib.AWK_EXTIO_CONSOLE_READ Then
|
||||||
|
Awk_CloseExtio = 0
|
||||||
|
ElseIf extio.mode = ASELib.AWK_EXTIO_CONSOLE_WRITE Then
|
||||||
|
Awk_CloseExtio = 0
|
||||||
|
End If
|
||||||
|
Case ASELib.AWK_EXTIO_FILE
|
||||||
|
Case ASELib.AWK_EXTIO_PIPE
|
||||||
|
Case ASELib.AWK_EXTIO_COPROC
|
||||||
|
End Select
|
||||||
|
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Function abc_ReadExtio(ByVal extio As ASELib.AwkExtio, ByVal buf As ASELib.Buffer) As Long
|
Function Awk_ReadExtio(ByVal extio As ASELib.AwkExtio, ByVal buf As ASELib.Buffer) As Long
|
||||||
|
Dim console As AwkExtioConsole
|
||||||
Dim value As String, value2 As String
|
Dim value As String, value2 As String
|
||||||
Dim l As Integer, i As Integer
|
Dim l As Integer, i As Integer
|
||||||
|
|
||||||
If extio.mode <> 0 Then
|
If extio.mode <> 0 Then
|
||||||
abc_ReadExtio = -1
|
Awk_ReadExtio = -1
|
||||||
Exit Function
|
Exit Function
|
||||||
End If
|
End If
|
||||||
|
|
||||||
If extio_first Then
|
Let console = extio.Handle
|
||||||
|
If console.Count = 0 Then
|
||||||
value = ConsoleIn.Text
|
value = ConsoleIn.Text
|
||||||
l = Len(value)
|
l = Len(value)
|
||||||
|
|
||||||
@ -205,19 +232,19 @@ Function abc_ReadExtio(ByVal extio As ASELib.AwkExtio, ByVal buf As ASELib.Buffe
|
|||||||
value2 = value2 + Mid(value, i, 1)
|
value2 = value2 + Mid(value, i, 1)
|
||||||
End If
|
End If
|
||||||
|
|
||||||
extio_first = False
|
console.Count = console.Count + 1
|
||||||
buf.value = value2
|
buf.value = value2
|
||||||
abc_ReadExtio = Len(value2)
|
Awk_ReadExtio = Len(value2)
|
||||||
Else
|
Else
|
||||||
abc_ReadExtio = 0
|
Awk_ReadExtio = 0
|
||||||
End If
|
End If
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Function abc_WriteExtio(ByVal extio As ASELib.AwkExtio, ByVal buf As ASELib.Buffer) As Long
|
Function Awk_WriteExtio(ByVal extio As ASELib.AwkExtio, ByVal buf As ASELib.Buffer) As Long
|
||||||
Dim value As String, i As Long, value2 As String
|
Dim value As String, i As Long, value2 As String
|
||||||
|
|
||||||
If extio.mode <> 1 Then
|
If extio.mode <> 1 Then
|
||||||
abc_WriteExtio = -1
|
Awk_WriteExtio = -1
|
||||||
Exit Function
|
Exit Function
|
||||||
End If
|
End If
|
||||||
|
|
||||||
@ -230,10 +257,10 @@ Function abc_WriteExtio(ByVal extio As ASELib.AwkExtio, ByVal buf As ASELib.Buff
|
|||||||
|
|
||||||
If value = vbLf Then
|
If value = vbLf Then
|
||||||
ConsoleOut.Text = ConsoleOut.Text + vbCrLf
|
ConsoleOut.Text = ConsoleOut.Text + vbCrLf
|
||||||
abc_WriteExtio = 1
|
Awk_WriteExtio = 1
|
||||||
Else
|
Else
|
||||||
ConsoleOut.Text = ConsoleOut.Text + value
|
ConsoleOut.Text = ConsoleOut.Text + value
|
||||||
abc_WriteExtio = Len(value)
|
Awk_WriteExtio = Len(value)
|
||||||
End If
|
End If
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
Type=Exe
|
Type=Exe
|
||||||
Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#..\..\..\..\WINDOWS\System32\stdole2.tlb#OLE Automation
|
Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#..\..\..\..\WINDOWS\System32\stdole2.tlb#OLE Automation
|
||||||
Reference=*\G{F9C69806-16A1-4162-998A-876B33C470BF}#1.0#0#..\..\debug\win32\vs60\ase.dll#ASE Awk 1.0 Type Library
|
Reference=*\G{F9C69806-16A1-4162-998A-876B33C470BF}#1.0#0#..\..\release\win32\vs60\ase.dll#ASE Awk 1.0 Type Library
|
||||||
Form=AwkForm.frm
|
Form=AwkForm.frm
|
||||||
|
Class=AwkExtioConsole; AwkExtioConsole.cls
|
||||||
Startup="AwkForm"
|
Startup="AwkForm"
|
||||||
Command32=""
|
Command32=""
|
||||||
Name="ASECOM"
|
Name="ASECOM"
|
||||||
|
@ -1 +1,2 @@
|
|||||||
AwkForm = 44, 44, 591, 504, , 22, 22, 738, 641, C
|
AwkForm = 44, 44, 644, 582, , 22, 22, 738, 641, C
|
||||||
|
AwkExtioConsole = 0, 0, 547, 460, C
|
||||||
|
Loading…
Reference in New Issue
Block a user