touched up tio

This commit is contained in:
hyung-hwan 2012-04-30 15:15:41 +00:00
parent 1e80161c64
commit 3e4194cca8
13 changed files with 1015 additions and 866 deletions

View File

@ -72,9 +72,9 @@ typedef enum qse_nwio_errnum_t qse_nwio_errnum_t;
#if defined(_WIN32) #if defined(_WIN32)
typedef qse_intptr_t qse_nwio_hnd_t; typedef qse_intptr_t qse_nwio_hnd_t;
#elif defined(__OS2__) #elif defined(__OS2__)
/* TODO: */ typedef int qse_nwio_hnd_t; /**< defines a pipe handle type */
#elif defined(__DOS__) #elif defined(__DOS__)
/* TODO: */ typedef int qse_nwio_hnd_t; /**< defines a pipe handle type */
#else #else
typedef int qse_nwio_hnd_t; /**< defines a pipe handle type */ typedef int qse_nwio_hnd_t; /**< defines a pipe handle type */
#endif #endif

View File

@ -65,11 +65,7 @@ enum qse_tio_flag_t
QSE_TIO_IGNOREMBWCERR = (1 << 0), QSE_TIO_IGNOREMBWCERR = (1 << 0),
/**< do not flush data in the buffer until the buffer gets full. */ /**< do not flush data in the buffer until the buffer gets full. */
QSE_TIO_NOAUTOFLUSH = (1 << 1), QSE_TIO_NOAUTOFLUSH = (1 << 1)
/* for internal use only. */
QSE_TIO_DYNINBUF = (1 << 29),
QSE_TIO_DYNOUTBUF = (1 << 30)
}; };
enum qse_tio_misc_t enum qse_tio_misc_t
@ -120,7 +116,7 @@ struct qse_tio_t
qse_tio_io_t out; qse_tio_io_t out;
/* for house keeping from here */ /* for house keeping from here */
int input_status; int status;
qse_size_t inbuf_cur; qse_size_t inbuf_cur;
qse_size_t inbuf_len; qse_size_t inbuf_len;
qse_size_t outbuf_len; qse_size_t outbuf_len;

View File

@ -91,8 +91,6 @@ libqsecmn_la_SOURCES = \
str-word.c \ str-word.c \
time.c \ time.c \
tio.c \ tio.c \
tio-get.c \
tio-put.c \
tre.c \ tre.c \
tre-ast.c \ tre-ast.c \
tre-compile.c \ tre-compile.c \

View File

@ -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-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-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-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 \ str-tok.lo str-trm.lo str-word.lo time.lo tio.lo tre.lo \
tio-put.lo tre.lo tre-ast.lo tre-compile.lo \ tre-ast.lo tre-compile.lo tre-match-backtrack.lo \
tre-match-backtrack.lo tre-match-parallel.lo tre-parse.lo \ tre-match-parallel.lo tre-parse.lo tre-stack.lo utf8.lo xma.lo
tre-stack.lo utf8.lo xma.lo
libqsecmn_la_OBJECTS = $(am_libqsecmn_la_OBJECTS) libqsecmn_la_OBJECTS = $(am_libqsecmn_la_OBJECTS)
libqsecmn_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ libqsecmn_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
@ -368,8 +367,6 @@ libqsecmn_la_SOURCES = \
str-word.c \ str-word.c \
time.c \ time.c \
tio.c \ tio.c \
tio-get.c \
tio-put.c \
tre.c \ tre.c \
tre-ast.c \ tre-ast.c \
tre-compile.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-trm.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/str-word.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)/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)/tio.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tre-ast.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@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tre-compile.Plo@am__quote@

View File

@ -26,7 +26,10 @@
# include <ws2tcpip.h> /* sockaddr_in6 */ # include <ws2tcpip.h> /* sockaddr_in6 */
# include <windows.h> # include <windows.h>
#elif defined(__OS2__) #elif defined(__OS2__)
/* TODO: */ # include <types.h>
# include <sys/socket.h>
# include <netinet/in.h>
# include <nerrno.h>
#elif defined(__DOS__) #elif defined(__DOS__)
/* TODO: */ /* TODO: */
#else #else
@ -35,15 +38,17 @@
# include <netinet/in.h> # include <netinet/in.h>
#endif #endif
QSE_IMPLEMENT_COMMON_FUNCTIONS (nwio)
enum enum
{ {
UDP_CONNECT_NEEDED = (1 << 0) STATUS_UDP_CONNECT = (1 << 0)
}; };
union sockaddr_t union sockaddr_t
{ {
struct sockaddr_in in4; struct sockaddr_in in4;
#if defined(AF_INET6) #if defined(AF_INET6) && !defined(__OS2__)
struct sockaddr_in6 in6; struct sockaddr_in6 in6;
#endif #endif
}; };
@ -53,6 +58,7 @@ static qse_ssize_t socket_input (
static qse_ssize_t socket_output ( static qse_ssize_t socket_output (
qse_tio_t* tio, qse_tio_cmd_t cmd, void* buf, qse_size_t size); 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) static int nwad_to_sockaddr (const qse_nwad_t* nwad, int* family, void* addr)
{ {
int addrsize = -1; 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: case QSE_NWAD_IN6:
{ {
#if defined(AF_INET6) #if defined(AF_INET6) && !defined(__OS2__)
struct sockaddr_in6* in; struct sockaddr_in6* in;
in = (struct sockaddr_in6*)addr; in = (struct sockaddr_in6*)addr;
@ -125,35 +131,42 @@ static qse_nwio_errnum_t syserr_to_errnum (DWORD e)
} }
} }
#elif defined(__OS2__) #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) switch (e)
{ {
case ERROR_NOT_ENOUGH_MEMORY: case SOCENOMEM:
return QSE_NWIO_ENOMEM; return QSE_NWIO_ENOMEM;
case ERROR_INVALID_PARAMETER: case SOCEINVAL:
case ERROR_INVALID_HANDLE:
case ERROR_INVALID_NAME:
return QSE_NWIO_EINVAL; return QSE_NWIO_EINVAL;
case ERROR_ACCESS_DENIED: case SOCEACCES:
return QSE_NWIO_EACCES; return QSE_NWIO_EACCES;
case ERROR_FILE_NOT_FOUND: case SOCENOENT:
case ERROR_PATH_NOT_FOUND:
return QSE_NWIO_ENOENT; return QSE_NWIO_ENOENT;
case ERROR_ALREADY_EXISTS: case SOCEEXIST:
return QSE_NWIO_EEXIST; return QSE_NWIO_EEXIST;
case ERROR_BROKEN_PIPE: case SOCEINTR:
return QSE_NWIO_EINTR;
case SOCEPIPE:
return QSE_NWIO_EPIPE; return QSE_NWIO_EPIPE;
case SOCECONNREFUSED:
case SOCENETUNREACH:
case SOCEHOSTUNREACH:
case SOCEHOSTDOWN:
return QSE_NWIO_ECONN;
default: default:
return QSE_NWIO_ESYSERR; return QSE_NWIO_ESYSERR;
} }
} }
#elif defined(__DOS__) #elif defined(__DOS__)
static qse_nwio_errnum_t syserr_to_errnum (int e) 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)); QSE_MEMSET (nwio, 0, QSE_SIZEOF(*nwio));
nwio->mmgr = mmgr; nwio->mmgr = mmgr;
nwio->flags = flags; nwio->flags = flags;
nwio->errnum = QSE_NWIO_ENOERR;
tmp = nwad_to_sockaddr (nwad, &family, &addr); tmp = nwad_to_sockaddr (nwad, &family, &addr);
if (tmp <= -1) if (tmp <= -1)
@ -343,7 +357,7 @@ int qse_nwio_init (
} }
else if (flags & QSE_NWIO_UDP) else if (flags & QSE_NWIO_UDP)
{ {
nwio->status |= UDP_CONNECT_NEEDED; nwio->status |= STATUS_UDP_CONNECT;
} }
} }
else else
@ -356,8 +370,54 @@ int qse_nwio_init (
} }
#elif defined(__OS2__) #elif defined(__OS2__)
nwio->errnum = QSE_NWIO_ENOIMPL; nwio->handle = socket (family, type, 0);
return -1; 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__) #elif defined(__DOS__)
nwio->errnum = QSE_NWIO_ENOIMPL; nwio->errnum = QSE_NWIO_ENOIMPL;
@ -403,20 +463,12 @@ int qse_nwio_init (
goto oops; goto oops;
} }
#if defined(_WIN32)
closesocket (nwio->handle);
#elif defined(__OS2__)
/* TODO: */
#elif defined(__DOS__)
/* TODO: */
#else
QSE_CLOSE (nwio->handle); QSE_CLOSE (nwio->handle);
#endif
nwio->handle = handle; nwio->handle = handle;
} }
else if (flags & QSE_NWIO_UDP) else if (flags & QSE_NWIO_UDP)
{ {
nwio->status |= UDP_CONNECT_NEEDED; nwio->status |= STATUS_UDP_CONNECT;
} }
} }
else else
@ -468,10 +520,11 @@ oops:
if (nwio->handle != INVALID_SOCKET) closesocket (nwio->handle); if (nwio->handle != INVALID_SOCKET) closesocket (nwio->handle);
#elif defined(__OS2__) #elif defined(__OS2__)
/* TODO: */ if (nwio->handle >= 0) soclose (nwio->handle);
#elif defined(__DOS__) #elif defined(__DOS__)
/* TODO: */ /* TODO: */
#else #else
if (nwio->handle >= 0) QSE_CLOSE (nwio->handle); if (nwio->handle >= 0) QSE_CLOSE (nwio->handle);
#endif #endif
@ -526,9 +579,9 @@ qse_ubi_t qse_nwio_gethandleasubi (const qse_nwio_t* nwio)
#if defined(_WIN32) #if defined(_WIN32)
ubi.intptr = nwio->handle; ubi.intptr = nwio->handle;
#elif defined(__OS2__) #elif defined(__OS2__)
/* TODO: */ ubi.i = nwio->handle;
#elif defined(__DOS__) #elif defined(__DOS__)
/* TODO: */ ubi.i = nwio->handle;
#else #else
ubi.i = nwio->handle; ubi.i = nwio->handle;
#endif #endif
@ -563,8 +616,7 @@ static qse_ssize_t nwio_read (qse_nwio_t* nwio, void* buf, qse_size_t size)
#if defined(_WIN32) #if defined(_WIN32)
int count; int count;
#elif defined(__OS2__) #elif defined(__OS2__)
ULONG count; int n;
APIRET rc;
#elif defined(__DOS__) #elif defined(__DOS__)
int n; int n;
#else #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))) if (size > (QSE_TYPE_MAX(qse_ssize_t) & QSE_TYPE_MAX(int)))
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; union sockaddr_t addr;
int addrlen; int addrlen;
@ -584,7 +636,10 @@ static qse_ssize_t nwio_read (qse_nwio_t* nwio, void* buf, qse_size_t size)
count = recvfrom ( count = recvfrom (
nwio->handle, buf, size, 0, nwio->handle, buf, size, 0,
(struct sockaddr*)&addr, &addrlen); (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) else if (count >= 1)
{ {
/* for udp, it just creates a stream with the /* 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()); nwio->errnum = syserr_to_errnum (WSAGetLastError());
return -1; return -1;
} }
nwio->status &= ~UDP_CONNECT_NEEDED; nwio->status &= ~STATUS_UDP_CONNECT;
} }
} }
else else
@ -606,8 +661,41 @@ static qse_ssize_t nwio_read (qse_nwio_t* nwio, void* buf, qse_size_t size)
return count; return count;
#elif defined(__OS2__) #elif defined(__OS2__)
nwio->errnum = QSE_NWIO_ENOIMPL; 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; 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__) #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); size = QSE_TYPE_MAX(qse_ssize_t) & QSE_TYPE_MAX(size_t);
reread: reread:
if (nwio->status & UDP_CONNECT_NEEDED) if (nwio->status & STATUS_UDP_CONNECT)
{ {
union sockaddr_t addr; union sockaddr_t addr;
#ifdef HAVE_SOCKLEN_T #ifdef HAVE_SOCKLEN_T
@ -655,7 +743,7 @@ reread:
nwio->errnum = syserr_to_errnum (errno); nwio->errnum = syserr_to_errnum (errno);
return -1; return -1;
} }
nwio->status &= ~UDP_CONNECT_NEEDED; nwio->status &= ~STATUS_UDP_CONNECT;
} }
} }
else 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) #if defined(_WIN32)
int count; int count;
#elif defined(__OS2__) #elif defined(__OS2__)
ULONG count; int n;
APIRET rc;
#elif defined(__DOS__) #elif defined(__DOS__)
int n; int n;
#else #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__) #elif defined(__OS2__)
nwio->errnum = QSE_NWIO_ENOIMPL; if (size > (QSE_TYPE_MAX(qse_ssize_t) & QSE_TYPE_MAX(int)))
return -1; 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__) #elif defined(__DOS__)

View File

@ -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 <http://www.gnu.org/licenses/>.
*/
#include <qse/cmn/tio.h>
#include <qse/cmn/mbwc.h>
#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;
}

View File

@ -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 <http://www.gnu.org/licenses/>.
*/
#include <qse/cmn/tio.h>
#include <qse/cmn/mbwc.h>
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;
}

View File

@ -24,6 +24,11 @@
QSE_IMPLEMENT_COMMON_FUNCTIONS (tio) 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_in (qse_tio_t* tio, int fini);
static int detach_out (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->mmgr = mmgr;
tio->cmgr = qse_getdflcmgr(); tio->cmgr = qse_getdflcmgr();
/* mask off internal bits when storing the flags for safety */ tio->flags = flags;
tio->flags = flags & ~(QSE_TIO_DYNINBUF | QSE_TIO_DYNOUTBUF);
/* /*
tio->input_func = QSE_NULL; 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_func = QSE_NULL;
tio->output_arg = QSE_NULL; tio->output_arg = QSE_NULL;
tio->input_status = 0; tio->status = 0;
tio->inbuf_cur = 0; tio->inbuf_cur = 0;
tio->inbuf_len = 0; tio->inbuf_len = 0;
tio->outbuf_len = 0; tio->outbuf_len = 0;
@ -154,11 +158,11 @@ int qse_tio_attachin (
tio->in.buf.ptr = xbufptr; tio->in.buf.ptr = xbufptr;
tio->in.buf.capa = bufcapa; tio->in.buf.capa = bufcapa;
tio->input_status = 0; tio->status &= ~(STATUS_INPUT_ILLSEQ | STATUS_INPUT_EOF);
tio->inbuf_cur = 0; tio->inbuf_cur = 0;
tio->inbuf_len = 0; tio->inbuf_len = 0;
if (xbufptr != bufptr) tio->flags |= QSE_TIO_DYNINBUF; if (xbufptr != bufptr) tio->status |= STATUS_INPUT_DYNBUF;
return 0; return 0;
} }
@ -181,10 +185,10 @@ static int detach_in (qse_tio_t* tio, int fini)
ret = -1; ret = -1;
} }
if (tio->flags & QSE_TIO_DYNINBUF) if (tio->status & STATUS_INPUT_DYNBUF)
{ {
QSE_MMGR_FREE (tio->mmgr, tio->in.buf.ptr); QSE_MMGR_FREE (tio->mmgr, tio->in.buf.ptr);
tio->flags &= ~QSE_TIO_DYNINBUF; tio->status &= ~STATUS_INPUT_DYNBUF;
} }
tio->in.fun = QSE_NULL; tio->in.fun = QSE_NULL;
@ -242,7 +246,7 @@ int qse_tio_attachout (
tio->outbuf_len = 0; tio->outbuf_len = 0;
if (xbufptr != bufptr) tio->flags |= QSE_TIO_DYNOUTBUF; if (xbufptr != bufptr) tio->status |= STATUS_OUTPUT_DYNBUF;
return 0; return 0;
} }
@ -266,10 +270,10 @@ static int detach_out (qse_tio_t* tio, int fini)
ret = -1; ret = -1;
} }
if (tio->flags & QSE_TIO_DYNOUTBUF) if (tio->status & STATUS_OUTPUT_DYNBUF)
{ {
QSE_MMGR_FREE (tio->mmgr, tio->out.buf.ptr); QSE_MMGR_FREE (tio->mmgr, tio->out.buf.ptr);
tio->flags &= ~QSE_TIO_DYNOUTBUF; tio->status &= ~STATUS_OUTPUT_DYNBUF;
} }
tio->out.fun = QSE_NULL; 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) 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_cur = 0;
tio->inbuf_len = 0; tio->inbuf_len = 0;
tio->outbuf_len = 0; tio->outbuf_len = 0;
tio->errnum = QSE_TIO_ENOERR; 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;
}

View File

@ -42,7 +42,7 @@ WVList
0 0
10 10
WPickList WPickList
79 81
11 11
MItem MItem
3 3
@ -401,8 +401,8 @@ WVList
0 0
91 91
MItem MItem
28 29
../../../../../lib/cmn/lda.c ../../../../../lib/cmn/hton.c
92 92
WString WString
4 4
@ -420,7 +420,7 @@ WVList
95 95
MItem MItem
29 29
../../../../../lib/cmn/main.c ../../../../../lib/cmn/ipad.c
96 96
WString WString
4 4
@ -437,8 +437,8 @@ WVList
0 0
99 99
MItem MItem
33 28
../../../../../lib/cmn/mbwc-str.c ../../../../../lib/cmn/lda.c
100 100
WString WString
4 4
@ -456,7 +456,7 @@ WVList
103 103
MItem MItem
29 29
../../../../../lib/cmn/mbwc.c ../../../../../lib/cmn/main.c
104 104
WString WString
4 4
@ -473,8 +473,8 @@ WVList
0 0
107 107
MItem MItem
28 33
../../../../../lib/cmn/mem.c ../../../../../lib/cmn/mbwc-str.c
108 108
WString WString
4 4
@ -491,8 +491,8 @@ WVList
0 0
111 111
MItem MItem
28 29
../../../../../lib/cmn/oht.c ../../../../../lib/cmn/mbwc.c
112 112
WString WString
4 4
@ -510,7 +510,7 @@ WVList
115 115
MItem MItem
28 28
../../../../../lib/cmn/opt.c ../../../../../lib/cmn/mem.c
116 116
WString WString
4 4
@ -527,8 +527,8 @@ WVList
0 0
119 119
MItem MItem
38 29
../../../../../lib/cmn/path-basename.c ../../../../../lib/cmn/nwad.c
120 120
WString WString
4 4
@ -545,8 +545,8 @@ WVList
0 0
123 123
MItem MItem
35 29
../../../../../lib/cmn/path-canon.c ../../../../../lib/cmn/nwio.c
124 124
WString WString
4 4
@ -564,7 +564,7 @@ WVList
127 127
MItem MItem
28 28
../../../../../lib/cmn/pio.c ../../../../../lib/cmn/oht.c
128 128
WString WString
4 4
@ -582,7 +582,7 @@ WVList
131 131
MItem MItem
28 28
../../../../../lib/cmn/pma.c ../../../../../lib/cmn/opt.c
132 132
WString WString
4 4
@ -599,8 +599,8 @@ WVList
0 0
135 135
MItem MItem
28 38
../../../../../lib/cmn/rbt.c ../../../../../lib/cmn/path-basename.c
136 136
WString WString
4 4
@ -617,8 +617,8 @@ WVList
0 0
139 139
MItem MItem
28 35
../../../../../lib/cmn/rex.c ../../../../../lib/cmn/path-canon.c
140 140
WString WString
4 4
@ -636,7 +636,7 @@ WVList
143 143
MItem MItem
28 28
../../../../../lib/cmn/sio.c ../../../../../lib/cmn/pio.c
144 144
WString WString
4 4
@ -654,7 +654,7 @@ WVList
147 147
MItem MItem
28 28
../../../../../lib/cmn/sll.c ../../../../../lib/cmn/pma.c
148 148
WString WString
4 4
@ -671,8 +671,8 @@ WVList
0 0
151 151
MItem MItem
29 28
../../../../../lib/cmn/slmb.c ../../../../../lib/cmn/rbt.c
152 152
WString WString
4 4
@ -689,8 +689,8 @@ WVList
0 0
155 155
MItem MItem
30 28
../../../../../lib/cmn/stdio.c ../../../../../lib/cmn/rex.c
156 156
WString WString
4 4
@ -707,8 +707,8 @@ WVList
0 0
159 159
MItem MItem
32 28
../../../../../lib/cmn/str-beg.c ../../../../../lib/cmn/sio.c
160 160
WString WString
4 4
@ -725,8 +725,8 @@ WVList
0 0
163 163
MItem MItem
32 28
../../../../../lib/cmn/str-cat.c ../../../../../lib/cmn/sll.c
164 164
WString WString
4 4
@ -743,8 +743,8 @@ WVList
0 0
167 167
MItem MItem
32 29
../../../../../lib/cmn/str-chr.c ../../../../../lib/cmn/slmb.c
168 168
WString WString
4 4
@ -761,8 +761,8 @@ WVList
0 0
171 171
MItem MItem
32 30
../../../../../lib/cmn/str-cmp.c ../../../../../lib/cmn/stdio.c
172 172
WString WString
4 4
@ -780,7 +780,7 @@ WVList
175 175
MItem MItem
32 32
../../../../../lib/cmn/str-cnv.c ../../../../../lib/cmn/str-beg.c
176 176
WString WString
4 4
@ -798,7 +798,7 @@ WVList
179 179
MItem MItem
32 32
../../../../../lib/cmn/str-cpy.c ../../../../../lib/cmn/str-cat.c
180 180
WString WString
4 4
@ -816,7 +816,7 @@ WVList
183 183
MItem MItem
32 32
../../../../../lib/cmn/str-del.c ../../../../../lib/cmn/str-chr.c
184 184
WString WString
4 4
@ -834,7 +834,7 @@ WVList
187 187
MItem MItem
32 32
../../../../../lib/cmn/str-dup.c ../../../../../lib/cmn/str-cmp.c
188 188
WString WString
4 4
@ -851,8 +851,8 @@ WVList
0 0
191 191
MItem MItem
33 32
../../../../../lib/cmn/str-dynm.c ../../../../../lib/cmn/str-cnv.c
192 192
WString WString
4 4
@ -869,8 +869,8 @@ WVList
0 0
195 195
MItem MItem
33 32
../../../../../lib/cmn/str-dynw.c ../../../../../lib/cmn/str-cpy.c
196 196
WString WString
4 4
@ -888,7 +888,7 @@ WVList
199 199
MItem MItem
32 32
../../../../../lib/cmn/str-end.c ../../../../../lib/cmn/str-del.c
200 200
WString WString
4 4
@ -905,8 +905,8 @@ WVList
0 0
203 203
MItem MItem
33 32
../../../../../lib/cmn/str-excl.c ../../../../../lib/cmn/str-dup.c
204 204
WString WString
4 4
@ -924,7 +924,7 @@ WVList
207 207
MItem MItem
33 33
../../../../../lib/cmn/str-fcpy.c ../../../../../lib/cmn/str-dynm.c
208 208
WString WString
4 4
@ -942,7 +942,7 @@ WVList
211 211
MItem MItem
33 33
../../../../../lib/cmn/str-incl.c ../../../../../lib/cmn/str-dynw.c
212 212
WString WString
4 4
@ -960,7 +960,7 @@ WVList
215 215
MItem MItem
32 32
../../../../../lib/cmn/str-len.c ../../../../../lib/cmn/str-end.c
216 216
WString WString
4 4
@ -977,8 +977,8 @@ WVList
0 0
219 219
MItem MItem
32 33
../../../../../lib/cmn/str-pac.c ../../../../../lib/cmn/str-excl.c
220 220
WString WString
4 4
@ -996,7 +996,7 @@ WVList
223 223
MItem MItem
33 33
../../../../../lib/cmn/str-pbrk.c ../../../../../lib/cmn/str-fcpy.c
224 224
WString WString
4 4
@ -1013,8 +1013,8 @@ WVList
0 0
227 227
MItem MItem
32 33
../../../../../lib/cmn/str-put.c ../../../../../lib/cmn/str-incl.c
228 228
WString WString
4 4
@ -1032,7 +1032,7 @@ WVList
231 231
MItem MItem
32 32
../../../../../lib/cmn/str-rev.c ../../../../../lib/cmn/str-len.c
232 232
WString WString
4 4
@ -1050,7 +1050,7 @@ WVList
235 235
MItem MItem
32 32
../../../../../lib/cmn/str-rot.c ../../../../../lib/cmn/str-pac.c
236 236
WString WString
4 4
@ -1067,8 +1067,8 @@ WVList
0 0
239 239
MItem MItem
32 33
../../../../../lib/cmn/str-set.c ../../../../../lib/cmn/str-pbrk.c
240 240
WString WString
4 4
@ -1086,7 +1086,7 @@ WVList
243 243
MItem MItem
32 32
../../../../../lib/cmn/str-spl.c ../../../../../lib/cmn/str-put.c
244 244
WString WString
4 4
@ -1104,7 +1104,7 @@ WVList
247 247
MItem MItem
32 32
../../../../../lib/cmn/str-spn.c ../../../../../lib/cmn/str-rev.c
248 248
WString WString
4 4
@ -1122,7 +1122,7 @@ WVList
251 251
MItem MItem
32 32
../../../../../lib/cmn/str-str.c ../../../../../lib/cmn/str-rot.c
252 252
WString WString
4 4
@ -1139,8 +1139,8 @@ WVList
0 0
255 255
MItem MItem
34 32
../../../../../lib/cmn/str-subst.c ../../../../../lib/cmn/str-set.c
256 256
WString WString
4 4
@ -1158,7 +1158,7 @@ WVList
259 259
MItem MItem
32 32
../../../../../lib/cmn/str-tok.c ../../../../../lib/cmn/str-spl.c
260 260
WString WString
4 4
@ -1176,7 +1176,7 @@ WVList
263 263
MItem MItem
32 32
../../../../../lib/cmn/str-trm.c ../../../../../lib/cmn/str-spn.c
264 264
WString WString
4 4
@ -1193,8 +1193,8 @@ WVList
0 0
267 267
MItem MItem
33 32
../../../../../lib/cmn/str-word.c ../../../../../lib/cmn/str-str.c
268 268
WString WString
4 4
@ -1211,8 +1211,8 @@ WVList
0 0
271 271
MItem MItem
29 34
../../../../../lib/cmn/time.c ../../../../../lib/cmn/str-subst.c
272 272
WString WString
4 4
@ -1230,7 +1230,7 @@ WVList
275 275
MItem MItem
32 32
../../../../../lib/cmn/tio-get.c ../../../../../lib/cmn/str-tok.c
276 276
WString WString
4 4
@ -1248,7 +1248,7 @@ WVList
279 279
MItem MItem
32 32
../../../../../lib/cmn/tio-put.c ../../../../../lib/cmn/str-trm.c
280 280
WString WString
4 4
@ -1265,8 +1265,8 @@ WVList
0 0
283 283
MItem MItem
28 33
../../../../../lib/cmn/tio.c ../../../../../lib/cmn/str-word.c
284 284
WString WString
4 4
@ -1283,8 +1283,8 @@ WVList
0 0
287 287
MItem MItem
32 29
../../../../../lib/cmn/tre-ast.c ../../../../../lib/cmn/time.c
288 288
WString WString
4 4
@ -1301,8 +1301,8 @@ WVList
0 0
291 291
MItem MItem
36 28
../../../../../lib/cmn/tre-compile.c ../../../../../lib/cmn/tio.c
292 292
WString WString
4 4
@ -1319,8 +1319,8 @@ WVList
0 0
295 295
MItem MItem
44 32
../../../../../lib/cmn/tre-match-backtrack.c ../../../../../lib/cmn/tre-ast.c
296 296
WString WString
4 4
@ -1337,8 +1337,8 @@ WVList
0 0
299 299
MItem MItem
43 36
../../../../../lib/cmn/tre-match-parallel.c ../../../../../lib/cmn/tre-compile.c
300 300
WString WString
4 4
@ -1355,8 +1355,8 @@ WVList
0 0
303 303
MItem MItem
34 44
../../../../../lib/cmn/tre-parse.c ../../../../../lib/cmn/tre-match-backtrack.c
304 304
WString WString
4 4
@ -1373,8 +1373,8 @@ WVList
0 0
307 307
MItem MItem
34 43
../../../../../lib/cmn/tre-stack.c ../../../../../lib/cmn/tre-match-parallel.c
308 308
WString WString
4 4
@ -1391,8 +1391,8 @@ WVList
0 0
311 311
MItem MItem
28 34
../../../../../lib/cmn/tre.c ../../../../../lib/cmn/tre-parse.c
312 312
WString WString
4 4
@ -1409,8 +1409,8 @@ WVList
0 0
315 315
MItem MItem
29 34
../../../../../lib/cmn/utf8.c ../../../../../lib/cmn/tre-stack.c
316 316
WString WString
4 4
@ -1428,7 +1428,7 @@ WVList
319 319
MItem MItem
28 28
../../../../../lib/cmn/xma.c ../../../../../lib/cmn/tre.c
320 320
WString WString
4 4
@ -1445,44 +1445,44 @@ WVList
0 0
323 323
MItem MItem
3 29
*.h ../../../../../lib/cmn/utf8.c
324 324
WString WString
3 4
NIL COBJ
325 325
WVList WVList
0 0
326 326
WVList WVList
0 0
-1 11
1 1
1 1
0 0
327 327
MItem MItem
28 28
../../../../../lib/cmn/mem.h ../../../../../lib/cmn/xma.c
328 328
WString WString
3 4
NIL COBJ
329 329
WVList WVList
0 0
330 330
WVList WVList
0 0
323 11
1 1
1 1
0 0
331 331
MItem MItem
32 3
../../../../../lib/cmn/syscall.h *.h
332 332
WString WString
3 3
@ -1493,7 +1493,43 @@ WVList
334 334
WVList WVList
0 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
1 1
0 0

View File

@ -42,7 +42,7 @@ WVList
0 0
10 10
WPickList WPickList
22 23
11 11
MItem MItem
3 3
@ -314,26 +314,26 @@ WVList
0 0
73 73
MItem MItem
3 29
*.h ../../../../../lib/cmn/hton.c
74 74
WString WString
3 4
NIL COBJ
75 75
WVList WVList
0 0
76 76
WVList WVList
0 0
-1 11
1 1
1 1
0 0
77 77
MItem MItem
28 3
../../../../../lib/awk/awk.h *.h
78 78
WString WString
3 3
@ -344,14 +344,14 @@ WVList
80 80
WVList WVList
0 0
73 -1
1 1
1 1
0 0
81 81
MItem MItem
28 28
../../../../../lib/awk/err.h ../../../../../lib/awk/awk.h
82 82
WString WString
3 3
@ -362,14 +362,14 @@ WVList
84 84
WVList WVList
0 0
73 77
1 1
1 1
0 0
85 85
MItem MItem
28 28
../../../../../lib/awk/fnc.h ../../../../../lib/awk/err.h
86 86
WString WString
3 3
@ -380,14 +380,14 @@ WVList
88 88
WVList WVList
0 0
73 77
1 1
1 1
0 0
89 89
MItem MItem
29 28
../../../../../lib/awk/misc.h ../../../../../lib/awk/fnc.h
90 90
WString WString
3 3
@ -398,14 +398,14 @@ WVList
92 92
WVList WVList
0 0
73 77
1 1
1 1
0 0
93 93
MItem MItem
30 29
../../../../../lib/awk/parse.h ../../../../../lib/awk/misc.h
94 94
WString WString
3 3
@ -416,14 +416,14 @@ WVList
96 96
WVList WVList
0 0
73 77
1 1
1 1
0 0
97 97
MItem MItem
28 30
../../../../../lib/awk/rio.h ../../../../../lib/awk/parse.h
98 98
WString WString
3 3
@ -434,14 +434,14 @@ WVList
100 100
WVList WVList
0 0
73 77
1 1
1 1
0 0
101 101
MItem MItem
28 28
../../../../../lib/awk/run.h ../../../../../lib/awk/rio.h
102 102
WString WString
3 3
@ -452,14 +452,14 @@ WVList
104 104
WVList WVList
0 0
73 77
1 1
1 1
0 0
105 105
MItem MItem
29 28
../../../../../lib/awk/tree.h ../../../../../lib/awk/run.h
106 106
WString WString
3 3
@ -470,14 +470,14 @@ WVList
108 108
WVList WVList
0 0
73 77
1 1
1 1
0 0
109 109
MItem MItem
28 29
../../../../../lib/awk/val.h ../../../../../lib/awk/tree.h
110 110
WString WString
3 3
@ -488,7 +488,25 @@ WVList
112 112
WVList WVList
0 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
1 1
0 0

View File

@ -42,7 +42,7 @@ WVList
0 0
10 10
WPickList WPickList
79 81
11 11
MItem MItem
3 3
@ -413,8 +413,8 @@ WVList
0 0
94 94
MItem MItem
28 29
../../../../../lib/cmn/lda.c ../../../../../lib/cmn/hton.c
95 95
WString WString
4 4
@ -432,7 +432,7 @@ WVList
98 98
MItem MItem
29 29
../../../../../lib/cmn/main.c ../../../../../lib/cmn/ipad.c
99 99
WString WString
4 4
@ -449,8 +449,8 @@ WVList
0 0
102 102
MItem MItem
33 28
../../../../../lib/cmn/mbwc-str.c ../../../../../lib/cmn/lda.c
103 103
WString WString
4 4
@ -468,7 +468,7 @@ WVList
106 106
MItem MItem
29 29
../../../../../lib/cmn/mbwc.c ../../../../../lib/cmn/main.c
107 107
WString WString
4 4
@ -485,8 +485,8 @@ WVList
0 0
110 110
MItem MItem
28 33
../../../../../lib/cmn/mem.c ../../../../../lib/cmn/mbwc-str.c
111 111
WString WString
4 4
@ -503,8 +503,8 @@ WVList
0 0
114 114
MItem MItem
28 29
../../../../../lib/cmn/oht.c ../../../../../lib/cmn/mbwc.c
115 115
WString WString
4 4
@ -522,7 +522,7 @@ WVList
118 118
MItem MItem
28 28
../../../../../lib/cmn/opt.c ../../../../../lib/cmn/mem.c
119 119
WString WString
4 4
@ -539,8 +539,8 @@ WVList
0 0
122 122
MItem MItem
38 29
../../../../../lib/cmn/path-basename.c ../../../../../lib/cmn/nwad.c
123 123
WString WString
4 4
@ -557,8 +557,8 @@ WVList
0 0
126 126
MItem MItem
35 29
../../../../../lib/cmn/path-canon.c ../../../../../lib/cmn/nwio.c
127 127
WString WString
4 4
@ -576,7 +576,7 @@ WVList
130 130
MItem MItem
28 28
../../../../../lib/cmn/pio.c ../../../../../lib/cmn/oht.c
131 131
WString WString
4 4
@ -594,7 +594,7 @@ WVList
134 134
MItem MItem
28 28
../../../../../lib/cmn/pma.c ../../../../../lib/cmn/opt.c
135 135
WString WString
4 4
@ -611,8 +611,8 @@ WVList
0 0
138 138
MItem MItem
28 38
../../../../../lib/cmn/rbt.c ../../../../../lib/cmn/path-basename.c
139 139
WString WString
4 4
@ -629,8 +629,8 @@ WVList
0 0
142 142
MItem MItem
28 35
../../../../../lib/cmn/rex.c ../../../../../lib/cmn/path-canon.c
143 143
WString WString
4 4
@ -648,7 +648,7 @@ WVList
146 146
MItem MItem
28 28
../../../../../lib/cmn/sio.c ../../../../../lib/cmn/pio.c
147 147
WString WString
4 4
@ -666,7 +666,7 @@ WVList
150 150
MItem MItem
28 28
../../../../../lib/cmn/sll.c ../../../../../lib/cmn/pma.c
151 151
WString WString
4 4
@ -683,8 +683,8 @@ WVList
0 0
154 154
MItem MItem
29 28
../../../../../lib/cmn/slmb.c ../../../../../lib/cmn/rbt.c
155 155
WString WString
4 4
@ -701,8 +701,8 @@ WVList
0 0
158 158
MItem MItem
30 28
../../../../../lib/cmn/stdio.c ../../../../../lib/cmn/rex.c
159 159
WString WString
4 4
@ -719,8 +719,8 @@ WVList
0 0
162 162
MItem MItem
32 28
../../../../../lib/cmn/str-beg.c ../../../../../lib/cmn/sio.c
163 163
WString WString
4 4
@ -737,8 +737,8 @@ WVList
0 0
166 166
MItem MItem
32 28
../../../../../lib/cmn/str-cat.c ../../../../../lib/cmn/sll.c
167 167
WString WString
4 4
@ -755,8 +755,8 @@ WVList
0 0
170 170
MItem MItem
32 29
../../../../../lib/cmn/str-chr.c ../../../../../lib/cmn/slmb.c
171 171
WString WString
4 4
@ -773,8 +773,8 @@ WVList
0 0
174 174
MItem MItem
32 30
../../../../../lib/cmn/str-cmp.c ../../../../../lib/cmn/stdio.c
175 175
WString WString
4 4
@ -792,7 +792,7 @@ WVList
178 178
MItem MItem
32 32
../../../../../lib/cmn/str-cnv.c ../../../../../lib/cmn/str-beg.c
179 179
WString WString
4 4
@ -810,7 +810,7 @@ WVList
182 182
MItem MItem
32 32
../../../../../lib/cmn/str-cpy.c ../../../../../lib/cmn/str-cat.c
183 183
WString WString
4 4
@ -828,7 +828,7 @@ WVList
186 186
MItem MItem
32 32
../../../../../lib/cmn/str-del.c ../../../../../lib/cmn/str-chr.c
187 187
WString WString
4 4
@ -846,7 +846,7 @@ WVList
190 190
MItem MItem
32 32
../../../../../lib/cmn/str-dup.c ../../../../../lib/cmn/str-cmp.c
191 191
WString WString
4 4
@ -863,8 +863,8 @@ WVList
0 0
194 194
MItem MItem
33 32
../../../../../lib/cmn/str-dynm.c ../../../../../lib/cmn/str-cnv.c
195 195
WString WString
4 4
@ -881,8 +881,8 @@ WVList
0 0
198 198
MItem MItem
33 32
../../../../../lib/cmn/str-dynw.c ../../../../../lib/cmn/str-cpy.c
199 199
WString WString
4 4
@ -900,7 +900,7 @@ WVList
202 202
MItem MItem
32 32
../../../../../lib/cmn/str-end.c ../../../../../lib/cmn/str-del.c
203 203
WString WString
4 4
@ -917,8 +917,8 @@ WVList
0 0
206 206
MItem MItem
33 32
../../../../../lib/cmn/str-excl.c ../../../../../lib/cmn/str-dup.c
207 207
WString WString
4 4
@ -936,7 +936,7 @@ WVList
210 210
MItem MItem
33 33
../../../../../lib/cmn/str-fcpy.c ../../../../../lib/cmn/str-dynm.c
211 211
WString WString
4 4
@ -954,7 +954,7 @@ WVList
214 214
MItem MItem
33 33
../../../../../lib/cmn/str-incl.c ../../../../../lib/cmn/str-dynw.c
215 215
WString WString
4 4
@ -972,7 +972,7 @@ WVList
218 218
MItem MItem
32 32
../../../../../lib/cmn/str-len.c ../../../../../lib/cmn/str-end.c
219 219
WString WString
4 4
@ -989,8 +989,8 @@ WVList
0 0
222 222
MItem MItem
32 33
../../../../../lib/cmn/str-pac.c ../../../../../lib/cmn/str-excl.c
223 223
WString WString
4 4
@ -1008,7 +1008,7 @@ WVList
226 226
MItem MItem
33 33
../../../../../lib/cmn/str-pbrk.c ../../../../../lib/cmn/str-fcpy.c
227 227
WString WString
4 4
@ -1025,8 +1025,8 @@ WVList
0 0
230 230
MItem MItem
32 33
../../../../../lib/cmn/str-put.c ../../../../../lib/cmn/str-incl.c
231 231
WString WString
4 4
@ -1044,7 +1044,7 @@ WVList
234 234
MItem MItem
32 32
../../../../../lib/cmn/str-rev.c ../../../../../lib/cmn/str-len.c
235 235
WString WString
4 4
@ -1062,7 +1062,7 @@ WVList
238 238
MItem MItem
32 32
../../../../../lib/cmn/str-rot.c ../../../../../lib/cmn/str-pac.c
239 239
WString WString
4 4
@ -1079,8 +1079,8 @@ WVList
0 0
242 242
MItem MItem
32 33
../../../../../lib/cmn/str-set.c ../../../../../lib/cmn/str-pbrk.c
243 243
WString WString
4 4
@ -1098,7 +1098,7 @@ WVList
246 246
MItem MItem
32 32
../../../../../lib/cmn/str-spl.c ../../../../../lib/cmn/str-put.c
247 247
WString WString
4 4
@ -1116,7 +1116,7 @@ WVList
250 250
MItem MItem
32 32
../../../../../lib/cmn/str-spn.c ../../../../../lib/cmn/str-rev.c
251 251
WString WString
4 4
@ -1134,7 +1134,7 @@ WVList
254 254
MItem MItem
32 32
../../../../../lib/cmn/str-str.c ../../../../../lib/cmn/str-rot.c
255 255
WString WString
4 4
@ -1151,8 +1151,8 @@ WVList
0 0
258 258
MItem MItem
34 32
../../../../../lib/cmn/str-subst.c ../../../../../lib/cmn/str-set.c
259 259
WString WString
4 4
@ -1170,7 +1170,7 @@ WVList
262 262
MItem MItem
32 32
../../../../../lib/cmn/str-tok.c ../../../../../lib/cmn/str-spl.c
263 263
WString WString
4 4
@ -1188,7 +1188,7 @@ WVList
266 266
MItem MItem
32 32
../../../../../lib/cmn/str-trm.c ../../../../../lib/cmn/str-spn.c
267 267
WString WString
4 4
@ -1205,8 +1205,8 @@ WVList
0 0
270 270
MItem MItem
33 32
../../../../../lib/cmn/str-word.c ../../../../../lib/cmn/str-str.c
271 271
WString WString
4 4
@ -1223,8 +1223,8 @@ WVList
0 0
274 274
MItem MItem
29 34
../../../../../lib/cmn/time.c ../../../../../lib/cmn/str-subst.c
275 275
WString WString
4 4
@ -1242,7 +1242,7 @@ WVList
278 278
MItem MItem
32 32
../../../../../lib/cmn/tio-get.c ../../../../../lib/cmn/str-tok.c
279 279
WString WString
4 4
@ -1260,7 +1260,7 @@ WVList
282 282
MItem MItem
32 32
../../../../../lib/cmn/tio-put.c ../../../../../lib/cmn/str-trm.c
283 283
WString WString
4 4
@ -1277,8 +1277,8 @@ WVList
0 0
286 286
MItem MItem
28 33
../../../../../lib/cmn/tio.c ../../../../../lib/cmn/str-word.c
287 287
WString WString
4 4
@ -1295,8 +1295,8 @@ WVList
0 0
290 290
MItem MItem
32 29
../../../../../lib/cmn/tre-ast.c ../../../../../lib/cmn/time.c
291 291
WString WString
4 4
@ -1313,8 +1313,8 @@ WVList
0 0
294 294
MItem MItem
36 28
../../../../../lib/cmn/tre-compile.c ../../../../../lib/cmn/tio.c
295 295
WString WString
4 4
@ -1331,8 +1331,8 @@ WVList
0 0
298 298
MItem MItem
44 32
../../../../../lib/cmn/tre-match-backtrack.c ../../../../../lib/cmn/tre-ast.c
299 299
WString WString
4 4
@ -1349,8 +1349,8 @@ WVList
0 0
302 302
MItem MItem
43 36
../../../../../lib/cmn/tre-match-parallel.c ../../../../../lib/cmn/tre-compile.c
303 303
WString WString
4 4
@ -1367,8 +1367,8 @@ WVList
0 0
306 306
MItem MItem
34 44
../../../../../lib/cmn/tre-parse.c ../../../../../lib/cmn/tre-match-backtrack.c
307 307
WString WString
4 4
@ -1385,8 +1385,8 @@ WVList
0 0
310 310
MItem MItem
34 43
../../../../../lib/cmn/tre-stack.c ../../../../../lib/cmn/tre-match-parallel.c
311 311
WString WString
4 4
@ -1403,8 +1403,8 @@ WVList
0 0
314 314
MItem MItem
28 34
../../../../../lib/cmn/tre.c ../../../../../lib/cmn/tre-parse.c
315 315
WString WString
4 4
@ -1421,8 +1421,8 @@ WVList
0 0
318 318
MItem MItem
29 34
../../../../../lib/cmn/utf8.c ../../../../../lib/cmn/tre-stack.c
319 319
WString WString
4 4
@ -1440,7 +1440,7 @@ WVList
322 322
MItem MItem
28 28
../../../../../lib/cmn/xma.c ../../../../../lib/cmn/tre.c
323 323
WString WString
4 4
@ -1457,44 +1457,44 @@ WVList
0 0
326 326
MItem MItem
3 29
*.h ../../../../../lib/cmn/utf8.c
327 327
WString WString
3 4
NIL COBJ
328 328
WVList WVList
0 0
329 329
WVList WVList
0 0
-1 11
1 1
1 1
0 0
330 330
MItem MItem
28 28
../../../../../lib/cmn/mem.h ../../../../../lib/cmn/xma.c
331 331
WString WString
3 4
NIL COBJ
332 332
WVList WVList
0 0
333 333
WVList WVList
0 0
326 11
1 1
1 1
0 0
334 334
MItem MItem
32 3
../../../../../lib/cmn/syscall.h *.h
335 335
WString WString
3 3
@ -1505,7 +1505,43 @@ WVList
337 337
WVList WVList
0 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
1 1
0 0

View File

@ -5,7 +5,7 @@ VpeMain
1 1
WRect WRect
440 440
160 173
9320 9320
9680 9680
2 2
@ -87,7 +87,7 @@ WFileName
30 30
release/os2/lib/cmn/qsecmn.tgt release/os2/lib/cmn/qsecmn.tgt
0 0
0 5
22 22
VComponent VComponent
23 23
@ -112,7 +112,7 @@ WRect
1400 1400
5700 5700
4240 4240
0 1
0 0
27 27
WFileName WFileName
@ -124,18 +124,18 @@ release/os2/cmd/sed/qsesed.tgt
VComponent VComponent
29 29
WRect WRect
1030 780
1360 480
5700 5700
4240 4240
1 0
0 0
30 30
WFileName WFileName
28 28
debug/os2/lib/cmn/qsecmn.tgt debug/os2/lib/cmn/qsecmn.tgt
0 10
5 13
31 31
VComponent VComponent
32 32
@ -189,7 +189,7 @@ VComponent
41 41
WRect WRect
2700 2700
1906 1893
5700 5700
4240 4240
1 1
@ -198,8 +198,8 @@ WRect
WFileName WFileName
30 30
debug/dos32/lib/cmn/qsecmn.tgt debug/dos32/lib/cmn/qsecmn.tgt
8 18
13 23
43 43
VComponent VComponent
44 44
@ -268,7 +268,7 @@ debug/dos32/cmd/sed/qsesed.tgt
VComponent VComponent
56 56
WRect WRect
-10 0
0 0
5700 5700
4240 4240
@ -280,4 +280,4 @@ WFileName
debug/os2/cmd/sed/qsesed.tgt debug/os2/cmd/sed/qsesed.tgt
0 0
0 0
25 28

View File

@ -42,7 +42,7 @@ WVList
0 0
10 10
WPickList WPickList
78 79
11 11
MItem MItem
3 3
@ -431,8 +431,8 @@ WVList
0 0
99 99
MItem MItem
28 29
../../../../../lib/cmn/lda.c ../../../../../lib/cmn/ipad.c
100 100
WString WString
4 4
@ -449,8 +449,8 @@ WVList
0 0
103 103
MItem MItem
29 28
../../../../../lib/cmn/main.c ../../../../../lib/cmn/lda.c
104 104
WString WString
4 4
@ -467,8 +467,8 @@ WVList
0 0
107 107
MItem MItem
33 29
../../../../../lib/cmn/mbwc-str.c ../../../../../lib/cmn/main.c
108 108
WString WString
4 4
@ -485,8 +485,8 @@ WVList
0 0
111 111
MItem MItem
29 33
../../../../../lib/cmn/mbwc.c ../../../../../lib/cmn/mbwc-str.c
112 112
WString WString
4 4
@ -503,8 +503,8 @@ WVList
0 0
115 115
MItem MItem
28 29
../../../../../lib/cmn/mem.c ../../../../../lib/cmn/mbwc.c
116 116
WString WString
4 4
@ -522,7 +522,7 @@ WVList
119 119
MItem MItem
28 28
../../../../../lib/cmn/oht.c ../../../../../lib/cmn/mem.c
120 120
WString WString
4 4
@ -539,8 +539,8 @@ WVList
0 0
123 123
MItem MItem
28 29
../../../../../lib/cmn/opt.c ../../../../../lib/cmn/nwad.c
124 124
WString WString
4 4
@ -557,8 +557,8 @@ WVList
0 0
127 127
MItem MItem
38 29
../../../../../lib/cmn/path-basename.c ../../../../../lib/cmn/nwio.c
128 128
WString WString
4 4
@ -575,8 +575,8 @@ WVList
0 0
131 131
MItem MItem
35 28
../../../../../lib/cmn/path-canon.c ../../../../../lib/cmn/oht.c
132 132
WString WString
4 4
@ -594,7 +594,7 @@ WVList
135 135
MItem MItem
28 28
../../../../../lib/cmn/pio.c ../../../../../lib/cmn/opt.c
136 136
WString WString
4 4
@ -611,8 +611,8 @@ WVList
0 0
139 139
MItem MItem
28 38
../../../../../lib/cmn/pma.c ../../../../../lib/cmn/path-basename.c
140 140
WString WString
4 4
@ -629,8 +629,8 @@ WVList
0 0
143 143
MItem MItem
28 35
../../../../../lib/cmn/rbt.c ../../../../../lib/cmn/path-canon.c
144 144
WString WString
4 4
@ -648,7 +648,7 @@ WVList
147 147
MItem MItem
28 28
../../../../../lib/cmn/rex.c ../../../../../lib/cmn/pio.c
148 148
WString WString
4 4
@ -666,7 +666,7 @@ WVList
151 151
MItem MItem
28 28
../../../../../lib/cmn/sio.c ../../../../../lib/cmn/pma.c
152 152
WString WString
4 4
@ -684,7 +684,7 @@ WVList
155 155
MItem MItem
28 28
../../../../../lib/cmn/sll.c ../../../../../lib/cmn/rbt.c
156 156
WString WString
4 4
@ -701,8 +701,8 @@ WVList
0 0
159 159
MItem MItem
29 28
../../../../../lib/cmn/slmb.c ../../../../../lib/cmn/rex.c
160 160
WString WString
4 4
@ -719,8 +719,8 @@ WVList
0 0
163 163
MItem MItem
30 28
../../../../../lib/cmn/stdio.c ../../../../../lib/cmn/sio.c
164 164
WString WString
4 4
@ -737,8 +737,8 @@ WVList
0 0
167 167
MItem MItem
32 28
../../../../../lib/cmn/str-beg.c ../../../../../lib/cmn/sll.c
168 168
WString WString
4 4
@ -755,8 +755,8 @@ WVList
0 0
171 171
MItem MItem
32 29
../../../../../lib/cmn/str-cat.c ../../../../../lib/cmn/slmb.c
172 172
WString WString
4 4
@ -773,8 +773,8 @@ WVList
0 0
175 175
MItem MItem
32 30
../../../../../lib/cmn/str-chr.c ../../../../../lib/cmn/stdio.c
176 176
WString WString
4 4
@ -792,7 +792,7 @@ WVList
179 179
MItem MItem
32 32
../../../../../lib/cmn/str-cmp.c ../../../../../lib/cmn/str-beg.c
180 180
WString WString
4 4
@ -810,7 +810,7 @@ WVList
183 183
MItem MItem
32 32
../../../../../lib/cmn/str-cnv.c ../../../../../lib/cmn/str-cat.c
184 184
WString WString
4 4
@ -828,7 +828,7 @@ WVList
187 187
MItem MItem
32 32
../../../../../lib/cmn/str-cpy.c ../../../../../lib/cmn/str-chr.c
188 188
WString WString
4 4
@ -846,7 +846,7 @@ WVList
191 191
MItem MItem
32 32
../../../../../lib/cmn/str-del.c ../../../../../lib/cmn/str-cmp.c
192 192
WString WString
4 4
@ -864,7 +864,7 @@ WVList
195 195
MItem MItem
32 32
../../../../../lib/cmn/str-dup.c ../../../../../lib/cmn/str-cnv.c
196 196
WString WString
4 4
@ -881,8 +881,8 @@ WVList
0 0
199 199
MItem MItem
33 32
../../../../../lib/cmn/str-dynm.c ../../../../../lib/cmn/str-cpy.c
200 200
WString WString
4 4
@ -899,8 +899,8 @@ WVList
0 0
203 203
MItem MItem
33 32
../../../../../lib/cmn/str-dynw.c ../../../../../lib/cmn/str-del.c
204 204
WString WString
4 4
@ -918,7 +918,7 @@ WVList
207 207
MItem MItem
32 32
../../../../../lib/cmn/str-end.c ../../../../../lib/cmn/str-dup.c
208 208
WString WString
4 4
@ -936,7 +936,7 @@ WVList
211 211
MItem MItem
33 33
../../../../../lib/cmn/str-excl.c ../../../../../lib/cmn/str-dynm.c
212 212
WString WString
4 4
@ -954,7 +954,7 @@ WVList
215 215
MItem MItem
33 33
../../../../../lib/cmn/str-fcpy.c ../../../../../lib/cmn/str-dynw.c
216 216
WString WString
4 4
@ -971,8 +971,8 @@ WVList
0 0
219 219
MItem MItem
33 32
../../../../../lib/cmn/str-incl.c ../../../../../lib/cmn/str-end.c
220 220
WString WString
4 4
@ -989,8 +989,8 @@ WVList
0 0
223 223
MItem MItem
32 33
../../../../../lib/cmn/str-len.c ../../../../../lib/cmn/str-excl.c
224 224
WString WString
4 4
@ -1007,8 +1007,8 @@ WVList
0 0
227 227
MItem MItem
32 33
../../../../../lib/cmn/str-pac.c ../../../../../lib/cmn/str-fcpy.c
228 228
WString WString
4 4
@ -1026,7 +1026,7 @@ WVList
231 231
MItem MItem
33 33
../../../../../lib/cmn/str-pbrk.c ../../../../../lib/cmn/str-incl.c
232 232
WString WString
4 4
@ -1044,7 +1044,7 @@ WVList
235 235
MItem MItem
32 32
../../../../../lib/cmn/str-put.c ../../../../../lib/cmn/str-len.c
236 236
WString WString
4 4
@ -1062,7 +1062,7 @@ WVList
239 239
MItem MItem
32 32
../../../../../lib/cmn/str-rev.c ../../../../../lib/cmn/str-pac.c
240 240
WString WString
4 4
@ -1079,8 +1079,8 @@ WVList
0 0
243 243
MItem MItem
32 33
../../../../../lib/cmn/str-rot.c ../../../../../lib/cmn/str-pbrk.c
244 244
WString WString
4 4
@ -1098,7 +1098,7 @@ WVList
247 247
MItem MItem
32 32
../../../../../lib/cmn/str-set.c ../../../../../lib/cmn/str-put.c
248 248
WString WString
4 4
@ -1116,7 +1116,7 @@ WVList
251 251
MItem MItem
32 32
../../../../../lib/cmn/str-spl.c ../../../../../lib/cmn/str-rev.c
252 252
WString WString
4 4
@ -1134,7 +1134,7 @@ WVList
255 255
MItem MItem
32 32
../../../../../lib/cmn/str-spn.c ../../../../../lib/cmn/str-rot.c
256 256
WString WString
4 4
@ -1152,7 +1152,7 @@ WVList
259 259
MItem MItem
32 32
../../../../../lib/cmn/str-str.c ../../../../../lib/cmn/str-set.c
260 260
WString WString
4 4
@ -1169,8 +1169,8 @@ WVList
0 0
263 263
MItem MItem
34 32
../../../../../lib/cmn/str-subst.c ../../../../../lib/cmn/str-spl.c
264 264
WString WString
4 4
@ -1188,7 +1188,7 @@ WVList
267 267
MItem MItem
32 32
../../../../../lib/cmn/str-tok.c ../../../../../lib/cmn/str-spn.c
268 268
WString WString
4 4
@ -1206,7 +1206,7 @@ WVList
271 271
MItem MItem
32 32
../../../../../lib/cmn/str-trm.c ../../../../../lib/cmn/str-str.c
272 272
WString WString
4 4
@ -1223,8 +1223,8 @@ WVList
0 0
275 275
MItem MItem
33 34
../../../../../lib/cmn/str-word.c ../../../../../lib/cmn/str-subst.c
276 276
WString WString
4 4
@ -1241,8 +1241,8 @@ WVList
0 0
279 279
MItem MItem
29 32
../../../../../lib/cmn/time.c ../../../../../lib/cmn/str-tok.c
280 280
WString WString
4 4
@ -1260,7 +1260,7 @@ WVList
283 283
MItem MItem
32 32
../../../../../lib/cmn/tio-get.c ../../../../../lib/cmn/str-trm.c
284 284
WString WString
4 4
@ -1277,8 +1277,8 @@ WVList
0 0
287 287
MItem MItem
32 33
../../../../../lib/cmn/tio-put.c ../../../../../lib/cmn/str-word.c
288 288
WString WString
4 4
@ -1295,8 +1295,8 @@ WVList
0 0
291 291
MItem MItem
28 29
../../../../../lib/cmn/tio.c ../../../../../lib/cmn/time.c
292 292
WString WString
4 4
@ -1313,8 +1313,8 @@ WVList
0 0
295 295
MItem MItem
32 28
../../../../../lib/cmn/tre-ast.c ../../../../../lib/cmn/tio.c
296 296
WString WString
4 4
@ -1331,8 +1331,8 @@ WVList
0 0
299 299
MItem MItem
36 32
../../../../../lib/cmn/tre-compile.c ../../../../../lib/cmn/tre-ast.c
300 300
WString WString
4 4
@ -1349,8 +1349,8 @@ WVList
0 0
303 303
MItem MItem
44 36
../../../../../lib/cmn/tre-match-backtrack.c ../../../../../lib/cmn/tre-compile.c
304 304
WString WString
4 4
@ -1367,8 +1367,8 @@ WVList
0 0
307 307
MItem MItem
43 44
../../../../../lib/cmn/tre-match-parallel.c ../../../../../lib/cmn/tre-match-backtrack.c
308 308
WString WString
4 4
@ -1385,8 +1385,8 @@ WVList
0 0
311 311
MItem MItem
34 43
../../../../../lib/cmn/tre-parse.c ../../../../../lib/cmn/tre-match-parallel.c
312 312
WString WString
4 4
@ -1404,7 +1404,7 @@ WVList
315 315
MItem MItem
34 34
../../../../../lib/cmn/tre-stack.c ../../../../../lib/cmn/tre-parse.c
316 316
WString WString
4 4
@ -1421,8 +1421,8 @@ WVList
0 0
319 319
MItem MItem
28 34
../../../../../lib/cmn/tre.c ../../../../../lib/cmn/tre-stack.c
320 320
WString WString
4 4
@ -1439,8 +1439,8 @@ WVList
0 0
323 323
MItem MItem
29 28
../../../../../lib/cmn/utf8.c ../../../../../lib/cmn/tre.c
324 324
WString WString
4 4
@ -1457,8 +1457,8 @@ WVList
0 0
327 327
MItem MItem
28 29
../../../../../lib/cmn/xma.c ../../../../../lib/cmn/utf8.c
328 328
WString WString
4 4
@ -1475,26 +1475,26 @@ WVList
0 0
331 331
MItem MItem
3 28
*.h ../../../../../lib/cmn/xma.c
332 332
WString WString
3 4
NIL COBJ
333 333
WVList WVList
0 0
334 334
WVList WVList
0 0
-1 11
1 1
1 1
0 0
335 335
MItem MItem
28 3
../../../../../lib/cmn/mem.h *.h
336 336
WString WString
3 3
@ -1505,14 +1505,14 @@ WVList
338 338
WVList WVList
0 0
331 -1
1 1
1 1
0 0
339 339
MItem MItem
32 28
../../../../../lib/cmn/syscall.h ../../../../../lib/cmn/mem.h
340 340
WString WString
3 3
@ -1523,7 +1523,25 @@ WVList
342 342
WVList WVList
0 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
1 1
0 0