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