diff --git a/qse/include/qse/awk/Awk.hpp b/qse/include/qse/awk/Awk.hpp index 41ee5fc7..8655b39e 100644 --- a/qse/include/qse/awk/Awk.hpp +++ b/qse/include/qse/awk/Awk.hpp @@ -1,5 +1,5 @@ /* - * $Id: Awk.hpp 248 2009-08-06 08:27:14Z hyunghwan.chung $ + * $Id: Awk.hpp 249 2009-08-07 13:35:24Z hyunghwan.chung $ * Copyright 2006-2009 Chung, Hyung-Hwan. @@ -275,14 +275,18 @@ public: * The Awk::Source::Data class is used to deliver information * needed for source script I/O. */ - class Data + class Data: protected qse_awk_sio_arg_t { public: friend class Awk; protected: Data (Awk* awk, Mode mode): - awk (awk), mode (mode), handle (QSE_NULL) {} + awk (awk), mode (mode) + { + this->name = QSE_NULL; + this->handle = QSE_NULL; + } public: Mode getMode() const @@ -290,9 +294,14 @@ public: return mode; } + const char_t* getName() const + { + return this->name; + } + const void* getHandle () const { - return handle; + return this->handle; } void setHandle (void* handle) @@ -313,7 +322,6 @@ public: protected: Awk* awk; Mode mode; - void* handle; }; Source () {} diff --git a/qse/include/qse/awk/awk.h b/qse/include/qse/awk/awk.h index 2d9a52dd..11b93190 100644 --- a/qse/include/qse/awk/awk.h +++ b/qse/include/qse/awk/awk.h @@ -1,5 +1,5 @@ /* - * $Id: awk.h 248 2009-08-06 08:27:14Z hyunghwan.chung $ + * $Id: awk.h 249 2009-08-07 13:35:24Z hyunghwan.chung $ * Copyright 2006-2009 Chung, Hyung-Hwan. @@ -286,6 +286,7 @@ struct qse_awk_sio_arg_t qse_size_t lin; qse_size_t col; + struct qse_awk_sio_arg_t* next; }; typedef struct qse_awk_sio_arg_t qse_awk_sio_arg_t; diff --git a/qse/lib/awk/Awk.cpp b/qse/lib/awk/Awk.cpp index f7fac5c7..42482042 100644 --- a/qse/lib/awk/Awk.cpp +++ b/qse/lib/awk/Awk.cpp @@ -1,5 +1,5 @@ /* - * $Id: Awk.cpp 246 2009-07-27 02:31:58Z hyunghwan.chung $ + * $Id: Awk.cpp 249 2009-08-07 13:35:24Z hyunghwan.chung $ * Copyright 2006-2009 Chung, Hyung-Hwan. @@ -1612,6 +1612,7 @@ Awk::ssize_t Awk::readSource ( switch (cmd) { case QSE_AWK_SIO_OPEN: + xtn->awk->sourceIn.name = arg->name; return xtn->awk->sourceReader->open (xtn->awk->sourceIn); case QSE_AWK_SIO_CLOSE: return xtn->awk->sourceReader->close (xtn->awk->sourceIn); @@ -1631,6 +1632,7 @@ Awk::ssize_t Awk::writeSource ( switch (cmd) { case QSE_AWK_SIO_OPEN: + xtn->awk->sourceOut.name = arg->name; return xtn->awk->sourceWriter->open (xtn->awk->sourceOut); case QSE_AWK_SIO_CLOSE: return xtn->awk->sourceWriter->close (xtn->awk->sourceOut);