improved error handling in httpd

added more win32/watcom targets
This commit is contained in:
hyung-hwan 2012-12-10 14:39:57 +00:00
parent 988621d148
commit b2d7199f39
34 changed files with 1095 additions and 122 deletions

View File

@ -56,7 +56,6 @@ enum
#if defined(_WIN32)
static qse_fio_errnum_t syserr_to_errnum (DWORD e)
{
switch (e)
{
case ERROR_NOT_ENOUGH_MEMORY:
@ -69,6 +68,7 @@ static qse_fio_errnum_t syserr_to_errnum (DWORD e)
return QSE_FIO_EINVAL;
case ERROR_ACCESS_DENIED:
case ERROR_SHARING_VIOLATION:
return QSE_FIO_EACCES;
case ERROR_FILE_NOT_FOUND:
@ -97,6 +97,7 @@ static qse_fio_errnum_t syserr_to_errnum (APIRET e)
return QSE_FIO_EINVAL;
case ERROR_ACCESS_DENIED:
case ERROR_SHARING_VIOLATION:
return QSE_FIO_EACCES;
case ERROR_FILE_NOT_FOUND:

View File

@ -41,6 +41,7 @@ qse_fs_errnum_t qse_fs_syserrtoerrnum (qse_fs_t* fs, qse_fs_syserr_t e)
return QSE_FS_EINVAL;
case ERROR_ACCESS_DENIED:
case ERROR_SHARING_VIOLATION:
return QSE_FS_EACCES;
case ERROR_FILE_NOT_FOUND:
@ -70,6 +71,7 @@ qse_fs_errnum_t qse_fs_syserrtoerrnum (qse_fs_t* fs, qse_fs_syserr_t e)
return QSE_FS_EINVAL;
case ERROR_ACCESS_DENIED:
case ERROR_SHARING_VIOLATION:
return QSE_FS_EACCES;
case ERROR_FILE_NOT_FOUND:

View File

@ -120,6 +120,7 @@ static qse_mux_errnum_t syserr_to_errnum (DWORD e)
return QSE_MUX_EINVAL;
case ERROR_ACCESS_DENIED:
case ERROR_SHARING_VIOLATION:
return QSE_MUX_EACCES;
case ERROR_FILE_NOT_FOUND:

View File

@ -60,6 +60,7 @@ static qse_pio_errnum_t syserr_to_errnum (DWORD e)
return QSE_PIO_EINVAL;
case ERROR_ACCESS_DENIED:
case ERROR_SHARING_VIOLATION:
return QSE_PIO_EACCES;
case ERROR_FILE_NOT_FOUND:
@ -91,6 +92,7 @@ static qse_pio_errnum_t syserr_to_errnum (APIRET e)
return QSE_PIO_EINVAL;
case ERROR_ACCESS_DENIED:
case ERROR_SHARING_VIOLATION:
return QSE_PIO_EACCES;
case ERROR_FILE_NOT_FOUND:

View File

@ -134,6 +134,7 @@ static qse_httpd_errnum_t syserr_to_errnum (DWORD e)
return QSE_HTTPD_EINVAL;
case ERROR_ACCESS_DENIED:
case ERROR_SHARING_VIOLATION:
return QSE_HTTPD_EACCES;
case ERROR_FILE_NOT_FOUND:
@ -162,6 +163,7 @@ static qse_httpd_errnum_t syserr_to_errnum (APIRET e)
return QSE_HTTPD_EINVAL;
case ERROR_ACCESS_DENIED:
case ERROR_SHARING_VIOLATION:
return QSE_HTTPD_EACCES;
case ERROR_FILE_NOT_FOUND:
@ -269,6 +271,34 @@ static qse_httpd_errnum_t muxerr_to_errnum (qse_mux_errnum_t e)
}
}
static qse_httpd_errnum_t fioerr_to_errnum (qse_fio_errnum_t e)
{
switch (e)
{
case QSE_FIO_ENOMEM:
return QSE_HTTPD_ENOMEM;
case QSE_FIO_EINVAL:
return QSE_HTTPD_EINVAL;
case QSE_FIO_EACCES:
return QSE_HTTPD_EACCES;
case QSE_FIO_ENOENT:
return QSE_HTTPD_ENOENT;
case QSE_FIO_EEXIST:
return QSE_HTTPD_EEXIST;
case QSE_FIO_EINTR:
return QSE_HTTPD_EINTR;
default:
return QSE_HTTPD_ESYSERR;
}
}
/* ------------------------------------------------------------------- */
@ -511,7 +541,7 @@ static int server_open (qse_httpd_t* httpd, qse_httpd_server_t* server)
#if defined(SO_REUSEADDR)
flag = 1;
setsockopt (fd, SOL_SOCKET, SO_REUSEADDR, &flag, QSE_SIZEOF(flag));
setsockopt (fd, SOL_SOCKET, SO_REUSEADDR, (void*)&flag, QSE_SIZEOF(flag));
#endif
/* TODO: linux. use capset() to set required capabilities just in case */
@ -569,7 +599,7 @@ IP_TRANSPRENT is needed for:
/*if (bind (s, (struct sockaddr*)&addr, QSE_SIZEOF(addr)) <= -1) goto oops_esocket;*/
if (bind (fd, (struct sockaddr*)&addr, addrsize) <= -1)
{
#if defined(IPV6_V6ONLY)
#if defined(IPV6_V6ONLY) && defined(EADDRINUSE)
if (errno == EADDRINUSE && qse_skadfamily(&addr) == AF_INET6)
{
int on = 1;
@ -1062,7 +1092,11 @@ static int stat_file (
if (qse_mbspbrk (path, QSE_MT("?*")) != QSE_NULL) return -1;
fh = FindFirstFileA (path, &fdata);
if (fh == INVALID_HANDLE_VALUE) return -1;
if (fh == INVALID_HANDLE_VALUE)
{
qse_httpd_seterrnum (httpd, syserr_to_errnum(GetLastError()));
return -1;
}
QSE_MEMSET (hst, 0, QSE_SIZEOF(*hst));
if (fdata.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) hst->isdir = 1;
@ -1088,7 +1122,11 @@ static int stat_file (
FILESTATUS3L ffb;
rc = DosQueryPathInfo (path, FIL_STANDARDL, &ffb, QSE_SIZEOF(ffb));
if (rc != NO_ERROR) return -1;
if (rc != NO_ERROR)
{
qse_httpd_seterrnum (httpd, syserr_to_errnum(rc));
return -1;
}
QSE_MEMSET (&bt, 0, QSE_SIZEOF(bt));
bt.mday = ffb.fdateLastWrite.day;
@ -1181,13 +1219,19 @@ static int file_ropen (
{
qse_fio_t* fio;
fio = qse_fio_open (
httpd->mmgr, 0, (const qse_char_t*)path,
QSE_FIO_READ | QSE_FIO_MBSPATH, 0);
fio = QSE_MMGR_ALLOC (httpd->mmgr, QSE_SIZEOF(*fio));
if (fio == QSE_NULL)
{
/* TODO: translate fio error to a proper error code */
qse_httpd_seterrnum (httpd, QSE_HTTPD_EINVAL);
qse_httpd_seterrnum (httpd, QSE_HTTPD_ENOMEM);
return -1;
}
if (qse_fio_init (
fio, httpd->mmgr, (const qse_char_t*)path,
QSE_FIO_READ | QSE_FIO_MBSPATH, 0) <= -1)
{
qse_httpd_seterrnum (httpd, fioerr_to_errnum(qse_fio_geterrnum(fio)));
QSE_MMGR_FREE (httpd->mmgr, fio);
return -1;
}
@ -1203,14 +1247,20 @@ static int file_wopen (
{
qse_fio_t* fio;
fio = qse_fio_open (
httpd->mmgr, 0, (const qse_char_t*)path,
QSE_FIO_WRITE | QSE_FIO_CREATE |
QSE_FIO_TRUNCATE | QSE_FIO_MBSPATH, 0644);
fio = QSE_MMGR_ALLOC (httpd->mmgr, QSE_SIZEOF(*fio));
if (fio == QSE_NULL)
{
/* TODO: translate fio error to a proper error code */
qse_httpd_seterrnum (httpd, QSE_HTTPD_EINVAL);
qse_httpd_seterrnum (httpd, QSE_HTTPD_ENOMEM);
return -1;
}
if (qse_fio_init (
fio, httpd->mmgr, (const qse_char_t*)path,
QSE_FIO_WRITE | QSE_FIO_CREATE |
QSE_FIO_TRUNCATE | QSE_FIO_MBSPATH, 0644) <= -1)
{
qse_httpd_seterrnum (httpd, fioerr_to_errnum(qse_fio_geterrnum(fio)));
QSE_MMGR_FREE (httpd->mmgr, fio);
return -1;
}
@ -1222,23 +1272,28 @@ qse_printf (QSE_T("opened wfile [%hs][%p][%p]\n"), path, handle->ptr, fio->handl
static void file_close (qse_httpd_t* httpd, qse_ubi_t handle)
{
qse_printf (QSE_T("closed file....%p\n"), handle.ptr);
qse_fio_close (handle.ptr);
qse_fio_fini (handle.ptr);
QSE_MMGR_FREE (httpd->mmgr, handle.ptr);
}
static qse_ssize_t file_read (
qse_httpd_t* httpd, qse_ubi_t handle,
qse_mchar_t* buf, qse_size_t len)
{
/* TODO: error code conversion */
return qse_fio_read (handle.ptr, buf, len);
qse_ssize_t n;
n = qse_fio_read (handle.ptr, buf, len);
if (n <= -1) qse_httpd_seterrnum (httpd, fioerr_to_errnum(qse_fio_geterrnum(handle.ptr)));
return n;
}
static qse_ssize_t file_write (
qse_httpd_t* httpd, qse_ubi_t handle,
const qse_mchar_t* buf, qse_size_t len)
{
/* TODO: error code conversion */
return qse_fio_write (handle.ptr, buf, len);
qse_ssize_t n;
n = qse_fio_write (handle.ptr, buf, len);
if (n <= -1) qse_httpd_seterrnum (httpd, fioerr_to_errnum(qse_fio_geterrnum(handle.ptr)));
return n;
}
/* ------------------------------------------------------------------- */

View File

@ -12,7 +12,7 @@ EXE
3
WString
5
dw2e9
dw2eo
1
0
1

View File

@ -12,7 +12,7 @@ EXE
3
WString
5
dw2e9
dw2eo
1
0
1

View File

@ -12,7 +12,7 @@ LIB
3
WString
5
d_2s9
d_2so
1
0
1

View File

@ -12,7 +12,7 @@ LIB
3
WString
5
d_2s9
d_2so
1
0
1

View File

@ -12,7 +12,7 @@ LIB
3
WString
5
d_2s9
d_2so
1
0
1

View File

@ -12,7 +12,7 @@ CWDLL
3
WString
5
dx2d9
dx2do
1
0
1

View File

@ -12,7 +12,7 @@ CWDLL
3
WString
5
dx2d9
dx2do
1
0
1

View File

@ -12,7 +12,7 @@ CWDLL
3
WString
5
dx2d9
dx2do
1
0
1

View File

@ -12,7 +12,7 @@ OEXE
3
WString
5
oc2e9
oc2eo
1
0
1

View File

@ -12,7 +12,7 @@ OEXE
3
WString
5
oc2e9
oc2eo
1
0
1

View File

@ -12,7 +12,7 @@ OEXE
3
WString
5
oc2e9
oc2eo
1
0
1

View File

@ -12,7 +12,7 @@ ODLL
3
WString
5
o_2d9
o_2do
1
0
1

View File

@ -12,7 +12,7 @@ ODLL
3
WString
5
o_2d9
o_2do
1
0
1

View File

@ -12,7 +12,7 @@ ODLL
3
WString
5
o_2d9
o_2do
1
0
1

View File

@ -12,7 +12,7 @@ LIB
3
WString
5
o_2s9
o_2so
1
0
1

View File

@ -12,7 +12,7 @@ ODLL
3
WString
5
o_2d9
o_2do
1
0
1

View File

@ -12,7 +12,7 @@ ODLL
3
WString
5
o_2d9
o_2do
1
0
1

View File

@ -12,7 +12,7 @@ ODLL
3
WString
5
o_2d9
o_2do
1
0
1

View File

@ -12,7 +12,7 @@ NEXE
3
WString
5
nc2e9
nc2eo
1
0
1

View File

@ -0,0 +1,145 @@
40
targetIdent
0
MProject
1
MComponent
0
2
WString
4
NEXE
3
WString
5
nc2eo
1
0
1
4
MCommand
0
5
MCommand
0
6
MItem
12
qsehttpd.exe
7
WString
4
NEXE
8
WVList
2
9
MVState
10
WString
7
WINLINK
11
WString
28
?????Library directories(;):
1
12
WString
27
../../lib/cmn ../../lib/net
0
13
MVState
14
WString
7
WINLINK
15
WString
18
?????Libraries(,):
1
16
WString
20
qsecmn qsenet ws2_32
0
17
WVList
0
-1
1
1
0
18
WPickList
2
19
MItem
3
*.c
20
WString
4
COBJ
21
WVList
2
22
MVState
23
WString
3
WCC
24
WString
25
n????Include directories:
1
25
WString
53
"$(%watcom)/h;$(%watcom)/h/nt;../../../../../include"
0
26
MVState
27
WString
3
WCC
28
WString
23
?????Macro definitions:
1
29
WString
15
QSE_BUILD_DEBUG
0
30
WVList
0
-1
1
1
0
31
MItem
30
../../../../../cmd/net/httpd.c
32
WString
4
COBJ
33
WVList
0
34
WVList
0
19
1
1
0

View File

@ -0,0 +1,145 @@
40
targetIdent
0
MProject
1
MComponent
0
2
WString
4
NEXE
3
WString
5
nc2eo
1
0
1
4
MCommand
0
5
MCommand
0
6
MItem
10
qsesed.exe
7
WString
4
NEXE
8
WVList
2
9
MVState
10
WString
7
WINLINK
11
WString
28
?????Library directories(;):
1
12
WString
27
../../lib/cmn ../../lib/sed
0
13
MVState
14
WString
7
WINLINK
15
WString
18
?????Libraries(,):
1
16
WString
13
qsecmn qsesed
0
17
WVList
0
-1
1
1
0
18
WPickList
2
19
MItem
3
*.c
20
WString
4
COBJ
21
WVList
2
22
MVState
23
WString
3
WCC
24
WString
25
n????Include directories:
1
25
WString
53
"$(%watcom)/h;$(%watcom)/h/nt;../../../../../include"
0
26
MVState
27
WString
3
WCC
28
WString
23
?????Macro definitions:
1
29
WString
15
QSE_BUILD_DEBUG
0
30
WVList
0
-1
1
1
0
31
MItem
28
../../../../../cmd/sed/sed.c
32
WString
4
COBJ
33
WVList
0
34
WVList
0
19
1
1
0

View File

@ -12,7 +12,7 @@ NDLL
3
WString
5
n_2d9
n_2do
1
0
1

View File

@ -12,7 +12,7 @@ NDLL
3
WString
5
n_2d9
n_2do
1
0
1

View File

@ -0,0 +1,361 @@
40
targetIdent
0
MProject
1
MComponent
0
2
WString
4
NDLL
3
WString
5
n_2do
1
0
1
4
MCommand
0
5
MCommand
0
6
MItem
10
qsenet.dll
7
WString
4
NDLL
8
WVList
2
9
MVState
10
WString
5
WLINK
11
WString
28
?????Library directories(;):
1
12
WString
13
../../lib/cmn
0
13
MVState
14
WString
5
WLINK
15
WString
18
?????Libraries(,):
1
16
WString
13
qsecmn ws2_32
0
17
WVList
0
-1
1
1
0
18
WPickList
14
19
MItem
3
*.c
20
WString
4
COBJ
21
WVList
2
22
MVState
23
WString
3
WCC
24
WString
25
n????Include directories:
1
25
WString
53
"$(%watcom)/h;$(%watcom)/h/nt;../../../../../include"
0
26
MVState
27
WString
3
WCC
28
WString
23
?????Macro definitions:
1
29
WString
15
QSE_BUILD_DEBUG
0
30
WVList
0
-1
1
1
0
31
MItem
29
../../../../../lib/net/htrd.c
32
WString
4
COBJ
33
WVList
0
34
WVList
0
19
1
1
0
35
MItem
29
../../../../../lib/net/htre.c
36
WString
4
COBJ
37
WVList
0
38
WVList
0
19
1
1
0
39
MItem
29
../../../../../lib/net/http.c
40
WString
4
COBJ
41
WVList
0
42
WVList
0
19
1
1
0
43
MItem
34
../../../../../lib/net/httpd-cgi.c
44
WString
4
COBJ
45
WVList
0
46
WVList
0
19
1
1
0
47
MItem
34
../../../../../lib/net/httpd-dir.c
48
WString
4
COBJ
49
WVList
0
50
WVList
0
19
1
1
0
51
MItem
35
../../../../../lib/net/httpd-file.c
52
WString
4
COBJ
53
WVList
0
54
WVList
0
19
1
1
0
55
MItem
36
../../../../../lib/net/httpd-proxy.c
56
WString
4
COBJ
57
WVList
0
58
WVList
0
19
1
1
0
59
MItem
36
../../../../../lib/net/httpd-resol.c
60
WString
4
COBJ
61
WVList
0
62
WVList
0
19
1
1
0
63
MItem
34
../../../../../lib/net/httpd-std.c
64
WString
4
COBJ
65
WVList
0
66
WVList
0
19
1
1
0
67
MItem
35
../../../../../lib/net/httpd-task.c
68
WString
4
COBJ
69
WVList
0
70
WVList
0
19
1
1
0
71
MItem
35
../../../../../lib/net/httpd-text.c
72
WString
4
COBJ
73
WVList
0
74
WVList
0
19
1
1
0
75
MItem
30
../../../../../lib/net/httpd.c
76
WString
4
COBJ
77
WVList
0
78
WVList
0
19
1
1
0
79
MItem
29
../../../../../lib/net/upxd.c
80
WString
4
COBJ
81
WVList
0
82
WVList
0
19
1
1
0

View File

@ -0,0 +1,181 @@
40
targetIdent
0
MProject
1
MComponent
0
2
WString
4
NDLL
3
WString
5
n_2do
1
0
1
4
MCommand
0
5
MCommand
0
6
MItem
10
qsesed.dll
7
WString
4
NDLL
8
WVList
2
9
MVState
10
WString
5
WLINK
11
WString
28
?????Library directories(;):
1
12
WString
13
../../lib/cmn
0
13
MVState
14
WString
5
WLINK
15
WString
18
?????Libraries(,):
1
16
WString
6
qsecmn
0
17
WVList
0
-1
1
1
0
18
WPickList
4
19
MItem
3
*.c
20
WString
4
COBJ
21
WVList
2
22
MVState
23
WString
3
WCC
24
WString
25
n????Include directories:
1
25
WString
53
"$(%watcom)/h;$(%watcom)/h/nt;../../../../../include"
0
26
MVState
27
WString
3
WCC
28
WString
23
?????Macro definitions:
1
29
WString
15
QSE_BUILD_DEBUG
0
30
WVList
0
-1
1
1
0
31
MItem
28
../../../../../lib/sed/err.c
32
WString
4
COBJ
33
WVList
0
34
WVList
0
19
1
1
0
35
MItem
28
../../../../../lib/sed/sed.c
36
WString
4
COBJ
37
WVList
0
38
WVList
0
19
1
1
0
39
MItem
28
../../../../../lib/sed/std.c
40
WString
4
COBJ
41
WVList
0
42
WVList
0
19
1
1
0

View File

@ -4,8 +4,8 @@ projectIdent
VpeMain
1
WRect
0
0
80
173
9310
9640
2
@ -16,7 +16,7 @@ MCommand
4
MCommand
0
24
28
5
WFileName
30
@ -114,11 +114,27 @@ WFileName
30
debug/win32/cmd/awk/qseawk.tgt
29
WVList
24
WFileName
30
VComponent
debug/win32/lib/sed/qsesed.tgt
30
WFileName
30
debug/win32/lib/net/qsenet.tgt
31
WFileName
32
debug/win32/cmd/net/qsehttpd.tgt
32
WFileName
30
debug/win32/cmd/sed/qsesed.tgt
33
WVList
28
34
VComponent
35
WRect
1060
2480
@ -126,15 +142,15 @@ WRect
4200
1
0
32
36
WFileName
30
release/os2/lib/cmn/qsecmn.tgt
0
1
33
37
VComponent
34
38
WRect
80
1200
@ -142,15 +158,15 @@ WRect
4200
1
0
35
39
WFileName
30
release/os2/lib/sed/qsesed.tgt
0
0
36
40
VComponent
37
41
WRect
2090
1360
@ -158,15 +174,15 @@ WRect
4200
1
0
38
42
WFileName
30
release/os2/cmd/sed/qsesed.tgt
0
1
39
43
VComponent
40
44
WRect
2810
320
@ -174,15 +190,15 @@ WRect
4200
1
0
41
45
WFileName
28
debug/os2/lib/cmn/qsecmn.tgt
0
0
42
46
VComponent
43
47
WRect
1030
2320
@ -190,15 +206,15 @@ WRect
4200
1
0
44
48
WFileName
28
debug/os2/lib/sed/qsesed.tgt
0
3
45
49
VComponent
46
50
WRect
400
280
@ -206,15 +222,15 @@ WRect
4200
1
0
47
51
WFileName
28
debug/os2/lib/awk/qseawk.tgt
0
0
48
52
VComponent
49
53
WRect
320
360
@ -222,15 +238,15 @@ WRect
4200
1
0
50
54
WFileName
28
debug/os2/cmd/awk/qseawk.tgt
0
1
51
55
VComponent
52
56
WRect
2660
0
@ -238,15 +254,15 @@ WRect
4200
1
0
53
57
WFileName
30
debug/dos32/lib/cmn/qsecmn.tgt
0
2
54
58
VComponent
55
59
WRect
2920
1240
@ -254,15 +270,15 @@ WRect
4200
1
0
56
60
WFileName
30
debug/dos32/lib/awk/qseawk.tgt
0
0
57
61
VComponent
58
62
WRect
0
160
@ -270,15 +286,15 @@ WRect
4200
1
0
59
63
WFileName
30
debug/dos32/cmd/awk/qseawk.tgt
0
0
60
64
VComponent
61
65
WRect
0
0
@ -286,15 +302,15 @@ WRect
4200
1
0
62
66
WFileName
30
debug/dos32/lib/sed/qsesed.tgt
0
5
63
67
VComponent
64
68
WRect
570
520
@ -302,15 +318,15 @@ WRect
4200
1
0
65
69
WFileName
30
debug/dos32/cmd/sed/qsesed.tgt
0
1
66
70
VComponent
67
71
WRect
0
0
@ -318,15 +334,15 @@ WRect
4200
1
0
68
72
WFileName
28
debug/os2/cmd/sed/qsesed.tgt
0
0
69
73
VComponent
70
74
WRect
2590
1040
@ -334,15 +350,15 @@ WRect
4200
1
0
71
75
WFileName
31
debug/dos32/mod/awk/awk-sys.tgt
0
0
72
76
VComponent
73
77
WRect
1120
200
@ -350,15 +366,15 @@ WRect
4200
1
0
74
78
WFileName
29
debug/os2/mod/awk/awk-sys.tgt
0
0
75
79
VComponent
76
80
WRect
460
3040
@ -366,15 +382,15 @@ WRect
4240
1
0
77
81
WFileName
29
debug/os2/mod/awk/awk-dir.tgt
0
0
78
82
VComponent
79
83
WRect
570
520
@ -382,15 +398,15 @@ WRect
4240
1
0
80
84
WFileName
31
debug/dos32/mod/awk/awk-dir.tgt
0
0
81
85
VComponent
82
86
WRect
200
160
@ -398,15 +414,15 @@ WRect
4320
1
0
83
87
WFileName
31
debug/dos32/mod/awk/awk-str.tgt
0
0
84
88
VComponent
85
89
WRect
410
1360
@ -414,15 +430,15 @@ WRect
4320
1
0
86
90
WFileName
29
debug/os2/mod/awk/awk-str.tgt
0
0
87
91
VComponent
88
92
WRect
3050
120
@ -430,15 +446,15 @@ WRect
4240
1
0
89
93
WFileName
28
debug/os2/lib/net/qsenet.tgt
0
0
90
94
VComponent
91
95
WRect
290
280
@ -446,15 +462,15 @@ WRect
4240
1
0
92
96
WFileName
30
debug/os2/cmd/net/qsehttpd.tgt
0
1
93
97
VComponent
94
98
WRect
270
240
@ -462,15 +478,15 @@ WRect
4280
1
0
95
99
WFileName
30
debug/win32/lib/cmn/qsecmn.tgt
0
0
96
100
VComponent
97
101
WRect
660
1040
@ -478,15 +494,15 @@ WRect
4280
1
0
98
102
WFileName
30
debug/win32/lib/awk/qseawk.tgt
0
0
99
103
VComponent
100
104
WRect
500
480
@ -494,10 +510,74 @@ WRect
4280
1
0
101
105
WFileName
30
debug/win32/cmd/awk/qseawk.tgt
0
0
39
106
VComponent
107
WRect
710
1720
5700
4266
1
0
108
WFileName
30
debug/win32/lib/sed/qsesed.tgt
0
0
109
VComponent
110
WRect
580
573
5700
4266
0
0
111
WFileName
30
debug/win32/lib/net/qsenet.tgt
0
6
112
VComponent
113
WRect
1760
1320
5700
4266
0
0
114
WFileName
32
debug/win32/cmd/net/qsehttpd.tgt
0
1
115
VComponent
116
WRect
1170
1160
5700
4266
0
0
117
WFileName
30
debug/win32/cmd/sed/qsesed.tgt
0
0
115

View File

@ -12,7 +12,7 @@ OEXE
3
WString
5
oc2e9
oc2eo
1
0
1

View File

@ -12,7 +12,7 @@ LIB
3
WString
5
o_2s9
o_2so
1
0
1

View File

@ -12,7 +12,7 @@ LIB
3
WString
5
o_2s9
o_2so
1
0
1