changed the file handler to use qse_sio_t in StdAwk
This commit is contained in:
@ -85,6 +85,7 @@ F77 = @F77@
|
||||
FFLAGS = @FFLAGS@
|
||||
GREP = @GREP@
|
||||
HAVE_CXX = @HAVE_CXX@
|
||||
HAVE_OBJC = @HAVE_OBJC@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
@ -103,6 +104,9 @@ MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
NM = @NM@
|
||||
NMEDIT = @NMEDIT@
|
||||
OBJC = @OBJC@
|
||||
OBJCDEPMODE = @OBJCDEPMODE@
|
||||
OBJCFLAGS = @OBJCFLAGS@
|
||||
OBJDUMP = @OBJDUMP@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
@ -126,6 +130,7 @@ abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_F77 = @ac_ct_F77@
|
||||
ac_ct_OBJC = @ac_ct_OBJC@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
|
@ -71,31 +71,30 @@ void Awk::Extio::setHandle (void* handle)
|
||||
extio->handle = handle;
|
||||
}
|
||||
|
||||
Awk::Awk* Awk::Extio::getAwk ()
|
||||
Awk::Extio::operator Awk::Awk* () const
|
||||
{
|
||||
// it assumes that the Awk object is set to the data field.
|
||||
// make sure that it happens in Awk::run () - runios.data = this;
|
||||
return (Awk::Awk*)extio->data;
|
||||
}
|
||||
|
||||
const Awk::Awk* Awk::Extio::getAwk () const
|
||||
Awk::Extio::operator Awk::awk_t* () const
|
||||
{
|
||||
return (const Awk::Awk*)extio->data;
|
||||
// it assumes that the Awk object is set to the data field.
|
||||
// make sure that it happens in Awk::run () - runios.data = this;
|
||||
return (Awk::awk_t*)(Awk::Awk*)extio->data;
|
||||
}
|
||||
|
||||
const Awk::extio_t* Awk::Extio::getRawExtio () const
|
||||
Awk::Extio::operator Awk::extio_t* () const
|
||||
{
|
||||
return extio;
|
||||
}
|
||||
|
||||
const Awk::run_t* Awk::Extio::getRawRun () const
|
||||
Awk::Extio::operator Awk::run_t* () const
|
||||
{
|
||||
return extio->run;
|
||||
}
|
||||
|
||||
const Awk::awk_t* Awk::Extio::getRawAwk () const
|
||||
{
|
||||
return qse_awk_getrunawk (extio->run);
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////
|
||||
// Awk::Pipe
|
||||
//////////////////////////////////////////////////////////////////
|
||||
@ -134,7 +133,7 @@ Awk::Console::~Console ()
|
||||
{
|
||||
if (filename != QSE_NULL)
|
||||
{
|
||||
qse_awk_free ((qse_awk_t*)getRawAwk(), filename);
|
||||
qse_awk_free ((awk_t*)this, filename);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1071,13 +1070,13 @@ Awk::Awk (): awk (QSE_NULL), functionMap (QSE_NULL),
|
||||
mmgr.free = freeMem;
|
||||
mmgr.data = this;
|
||||
|
||||
ccls.is = isType;
|
||||
ccls.to = transCase;
|
||||
ccls.is = isType;
|
||||
ccls.to = transCase;
|
||||
ccls.data = this;
|
||||
|
||||
prmfns.pow = pow;
|
||||
prmfns.sprintf = sprintf;
|
||||
prmfns.data = this;
|
||||
prmfns.pow = pow;
|
||||
prmfns.sprintf = sprintf;
|
||||
prmfns.data = this;
|
||||
}
|
||||
|
||||
Awk::~Awk ()
|
||||
|
@ -124,6 +124,7 @@ F77 = @F77@
|
||||
FFLAGS = @FFLAGS@
|
||||
GREP = @GREP@
|
||||
HAVE_CXX = @HAVE_CXX@
|
||||
HAVE_OBJC = @HAVE_OBJC@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
@ -142,6 +143,9 @@ MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
NM = @NM@
|
||||
NMEDIT = @NMEDIT@
|
||||
OBJC = @OBJC@
|
||||
OBJCDEPMODE = @OBJCDEPMODE@
|
||||
OBJCFLAGS = @OBJCFLAGS@
|
||||
OBJDUMP = @OBJDUMP@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
@ -165,6 +169,7 @@ abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_F77 = @ac_ct_F77@
|
||||
ac_ct_OBJC = @ac_ct_OBJC@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
|
@ -20,6 +20,7 @@
|
||||
#include <qse/cmn/str.h>
|
||||
#include <qse/cmn/time.h>
|
||||
#include <qse/cmn/pcp.h>
|
||||
#include <qse/cmn/sio.h>
|
||||
#include <qse/utl/stdio.h>
|
||||
|
||||
#include <stdlib.h>
|
||||
@ -303,7 +304,7 @@ int StdAwk::openPipe (Pipe& io)
|
||||
}
|
||||
|
||||
pcp = qse_pcp_open (
|
||||
io.getAwk()->getMmgr(),
|
||||
((Awk*)io)->getMmgr(),
|
||||
0,
|
||||
io.getName(),
|
||||
flags|QSE_PCP_TEXT|QSE_PCP_SHELL
|
||||
@ -339,81 +340,56 @@ int StdAwk::flushPipe (Pipe& io)
|
||||
int StdAwk::openFile (File& io)
|
||||
{
|
||||
Awk::File::Mode mode = io.getMode();
|
||||
FILE* fp = NULL;
|
||||
qse_sio_t* sio = QSE_NULL;
|
||||
int flags;
|
||||
|
||||
switch (mode)
|
||||
{
|
||||
case Awk::File::READ:
|
||||
fp = qse_fopen (io.getName(), QSE_T("r"));
|
||||
flags = QSE_SIO_READ;
|
||||
break;
|
||||
case Awk::File::WRITE:
|
||||
fp = qse_fopen (io.getName(), QSE_T("w"));
|
||||
flags = QSE_SIO_WRITE |
|
||||
QSE_SIO_CREATE |
|
||||
QSE_SIO_TRUNCATE;
|
||||
break;
|
||||
case Awk::File::APPEND:
|
||||
fp = qse_fopen (io.getName(), QSE_T("a"));
|
||||
flags = QSE_SIO_APPEND |
|
||||
QSE_SIO_CREATE;
|
||||
break;
|
||||
}
|
||||
|
||||
if (fp == NULL) return -1;
|
||||
sio = qse_sio_open (
|
||||
((Awk*)io)->getMmgr(),
|
||||
0,
|
||||
io.getName(),
|
||||
flags
|
||||
);
|
||||
if (sio == NULL) return -1;
|
||||
|
||||
io.setHandle (fp);
|
||||
io.setHandle (sio);
|
||||
return 1;
|
||||
}
|
||||
|
||||
int StdAwk::closeFile (File& io)
|
||||
{
|
||||
fclose ((FILE*)io.getHandle());
|
||||
qse_sio_close ((qse_sio_t*)io.getHandle());
|
||||
return 0;
|
||||
}
|
||||
|
||||
StdAwk::ssize_t StdAwk::readFile (File& io, char_t* buf, size_t len)
|
||||
{
|
||||
FILE* fp = (FILE*)io.getHandle();
|
||||
ssize_t n = 0;
|
||||
|
||||
while (n < (ssize_t)len)
|
||||
{
|
||||
qse_cint_t c = qse_fgetc (fp);
|
||||
if (c == QSE_CHAR_EOF)
|
||||
{
|
||||
if (qse_ferror(fp)) n = -1;
|
||||
break;
|
||||
}
|
||||
|
||||
buf[n++] = c;
|
||||
if (c == QSE_T('\n')) break;
|
||||
}
|
||||
|
||||
return n;
|
||||
return qse_sio_getsx ((qse_sio_t*)io.getHandle(), buf, len);
|
||||
}
|
||||
|
||||
StdAwk::ssize_t StdAwk::writeFile (File& io, const char_t* buf, size_t len)
|
||||
{
|
||||
FILE* fp = (FILE*)io.getHandle();
|
||||
size_t left = len;
|
||||
|
||||
while (left > 0)
|
||||
{
|
||||
if (*buf == QSE_T('\0'))
|
||||
{
|
||||
if (qse_fputc (*buf, fp) == QSE_CHAR_EOF) return -1;
|
||||
left -= 1; buf += 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
int chunk = (left > QSE_TYPE_MAX(int))? QSE_TYPE_MAX(int): (int)left;
|
||||
int n = qse_fprintf (fp, QSE_T("%.*s"), chunk, buf);
|
||||
if (n < 0 || n > chunk) return -1;
|
||||
left -= n; buf += n;
|
||||
}
|
||||
}
|
||||
|
||||
return len;
|
||||
return qse_sio_putsx ((qse_sio_t*)io.getHandle(), buf, len);
|
||||
}
|
||||
|
||||
int StdAwk::flushFile (File& io)
|
||||
{
|
||||
return ::fflush ((FILE*)io.getHandle());
|
||||
return qse_sio_flush ((qse_sio_t*)io.getHandle());
|
||||
}
|
||||
|
||||
// memory allocation primitives
|
||||
|
@ -107,6 +107,7 @@ F77 = @F77@
|
||||
FFLAGS = @FFLAGS@
|
||||
GREP = @GREP@
|
||||
HAVE_CXX = @HAVE_CXX@
|
||||
HAVE_OBJC = @HAVE_OBJC@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
@ -125,6 +126,9 @@ MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
NM = @NM@
|
||||
NMEDIT = @NMEDIT@
|
||||
OBJC = @OBJC@
|
||||
OBJCDEPMODE = @OBJCDEPMODE@
|
||||
OBJCFLAGS = @OBJCFLAGS@
|
||||
OBJDUMP = @OBJDUMP@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
@ -148,6 +152,7 @@ abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_F77 = @ac_ct_F77@
|
||||
ac_ct_OBJC = @ac_ct_OBJC@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
|
@ -168,10 +168,15 @@ void qse_sio_close (qse_sio_t* sio)
|
||||
qse_sio_t* qse_sio_init (
|
||||
qse_sio_t* sio, qse_mmgr_t* mmgr, const qse_char_t* file, int flags)
|
||||
{
|
||||
int mode;
|
||||
|
||||
QSE_MEMSET (sio, 0, QSE_SIZEOF(*sio));
|
||||
sio->mmgr = mmgr;
|
||||
|
||||
if (qse_fio_init (&sio->fio, mmgr, file, flags, 0644) == QSE_NULL)
|
||||
mode = QSE_FIO_RUSR | QSE_FIO_WUSR |
|
||||
QSE_FIO_RGRP | QSE_FIO_ROTH;
|
||||
|
||||
if (qse_fio_init (&sio->fio, mmgr, file, flags, mode) == QSE_NULL)
|
||||
{
|
||||
return QSE_NULL;
|
||||
}
|
||||
|
@ -106,6 +106,7 @@ F77 = @F77@
|
||||
FFLAGS = @FFLAGS@
|
||||
GREP = @GREP@
|
||||
HAVE_CXX = @HAVE_CXX@
|
||||
HAVE_OBJC = @HAVE_OBJC@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
@ -124,6 +125,9 @@ MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
NM = @NM@
|
||||
NMEDIT = @NMEDIT@
|
||||
OBJC = @OBJC@
|
||||
OBJCDEPMODE = @OBJCDEPMODE@
|
||||
OBJCFLAGS = @OBJCFLAGS@
|
||||
OBJDUMP = @OBJDUMP@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
@ -147,6 +151,7 @@ abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_F77 = @ac_ct_F77@
|
||||
ac_ct_OBJC = @ac_ct_OBJC@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
|
@ -104,6 +104,7 @@ F77 = @F77@
|
||||
FFLAGS = @FFLAGS@
|
||||
GREP = @GREP@
|
||||
HAVE_CXX = @HAVE_CXX@
|
||||
HAVE_OBJC = @HAVE_OBJC@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
@ -122,6 +123,9 @@ MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
NM = @NM@
|
||||
NMEDIT = @NMEDIT@
|
||||
OBJC = @OBJC@
|
||||
OBJCDEPMODE = @OBJCDEPMODE@
|
||||
OBJCFLAGS = @OBJCFLAGS@
|
||||
OBJDUMP = @OBJDUMP@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
@ -145,6 +149,7 @@ abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_F77 = @ac_ct_F77@
|
||||
ac_ct_OBJC = @ac_ct_OBJC@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
|
@ -104,6 +104,7 @@ F77 = @F77@
|
||||
FFLAGS = @FFLAGS@
|
||||
GREP = @GREP@
|
||||
HAVE_CXX = @HAVE_CXX@
|
||||
HAVE_OBJC = @HAVE_OBJC@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
@ -122,6 +123,9 @@ MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
NM = @NM@
|
||||
NMEDIT = @NMEDIT@
|
||||
OBJC = @OBJC@
|
||||
OBJCDEPMODE = @OBJCDEPMODE@
|
||||
OBJCFLAGS = @OBJCFLAGS@
|
||||
OBJDUMP = @OBJDUMP@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
@ -145,6 +149,7 @@ abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_F77 = @ac_ct_F77@
|
||||
ac_ct_OBJC = @ac_ct_OBJC@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
|
Reference in New Issue
Block a user