From 3e4194cca8aa04330273434948b13425ca3c41ce Mon Sep 17 00:00:00 2001 From: hyung-hwan Date: Mon, 30 Apr 2012 15:15:41 +0000 Subject: [PATCH] touched up tio --- qse/include/qse/cmn/nwio.h | 4 +- qse/include/qse/cmn/tio.h | 10 +- qse/lib/cmn/Makefile.am | 2 - qse/lib/cmn/Makefile.in | 11 +- qse/lib/cmn/nwio.c | 177 ++++++--- qse/lib/cmn/tio-get.c | 227 ------------ qse/lib/cmn/tio-put.c | 213 ----------- qse/lib/cmn/tio.c | 423 +++++++++++++++++++++- qse/watcom/debug/dos32/lib/cmn/qsecmn.tgt | 242 +++++++------ qse/watcom/debug/os2/lib/awk/qseawk.tgt | 78 ++-- qse/watcom/debug/os2/lib/cmn/qsecmn.tgt | 242 +++++++------ qse/watcom/qse.wpj | 26 +- qse/watcom/release/os2/lib/cmn/qsecmn.tgt | 226 ++++++------ 13 files changed, 1015 insertions(+), 866 deletions(-) delete mode 100644 qse/lib/cmn/tio-get.c delete mode 100644 qse/lib/cmn/tio-put.c diff --git a/qse/include/qse/cmn/nwio.h b/qse/include/qse/cmn/nwio.h index 56ee216c..a2eb4ddf 100644 --- a/qse/include/qse/cmn/nwio.h +++ b/qse/include/qse/cmn/nwio.h @@ -72,9 +72,9 @@ typedef enum qse_nwio_errnum_t qse_nwio_errnum_t; #if defined(_WIN32) typedef qse_intptr_t qse_nwio_hnd_t; #elif defined(__OS2__) -/* TODO: */ + typedef int qse_nwio_hnd_t; /**< defines a pipe handle type */ #elif defined(__DOS__) -/* TODO: */ + typedef int qse_nwio_hnd_t; /**< defines a pipe handle type */ #else typedef int qse_nwio_hnd_t; /**< defines a pipe handle type */ #endif diff --git a/qse/include/qse/cmn/tio.h b/qse/include/qse/cmn/tio.h index b6ff38ed..db00e89a 100644 --- a/qse/include/qse/cmn/tio.h +++ b/qse/include/qse/cmn/tio.h @@ -65,11 +65,7 @@ enum qse_tio_flag_t QSE_TIO_IGNOREMBWCERR = (1 << 0), /**< do not flush data in the buffer until the buffer gets full. */ - QSE_TIO_NOAUTOFLUSH = (1 << 1), - - /* for internal use only. */ - QSE_TIO_DYNINBUF = (1 << 29), - QSE_TIO_DYNOUTBUF = (1 << 30) + QSE_TIO_NOAUTOFLUSH = (1 << 1) }; enum qse_tio_misc_t @@ -113,14 +109,14 @@ struct qse_tio_t { QSE_DEFINE_COMMON_FIELDS (tio) qse_tio_errnum_t errnum; - int flags; + int flags; qse_cmgr_t* cmgr; qse_tio_io_t in; qse_tio_io_t out; /* for house keeping from here */ - int input_status; + int status; qse_size_t inbuf_cur; qse_size_t inbuf_len; qse_size_t outbuf_len; diff --git a/qse/lib/cmn/Makefile.am b/qse/lib/cmn/Makefile.am index f7d4f40a..b7aefb0f 100644 --- a/qse/lib/cmn/Makefile.am +++ b/qse/lib/cmn/Makefile.am @@ -91,8 +91,6 @@ libqsecmn_la_SOURCES = \ str-word.c \ time.c \ tio.c \ - tio-get.c \ - tio-put.c \ tre.c \ tre-ast.c \ tre-compile.c \ diff --git a/qse/lib/cmn/Makefile.in b/qse/lib/cmn/Makefile.in index b29b1212..41f9798d 100644 --- a/qse/lib/cmn/Makefile.in +++ b/qse/lib/cmn/Makefile.in @@ -87,10 +87,9 @@ am_libqsecmn_la_OBJECTS = alg-rand.lo alg-search.lo alg-sort.lo \ str-excl.lo str-fcpy.lo str-fnmat.lo str-incl.lo str-len.lo \ str-pac.lo str-pbrk.lo str-put.lo str-rev.lo str-rot.lo \ str-set.lo str-spl.lo str-spn.lo str-str.lo str-subst.lo \ - str-tok.lo str-trm.lo str-word.lo time.lo tio.lo tio-get.lo \ - tio-put.lo tre.lo tre-ast.lo tre-compile.lo \ - tre-match-backtrack.lo tre-match-parallel.lo tre-parse.lo \ - tre-stack.lo utf8.lo xma.lo + str-tok.lo str-trm.lo str-word.lo time.lo tio.lo tre.lo \ + tre-ast.lo tre-compile.lo tre-match-backtrack.lo \ + tre-match-parallel.lo tre-parse.lo tre-stack.lo utf8.lo xma.lo libqsecmn_la_OBJECTS = $(am_libqsecmn_la_OBJECTS) libqsecmn_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ @@ -368,8 +367,6 @@ libqsecmn_la_SOURCES = \ str-word.c \ time.c \ tio.c \ - tio-get.c \ - tio-put.c \ tre.c \ tre-ast.c \ tre-compile.c \ @@ -533,8 +530,6 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/str-trm.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/str-word.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/time.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tio-get.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tio-put.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tio.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tre-ast.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tre-compile.Plo@am__quote@ diff --git a/qse/lib/cmn/nwio.c b/qse/lib/cmn/nwio.c index 54c2d7df..06cb33ff 100644 --- a/qse/lib/cmn/nwio.c +++ b/qse/lib/cmn/nwio.c @@ -26,7 +26,10 @@ # include /* sockaddr_in6 */ # include #elif defined(__OS2__) -/* TODO: */ +# include +# include +# include +# include #elif defined(__DOS__) /* TODO: */ #else @@ -35,15 +38,17 @@ # include #endif +QSE_IMPLEMENT_COMMON_FUNCTIONS (nwio) + enum { - UDP_CONNECT_NEEDED = (1 << 0) + STATUS_UDP_CONNECT = (1 << 0) }; union sockaddr_t { struct sockaddr_in in4; -#if defined(AF_INET6) +#if defined(AF_INET6) && !defined(__OS2__) struct sockaddr_in6 in6; #endif }; @@ -53,6 +58,7 @@ static qse_ssize_t socket_input ( static qse_ssize_t socket_output ( qse_tio_t* tio, qse_tio_cmd_t cmd, void* buf, qse_size_t size); + static int nwad_to_sockaddr (const qse_nwad_t* nwad, int* family, void* addr) { int addrsize = -1; @@ -76,7 +82,7 @@ static int nwad_to_sockaddr (const qse_nwad_t* nwad, int* family, void* addr) case QSE_NWAD_IN6: { -#if defined(AF_INET6) +#if defined(AF_INET6) && !defined(__OS2__) struct sockaddr_in6* in; in = (struct sockaddr_in6*)addr; @@ -125,35 +131,42 @@ static qse_nwio_errnum_t syserr_to_errnum (DWORD e) } } #elif defined(__OS2__) -static qse_nwio_errnum_t syserr_to_errnum (APIRET e) +static qse_nwio_errnum_t syserr_to_errnum (int e) { switch (e) { - case ERROR_NOT_ENOUGH_MEMORY: + case SOCENOMEM: return QSE_NWIO_ENOMEM; - case ERROR_INVALID_PARAMETER: - case ERROR_INVALID_HANDLE: - case ERROR_INVALID_NAME: + case SOCEINVAL: return QSE_NWIO_EINVAL; - case ERROR_ACCESS_DENIED: + case SOCEACCES: return QSE_NWIO_EACCES; - case ERROR_FILE_NOT_FOUND: - case ERROR_PATH_NOT_FOUND: + case SOCENOENT: return QSE_NWIO_ENOENT; - case ERROR_ALREADY_EXISTS: + case SOCEEXIST: return QSE_NWIO_EEXIST; + + case SOCEINTR: + return QSE_NWIO_EINTR; - case ERROR_BROKEN_PIPE: + case SOCEPIPE: return QSE_NWIO_EPIPE; + case SOCECONNREFUSED: + case SOCENETUNREACH: + case SOCEHOSTUNREACH: + case SOCEHOSTDOWN: + return QSE_NWIO_ECONN; + default: return QSE_NWIO_ESYSERR; } } + #elif defined(__DOS__) static qse_nwio_errnum_t syserr_to_errnum (int e) { @@ -288,6 +301,7 @@ int qse_nwio_init ( QSE_MEMSET (nwio, 0, QSE_SIZEOF(*nwio)); nwio->mmgr = mmgr; nwio->flags = flags; + nwio->errnum = QSE_NWIO_ENOERR; tmp = nwad_to_sockaddr (nwad, &family, &addr); if (tmp <= -1) @@ -343,7 +357,7 @@ int qse_nwio_init ( } else if (flags & QSE_NWIO_UDP) { - nwio->status |= UDP_CONNECT_NEEDED; + nwio->status |= STATUS_UDP_CONNECT; } } else @@ -356,8 +370,54 @@ int qse_nwio_init ( } #elif defined(__OS2__) - nwio->errnum = QSE_NWIO_ENOIMPL; - return -1; + nwio->handle = socket (family, type, 0); + if (nwio->handle <= -1) + { + nwio->errnum = syserr_to_errnum (sock_errno()); + goto oops; + } + + if (flags & QSE_NWIO_PASSIVE) + { + qse_nwio_hnd_t handle; + + if (bind (nwio->handle, (struct sockaddr*)&addr, addrlen) <= -1) + { + nwio->errnum = syserr_to_errnum (sock_errno()); + goto oops; + } + + if (flags & QSE_NWIO_TCP) + { + if (listen (nwio->handle, 10) <= -1) + { + nwio->errnum = syserr_to_errnum (sock_errno()); + goto oops; + } + + handle = accept (nwio->handle, (struct sockaddr*)&addr, &addrlen); + if (handle <= -1) + { + nwio->errnum = syserr_to_errnum (sock_errno()); + goto oops; + } + + soclose (nwio->handle); + nwio->handle = handle; + } + else if (flags & QSE_NWIO_UDP) + { + nwio->status |= STATUS_UDP_CONNECT; + } + } + else + { + if (connect (nwio->handle, (struct sockaddr*)&addr, addrlen) <= -1) + { + nwio->errnum = syserr_to_errnum (sock_errno()); + goto oops; + } + } #elif defined(__DOS__) nwio->errnum = QSE_NWIO_ENOIMPL; @@ -403,20 +463,12 @@ int qse_nwio_init ( goto oops; } -#if defined(_WIN32) - closesocket (nwio->handle); -#elif defined(__OS2__) -/* TODO: */ -#elif defined(__DOS__) -/* TODO: */ -#else QSE_CLOSE (nwio->handle); -#endif nwio->handle = handle; } else if (flags & QSE_NWIO_UDP) { - nwio->status |= UDP_CONNECT_NEEDED; + nwio->status |= STATUS_UDP_CONNECT; } } else @@ -468,10 +520,11 @@ oops: if (nwio->handle != INVALID_SOCKET) closesocket (nwio->handle); #elif defined(__OS2__) -/* TODO: */ + if (nwio->handle >= 0) soclose (nwio->handle); #elif defined(__DOS__) -/* TODO: */ + /* TODO: */ + #else if (nwio->handle >= 0) QSE_CLOSE (nwio->handle); #endif @@ -526,9 +579,9 @@ qse_ubi_t qse_nwio_gethandleasubi (const qse_nwio_t* nwio) #if defined(_WIN32) ubi.intptr = nwio->handle; #elif defined(__OS2__) - /* TODO: */ + ubi.i = nwio->handle; #elif defined(__DOS__) - /* TODO: */ + ubi.i = nwio->handle; #else ubi.i = nwio->handle; #endif @@ -563,8 +616,7 @@ static qse_ssize_t nwio_read (qse_nwio_t* nwio, void* buf, qse_size_t size) #if defined(_WIN32) int count; #elif defined(__OS2__) - ULONG count; - APIRET rc; + int n; #elif defined(__DOS__) int n; #else @@ -575,7 +627,7 @@ static qse_ssize_t nwio_read (qse_nwio_t* nwio, void* buf, qse_size_t size) if (size > (QSE_TYPE_MAX(qse_ssize_t) & QSE_TYPE_MAX(int))) size = QSE_TYPE_MAX(qse_ssize_t) & QSE_TYPE_MAX(int); - if (nwio->status & UDP_CONNECT_NEEDED) + if (nwio->status & STATUS_UDP_CONNECT) { union sockaddr_t addr; int addrlen; @@ -584,7 +636,10 @@ static qse_ssize_t nwio_read (qse_nwio_t* nwio, void* buf, qse_size_t size) count = recvfrom ( nwio->handle, buf, size, 0, (struct sockaddr*)&addr, &addrlen); - if (count == SOCKET_ERROR) nwio->errnum = syserr_to_errnum (WSAGetLastError()); + if (count == SOCKET_ERROR) + { + nwio->errnum = syserr_to_errnum (WSAGetLastError()); + } else if (count >= 1) { /* for udp, it just creates a stream with the @@ -594,7 +649,7 @@ static qse_ssize_t nwio_read (qse_nwio_t* nwio, void* buf, qse_size_t size) nwio->errnum = syserr_to_errnum (WSAGetLastError()); return -1; } - nwio->status &= ~UDP_CONNECT_NEEDED; + nwio->status &= ~STATUS_UDP_CONNECT; } } else @@ -606,8 +661,41 @@ static qse_ssize_t nwio_read (qse_nwio_t* nwio, void* buf, qse_size_t size) return count; #elif defined(__OS2__) - nwio->errnum = QSE_NWIO_ENOIMPL; - return -1; + if (size > (QSE_TYPE_MAX(qse_ssize_t) & QSE_TYPE_MAX(int))) + size = QSE_TYPE_MAX(qse_ssize_t) & QSE_TYPE_MAX(int); + + if (nwio->status & STATUS_UDP_CONNECT) + { + union sockaddr_t addr; + int addrlen; + + addrlen = QSE_SIZEOF(addr); + n = recvfrom ( + nwio->handle, buf, size, 0, + (struct sockaddr*)&addr, &addrlen); + if (n <= -1) + { + nwio->errnum = syserr_to_errnum (sock_errno()); + } + else if (n >= 1) + { + /* for udp, it just creates a stream with the + * first sender */ + if (connect (nwio->handle, (struct sockaddr*)&addr, addrlen) <= -1) + { + nwio->errnum = syserr_to_errnum (sock_errno()); + return -1; + } + nwio->status &= ~STATUS_UDP_CONNECT; + } + } + else + { + n = recv (nwio->handle, buf, size, 0); + if (n <= -1) nwio->errnum = syserr_to_errnum (sock_errno()); + } + + return n; #elif defined(__DOS__) @@ -620,7 +708,7 @@ static qse_ssize_t nwio_read (qse_nwio_t* nwio, void* buf, qse_size_t size) size = QSE_TYPE_MAX(qse_ssize_t) & QSE_TYPE_MAX(size_t); reread: - if (nwio->status & UDP_CONNECT_NEEDED) + if (nwio->status & STATUS_UDP_CONNECT) { union sockaddr_t addr; #ifdef HAVE_SOCKLEN_T @@ -655,7 +743,7 @@ reread: nwio->errnum = syserr_to_errnum (errno); return -1; } - nwio->status &= ~UDP_CONNECT_NEEDED; + nwio->status &= ~STATUS_UDP_CONNECT; } } else @@ -702,8 +790,7 @@ static qse_ssize_t nwio_write (qse_nwio_t* nwio, const void* data, qse_size_t si #if defined(_WIN32) int count; #elif defined(__OS2__) - ULONG count; - APIRET rc; + int n; #elif defined(__DOS__) int n; #else @@ -721,8 +808,12 @@ static qse_ssize_t nwio_write (qse_nwio_t* nwio, const void* data, qse_size_t si #elif defined(__OS2__) - nwio->errnum = QSE_NWIO_ENOIMPL; - return -1; + if (size > (QSE_TYPE_MAX(qse_ssize_t) & QSE_TYPE_MAX(int))) + size = QSE_TYPE_MAX(qse_ssize_t) & QSE_TYPE_MAX(int); + + n = send (nwio->handle, data, size, 0); + if (n <= -1) nwio->errnum = syserr_to_errnum (sock_errno()); + return n; #elif defined(__DOS__) diff --git a/qse/lib/cmn/tio-get.c b/qse/lib/cmn/tio-get.c deleted file mode 100644 index ddb23110..00000000 --- a/qse/lib/cmn/tio-get.c +++ /dev/null @@ -1,227 +0,0 @@ -/* - * $Id: tio-get.c 566 2011-09-11 12:44:56Z hyunghwan.chung $ - * - Copyright 2006-2011 Chung, Hyung-Hwan. - This file is part of QSE. - - QSE is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation, either version 3 of - the License, or (at your option) any later version. - - QSE is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with QSE. If not, see . - */ - -#include -#include -#include "mem.h" - -#define STATUS_ILLSEQ (1 << 0) -#define STATUS_EOF (1 << 1) - -qse_ssize_t qse_tio_readmbs (qse_tio_t* tio, qse_mchar_t* buf, qse_size_t size) -{ - qse_size_t nread; - qse_ssize_t n; - - /*QSE_ASSERT (tio->in.fun != QSE_NULL);*/ - if (tio->in.fun == QSE_NULL) - { - tio->errnum = QSE_TIO_ENINPF; - return -1; - } - - /* note that this function doesn't check if - * tio->input_status is set with STATUS_ILLSEQ - * since this function can simply return the next - * available byte. */ - - if (size > QSE_TYPE_MAX(qse_ssize_t)) size = QSE_TYPE_MAX(qse_ssize_t); - - nread = 0; - while (nread < size) - { - if (tio->inbuf_cur >= tio->inbuf_len) - { - tio->errnum = QSE_TIO_ENOERR; - n = tio->in.fun ( - tio, QSE_TIO_DATA, - tio->in.buf.ptr, tio->in.buf.capa); - if (n == 0) break; - if (n <= -1) - { - if (tio->errnum == QSE_TIO_ENOERR) tio->errnum = QSE_TIO_EOTHER; - return -1; - } - - tio->inbuf_cur = 0; - tio->inbuf_len = (qse_size_t)n; - } - - do - { - buf[nread] = tio->in.buf.ptr[tio->inbuf_cur++]; - /* TODO: support a different line terminator */ - if (buf[nread++] == QSE_MT('\n')) goto done; - } - while (tio->inbuf_cur < tio->inbuf_len && nread < size); - } - -done: - return nread; -} - -static QSE_INLINE qse_ssize_t tio_read_widechars ( - qse_tio_t* tio, qse_wchar_t* buf, qse_size_t bufsize) -{ - qse_size_t mlen, wlen; - qse_ssize_t n; - int x; - - if (tio->inbuf_cur >= tio->inbuf_len) - { - tio->inbuf_cur = 0; - tio->inbuf_len = 0; - - getc_conv: - if (tio->input_status & STATUS_EOF) n = 0; - else - { - tio->errnum = QSE_TIO_ENOERR; - n = tio->in.fun ( - tio, QSE_TIO_DATA, - &tio->in.buf.ptr[tio->inbuf_len], - tio->in.buf.capa - tio->inbuf_len); - } - if (n == 0) - { - tio->input_status |= STATUS_EOF; - - if (tio->inbuf_cur < tio->inbuf_len) - { - /* no more input from the underlying input handler. - * but some incomplete bytes in the buffer. */ - if (tio->flags & QSE_TIO_IGNOREMBWCERR) - { - /* tread them as illegal sequence */ - goto ignore_illseq; - } - else - { - tio->errnum = QSE_TIO_EICSEQ; - return -1; - } - } - - return 0; - } - if (n <= -1) - { - if (tio->errnum == QSE_TIO_ENOERR) tio->errnum = QSE_TIO_EOTHER; - return -1; - } - - tio->inbuf_len += n; - } - - mlen = tio->inbuf_len - tio->inbuf_cur; - wlen = bufsize; - - x = qse_mbsntowcsnuptowithcmgr ( - &tio->in.buf.ptr[tio->inbuf_cur], - &mlen, buf, &wlen, QSE_WT('\n'), tio->cmgr); - tio->inbuf_cur += mlen; - - if (x == -3) - { - /* incomplete sequence */ - if (wlen <= 0) - { - /* not even a single character was handled. - * shift bytes in the buffer to the head. */ - QSE_ASSERT (mlen <= 0); - tio->inbuf_len = tio->inbuf_len - tio->inbuf_cur; - QSE_MEMCPY (&tio->in.buf.ptr[0], - &tio->in.buf.ptr[tio->inbuf_cur], - tio->inbuf_len * QSE_SIZEOF(tio->in.buf.ptr[0])); - tio->inbuf_cur = 0; - goto getc_conv; /* and read more */ - } - - /* get going if some characters are handled */ - } - else if (x == -2) - { - /* buffer not large enough */ - QSE_ASSERT (wlen > 0); - - /* the wide-character buffer is not just large enough to - * hold the entire conversion result. lets's go on so long as - * 1 wide-character is produced though it may be inefficient. - */ - } - else if (x <= -1) - { - /* illegal sequence */ - if (tio->flags & QSE_TIO_IGNOREMBWCERR) - { - ignore_illseq: - tio->inbuf_cur++; /* skip one byte */ - buf[wlen++] = QSE_WT('?'); - } - else if (wlen <= 0) - { - tio->errnum = QSE_TIO_EILSEQ; - return -1; - } - else - { - /* some characters are already handled. - * mark that an illegal sequence encountered - * and carry on. */ - tio->input_status |= STATUS_ILLSEQ; - } - } - - return wlen; -} - -qse_ssize_t qse_tio_readwcs (qse_tio_t* tio, qse_wchar_t* buf, qse_size_t size) -{ - qse_size_t nread = 0; - qse_ssize_t n; - - /*QSE_ASSERT (tio->in.fun != QSE_NULL);*/ - if (tio->in.fun == QSE_NULL) - { - tio->errnum = QSE_TIO_ENINPF; - return -1; - } - - if (size > QSE_TYPE_MAX(qse_ssize_t)) size = QSE_TYPE_MAX(qse_ssize_t); - - while (nread < size) - { - if (tio->input_status & STATUS_ILLSEQ) - { - tio->input_status &= ~STATUS_ILLSEQ; - tio->errnum = QSE_TIO_EILSEQ; - return -1; - } - - n = tio_read_widechars (tio, &buf[nread], size - nread); - if (n == 0) break; - if (n <= -1) return -1; - - nread += n; - if (buf[nread-1] == QSE_WT('\n')) break; - } - - return nread; -} diff --git a/qse/lib/cmn/tio-put.c b/qse/lib/cmn/tio-put.c deleted file mode 100644 index d38464a7..00000000 --- a/qse/lib/cmn/tio-put.c +++ /dev/null @@ -1,213 +0,0 @@ -/* - * $Id: tio-put.c 566 2011-09-11 12:44:56Z hyunghwan.chung $ - * - Copyright 2006-2011 Chung, Hyung-Hwan. - This file is part of QSE. - - QSE is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation, either version 3 of - the License, or (at your option) any later version. - - QSE is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with QSE. If not, see . - */ - -#include -#include - -qse_ssize_t qse_tio_writembs ( - qse_tio_t* tio, const qse_mchar_t* mptr, qse_size_t mlen) -{ - if (tio->outbuf_len >= tio->out.buf.capa) - { - /* maybe, previous flush operation has failed a few - * times previously. so the buffer is full. - */ - tio->errnum = QSE_TIO_ENOSPC; - return -1; - } - - if (mlen == (qse_size_t)-1) - { - qse_size_t pos = 0; - - if (tio->flags & QSE_TIO_NOAUTOFLUSH) - { - while (mptr[pos]) - { - tio->out.buf.ptr[tio->outbuf_len++] = mptr[pos++]; - if (tio->outbuf_len >= tio->out.buf.capa && - qse_tio_flush (tio) <= -1) return -1; - if (pos >= QSE_TYPE_MAX(qse_ssize_t)) break; - } - } - else - { - int nl = 0; - while (mptr[pos]) - { - tio->out.buf.ptr[tio->outbuf_len++] = mptr[pos]; - if (tio->outbuf_len >= tio->out.buf.capa) - { - if (qse_tio_flush (tio) <= -1) return -1; - nl = 0; - } - else if (mptr[pos] == QSE_T('\n')) nl = 1; - /* TODO: different line terminator */ - if (++pos >= QSE_TYPE_MAX(qse_ssize_t)) break; - } - if (nl && qse_tio_flush(tio) <= -1) return -1; - } - - return pos; - } - else - { - const qse_mchar_t* xptr, * xend; - qse_size_t capa; - int nl = 0; - - /* adjust mlen for the type difference between the parameter - * and the return value */ - if (mlen > QSE_TYPE_MAX(qse_ssize_t)) mlen = QSE_TYPE_MAX(qse_ssize_t); - xptr = mptr; - - /* handle the parts that can't fit into the internal buffer */ - while (mlen >= (capa = tio->out.buf.capa - tio->outbuf_len)) - { - for (xend = xptr + capa; xptr < xend; xptr++) - tio->out.buf.ptr[tio->outbuf_len++] = *xptr; - if (qse_tio_flush (tio) <= -1) return -1; - mlen -= capa; - } - - if (tio->flags & QSE_TIO_NOAUTOFLUSH) - { - /* handle the last part that can fit into the internal buffer */ - for (xend = xptr + mlen; xptr < xend; xptr++) - tio->out.buf.ptr[tio->outbuf_len++] = *xptr; - } - else - { - /* handle the last part that can fit into the internal buffer */ - for (xend = xptr + mlen; xptr < xend; xptr++) - { - /* TODO: support different line terminating characeter */ - tio->out.buf.ptr[tio->outbuf_len++] = *xptr; - if (*xptr == QSE_MT('\n')) - { - nl = 1; - break; - } - } - while (xptr < xend) tio->out.buf.ptr[tio->outbuf_len++] = *xptr++; - } - - /* if the last part contains a new line, flush the internal - * buffer. note that this flushes characters after nl also.*/ - if (nl && qse_tio_flush (tio) <= -1) return -1; - - /* returns the number multi-bytes characters handled */ - return xptr - mptr; - } -} - -qse_ssize_t qse_tio_writewcs ( - qse_tio_t* tio, const qse_wchar_t* wptr, qse_size_t wlen) -{ - qse_size_t capa, wcnt, mcnt, xwlen; - int n, nl = 0; - - if (tio->outbuf_len >= tio->out.buf.capa) - { - /* maybe, previous flush operation has failed a few - * times previously. so the buffer is full. - */ - tio->errnum = QSE_TIO_ENOSPC; - return -1; - } - - if (wlen == (qse_size_t)-1) wlen = qse_wcslen(wptr); - if (wlen > QSE_TYPE_MAX(qse_ssize_t)) wlen = QSE_TYPE_MAX(qse_ssize_t); - - xwlen = wlen; - while (xwlen > 0) - { - capa = tio->out.buf.capa - tio->outbuf_len; - wcnt = xwlen; mcnt = capa; - - n = qse_wcsntombsnwithcmgr ( - wptr, &wcnt, &tio->out.buf.ptr[tio->outbuf_len], &mcnt, tio->cmgr); - tio->outbuf_len += mcnt; - - if (n == -2) - { - /* the buffer is not large enough to - * convert more. so flush now and continue. - * note that the buffer may not be full though - * it not large enough in this case */ - if (qse_tio_flush (tio) <= -1) return -1; - nl = 0; - } - else - { - if (tio->outbuf_len >= tio->out.buf.capa) - { - /* flush the full buffer regardless of conversion - * result. */ - if (qse_tio_flush (tio) <= -1) return -1; - nl = 0; - } - - if (n <= -1) - { - /* an invalid wide-character is encountered. */ - if (tio->flags & QSE_TIO_IGNOREMBWCERR) - { - /* insert a question mark for an illegal - * character. */ - QSE_ASSERT (tio->outbuf_len < tio->out.buf.capa); - tio->out.buf.ptr[tio->outbuf_len++] = QSE_MT('?'); - wcnt++; /* skip this illegal character */ - /* don't need to increment mcnt since - * it's not used below */ - } - else - { - tio->errnum = QSE_TIO_EILCHR; - return -1; - } - } - else - { - if (!(tio->flags & QSE_TIO_NOAUTOFLUSH) && !nl) - { - /* checking for a newline this way looks damn ugly. - * TODO: how can i do this more elegantly? */ - qse_size_t i = wcnt; - while (i > 0) - { - /* scan backward assuming a line terminator - * is typically at the back */ - if (wptr[--i] == QSE_WT('\n')) - { - /* TOOD: differetn line terminator */ - nl = 1; - break; - } - } - } - } - } - wptr += wcnt; xwlen -= wcnt; - } - - if (nl && qse_tio_flush (tio) <= -1) return -1; - return wlen; -} diff --git a/qse/lib/cmn/tio.c b/qse/lib/cmn/tio.c index e32573c0..ceb9eb7d 100644 --- a/qse/lib/cmn/tio.c +++ b/qse/lib/cmn/tio.c @@ -24,6 +24,11 @@ QSE_IMPLEMENT_COMMON_FUNCTIONS (tio) +#define STATUS_OUTPUT_DYNBUF (1 << 0) +#define STATUS_INPUT_DYNBUF (1 << 1) +#define STATUS_INPUT_ILLSEQ (1 << 2) +#define STATUS_INPUT_EOF (1 << 3) + static int detach_in (qse_tio_t* tio, int fini); static int detach_out (qse_tio_t* tio, int fini); @@ -57,8 +62,7 @@ int qse_tio_init (qse_tio_t* tio, qse_mmgr_t* mmgr, int flags) tio->mmgr = mmgr; tio->cmgr = qse_getdflcmgr(); - /* mask off internal bits when storing the flags for safety */ - tio->flags = flags & ~(QSE_TIO_DYNINBUF | QSE_TIO_DYNOUTBUF); + tio->flags = flags; /* tio->input_func = QSE_NULL; @@ -66,7 +70,7 @@ int qse_tio_init (qse_tio_t* tio, qse_mmgr_t* mmgr, int flags) tio->output_func = QSE_NULL; tio->output_arg = QSE_NULL; - tio->input_status = 0; + tio->status = 0; tio->inbuf_cur = 0; tio->inbuf_len = 0; tio->outbuf_len = 0; @@ -154,11 +158,11 @@ int qse_tio_attachin ( tio->in.buf.ptr = xbufptr; tio->in.buf.capa = bufcapa; - tio->input_status = 0; + tio->status &= ~(STATUS_INPUT_ILLSEQ | STATUS_INPUT_EOF); tio->inbuf_cur = 0; tio->inbuf_len = 0; - if (xbufptr != bufptr) tio->flags |= QSE_TIO_DYNINBUF; + if (xbufptr != bufptr) tio->status |= STATUS_INPUT_DYNBUF; return 0; } @@ -181,10 +185,10 @@ static int detach_in (qse_tio_t* tio, int fini) ret = -1; } - if (tio->flags & QSE_TIO_DYNINBUF) + if (tio->status & STATUS_INPUT_DYNBUF) { QSE_MMGR_FREE (tio->mmgr, tio->in.buf.ptr); - tio->flags &= ~QSE_TIO_DYNINBUF; + tio->status &= ~STATUS_INPUT_DYNBUF; } tio->in.fun = QSE_NULL; @@ -242,7 +246,7 @@ int qse_tio_attachout ( tio->outbuf_len = 0; - if (xbufptr != bufptr) tio->flags |= QSE_TIO_DYNOUTBUF; + if (xbufptr != bufptr) tio->status |= STATUS_OUTPUT_DYNBUF; return 0; } @@ -266,10 +270,10 @@ static int detach_out (qse_tio_t* tio, int fini) ret = -1; } - if (tio->flags & QSE_TIO_DYNOUTBUF) + if (tio->status & STATUS_OUTPUT_DYNBUF) { QSE_MMGR_FREE (tio->mmgr, tio->out.buf.ptr); - tio->flags &= ~QSE_TIO_DYNOUTBUF; + tio->status &= ~STATUS_OUTPUT_DYNBUF; } tio->out.fun = QSE_NULL; @@ -332,9 +336,406 @@ qse_ssize_t qse_tio_flush (qse_tio_t* tio) void qse_tio_purge (qse_tio_t* tio) { - tio->input_status = 0; + tio->status &= ~(STATUS_INPUT_ILLSEQ | STATUS_INPUT_EOF); tio->inbuf_cur = 0; tio->inbuf_len = 0; tio->outbuf_len = 0; tio->errnum = QSE_TIO_ENOERR; } + +/* ------------------------------------------------------------- */ + + +qse_ssize_t qse_tio_readmbs (qse_tio_t* tio, qse_mchar_t* buf, qse_size_t size) +{ + qse_size_t nread; + qse_ssize_t n; + + /*QSE_ASSERT (tio->in.fun != QSE_NULL);*/ + if (tio->in.fun == QSE_NULL) + { + tio->errnum = QSE_TIO_ENINPF; + return -1; + } + + /* note that this function doesn't check if + * tio->status is set with STATUS_INPUT_ILLSEQ + * since this function can simply return the next + * available byte. */ + + if (size > QSE_TYPE_MAX(qse_ssize_t)) size = QSE_TYPE_MAX(qse_ssize_t); + + nread = 0; + while (nread < size) + { + if (tio->inbuf_cur >= tio->inbuf_len) + { + tio->errnum = QSE_TIO_ENOERR; + n = tio->in.fun ( + tio, QSE_TIO_DATA, + tio->in.buf.ptr, tio->in.buf.capa); + if (n == 0) break; + if (n <= -1) + { + if (tio->errnum == QSE_TIO_ENOERR) tio->errnum = QSE_TIO_EOTHER; + return -1; + } + + tio->inbuf_cur = 0; + tio->inbuf_len = (qse_size_t)n; + } + + do + { + buf[nread] = tio->in.buf.ptr[tio->inbuf_cur++]; + /* TODO: support a different line terminator */ + if (buf[nread++] == QSE_MT('\n')) goto done; + } + while (tio->inbuf_cur < tio->inbuf_len && nread < size); + } + +done: + return nread; +} + +static QSE_INLINE qse_ssize_t tio_read_widechars ( + qse_tio_t* tio, qse_wchar_t* buf, qse_size_t bufsize) +{ + qse_size_t mlen, wlen; + qse_ssize_t n; + int x; + + if (tio->inbuf_cur >= tio->inbuf_len) + { + tio->inbuf_cur = 0; + tio->inbuf_len = 0; + + getc_conv: + if (tio->status & STATUS_INPUT_EOF) n = 0; + else + { + tio->errnum = QSE_TIO_ENOERR; + n = tio->in.fun ( + tio, QSE_TIO_DATA, + &tio->in.buf.ptr[tio->inbuf_len], + tio->in.buf.capa - tio->inbuf_len); + } + if (n == 0) + { + tio->status |= STATUS_INPUT_EOF; + + if (tio->inbuf_cur < tio->inbuf_len) + { + /* no more input from the underlying input handler. + * but some incomplete bytes in the buffer. */ + if (tio->flags & QSE_TIO_IGNOREMBWCERR) + { + /* tread them as illegal sequence */ + goto ignore_illseq; + } + else + { + tio->errnum = QSE_TIO_EICSEQ; + return -1; + } + } + + return 0; + } + if (n <= -1) + { + if (tio->errnum == QSE_TIO_ENOERR) tio->errnum = QSE_TIO_EOTHER; + return -1; + } + + tio->inbuf_len += n; + } + + mlen = tio->inbuf_len - tio->inbuf_cur; + wlen = bufsize; + + x = qse_mbsntowcsnuptowithcmgr ( + &tio->in.buf.ptr[tio->inbuf_cur], + &mlen, buf, &wlen, QSE_WT('\n'), tio->cmgr); + tio->inbuf_cur += mlen; + + if (x == -3) + { + /* incomplete sequence */ + if (wlen <= 0) + { + /* not even a single character was handled. + * shift bytes in the buffer to the head. */ + QSE_ASSERT (mlen <= 0); + tio->inbuf_len = tio->inbuf_len - tio->inbuf_cur; + QSE_MEMCPY (&tio->in.buf.ptr[0], + &tio->in.buf.ptr[tio->inbuf_cur], + tio->inbuf_len * QSE_SIZEOF(tio->in.buf.ptr[0])); + tio->inbuf_cur = 0; + goto getc_conv; /* and read more */ + } + + /* get going if some characters are handled */ + } + else if (x == -2) + { + /* buffer not large enough */ + QSE_ASSERT (wlen > 0); + + /* the wide-character buffer is not just large enough to + * hold the entire conversion result. lets's go on so long as + * 1 wide-character is produced though it may be inefficient. + */ + } + else if (x <= -1) + { + /* illegal sequence */ + if (tio->flags & QSE_TIO_IGNOREMBWCERR) + { + ignore_illseq: + tio->inbuf_cur++; /* skip one byte */ + buf[wlen++] = QSE_WT('?'); + } + else if (wlen <= 0) + { + tio->errnum = QSE_TIO_EILSEQ; + return -1; + } + else + { + /* some characters are already handled. + * mark that an illegal sequence encountered + * and carry on. */ + tio->status |= STATUS_INPUT_ILLSEQ; + } + } + + return wlen; +} + +qse_ssize_t qse_tio_readwcs (qse_tio_t* tio, qse_wchar_t* buf, qse_size_t size) +{ + qse_size_t nread = 0; + qse_ssize_t n; + + /*QSE_ASSERT (tio->in.fun != QSE_NULL);*/ + if (tio->in.fun == QSE_NULL) + { + tio->errnum = QSE_TIO_ENINPF; + return -1; + } + + if (size > QSE_TYPE_MAX(qse_ssize_t)) size = QSE_TYPE_MAX(qse_ssize_t); + + while (nread < size) + { + if (tio->status & STATUS_INPUT_ILLSEQ) + { + tio->status &= ~STATUS_INPUT_ILLSEQ; + tio->errnum = QSE_TIO_EILSEQ; + return -1; + } + + n = tio_read_widechars (tio, &buf[nread], size - nread); + if (n == 0) break; + if (n <= -1) return -1; + + nread += n; + if (buf[nread-1] == QSE_WT('\n')) break; + } + + return nread; +} + + +/* ------------------------------------------------------------- */ +qse_ssize_t qse_tio_writembs ( + qse_tio_t* tio, const qse_mchar_t* mptr, qse_size_t mlen) +{ + if (tio->outbuf_len >= tio->out.buf.capa) + { + /* maybe, previous flush operation has failed a few + * times previously. so the buffer is full. + */ + tio->errnum = QSE_TIO_ENOSPC; + return -1; + } + + if (mlen == (qse_size_t)-1) + { + qse_size_t pos = 0; + + if (tio->flags & QSE_TIO_NOAUTOFLUSH) + { + while (mptr[pos]) + { + tio->out.buf.ptr[tio->outbuf_len++] = mptr[pos++]; + if (tio->outbuf_len >= tio->out.buf.capa && + qse_tio_flush (tio) <= -1) return -1; + if (pos >= QSE_TYPE_MAX(qse_ssize_t)) break; + } + } + else + { + int nl = 0; + while (mptr[pos]) + { + tio->out.buf.ptr[tio->outbuf_len++] = mptr[pos]; + if (tio->outbuf_len >= tio->out.buf.capa) + { + if (qse_tio_flush (tio) <= -1) return -1; + nl = 0; + } + else if (mptr[pos] == QSE_T('\n')) nl = 1; + /* TODO: different line terminator */ + if (++pos >= QSE_TYPE_MAX(qse_ssize_t)) break; + } + if (nl && qse_tio_flush(tio) <= -1) return -1; + } + + return pos; + } + else + { + const qse_mchar_t* xptr, * xend; + qse_size_t capa; + int nl = 0; + + /* adjust mlen for the type difference between the parameter + * and the return value */ + if (mlen > QSE_TYPE_MAX(qse_ssize_t)) mlen = QSE_TYPE_MAX(qse_ssize_t); + xptr = mptr; + + /* handle the parts that can't fit into the internal buffer */ + while (mlen >= (capa = tio->out.buf.capa - tio->outbuf_len)) + { + for (xend = xptr + capa; xptr < xend; xptr++) + tio->out.buf.ptr[tio->outbuf_len++] = *xptr; + if (qse_tio_flush (tio) <= -1) return -1; + mlen -= capa; + } + + if (tio->flags & QSE_TIO_NOAUTOFLUSH) + { + /* handle the last part that can fit into the internal buffer */ + for (xend = xptr + mlen; xptr < xend; xptr++) + tio->out.buf.ptr[tio->outbuf_len++] = *xptr; + } + else + { + /* handle the last part that can fit into the internal buffer */ + for (xend = xptr + mlen; xptr < xend; xptr++) + { + /* TODO: support different line terminating characeter */ + tio->out.buf.ptr[tio->outbuf_len++] = *xptr; + if (*xptr == QSE_MT('\n')) + { + nl = 1; + break; + } + } + while (xptr < xend) tio->out.buf.ptr[tio->outbuf_len++] = *xptr++; + } + + /* if the last part contains a new line, flush the internal + * buffer. note that this flushes characters after nl also.*/ + if (nl && qse_tio_flush (tio) <= -1) return -1; + + /* returns the number multi-bytes characters handled */ + return xptr - mptr; + } +} + +qse_ssize_t qse_tio_writewcs ( + qse_tio_t* tio, const qse_wchar_t* wptr, qse_size_t wlen) +{ + qse_size_t capa, wcnt, mcnt, xwlen; + int n, nl = 0; + + if (tio->outbuf_len >= tio->out.buf.capa) + { + /* maybe, previous flush operation has failed a few + * times previously. so the buffer is full. + */ + tio->errnum = QSE_TIO_ENOSPC; + return -1; + } + + if (wlen == (qse_size_t)-1) wlen = qse_wcslen(wptr); + if (wlen > QSE_TYPE_MAX(qse_ssize_t)) wlen = QSE_TYPE_MAX(qse_ssize_t); + + xwlen = wlen; + while (xwlen > 0) + { + capa = tio->out.buf.capa - tio->outbuf_len; + wcnt = xwlen; mcnt = capa; + + n = qse_wcsntombsnwithcmgr ( + wptr, &wcnt, &tio->out.buf.ptr[tio->outbuf_len], &mcnt, tio->cmgr); + tio->outbuf_len += mcnt; + + if (n == -2) + { + /* the buffer is not large enough to + * convert more. so flush now and continue. + * note that the buffer may not be full though + * it not large enough in this case */ + if (qse_tio_flush (tio) <= -1) return -1; + nl = 0; + } + else + { + if (tio->outbuf_len >= tio->out.buf.capa) + { + /* flush the full buffer regardless of conversion + * result. */ + if (qse_tio_flush (tio) <= -1) return -1; + nl = 0; + } + + if (n <= -1) + { + /* an invalid wide-character is encountered. */ + if (tio->flags & QSE_TIO_IGNOREMBWCERR) + { + /* insert a question mark for an illegal + * character. */ + QSE_ASSERT (tio->outbuf_len < tio->out.buf.capa); + tio->out.buf.ptr[tio->outbuf_len++] = QSE_MT('?'); + wcnt++; /* skip this illegal character */ + /* don't need to increment mcnt since + * it's not used below */ + } + else + { + tio->errnum = QSE_TIO_EILCHR; + return -1; + } + } + else + { + if (!(tio->flags & QSE_TIO_NOAUTOFLUSH) && !nl) + { + /* checking for a newline this way looks damn ugly. + * TODO: how can i do this more elegantly? */ + qse_size_t i = wcnt; + while (i > 0) + { + /* scan backward assuming a line terminator + * is typically at the back */ + if (wptr[--i] == QSE_WT('\n')) + { + /* TOOD: differetn line terminator */ + nl = 1; + break; + } + } + } + } + } + wptr += wcnt; xwlen -= wcnt; + } + + if (nl && qse_tio_flush (tio) <= -1) return -1; + return wlen; +} diff --git a/qse/watcom/debug/dos32/lib/cmn/qsecmn.tgt b/qse/watcom/debug/dos32/lib/cmn/qsecmn.tgt index c5000353..3e399865 100755 --- a/qse/watcom/debug/dos32/lib/cmn/qsecmn.tgt +++ b/qse/watcom/debug/dos32/lib/cmn/qsecmn.tgt @@ -42,7 +42,7 @@ WVList 0 10 WPickList -79 +81 11 MItem 3 @@ -401,8 +401,8 @@ WVList 0 91 MItem -28 -../../../../../lib/cmn/lda.c +29 +../../../../../lib/cmn/hton.c 92 WString 4 @@ -420,7 +420,7 @@ WVList 95 MItem 29 -../../../../../lib/cmn/main.c +../../../../../lib/cmn/ipad.c 96 WString 4 @@ -437,8 +437,8 @@ WVList 0 99 MItem -33 -../../../../../lib/cmn/mbwc-str.c +28 +../../../../../lib/cmn/lda.c 100 WString 4 @@ -456,7 +456,7 @@ WVList 103 MItem 29 -../../../../../lib/cmn/mbwc.c +../../../../../lib/cmn/main.c 104 WString 4 @@ -473,8 +473,8 @@ WVList 0 107 MItem -28 -../../../../../lib/cmn/mem.c +33 +../../../../../lib/cmn/mbwc-str.c 108 WString 4 @@ -491,8 +491,8 @@ WVList 0 111 MItem -28 -../../../../../lib/cmn/oht.c +29 +../../../../../lib/cmn/mbwc.c 112 WString 4 @@ -510,7 +510,7 @@ WVList 115 MItem 28 -../../../../../lib/cmn/opt.c +../../../../../lib/cmn/mem.c 116 WString 4 @@ -527,8 +527,8 @@ WVList 0 119 MItem -38 -../../../../../lib/cmn/path-basename.c +29 +../../../../../lib/cmn/nwad.c 120 WString 4 @@ -545,8 +545,8 @@ WVList 0 123 MItem -35 -../../../../../lib/cmn/path-canon.c +29 +../../../../../lib/cmn/nwio.c 124 WString 4 @@ -564,7 +564,7 @@ WVList 127 MItem 28 -../../../../../lib/cmn/pio.c +../../../../../lib/cmn/oht.c 128 WString 4 @@ -582,7 +582,7 @@ WVList 131 MItem 28 -../../../../../lib/cmn/pma.c +../../../../../lib/cmn/opt.c 132 WString 4 @@ -599,8 +599,8 @@ WVList 0 135 MItem -28 -../../../../../lib/cmn/rbt.c +38 +../../../../../lib/cmn/path-basename.c 136 WString 4 @@ -617,8 +617,8 @@ WVList 0 139 MItem -28 -../../../../../lib/cmn/rex.c +35 +../../../../../lib/cmn/path-canon.c 140 WString 4 @@ -636,7 +636,7 @@ WVList 143 MItem 28 -../../../../../lib/cmn/sio.c +../../../../../lib/cmn/pio.c 144 WString 4 @@ -654,7 +654,7 @@ WVList 147 MItem 28 -../../../../../lib/cmn/sll.c +../../../../../lib/cmn/pma.c 148 WString 4 @@ -671,8 +671,8 @@ WVList 0 151 MItem -29 -../../../../../lib/cmn/slmb.c +28 +../../../../../lib/cmn/rbt.c 152 WString 4 @@ -689,8 +689,8 @@ WVList 0 155 MItem -30 -../../../../../lib/cmn/stdio.c +28 +../../../../../lib/cmn/rex.c 156 WString 4 @@ -707,8 +707,8 @@ WVList 0 159 MItem -32 -../../../../../lib/cmn/str-beg.c +28 +../../../../../lib/cmn/sio.c 160 WString 4 @@ -725,8 +725,8 @@ WVList 0 163 MItem -32 -../../../../../lib/cmn/str-cat.c +28 +../../../../../lib/cmn/sll.c 164 WString 4 @@ -743,8 +743,8 @@ WVList 0 167 MItem -32 -../../../../../lib/cmn/str-chr.c +29 +../../../../../lib/cmn/slmb.c 168 WString 4 @@ -761,8 +761,8 @@ WVList 0 171 MItem -32 -../../../../../lib/cmn/str-cmp.c +30 +../../../../../lib/cmn/stdio.c 172 WString 4 @@ -780,7 +780,7 @@ WVList 175 MItem 32 -../../../../../lib/cmn/str-cnv.c +../../../../../lib/cmn/str-beg.c 176 WString 4 @@ -798,7 +798,7 @@ WVList 179 MItem 32 -../../../../../lib/cmn/str-cpy.c +../../../../../lib/cmn/str-cat.c 180 WString 4 @@ -816,7 +816,7 @@ WVList 183 MItem 32 -../../../../../lib/cmn/str-del.c +../../../../../lib/cmn/str-chr.c 184 WString 4 @@ -834,7 +834,7 @@ WVList 187 MItem 32 -../../../../../lib/cmn/str-dup.c +../../../../../lib/cmn/str-cmp.c 188 WString 4 @@ -851,8 +851,8 @@ WVList 0 191 MItem -33 -../../../../../lib/cmn/str-dynm.c +32 +../../../../../lib/cmn/str-cnv.c 192 WString 4 @@ -869,8 +869,8 @@ WVList 0 195 MItem -33 -../../../../../lib/cmn/str-dynw.c +32 +../../../../../lib/cmn/str-cpy.c 196 WString 4 @@ -888,7 +888,7 @@ WVList 199 MItem 32 -../../../../../lib/cmn/str-end.c +../../../../../lib/cmn/str-del.c 200 WString 4 @@ -905,8 +905,8 @@ WVList 0 203 MItem -33 -../../../../../lib/cmn/str-excl.c +32 +../../../../../lib/cmn/str-dup.c 204 WString 4 @@ -924,7 +924,7 @@ WVList 207 MItem 33 -../../../../../lib/cmn/str-fcpy.c +../../../../../lib/cmn/str-dynm.c 208 WString 4 @@ -942,7 +942,7 @@ WVList 211 MItem 33 -../../../../../lib/cmn/str-incl.c +../../../../../lib/cmn/str-dynw.c 212 WString 4 @@ -960,7 +960,7 @@ WVList 215 MItem 32 -../../../../../lib/cmn/str-len.c +../../../../../lib/cmn/str-end.c 216 WString 4 @@ -977,8 +977,8 @@ WVList 0 219 MItem -32 -../../../../../lib/cmn/str-pac.c +33 +../../../../../lib/cmn/str-excl.c 220 WString 4 @@ -996,7 +996,7 @@ WVList 223 MItem 33 -../../../../../lib/cmn/str-pbrk.c +../../../../../lib/cmn/str-fcpy.c 224 WString 4 @@ -1013,8 +1013,8 @@ WVList 0 227 MItem -32 -../../../../../lib/cmn/str-put.c +33 +../../../../../lib/cmn/str-incl.c 228 WString 4 @@ -1032,7 +1032,7 @@ WVList 231 MItem 32 -../../../../../lib/cmn/str-rev.c +../../../../../lib/cmn/str-len.c 232 WString 4 @@ -1050,7 +1050,7 @@ WVList 235 MItem 32 -../../../../../lib/cmn/str-rot.c +../../../../../lib/cmn/str-pac.c 236 WString 4 @@ -1067,8 +1067,8 @@ WVList 0 239 MItem -32 -../../../../../lib/cmn/str-set.c +33 +../../../../../lib/cmn/str-pbrk.c 240 WString 4 @@ -1086,7 +1086,7 @@ WVList 243 MItem 32 -../../../../../lib/cmn/str-spl.c +../../../../../lib/cmn/str-put.c 244 WString 4 @@ -1104,7 +1104,7 @@ WVList 247 MItem 32 -../../../../../lib/cmn/str-spn.c +../../../../../lib/cmn/str-rev.c 248 WString 4 @@ -1122,7 +1122,7 @@ WVList 251 MItem 32 -../../../../../lib/cmn/str-str.c +../../../../../lib/cmn/str-rot.c 252 WString 4 @@ -1139,8 +1139,8 @@ WVList 0 255 MItem -34 -../../../../../lib/cmn/str-subst.c +32 +../../../../../lib/cmn/str-set.c 256 WString 4 @@ -1158,7 +1158,7 @@ WVList 259 MItem 32 -../../../../../lib/cmn/str-tok.c +../../../../../lib/cmn/str-spl.c 260 WString 4 @@ -1176,7 +1176,7 @@ WVList 263 MItem 32 -../../../../../lib/cmn/str-trm.c +../../../../../lib/cmn/str-spn.c 264 WString 4 @@ -1193,8 +1193,8 @@ WVList 0 267 MItem -33 -../../../../../lib/cmn/str-word.c +32 +../../../../../lib/cmn/str-str.c 268 WString 4 @@ -1211,8 +1211,8 @@ WVList 0 271 MItem -29 -../../../../../lib/cmn/time.c +34 +../../../../../lib/cmn/str-subst.c 272 WString 4 @@ -1230,7 +1230,7 @@ WVList 275 MItem 32 -../../../../../lib/cmn/tio-get.c +../../../../../lib/cmn/str-tok.c 276 WString 4 @@ -1248,7 +1248,7 @@ WVList 279 MItem 32 -../../../../../lib/cmn/tio-put.c +../../../../../lib/cmn/str-trm.c 280 WString 4 @@ -1265,8 +1265,8 @@ WVList 0 283 MItem -28 -../../../../../lib/cmn/tio.c +33 +../../../../../lib/cmn/str-word.c 284 WString 4 @@ -1283,8 +1283,8 @@ WVList 0 287 MItem -32 -../../../../../lib/cmn/tre-ast.c +29 +../../../../../lib/cmn/time.c 288 WString 4 @@ -1301,8 +1301,8 @@ WVList 0 291 MItem -36 -../../../../../lib/cmn/tre-compile.c +28 +../../../../../lib/cmn/tio.c 292 WString 4 @@ -1319,8 +1319,8 @@ WVList 0 295 MItem -44 -../../../../../lib/cmn/tre-match-backtrack.c +32 +../../../../../lib/cmn/tre-ast.c 296 WString 4 @@ -1337,8 +1337,8 @@ WVList 0 299 MItem -43 -../../../../../lib/cmn/tre-match-parallel.c +36 +../../../../../lib/cmn/tre-compile.c 300 WString 4 @@ -1355,8 +1355,8 @@ WVList 0 303 MItem -34 -../../../../../lib/cmn/tre-parse.c +44 +../../../../../lib/cmn/tre-match-backtrack.c 304 WString 4 @@ -1373,8 +1373,8 @@ WVList 0 307 MItem -34 -../../../../../lib/cmn/tre-stack.c +43 +../../../../../lib/cmn/tre-match-parallel.c 308 WString 4 @@ -1391,8 +1391,8 @@ WVList 0 311 MItem -28 -../../../../../lib/cmn/tre.c +34 +../../../../../lib/cmn/tre-parse.c 312 WString 4 @@ -1409,8 +1409,8 @@ WVList 0 315 MItem -29 -../../../../../lib/cmn/utf8.c +34 +../../../../../lib/cmn/tre-stack.c 316 WString 4 @@ -1428,7 +1428,7 @@ WVList 319 MItem 28 -../../../../../lib/cmn/xma.c +../../../../../lib/cmn/tre.c 320 WString 4 @@ -1445,44 +1445,44 @@ WVList 0 323 MItem -3 -*.h +29 +../../../../../lib/cmn/utf8.c 324 WString -3 -NIL +4 +COBJ 325 WVList 0 326 WVList 0 --1 +11 1 1 0 327 MItem 28 -../../../../../lib/cmn/mem.h +../../../../../lib/cmn/xma.c 328 WString -3 -NIL +4 +COBJ 329 WVList 0 330 WVList 0 -323 +11 1 1 0 331 MItem -32 -../../../../../lib/cmn/syscall.h +3 +*.h 332 WString 3 @@ -1493,7 +1493,43 @@ WVList 334 WVList 0 -323 +-1 +1 +1 +0 +335 +MItem +28 +../../../../../lib/cmn/mem.h +336 +WString +3 +NIL +337 +WVList +0 +338 +WVList +0 +331 +1 +1 +0 +339 +MItem +32 +../../../../../lib/cmn/syscall.h +340 +WString +3 +NIL +341 +WVList +0 +342 +WVList +0 +331 1 1 0 diff --git a/qse/watcom/debug/os2/lib/awk/qseawk.tgt b/qse/watcom/debug/os2/lib/awk/qseawk.tgt index d6be07ee..cc16ef25 100755 --- a/qse/watcom/debug/os2/lib/awk/qseawk.tgt +++ b/qse/watcom/debug/os2/lib/awk/qseawk.tgt @@ -42,7 +42,7 @@ WVList 0 10 WPickList -22 +23 11 MItem 3 @@ -314,26 +314,26 @@ WVList 0 73 MItem -3 -*.h +29 +../../../../../lib/cmn/hton.c 74 WString -3 -NIL +4 +COBJ 75 WVList 0 76 WVList 0 --1 +11 1 1 0 77 MItem -28 -../../../../../lib/awk/awk.h +3 +*.h 78 WString 3 @@ -344,14 +344,14 @@ WVList 80 WVList 0 -73 +-1 1 1 0 81 MItem 28 -../../../../../lib/awk/err.h +../../../../../lib/awk/awk.h 82 WString 3 @@ -362,14 +362,14 @@ WVList 84 WVList 0 -73 +77 1 1 0 85 MItem 28 -../../../../../lib/awk/fnc.h +../../../../../lib/awk/err.h 86 WString 3 @@ -380,14 +380,14 @@ WVList 88 WVList 0 -73 +77 1 1 0 89 MItem -29 -../../../../../lib/awk/misc.h +28 +../../../../../lib/awk/fnc.h 90 WString 3 @@ -398,14 +398,14 @@ WVList 92 WVList 0 -73 +77 1 1 0 93 MItem -30 -../../../../../lib/awk/parse.h +29 +../../../../../lib/awk/misc.h 94 WString 3 @@ -416,14 +416,14 @@ WVList 96 WVList 0 -73 +77 1 1 0 97 MItem -28 -../../../../../lib/awk/rio.h +30 +../../../../../lib/awk/parse.h 98 WString 3 @@ -434,14 +434,14 @@ WVList 100 WVList 0 -73 +77 1 1 0 101 MItem 28 -../../../../../lib/awk/run.h +../../../../../lib/awk/rio.h 102 WString 3 @@ -452,14 +452,14 @@ WVList 104 WVList 0 -73 +77 1 1 0 105 MItem -29 -../../../../../lib/awk/tree.h +28 +../../../../../lib/awk/run.h 106 WString 3 @@ -470,14 +470,14 @@ WVList 108 WVList 0 -73 +77 1 1 0 109 MItem -28 -../../../../../lib/awk/val.h +29 +../../../../../lib/awk/tree.h 110 WString 3 @@ -488,7 +488,25 @@ WVList 112 WVList 0 -73 +77 +1 +1 +0 +113 +MItem +28 +../../../../../lib/awk/val.h +114 +WString +3 +NIL +115 +WVList +0 +116 +WVList +0 +77 1 1 0 diff --git a/qse/watcom/debug/os2/lib/cmn/qsecmn.tgt b/qse/watcom/debug/os2/lib/cmn/qsecmn.tgt index ee61430a..7de2f7a6 100755 --- a/qse/watcom/debug/os2/lib/cmn/qsecmn.tgt +++ b/qse/watcom/debug/os2/lib/cmn/qsecmn.tgt @@ -42,7 +42,7 @@ WVList 0 10 WPickList -79 +81 11 MItem 3 @@ -413,8 +413,8 @@ WVList 0 94 MItem -28 -../../../../../lib/cmn/lda.c +29 +../../../../../lib/cmn/hton.c 95 WString 4 @@ -432,7 +432,7 @@ WVList 98 MItem 29 -../../../../../lib/cmn/main.c +../../../../../lib/cmn/ipad.c 99 WString 4 @@ -449,8 +449,8 @@ WVList 0 102 MItem -33 -../../../../../lib/cmn/mbwc-str.c +28 +../../../../../lib/cmn/lda.c 103 WString 4 @@ -468,7 +468,7 @@ WVList 106 MItem 29 -../../../../../lib/cmn/mbwc.c +../../../../../lib/cmn/main.c 107 WString 4 @@ -485,8 +485,8 @@ WVList 0 110 MItem -28 -../../../../../lib/cmn/mem.c +33 +../../../../../lib/cmn/mbwc-str.c 111 WString 4 @@ -503,8 +503,8 @@ WVList 0 114 MItem -28 -../../../../../lib/cmn/oht.c +29 +../../../../../lib/cmn/mbwc.c 115 WString 4 @@ -522,7 +522,7 @@ WVList 118 MItem 28 -../../../../../lib/cmn/opt.c +../../../../../lib/cmn/mem.c 119 WString 4 @@ -539,8 +539,8 @@ WVList 0 122 MItem -38 -../../../../../lib/cmn/path-basename.c +29 +../../../../../lib/cmn/nwad.c 123 WString 4 @@ -557,8 +557,8 @@ WVList 0 126 MItem -35 -../../../../../lib/cmn/path-canon.c +29 +../../../../../lib/cmn/nwio.c 127 WString 4 @@ -576,7 +576,7 @@ WVList 130 MItem 28 -../../../../../lib/cmn/pio.c +../../../../../lib/cmn/oht.c 131 WString 4 @@ -594,7 +594,7 @@ WVList 134 MItem 28 -../../../../../lib/cmn/pma.c +../../../../../lib/cmn/opt.c 135 WString 4 @@ -611,8 +611,8 @@ WVList 0 138 MItem -28 -../../../../../lib/cmn/rbt.c +38 +../../../../../lib/cmn/path-basename.c 139 WString 4 @@ -629,8 +629,8 @@ WVList 0 142 MItem -28 -../../../../../lib/cmn/rex.c +35 +../../../../../lib/cmn/path-canon.c 143 WString 4 @@ -648,7 +648,7 @@ WVList 146 MItem 28 -../../../../../lib/cmn/sio.c +../../../../../lib/cmn/pio.c 147 WString 4 @@ -666,7 +666,7 @@ WVList 150 MItem 28 -../../../../../lib/cmn/sll.c +../../../../../lib/cmn/pma.c 151 WString 4 @@ -683,8 +683,8 @@ WVList 0 154 MItem -29 -../../../../../lib/cmn/slmb.c +28 +../../../../../lib/cmn/rbt.c 155 WString 4 @@ -701,8 +701,8 @@ WVList 0 158 MItem -30 -../../../../../lib/cmn/stdio.c +28 +../../../../../lib/cmn/rex.c 159 WString 4 @@ -719,8 +719,8 @@ WVList 0 162 MItem -32 -../../../../../lib/cmn/str-beg.c +28 +../../../../../lib/cmn/sio.c 163 WString 4 @@ -737,8 +737,8 @@ WVList 0 166 MItem -32 -../../../../../lib/cmn/str-cat.c +28 +../../../../../lib/cmn/sll.c 167 WString 4 @@ -755,8 +755,8 @@ WVList 0 170 MItem -32 -../../../../../lib/cmn/str-chr.c +29 +../../../../../lib/cmn/slmb.c 171 WString 4 @@ -773,8 +773,8 @@ WVList 0 174 MItem -32 -../../../../../lib/cmn/str-cmp.c +30 +../../../../../lib/cmn/stdio.c 175 WString 4 @@ -792,7 +792,7 @@ WVList 178 MItem 32 -../../../../../lib/cmn/str-cnv.c +../../../../../lib/cmn/str-beg.c 179 WString 4 @@ -810,7 +810,7 @@ WVList 182 MItem 32 -../../../../../lib/cmn/str-cpy.c +../../../../../lib/cmn/str-cat.c 183 WString 4 @@ -828,7 +828,7 @@ WVList 186 MItem 32 -../../../../../lib/cmn/str-del.c +../../../../../lib/cmn/str-chr.c 187 WString 4 @@ -846,7 +846,7 @@ WVList 190 MItem 32 -../../../../../lib/cmn/str-dup.c +../../../../../lib/cmn/str-cmp.c 191 WString 4 @@ -863,8 +863,8 @@ WVList 0 194 MItem -33 -../../../../../lib/cmn/str-dynm.c +32 +../../../../../lib/cmn/str-cnv.c 195 WString 4 @@ -881,8 +881,8 @@ WVList 0 198 MItem -33 -../../../../../lib/cmn/str-dynw.c +32 +../../../../../lib/cmn/str-cpy.c 199 WString 4 @@ -900,7 +900,7 @@ WVList 202 MItem 32 -../../../../../lib/cmn/str-end.c +../../../../../lib/cmn/str-del.c 203 WString 4 @@ -917,8 +917,8 @@ WVList 0 206 MItem -33 -../../../../../lib/cmn/str-excl.c +32 +../../../../../lib/cmn/str-dup.c 207 WString 4 @@ -936,7 +936,7 @@ WVList 210 MItem 33 -../../../../../lib/cmn/str-fcpy.c +../../../../../lib/cmn/str-dynm.c 211 WString 4 @@ -954,7 +954,7 @@ WVList 214 MItem 33 -../../../../../lib/cmn/str-incl.c +../../../../../lib/cmn/str-dynw.c 215 WString 4 @@ -972,7 +972,7 @@ WVList 218 MItem 32 -../../../../../lib/cmn/str-len.c +../../../../../lib/cmn/str-end.c 219 WString 4 @@ -989,8 +989,8 @@ WVList 0 222 MItem -32 -../../../../../lib/cmn/str-pac.c +33 +../../../../../lib/cmn/str-excl.c 223 WString 4 @@ -1008,7 +1008,7 @@ WVList 226 MItem 33 -../../../../../lib/cmn/str-pbrk.c +../../../../../lib/cmn/str-fcpy.c 227 WString 4 @@ -1025,8 +1025,8 @@ WVList 0 230 MItem -32 -../../../../../lib/cmn/str-put.c +33 +../../../../../lib/cmn/str-incl.c 231 WString 4 @@ -1044,7 +1044,7 @@ WVList 234 MItem 32 -../../../../../lib/cmn/str-rev.c +../../../../../lib/cmn/str-len.c 235 WString 4 @@ -1062,7 +1062,7 @@ WVList 238 MItem 32 -../../../../../lib/cmn/str-rot.c +../../../../../lib/cmn/str-pac.c 239 WString 4 @@ -1079,8 +1079,8 @@ WVList 0 242 MItem -32 -../../../../../lib/cmn/str-set.c +33 +../../../../../lib/cmn/str-pbrk.c 243 WString 4 @@ -1098,7 +1098,7 @@ WVList 246 MItem 32 -../../../../../lib/cmn/str-spl.c +../../../../../lib/cmn/str-put.c 247 WString 4 @@ -1116,7 +1116,7 @@ WVList 250 MItem 32 -../../../../../lib/cmn/str-spn.c +../../../../../lib/cmn/str-rev.c 251 WString 4 @@ -1134,7 +1134,7 @@ WVList 254 MItem 32 -../../../../../lib/cmn/str-str.c +../../../../../lib/cmn/str-rot.c 255 WString 4 @@ -1151,8 +1151,8 @@ WVList 0 258 MItem -34 -../../../../../lib/cmn/str-subst.c +32 +../../../../../lib/cmn/str-set.c 259 WString 4 @@ -1170,7 +1170,7 @@ WVList 262 MItem 32 -../../../../../lib/cmn/str-tok.c +../../../../../lib/cmn/str-spl.c 263 WString 4 @@ -1188,7 +1188,7 @@ WVList 266 MItem 32 -../../../../../lib/cmn/str-trm.c +../../../../../lib/cmn/str-spn.c 267 WString 4 @@ -1205,8 +1205,8 @@ WVList 0 270 MItem -33 -../../../../../lib/cmn/str-word.c +32 +../../../../../lib/cmn/str-str.c 271 WString 4 @@ -1223,8 +1223,8 @@ WVList 0 274 MItem -29 -../../../../../lib/cmn/time.c +34 +../../../../../lib/cmn/str-subst.c 275 WString 4 @@ -1242,7 +1242,7 @@ WVList 278 MItem 32 -../../../../../lib/cmn/tio-get.c +../../../../../lib/cmn/str-tok.c 279 WString 4 @@ -1260,7 +1260,7 @@ WVList 282 MItem 32 -../../../../../lib/cmn/tio-put.c +../../../../../lib/cmn/str-trm.c 283 WString 4 @@ -1277,8 +1277,8 @@ WVList 0 286 MItem -28 -../../../../../lib/cmn/tio.c +33 +../../../../../lib/cmn/str-word.c 287 WString 4 @@ -1295,8 +1295,8 @@ WVList 0 290 MItem -32 -../../../../../lib/cmn/tre-ast.c +29 +../../../../../lib/cmn/time.c 291 WString 4 @@ -1313,8 +1313,8 @@ WVList 0 294 MItem -36 -../../../../../lib/cmn/tre-compile.c +28 +../../../../../lib/cmn/tio.c 295 WString 4 @@ -1331,8 +1331,8 @@ WVList 0 298 MItem -44 -../../../../../lib/cmn/tre-match-backtrack.c +32 +../../../../../lib/cmn/tre-ast.c 299 WString 4 @@ -1349,8 +1349,8 @@ WVList 0 302 MItem -43 -../../../../../lib/cmn/tre-match-parallel.c +36 +../../../../../lib/cmn/tre-compile.c 303 WString 4 @@ -1367,8 +1367,8 @@ WVList 0 306 MItem -34 -../../../../../lib/cmn/tre-parse.c +44 +../../../../../lib/cmn/tre-match-backtrack.c 307 WString 4 @@ -1385,8 +1385,8 @@ WVList 0 310 MItem -34 -../../../../../lib/cmn/tre-stack.c +43 +../../../../../lib/cmn/tre-match-parallel.c 311 WString 4 @@ -1403,8 +1403,8 @@ WVList 0 314 MItem -28 -../../../../../lib/cmn/tre.c +34 +../../../../../lib/cmn/tre-parse.c 315 WString 4 @@ -1421,8 +1421,8 @@ WVList 0 318 MItem -29 -../../../../../lib/cmn/utf8.c +34 +../../../../../lib/cmn/tre-stack.c 319 WString 4 @@ -1440,7 +1440,7 @@ WVList 322 MItem 28 -../../../../../lib/cmn/xma.c +../../../../../lib/cmn/tre.c 323 WString 4 @@ -1457,44 +1457,44 @@ WVList 0 326 MItem -3 -*.h +29 +../../../../../lib/cmn/utf8.c 327 WString -3 -NIL +4 +COBJ 328 WVList 0 329 WVList 0 --1 +11 1 1 0 330 MItem 28 -../../../../../lib/cmn/mem.h +../../../../../lib/cmn/xma.c 331 WString -3 -NIL +4 +COBJ 332 WVList 0 333 WVList 0 -326 +11 1 1 0 334 MItem -32 -../../../../../lib/cmn/syscall.h +3 +*.h 335 WString 3 @@ -1505,7 +1505,43 @@ WVList 337 WVList 0 -326 +-1 +1 +1 +0 +338 +MItem +28 +../../../../../lib/cmn/mem.h +339 +WString +3 +NIL +340 +WVList +0 +341 +WVList +0 +334 +1 +1 +0 +342 +MItem +32 +../../../../../lib/cmn/syscall.h +343 +WString +3 +NIL +344 +WVList +0 +345 +WVList +0 +334 1 1 0 diff --git a/qse/watcom/qse.wpj b/qse/watcom/qse.wpj index 21a3bbdb..e7abe982 100755 --- a/qse/watcom/qse.wpj +++ b/qse/watcom/qse.wpj @@ -5,7 +5,7 @@ VpeMain 1 WRect 440 -160 +173 9320 9680 2 @@ -87,7 +87,7 @@ WFileName 30 release/os2/lib/cmn/qsecmn.tgt 0 -0 +5 22 VComponent 23 @@ -112,7 +112,7 @@ WRect 1400 5700 4240 -0 +1 0 27 WFileName @@ -124,18 +124,18 @@ release/os2/cmd/sed/qsesed.tgt VComponent 29 WRect -1030 -1360 +780 +480 5700 4240 -1 +0 0 30 WFileName 28 debug/os2/lib/cmn/qsecmn.tgt -0 -5 +10 +13 31 VComponent 32 @@ -189,7 +189,7 @@ VComponent 41 WRect 2700 -1906 +1893 5700 4240 1 @@ -198,8 +198,8 @@ WRect WFileName 30 debug/dos32/lib/cmn/qsecmn.tgt -8 -13 +18 +23 43 VComponent 44 @@ -268,7 +268,7 @@ debug/dos32/cmd/sed/qsesed.tgt VComponent 56 WRect --10 +0 0 5700 4240 @@ -280,4 +280,4 @@ WFileName debug/os2/cmd/sed/qsesed.tgt 0 0 -25 +28 diff --git a/qse/watcom/release/os2/lib/cmn/qsecmn.tgt b/qse/watcom/release/os2/lib/cmn/qsecmn.tgt index 0bb94063..d9d3e1cf 100755 --- a/qse/watcom/release/os2/lib/cmn/qsecmn.tgt +++ b/qse/watcom/release/os2/lib/cmn/qsecmn.tgt @@ -42,7 +42,7 @@ WVList 0 10 WPickList -78 +79 11 MItem 3 @@ -431,8 +431,8 @@ WVList 0 99 MItem -28 -../../../../../lib/cmn/lda.c +29 +../../../../../lib/cmn/ipad.c 100 WString 4 @@ -449,8 +449,8 @@ WVList 0 103 MItem -29 -../../../../../lib/cmn/main.c +28 +../../../../../lib/cmn/lda.c 104 WString 4 @@ -467,8 +467,8 @@ WVList 0 107 MItem -33 -../../../../../lib/cmn/mbwc-str.c +29 +../../../../../lib/cmn/main.c 108 WString 4 @@ -485,8 +485,8 @@ WVList 0 111 MItem -29 -../../../../../lib/cmn/mbwc.c +33 +../../../../../lib/cmn/mbwc-str.c 112 WString 4 @@ -503,8 +503,8 @@ WVList 0 115 MItem -28 -../../../../../lib/cmn/mem.c +29 +../../../../../lib/cmn/mbwc.c 116 WString 4 @@ -522,7 +522,7 @@ WVList 119 MItem 28 -../../../../../lib/cmn/oht.c +../../../../../lib/cmn/mem.c 120 WString 4 @@ -539,8 +539,8 @@ WVList 0 123 MItem -28 -../../../../../lib/cmn/opt.c +29 +../../../../../lib/cmn/nwad.c 124 WString 4 @@ -557,8 +557,8 @@ WVList 0 127 MItem -38 -../../../../../lib/cmn/path-basename.c +29 +../../../../../lib/cmn/nwio.c 128 WString 4 @@ -575,8 +575,8 @@ WVList 0 131 MItem -35 -../../../../../lib/cmn/path-canon.c +28 +../../../../../lib/cmn/oht.c 132 WString 4 @@ -594,7 +594,7 @@ WVList 135 MItem 28 -../../../../../lib/cmn/pio.c +../../../../../lib/cmn/opt.c 136 WString 4 @@ -611,8 +611,8 @@ WVList 0 139 MItem -28 -../../../../../lib/cmn/pma.c +38 +../../../../../lib/cmn/path-basename.c 140 WString 4 @@ -629,8 +629,8 @@ WVList 0 143 MItem -28 -../../../../../lib/cmn/rbt.c +35 +../../../../../lib/cmn/path-canon.c 144 WString 4 @@ -648,7 +648,7 @@ WVList 147 MItem 28 -../../../../../lib/cmn/rex.c +../../../../../lib/cmn/pio.c 148 WString 4 @@ -666,7 +666,7 @@ WVList 151 MItem 28 -../../../../../lib/cmn/sio.c +../../../../../lib/cmn/pma.c 152 WString 4 @@ -684,7 +684,7 @@ WVList 155 MItem 28 -../../../../../lib/cmn/sll.c +../../../../../lib/cmn/rbt.c 156 WString 4 @@ -701,8 +701,8 @@ WVList 0 159 MItem -29 -../../../../../lib/cmn/slmb.c +28 +../../../../../lib/cmn/rex.c 160 WString 4 @@ -719,8 +719,8 @@ WVList 0 163 MItem -30 -../../../../../lib/cmn/stdio.c +28 +../../../../../lib/cmn/sio.c 164 WString 4 @@ -737,8 +737,8 @@ WVList 0 167 MItem -32 -../../../../../lib/cmn/str-beg.c +28 +../../../../../lib/cmn/sll.c 168 WString 4 @@ -755,8 +755,8 @@ WVList 0 171 MItem -32 -../../../../../lib/cmn/str-cat.c +29 +../../../../../lib/cmn/slmb.c 172 WString 4 @@ -773,8 +773,8 @@ WVList 0 175 MItem -32 -../../../../../lib/cmn/str-chr.c +30 +../../../../../lib/cmn/stdio.c 176 WString 4 @@ -792,7 +792,7 @@ WVList 179 MItem 32 -../../../../../lib/cmn/str-cmp.c +../../../../../lib/cmn/str-beg.c 180 WString 4 @@ -810,7 +810,7 @@ WVList 183 MItem 32 -../../../../../lib/cmn/str-cnv.c +../../../../../lib/cmn/str-cat.c 184 WString 4 @@ -828,7 +828,7 @@ WVList 187 MItem 32 -../../../../../lib/cmn/str-cpy.c +../../../../../lib/cmn/str-chr.c 188 WString 4 @@ -846,7 +846,7 @@ WVList 191 MItem 32 -../../../../../lib/cmn/str-del.c +../../../../../lib/cmn/str-cmp.c 192 WString 4 @@ -864,7 +864,7 @@ WVList 195 MItem 32 -../../../../../lib/cmn/str-dup.c +../../../../../lib/cmn/str-cnv.c 196 WString 4 @@ -881,8 +881,8 @@ WVList 0 199 MItem -33 -../../../../../lib/cmn/str-dynm.c +32 +../../../../../lib/cmn/str-cpy.c 200 WString 4 @@ -899,8 +899,8 @@ WVList 0 203 MItem -33 -../../../../../lib/cmn/str-dynw.c +32 +../../../../../lib/cmn/str-del.c 204 WString 4 @@ -918,7 +918,7 @@ WVList 207 MItem 32 -../../../../../lib/cmn/str-end.c +../../../../../lib/cmn/str-dup.c 208 WString 4 @@ -936,7 +936,7 @@ WVList 211 MItem 33 -../../../../../lib/cmn/str-excl.c +../../../../../lib/cmn/str-dynm.c 212 WString 4 @@ -954,7 +954,7 @@ WVList 215 MItem 33 -../../../../../lib/cmn/str-fcpy.c +../../../../../lib/cmn/str-dynw.c 216 WString 4 @@ -971,8 +971,8 @@ WVList 0 219 MItem -33 -../../../../../lib/cmn/str-incl.c +32 +../../../../../lib/cmn/str-end.c 220 WString 4 @@ -989,8 +989,8 @@ WVList 0 223 MItem -32 -../../../../../lib/cmn/str-len.c +33 +../../../../../lib/cmn/str-excl.c 224 WString 4 @@ -1007,8 +1007,8 @@ WVList 0 227 MItem -32 -../../../../../lib/cmn/str-pac.c +33 +../../../../../lib/cmn/str-fcpy.c 228 WString 4 @@ -1026,7 +1026,7 @@ WVList 231 MItem 33 -../../../../../lib/cmn/str-pbrk.c +../../../../../lib/cmn/str-incl.c 232 WString 4 @@ -1044,7 +1044,7 @@ WVList 235 MItem 32 -../../../../../lib/cmn/str-put.c +../../../../../lib/cmn/str-len.c 236 WString 4 @@ -1062,7 +1062,7 @@ WVList 239 MItem 32 -../../../../../lib/cmn/str-rev.c +../../../../../lib/cmn/str-pac.c 240 WString 4 @@ -1079,8 +1079,8 @@ WVList 0 243 MItem -32 -../../../../../lib/cmn/str-rot.c +33 +../../../../../lib/cmn/str-pbrk.c 244 WString 4 @@ -1098,7 +1098,7 @@ WVList 247 MItem 32 -../../../../../lib/cmn/str-set.c +../../../../../lib/cmn/str-put.c 248 WString 4 @@ -1116,7 +1116,7 @@ WVList 251 MItem 32 -../../../../../lib/cmn/str-spl.c +../../../../../lib/cmn/str-rev.c 252 WString 4 @@ -1134,7 +1134,7 @@ WVList 255 MItem 32 -../../../../../lib/cmn/str-spn.c +../../../../../lib/cmn/str-rot.c 256 WString 4 @@ -1152,7 +1152,7 @@ WVList 259 MItem 32 -../../../../../lib/cmn/str-str.c +../../../../../lib/cmn/str-set.c 260 WString 4 @@ -1169,8 +1169,8 @@ WVList 0 263 MItem -34 -../../../../../lib/cmn/str-subst.c +32 +../../../../../lib/cmn/str-spl.c 264 WString 4 @@ -1188,7 +1188,7 @@ WVList 267 MItem 32 -../../../../../lib/cmn/str-tok.c +../../../../../lib/cmn/str-spn.c 268 WString 4 @@ -1206,7 +1206,7 @@ WVList 271 MItem 32 -../../../../../lib/cmn/str-trm.c +../../../../../lib/cmn/str-str.c 272 WString 4 @@ -1223,8 +1223,8 @@ WVList 0 275 MItem -33 -../../../../../lib/cmn/str-word.c +34 +../../../../../lib/cmn/str-subst.c 276 WString 4 @@ -1241,8 +1241,8 @@ WVList 0 279 MItem -29 -../../../../../lib/cmn/time.c +32 +../../../../../lib/cmn/str-tok.c 280 WString 4 @@ -1260,7 +1260,7 @@ WVList 283 MItem 32 -../../../../../lib/cmn/tio-get.c +../../../../../lib/cmn/str-trm.c 284 WString 4 @@ -1277,8 +1277,8 @@ WVList 0 287 MItem -32 -../../../../../lib/cmn/tio-put.c +33 +../../../../../lib/cmn/str-word.c 288 WString 4 @@ -1295,8 +1295,8 @@ WVList 0 291 MItem -28 -../../../../../lib/cmn/tio.c +29 +../../../../../lib/cmn/time.c 292 WString 4 @@ -1313,8 +1313,8 @@ WVList 0 295 MItem -32 -../../../../../lib/cmn/tre-ast.c +28 +../../../../../lib/cmn/tio.c 296 WString 4 @@ -1331,8 +1331,8 @@ WVList 0 299 MItem -36 -../../../../../lib/cmn/tre-compile.c +32 +../../../../../lib/cmn/tre-ast.c 300 WString 4 @@ -1349,8 +1349,8 @@ WVList 0 303 MItem -44 -../../../../../lib/cmn/tre-match-backtrack.c +36 +../../../../../lib/cmn/tre-compile.c 304 WString 4 @@ -1367,8 +1367,8 @@ WVList 0 307 MItem -43 -../../../../../lib/cmn/tre-match-parallel.c +44 +../../../../../lib/cmn/tre-match-backtrack.c 308 WString 4 @@ -1385,8 +1385,8 @@ WVList 0 311 MItem -34 -../../../../../lib/cmn/tre-parse.c +43 +../../../../../lib/cmn/tre-match-parallel.c 312 WString 4 @@ -1404,7 +1404,7 @@ WVList 315 MItem 34 -../../../../../lib/cmn/tre-stack.c +../../../../../lib/cmn/tre-parse.c 316 WString 4 @@ -1421,8 +1421,8 @@ WVList 0 319 MItem -28 -../../../../../lib/cmn/tre.c +34 +../../../../../lib/cmn/tre-stack.c 320 WString 4 @@ -1439,8 +1439,8 @@ WVList 0 323 MItem -29 -../../../../../lib/cmn/utf8.c +28 +../../../../../lib/cmn/tre.c 324 WString 4 @@ -1457,8 +1457,8 @@ WVList 0 327 MItem -28 -../../../../../lib/cmn/xma.c +29 +../../../../../lib/cmn/utf8.c 328 WString 4 @@ -1475,26 +1475,26 @@ WVList 0 331 MItem -3 -*.h +28 +../../../../../lib/cmn/xma.c 332 WString -3 -NIL +4 +COBJ 333 WVList 0 334 WVList 0 --1 +11 1 1 0 335 MItem -28 -../../../../../lib/cmn/mem.h +3 +*.h 336 WString 3 @@ -1505,14 +1505,14 @@ WVList 338 WVList 0 -331 +-1 1 1 0 339 MItem -32 -../../../../../lib/cmn/syscall.h +28 +../../../../../lib/cmn/mem.h 340 WString 3 @@ -1523,7 +1523,25 @@ WVList 342 WVList 0 -331 +335 +1 +1 +0 +343 +MItem +32 +../../../../../lib/cmn/syscall.h +344 +WString +3 +NIL +345 +WVList +0 +346 +WVList +0 +335 1 1 0