*** empty log message ***

This commit is contained in:
hyung-hwan 2006-10-22 11:46:18 +00:00
parent 8666a05126
commit e39140359a
21 changed files with 388 additions and 403 deletions

View File

@ -1,22 +1,22 @@
LIBRARY "xpawk.dll"
LIBRARY "sseawk.dll"
EXPORTS
xp_awk_open
xp_awk_close
sse_awk_open
sse_awk_close
xp_awk_geterrnum
xp_awk_geterrstr
sse_awk_geterrnum
sse_awk_geterrstr
xp_awk_clear
xp_awk_setparseopt
xp_awk_setrunopt
sse_awk_clear
sse_awk_setparseopt
sse_awk_setrunopt
xp_awk_attsrc
xp_awk_detsrc
sse_awk_attsrc
sse_awk_detsrc
xp_awk_parse
xp_awk_run
sse_awk_parse
sse_awk_run
xp_awk_printf
xp_awk_strcmp
sse_awk_printf
sse_awk_strcmp

View File

@ -3,7 +3,7 @@ objects = awk.obj,err.obj,extio.obj,func.obj,map.obj,misc.obj,parse.obj,rex.obj,
CFLAGS = /pointer_size=long /define=XP_AWK_STAND_ALONE
LIBRFLAGS =
xpawk.olb : $(objects)
sseawk.olb : $(objects)
$(LIBR)/create $(MMS$TARGET)
$(LIBR)/replace $(LIBRFLAGS) $(MMS$TARGET) $(objects)

View File

@ -1,5 +1,5 @@
/*
* $Id: jni.c,v 1.12 2006-10-22 11:34:53 bacon Exp $
* $Id: jni.c,v 1.13 2006-10-22 11:40:51 bacon Exp $
*/
#include <sse/awk/jni.h>
@ -10,7 +10,7 @@
#include <wchar.h>
#include <stdio.h>
#define EXCEPTION_AWK "ssekit/ssej/awk/AwkException"
#define EXCEPTION_AWK "sse/awk/AwkException"
#define FIELD_AWK "__awk"
enum
@ -60,7 +60,7 @@ static void __awk_free (void* ptr, void* custom_data)
free (ptr);
}
JNIESSEORT void JNICALL Java_ssekit_ssej_awk_Awk_open (JNIEnv* env, jobject obj)
JNIESSEORT void JNICALL Java_sse_awk_Awk_open (JNIEnv* env, jobject obj)
{
jclass class;
jfieldID fid;
@ -125,7 +125,7 @@ JNIESSEORT void JNICALL Java_ssekit_ssej_awk_Awk_open (JNIEnv* env, jobject obj)
printf ("__awk(native) done => %u, 0x%X\n", awk, awk);
}
JNIESSEORT void JNICALL Java_ssekit_ssej_awk_Awk_close (JNIEnv* env, jobject obj)
JNIESSEORT void JNICALL Java_sse_awk_Awk_close (JNIEnv* env, jobject obj)
{
jclass class;
jfieldID fid;
@ -141,7 +141,7 @@ JNIESSEORT void JNICALL Java_ssekit_ssej_awk_Awk_close (JNIEnv* env, jobject obj
printf ("close (native) done\n");
}
JNIESSEORT void JNICALL Java_ssekit_ssej_awk_Awk_parse (JNIEnv* env, jobject obj)
JNIESSEORT void JNICALL Java_sse_awk_Awk_parse (JNIEnv* env, jobject obj)
{
jclass class;
jfieldID fid;
@ -176,7 +176,7 @@ printf ("parse error -> line [%d] %S\n", sse_awk_getsrcline(awk), sse_awk_geterr
}
}
JNIESSEORT void JNICALL Java_ssekit_ssej_awk_Awk_run (JNIEnv* env, jobject obj)
JNIESSEORT void JNICALL Java_sse_awk_Awk_run (JNIEnv* env, jobject obj)
{
jclass class;
jfieldID fid;
@ -211,14 +211,14 @@ JNIESSEORT void JNICALL Java_ssekit_ssej_awk_Awk_run (JNIEnv* env, jobject obj)
}
}
JNIESSEORT void JNICALL Java_ssekit_ssej_awk_Awk_set_1extio (
JNIESSEORT void JNICALL Java_sse_awk_Awk_set_1extio (
JNIEnv* env, jobject obj, jlong extio, jobject handle)
{
sse_awk_extio_t* epa = (sse_awk_extio_t*)extio;
epa->handle = (void*)handle;
}
JNIESSEORT jobject JNICALL Java_ssekit_ssej_awk_Awk_get_1extio (
JNIESSEORT jobject JNICALL Java_sse_awk_Awk_get_1extio (
JNIEnv* env, jobject obj, jlong extio)
{
sse_awk_extio_t* epa = (sse_awk_extio_t*)extio;

View File

@ -1,10 +1,10 @@
LIBRARY "xpawk.dll"
LIBRARY "sseawk.dll"
EXPORTS
Java_xpkit_xpj_awk_Awk_open
Java_xpkit_xpj_awk_Awk_close
Java_xpkit_xpj_awk_Awk_parse
Java_xpkit_xpj_awk_Awk_run
Java_xpkit_xpj_awk_Awk_get_1extio
Java_xpkit_xpj_awk_Awk_set_1extio
Java_sse_awk_Awk_open
Java_sse_awk_Awk_close
Java_sse_awk_Awk_parse
Java_sse_awk_Awk_run
Java_sse_awk_Awk_get_1extio
Java_sse_awk_Awk_set_1extio

View File

@ -1,5 +1,5 @@
/*
* $Id: jni.h,v 1.4 2006-10-22 11:34:53 bacon Exp $
* $Id: jni.h,v 1.5 2006-10-22 11:40:51 bacon Exp $
*/
#ifndef _SSE_AWK_JNI_H_
@ -11,10 +11,10 @@
extern "C" {
#endif
JNIESSEORT void JNICALL Java_ssekit_ssej_awk_Awk_open (JNIEnv*, jobject);
JNIESSEORT void JNICALL Java_ssekit_ssej_awk_Awk_close (JNIEnv*, jobject);
JNIESSEORT void JNICALL Java_ssekit_ssej_awk_Awk_parse (JNIEnv*, jobject);
JNIESSEORT void JNICALL Java_ssekit_ssej_awk_Awk_run (JNIEnv*, jobject);
JNIESSEORT void JNICALL Java_sse_awk_Awk_open (JNIEnv*, jobject);
JNIESSEORT void JNICALL Java_sse_awk_Awk_close (JNIEnv*, jobject);
JNIESSEORT void JNICALL Java_sse_awk_Awk_parse (JNIEnv*, jobject);
JNIESSEORT void JNICALL Java_sse_awk_Awk_run (JNIEnv*, jobject);
#ifdef __cplusplus
}

View File

@ -1,10 +1,10 @@
SRCS = awk.c err.c tree.c str.c tab.c map.c parse.c \
run.c rec.c val.c func.c misc.c extio.c rex.c
OBJS = $(SRCS:.c=.obj)
OUT = xpawk.lib
OUT = sseawk.lib
CC = bcc32
CFLAGS = -O2 -WM -w -w-inl -w-sig -w-spa -w-hid -RT- -I../.. -DXP_AWK_STAND_ALONE -DXP_CHAR_IS_WCHAR
CFLAGS = -O2 -WM -w -w-inl -w-sig -w-spa -w-hid -RT- -I../..
all: $(OBJS)
tlib $(OUT) @&&!

View File

@ -2,7 +2,7 @@ SRCS = \
awk.c err.c tree.c str.c tab.c map.c parse.c \
run.c rec.c val.c func.c misc.c extio.c rex.c
OBJS = $(SRCS:.c=.obj)
OUT = xpawk
OUT = sseawk
JAVA_INC = \
/I"C:\Program Files\IBM\Java141\Include" \

View File

@ -1,10 +1,10 @@
SRCS = awk.c err.c tree.c str.c tab.c map.c parse.c \
run.c rec.c val.c func.c misc.c extio.c rex.c
OBJS = $(SRCS:.c=.o)
OUT = libxpawk.a
OUT = libsseawk.a
CC = cc
CFLAGS = -Wall -I../.. -DXP_AWK_STAND_ALONE
CFLAGS = -Wall -I../..
all: $(OBJS)
ar cr $(OUT) $(OBJS)

View File

@ -1,7 +1,7 @@
SRCS = awk.c err.c tree.c str.c tab.c map.c parse.c \
run.c rec.c val.c func.c misc.c extio.c rex.c
OBJS = $(SRCS:.c=.o)
OUT = libxpawk.a
OUT = libsseawk.a
CC = @CC@
RANLIB = @RANLIB@

View File

@ -1,9 +1,9 @@
SRCS = awk.c err.c tree.c str.c tab.c map.c parse.c run.c rec.c val.c misc.c
OBJS = awk.obj err.obj tree.obj str.obj tab.obj map.obj parse.obj run.obj rec.obj val.obj misc.obj
OUT = xpawk.lib
OUT = sseawk.lib
CC = lcc
CFLAGS = -I../.. -A -ansic -libcdll -DXP_AWK_STAND_ALONE
CFLAGS = -I../.. -A -ansic -libcdll
LDFLAGS =
LIBS =

View File

@ -1,10 +1,10 @@
SRCS = awk.c err.c tree.c str.c tab.c map.c parse.c \
run.c rec.c val.c func.c misc.c extio.c
OBJS = $(SRCS:.c=.o)
OUT = libxpawk.a
OUT = libsseawk.a
CC = cc
CFLAGS = -Xc -a ansi -w3 -O2 -I../.. -DXP_AWK_STAND_ALONE
CFLAGS = -Xc -a ansi -w3 -O2 -I../..
all: $(OBJS)
ar cr $(OUT) $(OBJS)

View File

@ -2,11 +2,11 @@ SRCS = \
awk.c err.c tree.c str.c tab.c map.c parse.c \
run.c rec.c val.c func.c misc.c extio.c rex.c
OBJS = $(SRCS:.c=.o)
OUT = libxpawk.a
OUT = libsseawk.a
CC = gcc
#CFLAGS = -m64 -O2 -Wall -std=c89 -pedantic -I../.. -DXP_AWK_STAND_ALONE
CFLAGS = -m64 -O2 -Wall -I../.. -DXP_AWK_STAND_ALONE
#CFLAGS = -m64 -O2 -Wall -std=c89 -pedantic -I../..
CFLAGS = -m64 -O2 -Wall -I../..
all: $(OBJS)
ar cr $(OUT) $(OBJS)

View File

@ -6,11 +6,11 @@ SRCS = awk.c err.c tree.c str.c tab.c map.c parse.c \
run.c rec.c val.c misc.c extio.c rex.c
OBJS = awk.obj err.obj tree.obj str.obj tab.obj map.obj parse.obj \
run.obj rec.obj val.obj misc.obj extio.obj rex.obj
OUT = xpawk.lib
OUT = sseawk.lib
CC = tcc
AR = tlib
CFLAGS = -1 -O -mh -w -f87 -G -I..\.. -Ddos -DXP_AWK_STAND_ALONE
CFLAGS = -1 -O -mh -w -f87 -G -I..\.. -Ddos
all: $(OBJS)
-del $(OUT)

View File

@ -1,31 +1,31 @@
/*
* $Id: conf_dos.h,v 1.5 2006-05-06 16:05:12 bacon Exp $
* $Id: conf_dos.h,v 1.6 2006-10-22 11:46:18 bacon Exp $
*/
#if !defined(__LARGE__) && !defined(__HUGE__)
#error this library supports the large and the huge memory models only
#endif
#define XP_ENDIAN_LITTLE
#define SSE_ENDIAN_LITTLE
#define XP_SIZEOF_CHAR 1
#define XP_SIZEOF_SHORT 2
#define XP_SIZEOF_INT 2
#define XP_SIZEOF_LONG 4
#define XP_SIZEOF_LONG_LONG 0
#define SSE_SIZEOF_CHAR 1
#define SSE_SIZEOF_SHORT 2
#define SSE_SIZEOF_INT 2
#define SSE_SIZEOF_LONG 4
#define SSE_SIZEOF_LONG_LONG 0
#define XP_SIZEOF___INT8 0
#define XP_SIZEOF___INT16 0
#define XP_SIZEOF___INT32 0
#define XP_SIZEOF___INT64 0
#define XP_SIZEOF___INT96 0
#define XP_SIZEOF___INT128 0
#define SSE_SIZEOF___INT8 0
#define SSE_SIZEOF___INT16 0
#define SSE_SIZEOF___INT32 0
#define SSE_SIZEOF___INT64 0
#define SSE_SIZEOF___INT96 0
#define SSE_SIZEOF___INT128 0
#define XP_SIZEOF_VOID_P 4
#define SSE_SIZEOF_VOID_P 4
#define XP_SIZEOF_FLOAT 4
#define XP_SIZEOF_DOUBLE 8
#define XP_SIZEOF_LONG_DOUBLE 10 /* turbo c 2.01 */
#define XP_SIZEOF_WCHAR_T 0
#define SSE_SIZEOF_FLOAT 4
#define SSE_SIZEOF_DOUBLE 8
#define SSE_SIZEOF_LONG_DOUBLE 10 /* turbo c 2.01 */
#define SSE_SIZEOF_WCHAR_T 0
#define XP_CHAR_IS_MCHAR
#define SSE_CHAR_IS_MCHAR

View File

@ -1,5 +1,5 @@
/*
* $Id: conf_msw.h,v 1.3 2006-05-06 16:05:12 bacon Exp $
* $Id: conf_msw.h,v 1.4 2006-10-22 11:46:18 bacon Exp $
*/
/*
@ -17,34 +17,34 @@ _M_IX86 x86 platform
_M_X64 x64 platform
*/
#define XP_ENDIAN_LITTLE
#define SSE_ENDIAN_LITTLE
#define XP_SIZEOF_CHAR 1
#define XP_SIZEOF_SHORT 2
#define XP_SIZEOF_INT 4
#define SSE_SIZEOF_CHAR 1
#define SSE_SIZEOF_SHORT 2
#define SSE_SIZEOF_INT 4
#ifdef _WIN64
#define XP_SIZEOF_LONG 8
#define SSE_SIZEOF_LONG 8
#else
#define XP_SIZEOF_LONG 4
#define SSE_SIZEOF_LONG 4
#endif
#define XP_SIZEOF_LONG_LONG 0
#define SSE_SIZEOF_LONG_LONG 0
#define XP_SIZEOF___INT8 1
#define XP_SIZEOF___INT16 2
#define XP_SIZEOF___INT32 4
#define XP_SIZEOF___INT64 8
#define XP_SIZEOF___INT96 0
#define XP_SIZEOF___INT128 0
#define SSE_SIZEOF___INT8 1
#define SSE_SIZEOF___INT16 2
#define SSE_SIZEOF___INT32 4
#define SSE_SIZEOF___INT64 8
#define SSE_SIZEOF___INT96 0
#define SSE_SIZEOF___INT128 0
#ifdef _WIN64
#define XP_SIZEOF_VOID_P 8
#define SSE_SIZEOF_VOID_P 8
#else
#define XP_SIZEOF_VOID_P 4
#define SSE_SIZEOF_VOID_P 4
#endif
#define XP_SIZEOF_FLOAT 4
#define XP_SIZEOF_DOUBLE 8
#define XP_SIZEOF_LONG_DOUBLE 16
#define XP_SIZEOF_WCHAR_T 2
#define SSE_SIZEOF_FLOAT 4
#define SSE_SIZEOF_DOUBLE 8
#define SSE_SIZEOF_LONG_DOUBLE 16
#define SSE_SIZEOF_WCHAR_T 2

View File

@ -1,71 +1,71 @@
/*
* $Id: conf_vms.h,v 1.5 2006-05-06 16:05:12 bacon Exp $
* $Id: conf_vms.h,v 1.6 2006-10-22 11:46:18 bacon Exp $
*/
/* TODO: please complete the itanium portion */
/* both vax and alpha are in the little endian. */
#define XP_ENDIAN_LITTLE
#define SSE_ENDIAN_LITTLE
#define XP_SIZEOF_CHAR 1
#define XP_SIZEOF_SHORT 2
#define XP_SIZEOF_INT 4
#define XP_SIZEOF_LONG 4
#define SSE_SIZEOF_CHAR 1
#define SSE_SIZEOF_SHORT 2
#define SSE_SIZEOF_INT 4
#define SSE_SIZEOF_LONG 4
#if defined(vax) || defined(__vax)
#define XP_SIZEOF_LONG_LONG 0
#define SSE_SIZEOF_LONG_LONG 0
#elif defined(alpha) || defined(__alpha)
#define XP_SIZEOF_LONG_LONG 8
#define SSE_SIZEOF_LONG_LONG 8
#elif defined(itanium) || defined(__itanium)
#define XP_SIZEOF_LONG_LONG 8
#define SSE_SIZEOF_LONG_LONG 8
#else
#define XP_SIZEOF_LONG_LONG 0
#define SSE_SIZEOF_LONG_LONG 0
#endif
#define XP_SIZEOF___INT8 1
#define XP_SIZEOF___INT16 2
#define XP_SIZEOF___INT32 4
#define SSE_SIZEOF___INT8 1
#define SSE_SIZEOF___INT16 2
#define SSE_SIZEOF___INT32 4
#if defined(vax) || defined(__vax)
#define XP_SIZEOF___INT64 0
#define SSE_SIZEOF___INT64 0
#elif defined(alpha) || defined(__alpha)
#define XP_SIZEOF___INT64 8
#define SSE_SIZEOF___INT64 8
#elif defined(itanium) || defined(__itanium)
#define XP_SIZEOF___INT64 8
#define SSE_SIZEOF___INT64 8
#else
#define XP_SIZEOF___INT64 0
#define SSE_SIZEOF___INT64 0
#endif
#define XP_SIZEOF___INT96 0
#define XP_SIZEOF___INT128 0
#define SSE_SIZEOF___INT96 0
#define SSE_SIZEOF___INT128 0
#if defined(vax) || defined(__vax)
#define XP_SIZEOF_VOID_P 4
#define SSE_SIZEOF_VOID_P 4
#elif defined(alpha) || defined(__alpha)
/*#pragma pointer_size 32
#define XP_SIZEOF_VOID_P 4*/
#define SSE_SIZEOF_VOID_P 4*/
#pragma pointer_size 64
#define XP_SIZEOF_VOID_P 8
#define SSE_SIZEOF_VOID_P 8
#elif defined(itanium) || defined(__itanium)
/*#pragma pointer_size 32
#define XP_SIZEOF_VOID_P 4*/
#define SSE_SIZEOF_VOID_P 4*/
#pragma pointer_size 64
#define XP_SIZEOF_VOID_P 8
#define SSE_SIZEOF_VOID_P 8
#else
#define XP_SIZEOF_VOID_P 0
#define SSE_SIZEOF_VOID_P 0
#endif
#define XP_SIZEOF_FLOAT 4
#define XP_SIZEOF_DOUBLE 8
#define SSE_SIZEOF_FLOAT 4
#define SSE_SIZEOF_DOUBLE 8
#if defined(vax) || defined(__vax)
#define XP_SIZEOF_LONG_DOUBLE 8
#define SSE_SIZEOF_LONG_DOUBLE 8
#elif defined(alpha) || defined(__alpha)
#define XP_SIZEOF_LONG_DOUBLE 16
#define SSE_SIZEOF_LONG_DOUBLE 16
#elif defined(itanium) || defined(__itanium)
#define XP_SIZEOF_LONG_DOUBLE 16
#define SSE_SIZEOF_LONG_DOUBLE 16
#else
#define XP_SIZEOF_LONG_DOUBLE 0
#define SSE_SIZEOF_LONG_DOUBLE 0
#endif
#define XP_SIZEOF_WCHAR_T 4
#define SSE_SIZEOF_WCHAR_T 4

View File

@ -1,78 +1,78 @@
/* Big Endian */
#undef XP_ENDIAN_BIG
#undef SSE_ENDIAN_BIG
/* Little Endian */
#undef XP_ENDIAN_LITTLE
#undef SSE_ENDIAN_LITTLE
/* Unknown Endian */
#undef XP_ENDIAN_UNKNOWN
#undef SSE_ENDIAN_UNKNOWN
/* long long */
#undef XP_HAVE_LONG_LONG
#undef SSE_HAVE_LONG_LONG
/* long double */
#undef XP_HAVE_LONG_DOUBLE
#undef SSE_HAVE_LONG_DOUBLE
/* data type size */
#define XP_SIZEOF_CHAR 0
#define XP_SIZEOF_SHORT 0
#define XP_SIZEOF_INT 0
#define XP_SIZEOF_LONG 0
#define XP_SIZEOF_LONG_LONG 0
#define XP_SIZEOF___INT8 0
#define XP_SIZEOF___INT16 0
#define XP_SIZEOF___INT32 0
#define XP_SIZEOF___INT64 0
#define XP_SIZEOF___INT128 0
#define XP_SIZEOF_VOID_P 0
#define XP_SIZEOF_FLOAT 0
#define XP_SIZEOF_DOUBLE 0
#define XP_SIZEOF_LONG_DOUBLE 0
#define XP_SIZEOF_PID_T 0
#define XP_SIZEOF_WCHAR_T 0
#define SSE_SIZEOF_CHAR 0
#define SSE_SIZEOF_SHORT 0
#define SSE_SIZEOF_INT 0
#define SSE_SIZEOF_LONG 0
#define SSE_SIZEOF_LONG_LONG 0
#define SSE_SIZEOF___INT8 0
#define SSE_SIZEOF___INT16 0
#define SSE_SIZEOF___INT32 0
#define SSE_SIZEOF___INT64 0
#define SSE_SIZEOF___INT128 0
#define SSE_SIZEOF_VOID_P 0
#define SSE_SIZEOF_FLOAT 0
#define SSE_SIZEOF_DOUBLE 0
#define SSE_SIZEOF_LONG_DOUBLE 0
#define SSE_SIZEOF_PID_T 0
#define SSE_SIZEOF_WCHAR_T 0
/* fcntl.h */
#undef XP_HAVE_FCNTL_H
#undef SSE_HAVE_FCNTL_H
/* limits.h */
#undef XP_HAVE_LIMITS_H
#undef SSE_HAVE_LIMITS_H
/* stdarg.h */
#undef XP_HAVE_STDARG_H
#undef SSE_HAVE_STDARG_H
/* stddef.h */
#undef XP_HAVE_STDDEF_H
#undef SSE_HAVE_STDDEF_H
/* unistd.h */
#undef XP_HAVE_UNISTD_H
#undef SSE_HAVE_UNISTD_H
/* wchar.h */
#undef XP_HAVE_WCHAR_H
#undef SSE_HAVE_WCHAR_H
/* poll.h */
#undef XP_HAVE_POLL_H
#undef SSE_HAVE_POLL_H
/* sys/poll.h */
#undef XP_HAVE_SYS_EPOLL_H
#undef SSE_HAVE_SYS_EPOLL_H
/* pthread.h */
#undef XP_HAVE_PTHREAD_H
#undef SSE_HAVE_PTHREAD_H
/* sys/sysinfo.h */
#undef XP_HAVE_SYS_SYSINFO_H
#undef SSE_HAVE_SYS_SYSINFO_H
/* sys/sysinfo.mem_unit */
#undef XP_HAVE_SYS_SYSINFO_MEM_UNIT
#undef SSE_HAVE_SYS_SYSINFO_MEM_UNIT
/* in6.scope_id */
#undef XP_HAVE_IN6_SCOPE_ID
#undef SSE_HAVE_IN6_SCOPE_ID
/* sockaddr_storage.ss_family */
#undef XP_HAVE_SS_FAMILY
#undef SSE_HAVE_SS_FAMILY
/* char is wchar */
#undef XP_CHAR_IS_WCHAR
#undef SSE_CHAR_IS_WCHAR
/* char is mchar */
#undef XP_CHAR_IS_MCHAR
#undef SSE_CHAR_IS_MCHAR

View File

@ -1,6 +1,6 @@
AC_PREREQ(2.53)
AC_INIT([xpkit], [deb-0.1.0])
AC_REVISION([$Revision: 1.65 $])
AC_REVISION([$Revision: 1.66 $])
AC_CONFIG_HEADER([xp/config.h])
# Checks for programs.
@ -123,20 +123,5 @@ then
[CFLAGS="$CFLAGS -D_REENTRANT -D_THREAD_SAFE"]
fi
AC_CONFIG_FILES([
Makefile xp/Makefile xpp/Makefile
xp/bas/Makefile xp/sys/Makefile
xp/net/Makefile xp/utl/Makefile
xp/stx/Makefile xp/awk/Makefile
xp/lsp/Makefile xp/lnx/Makefile
xp/test/bas/Makefile xp/test/sys/Makefile
xp/test/net/Makefile xp/test/utl/Makefile
xp/test/stx/Makefile xp/test/awk/Makefile
xp/test/lsp/Makefile xp/test/lnx/Makefile
xpp/bas/Makefile xpp/net/Makefile xpp/sys/Makefile
xpp/utl/Makefile xpp/xli/Makefile
xpp/test/bas/Makefile xpp/test/net/Makefile
xpp/test/sys/Makefile xpp/test/utl/Makefile xpp/test/xli/Makefile
xpo/bas/Makefile xpo/net/Makefile
xpo/test/bas/Makefile xpo/test/net/Makefile])
AC_CONFIG_FILES([makefile awk/makefile])
AC_OUTPUT

View File

@ -1,118 +1,118 @@
/*
* $Id: macros.h,v 1.35 2006-07-17 04:17:39 bacon Exp $
* $Id: macros.h,v 1.36 2006-10-22 11:44:46 bacon Exp $
*/
#ifndef _XP_MACROS_H_
#define _XP_MACROS_H_
#ifndef _SSE_MACROS_H_
#define _SSE_MACROS_H_
#include <xp/types.h>
#include <sse/types.h>
#ifdef __cplusplus
/*#define XP_NULL ((xp_uint_t)0)*/
#define XP_NULL (0)
/*#define SSE_NULL ((sse_uint_t)0)*/
#define SSE_NULL (0)
#else
#define XP_NULL ((void*)0)
#define SSE_NULL ((void*)0)
#endif
#define XP_CHAR_EOF ((xp_cint_t)-1)
#define SSE_CHAR_EOF ((sse_cint_t)-1)
#define xp_sizeof(n) (sizeof(n))
#define xp_countof(n) (sizeof(n) / sizeof(n[0]))
#define xp_offsetof(type,member) ((xp_size_t)&((type*)0)->member)
#define sse_sizeof(n) (sizeof(n))
#define sse_countof(n) (sizeof(n) / sizeof(n[0]))
#define sse_offsetof(type,member) ((sse_size_t)&((type*)0)->member)
#if defined(_WIN32) && defined(XP_CHAR_IS_WCHAR) && !defined(__LCC__)
#define xp_main wmain
#elif defined(XP_CHAR_IS_MCHAR)
#define xp_main main
#if defined(_WIN32) && defined(SSE_CHAR_IS_WCHAR) && !defined(__LCC__)
#define sse_main wmain
#elif defined(SSE_CHAR_IS_MCHAR)
#define sse_main main
#endif
#define XP_TYPE_IS_SIGNED(type) (((type)0) > ((type)-1))
#define XP_TYPE_IS_UNSIGNED(type) (((type)0) < ((type)-1))
#define XP_TYPE_MAX(type) \
((XP_TYPE_IS_SIGNED(type)? (type)~((type)1 << (xp_sizeof(type) * 8 - 1)): (type)(~(type)0)))
#define XP_TYPE_MIN(type) \
((XP_TYPE_IS_SIGNED(type)? (type)((type)1 << (xp_sizeof(type) * 8 - 1)): (type)0))
#define SSE_TYPE_IS_SIGNED(type) (((type)0) > ((type)-1))
#define SSE_TYPE_IS_UNSIGNED(type) (((type)0) < ((type)-1))
#define SSE_TYPE_MAX(type) \
((SSE_TYPE_IS_SIGNED(type)? (type)~((type)1 << (sse_sizeof(type) * 8 - 1)): (type)(~(type)0)))
#define SSE_TYPE_MIN(type) \
((SSE_TYPE_IS_SIGNED(type)? (type)((type)1 << (sse_sizeof(type) * 8 - 1)): (type)0))
#define XP_NUM_IS_POWOF2(x) (((x) & ((x) - 1)) == 0)
#define XP_SWAP(x,y,original_type,casting_type) \
#define SSE_NUM_IS_POWOF2(x) (((x) & ((x) - 1)) == 0)
#define SSE_SWAP(x,y,original_type,casting_type) \
do { \
x = (original_type)((casting_type)(x) ^ (casting_type)(y)); \
y = (original_type)((casting_type)(y) ^ (casting_type)(x)); \
x = (original_type)((casting_type)(x) ^ (casting_type)(y)); \
} while (0)
#define XP_ABS(x) ((x) < 0? -(x): (x))
#define SSE_ABS(x) ((x) < 0? -(x): (x))
#define XP_LOOP_CONTINUE(id) goto __loop_ ## id ## _begin__;
#define XP_LOOP_BREAK(id) goto __loop_ ## id ## _end__;
#define XP_LOOP_BEGIN(id) __loop_ ## id ## _begin__: {
#define XP_LOOP_END(id) XP_LOOP_CONTINUE(id) } __loop_ ## id ## _end__:;
#define SSE_LOOP_CONTINUE(id) goto __loop_ ## id ## _begin__;
#define SSE_LOOP_BREAK(id) goto __loop_ ## id ## _end__;
#define SSE_LOOP_BEGIN(id) __loop_ ## id ## _begin__: {
#define SSE_LOOP_END(id) SSE_LOOP_CONTINUE(id) } __loop_ ## id ## _end__:;
#define XP_REPEAT(n,blk) \
#define SSE_REPEAT(n,blk) \
do { \
xp_size_t __xp_repeat_x1 = (xp_size_t)(n); \
xp_size_t __xp_repeat_x2 = __xp_repeat_x1 >> 4; \
__xp_repeat_x1 &= 15; \
while (__xp_repeat_x1-- > 0) { blk; } \
while (__xp_repeat_x2-- > 0) { \
sse_size_t __sse_repeat_x1 = (sse_size_t)(n); \
sse_size_t __sse_repeat_x2 = __sse_repeat_x1 >> 4; \
__sse_repeat_x1 &= 15; \
while (__sse_repeat_x1-- > 0) { blk; } \
while (__sse_repeat_x2-- > 0) { \
blk; blk; blk; blk; blk; blk; blk; blk; \
blk; blk; blk; blk; blk; blk; blk; blk; \
} \
} while (0);
/* obsolete */
#define XP_MQUOTE_I(val) #val
#define XP_MQUOTE(val) XP_MQUOTE_I(val)
#define XP_MCHAR(ch) ((xp_mchar_t)ch)
#define XP_MTEXT(txt) ((const xp_mchar_t*)txt)
#define SSE_MQUOTE_I(val) #val
#define SSE_MQUOTE(val) SSE_MQUOTE_I(val)
#define SSE_MCHAR(ch) ((sse_mchar_t)ch)
#define SSE_MTEXT(txt) ((const sse_mchar_t*)txt)
/* new short form */
#define XP_MQ_I(val) #val
#define XP_MQ(val) XP_MQ_I(val)
#define XP_MC(ch) ((xp_mchar_t)ch)
#define XP_MS(str) ((const xp_mchar_t*)str)
#define XP_MT(txt) (txt)
#define SSE_MQ_I(val) #val
#define SSE_MQ(val) SSE_MQ_I(val)
#define SSE_MC(ch) ((sse_mchar_t)ch)
#define SSE_MS(str) ((const sse_mchar_t*)str)
#define SSE_MT(txt) (txt)
/* TODO: if the compiler doesn't have the built-in wchar_t support
* XP_WCHAR & XP_WTEXT must be defined differently.
#define XP_WCHAR(ch) ((xp_wchar_t)ch)
#define XP_WTEXT(txt) don't know yet... may have to call a function?
* SSE_WCHAR & SSE_WTEXT must be defined differently.
#define SSE_WCHAR(ch) ((sse_wchar_t)ch)
#define SSE_WTEXT(txt) don't know yet... may have to call a function?
*/
/* obsolete */
#define XP_WQUOTE_I(val) (L###val)
#define XP_WQUOTE(val) XP_WQUOTE_I(val)
#define XP_WCHAR(ch) ((xp_wchar_t)L##ch)
#define XP_WTEXT(txt) ((const xp_wchar_t*)L##txt)
#define SSE_WQUOTE_I(val) (L###val)
#define SSE_WQUOTE(val) SSE_WQUOTE_I(val)
#define SSE_WCHAR(ch) ((sse_wchar_t)L##ch)
#define SSE_WTEXT(txt) ((const sse_wchar_t*)L##txt)
/* new short form */
#define XP_WQ_I(val) (L###val)
#define XP_WQ(val) XP_WQ_I(val)
#define XP_WC(ch) ((xp_wchar_t)L##ch)
#define XP_WS(str) ((const xp_wchar_t*)L##str)
#define XP_WT(txt) (L##txt)
#define SSE_WQ_I(val) (L###val)
#define SSE_WQ(val) SSE_WQ_I(val)
#define SSE_WC(ch) ((sse_wchar_t)L##ch)
#define SSE_WS(str) ((const sse_wchar_t*)L##str)
#define SSE_WT(txt) (L##txt)
#if defined(XP_CHAR_IS_MCHAR)
#if defined(SSE_CHAR_IS_MCHAR)
/* obsolete */
#define XP_CHAR(ch) XP_MCHAR(ch)
#define XP_TEXT(txt) XP_MTEXT(txt)
#define XP_QUOTE(val) XP_MQUOTE(val)
#define SSE_CHAR(ch) SSE_MCHAR(ch)
#define SSE_TEXT(txt) SSE_MTEXT(txt)
#define SSE_QUOTE(val) SSE_MQUOTE(val)
/* new short form */
#define XP_C(ch) XP_MC(ch)
#define XP_S(str) XP_MS(str)
#define XP_T(txt) XP_MT(txt)
#define XP_Q(val) XP_MQ(val)
#define SSE_C(ch) SSE_MC(ch)
#define SSE_S(str) SSE_MS(str)
#define SSE_T(txt) SSE_MT(txt)
#define SSE_Q(val) SSE_MQ(val)
#else
/* obsolete */
#define XP_CHAR(ch) XP_WCHAR(ch)
#define XP_TEXT(txt) XP_WTEXT(txt)
#define XP_QUOTE(val) XP_WQUOTE(val)
#define SSE_CHAR(ch) SSE_WCHAR(ch)
#define SSE_TEXT(txt) SSE_WTEXT(txt)
#define SSE_QUOTE(val) SSE_WQUOTE(val)
/* new short form */
#define XP_C(ch) XP_WC(ch)
#define XP_S(str) XP_WS(str)
#define XP_T(txt) XP_WT(txt)
#define XP_Q(val) XP_WQ(val)
#define SSE_C(ch) SSE_WC(ch)
#define SSE_S(str) SSE_WS(str)
#define SSE_T(txt) SSE_WT(txt)
#define SSE_Q(val) SSE_WQ(val)
#endif
#endif

View File

@ -1,4 +1,4 @@
SUBDIRS=bas sys net utl stx lsp
SUBDIRS=awk
all:
@for i in $(SUBDIRS); \

View File

@ -1,18 +1,18 @@
/*
* $Id: types.h,v 1.56 2006-09-27 14:14:29 bacon Exp $
* $Id: types.h,v 1.57 2006-10-22 11:44:46 bacon Exp $
*/
#ifndef _XP_TYPES_H_
#define _XP_TYPES_H_
#ifndef _SSE_TYPES_H_
#define _SSE_TYPES_H_
#if defined(_WIN32)
#include <xp/conf_msw.h>
#include <sse/conf_msw.h>
#elif defined(vms) || defined(__vms)
#include <xp/conf_vms.h>
#include <sse/conf_vms.h>
#elif defined(dos) || defined(__dos)
#include <xp/conf_dos.h>
#include <sse/conf_dos.h>
#else
#include <xp/config.h>
#include <sse/config.h>
#endif
/*
@ -28,241 +28,241 @@
*
* GROUP: State Types
*
* TYPE: xp_bool_t
* TYPE: sse_bool_t
* Boolean type
*
* TYPE: xp_tri_t
* TYPE: sse_tri_t
* Tri-State type
*
* GROUP: Integral Types
*
* TYPE: xp_byte_t
* TYPE: sse_byte_t
*
* TYPE: xp_word_t
* TYPE: sse_word_t
*
* TYPE: xp_int_t
* TYPE: sse_int_t
* Signed integer whose size equals the size of a pointer
*
* TYPE: xp_uint_t
* TYPE: sse_uint_t
* Unsigned integer whose size equals the size of a pointer
*
* TYPE: xp_long_t
* TYPE: sse_long_t
* The largest signed integer available
*
* TYPE: xp_ulong_t
* TYPE: sse_ulong_t
* The largest unsigned integer available
*
* TYPE: xp_size_t
* TYPE: sse_size_t
* Unsigned integer which can represent the size of the largest
* in-memory data
*
* TYPE: xp_ssize_t
* Signed version of xp_size_t
* TYPE: sse_ssize_t
* Signed version of sse_size_t
*
* TYPE: xp_int8_t
* TYPE: sse_int8_t
*
* TYPE: xp_uint8_t
* TYPE: sse_uint8_t
*
* TYPE: xp_int16_t
* TYPE: sse_int16_t
*
* TYPE: xp_uint16_t
* TYPE: sse_uint16_t
*
* TYPE: xp_int32_t
* TYPE: sse_int32_t
*
* TYPE: xp_uint32_t
* TYPE: sse_uint32_t
*
* TYPE: xp_int64_t
* TYPE: sse_int64_t
*
* TYPE: xp_uint64_t
* TYPE: sse_uint64_t
*/
/* boolean type */
typedef int xp_bool_t;
#define xp_true (0 == 0)
#define xp_false (0 != 0)
typedef int sse_bool_t;
#define sse_true (0 == 0)
#define sse_false (0 != 0)
/* tri-state type */
typedef int xp_tri_t;
#define xp_alive 1
#define xp_zombie 0
#define xp_dead -1
typedef int sse_tri_t;
#define sse_alive 1
#define sse_zombie 0
#define sse_dead -1
/* integer that can hold a pointer */
#if XP_SIZEOF_VOID_P == XP_SIZEOF_INT
typedef int xp_int_t;
typedef unsigned int xp_uint_t;
#elif XP_SIZEOF_VOID_P == XP_SIZEOF_LONG
typedef long xp_int_t;
typedef unsigned long xp_uint_t;
#elif XP_SIZEOF_VOID_P == XP_SIZEOF_LONG_LONG
typedef long long xp_int_t;
typedef unsigned long long xp_uint_t;
#if SSE_SIZEOF_VOID_P == SSE_SIZEOF_INT
typedef int sse_int_t;
typedef unsigned int sse_uint_t;
#elif SSE_SIZEOF_VOID_P == SSE_SIZEOF_LONG
typedef long sse_int_t;
typedef unsigned long sse_uint_t;
#elif SSE_SIZEOF_VOID_P == SSE_SIZEOF_LONG_LONG
typedef long long sse_int_t;
typedef unsigned long long sse_uint_t;
#else
#error Unsupported pointer size
#endif
/* the largest integer supported by the system */
#if XP_SIZEOF_LONG_LONG != 0
typedef long long xp_long_t;
typedef unsigned long long xp_ulong_t;
#elif XP_SIZEOF___INT64 != 0
typedef __int64 xp_long_t;
typedef unsigned __int64 xp_ulong_t;
#if SSE_SIZEOF_LONG_LONG != 0
typedef long long sse_long_t;
typedef unsigned long long sse_ulong_t;
#elif SSE_SIZEOF___INT64 != 0
typedef __int64 sse_long_t;
typedef unsigned __int64 sse_ulong_t;
#else
typedef long xp_long_t;
typedef unsigned long xp_ulong_t;
typedef long sse_long_t;
typedef unsigned long sse_ulong_t;
#endif
/* integers of specific size */
#if XP_SIZEOF_CHAR == 1
typedef char xp_int8_t;
typedef unsigned char xp_uint8_t;
#elif XP_SIZEOF___INT8 == 1
typedef __int8 xp_int8_t;
typedef unsigned __int8 xp_uint8_t;
#if SSE_SIZEOF_CHAR == 1
typedef char sse_int8_t;
typedef unsigned char sse_uint8_t;
#elif SSE_SIZEOF___INT8 == 1
typedef __int8 sse_int8_t;
typedef unsigned __int8 sse_uint8_t;
#endif
#if XP_SIZEOF_SHORT == 2
typedef short xp_int16_t;
typedef unsigned short xp_uint16_t;
#elif XP_SIZEOF___INT16 == 2
typedef __int16 xp_int16_t;
typedef unsigned __int16 xp_uint16_t;
#if SSE_SIZEOF_SHORT == 2
typedef short sse_int16_t;
typedef unsigned short sse_uint16_t;
#elif SSE_SIZEOF___INT16 == 2
typedef __int16 sse_int16_t;
typedef unsigned __int16 sse_uint16_t;
#endif
#if XP_SIZEOF_INT == 4
typedef int xp_int32_t;
typedef unsigned int xp_uint32_t;
#elif XP_SIZEOF_LONG == 4
typedef long xp_int32_t;
typedef unsigned long xp_uint32_t;
#elif XP_SIZEOF___INT32 == 4
typedef __int32 xp_int32_t;
typedef unsigned __int32 xp_uint32_t;
#if SSE_SIZEOF_INT == 4
typedef int sse_int32_t;
typedef unsigned int sse_uint32_t;
#elif SSE_SIZEOF_LONG == 4
typedef long sse_int32_t;
typedef unsigned long sse_uint32_t;
#elif SSE_SIZEOF___INT32 == 4
typedef __int32 sse_int32_t;
typedef unsigned __int32 sse_uint32_t;
#endif
#if XP_SIZEOF_INT == 8
#define XP_HAVE_INT64_T
#define XP_HAVE_UINT64_T
typedef int xp_int64_t;
typedef unsigned int xp_uint64_t;
#elif XP_SIZEOF_LONG == 8
#define XP_HAVE_INT64_T
#define XP_HAVE_UINT64_T
typedef long xp_int64_t;
typedef unsigned long xp_uint64_t;
#elif XP_SIZEOF_LONG_LONG == 8
#define XP_HAVE_INT64_T
#define XP_HAVE_UINT64_T
typedef long long xp_int64_t;
typedef unsigned long long xp_uint64_t;
#elif XP_SIZEOF___INT64 == 8
#define XP_HAVE_INT64_T
#define XP_HAVE_UINT64_T
typedef __int64 xp_int64_t;
typedef unsigned __int64 xp_uint64_t;
#if SSE_SIZEOF_INT == 8
#define SSE_HAVE_INT64_T
#define SSE_HAVE_UINT64_T
typedef int sse_int64_t;
typedef unsigned int sse_uint64_t;
#elif SSE_SIZEOF_LONG == 8
#define SSE_HAVE_INT64_T
#define SSE_HAVE_UINT64_T
typedef long sse_int64_t;
typedef unsigned long sse_uint64_t;
#elif SSE_SIZEOF_LONG_LONG == 8
#define SSE_HAVE_INT64_T
#define SSE_HAVE_UINT64_T
typedef long long sse_int64_t;
typedef unsigned long long sse_uint64_t;
#elif SSE_SIZEOF___INT64 == 8
#define SSE_HAVE_INT64_T
#define SSE_HAVE_UINT64_T
typedef __int64 sse_int64_t;
typedef unsigned __int64 sse_uint64_t;
#endif
#if XP_SIZEOF_INT == 16
#define XP_HAVE_INT128_T
#define XP_HAVE_UINT128_T
typedef int xp_int128_t;
typedef unsigned int xp_uint128_t;
#elif XP_SIZEOF_LONG == 16
#define XP_HAVE_INT128_T
#define XP_HAVE_UINT128_T
typedef long xp_int128_t;
typedef unsigned long xp_uint128_t;
#elif XP_SIZEOF_LONG_LONG == 16
#define XP_HAVE_INT128_T
#define XP_HAVE_UINT128_T
typedef long long xp_int128_t;
typedef unsigned long long xp_uint128_t;
#elif XP_SIZEOF___INT128 == 16
#define XP_HAVE_INT128_T
#define XP_HAVE_UINT128_T
typedef __int128 xp_int128_t;
typedef unsigned __int128 xp_uint128_t;
#if SSE_SIZEOF_INT == 16
#define SSE_HAVE_INT128_T
#define SSE_HAVE_UINT128_T
typedef int sse_int128_t;
typedef unsigned int sse_uint128_t;
#elif SSE_SIZEOF_LONG == 16
#define SSE_HAVE_INT128_T
#define SSE_HAVE_UINT128_T
typedef long sse_int128_t;
typedef unsigned long sse_uint128_t;
#elif SSE_SIZEOF_LONG_LONG == 16
#define SSE_HAVE_INT128_T
#define SSE_HAVE_UINT128_T
typedef long long sse_int128_t;
typedef unsigned long long sse_uint128_t;
#elif SSE_SIZEOF___INT128 == 16
#define SSE_HAVE_INT128_T
#define SSE_HAVE_UINT128_T
typedef __int128 sse_int128_t;
typedef unsigned __int128 sse_uint128_t;
#endif
/* miscellaneous integral types */
typedef xp_uint8_t xp_byte_t;
typedef xp_uint_t xp_size_t;
typedef xp_int_t xp_ssize_t;
typedef xp_uint_t xp_word_t;
typedef sse_uint8_t sse_byte_t;
typedef sse_uint_t sse_size_t;
typedef sse_int_t sse_ssize_t;
typedef sse_uint_t sse_word_t;
/* floating-point number */
#if defined(__FreeBSD__)
/* TODO: check if the support for long double is complete.
* if so, use long double for xp_real_t */
#define XP_SIZEOF_REAL XP_SIZEOF_DOUBLE
typedef double xp_real_t;
#elif XP_SIZEOF_LONG_DOUBLE > XP_SIZEOF_DOUBLE
#define XP_SIZEOF_REAL XP_SIZEOF_LONG_DOUBLE
typedef long double xp_real_t;
* if so, use long double for sse_real_t */
#define SSE_SIZEOF_REAL SSE_SIZEOF_DOUBLE
typedef double sse_real_t;
#elif SSE_SIZEOF_LONG_DOUBLE > SSE_SIZEOF_DOUBLE
#define SSE_SIZEOF_REAL SSE_SIZEOF_LONG_DOUBLE
typedef long double sse_real_t;
#else
#define XP_SIZEOF_REAL XP_SIZEOF_DOUBLE
typedef double xp_real_t;
#define SSE_SIZEOF_REAL SSE_SIZEOF_DOUBLE
typedef double sse_real_t;
#endif
/* character types */
typedef char xp_mchar_t;
typedef int xp_mcint_t;
typedef char sse_mchar_t;
typedef int sse_mcint_t;
#if defined(__cplusplus)
/* C++ */
typedef wchar_t xp_wchar_t;
typedef wchar_t xp_wcint_t;
typedef wchar_t sse_wchar_t;
typedef wchar_t sse_wcint_t;
/* all the way down from here for C */
#elif (XP_SIZEOF_WCHAR_T == 2) || (XP_SIZEOF_WCHAR_T == 0)
typedef unsigned short xp_wchar_t;
typedef unsigned short xp_wcint_t;
#elif (XP_SIZEOF_WCHAR_T == 4)
#elif (SSE_SIZEOF_WCHAR_T == 2) || (SSE_SIZEOF_WCHAR_T == 0)
typedef unsigned short sse_wchar_t;
typedef unsigned short sse_wcint_t;
#elif (SSE_SIZEOF_WCHAR_T == 4)
#if defined(vms) || defined(__vms)
typedef unsigned int xp_wchar_t;
typedef int xp_wcint_t;
typedef unsigned int sse_wchar_t;
typedef int sse_wcint_t;
#elif defined(__FreeBSD__)
typedef int xp_wchar_t;
typedef int xp_wcint_t;
typedef int sse_wchar_t;
typedef int sse_wcint_t;
#elif (defined(sun) || defined(__sun)) && defined(_LP64)
typedef int xp_wchar_t;
typedef int xp_wcint_t;
#elif XP_SIZEOF_LONG == 4
typedef long xp_wchar_t;
typedef long xp_wcint_t;
typedef int sse_wchar_t;
typedef int sse_wcint_t;
#elif SSE_SIZEOF_LONG == 4
typedef long sse_wchar_t;
typedef long sse_wcint_t;
#else
typedef int xp_wchar_t;
typedef int xp_wcint_t;
typedef int sse_wchar_t;
typedef int sse_wcint_t;
#endif
#else
#error unsupported size of wchar_t
#endif
#if defined(_WIN32) && (defined(UNICODE)||defined(_UNICODE))
#define XP_CHAR_IS_WCHAR
typedef xp_wchar_t xp_char_t;
typedef xp_wcint_t xp_cint_t;
#define SSE_CHAR_IS_WCHAR
typedef sse_wchar_t sse_char_t;
typedef sse_wcint_t sse_cint_t;
#else
#if defined(XP_CHAR_IS_MCHAR)
typedef xp_mchar_t xp_char_t;
typedef xp_mcint_t xp_cint_t;
#elif defined(XP_CHAR_IS_WCHAR)
typedef xp_wchar_t xp_char_t;
typedef xp_wcint_t xp_cint_t;
#if defined(SSE_CHAR_IS_MCHAR)
typedef sse_mchar_t sse_char_t;
typedef sse_mcint_t sse_cint_t;
#elif defined(SSE_CHAR_IS_WCHAR)
typedef sse_wchar_t sse_char_t;
typedef sse_wcint_t sse_cint_t;
#elif defined(_MBCS)
#define XP_CHAR_IS_MCHAR
typedef xp_mchar_t xp_char_t;
typedef xp_mcint_t xp_cint_t;
#define SSE_CHAR_IS_MCHAR
typedef sse_mchar_t sse_char_t;
typedef sse_mcint_t sse_cint_t;
#else
#define XP_CHAR_IS_WCHAR
typedef xp_wchar_t xp_char_t;
typedef xp_wcint_t xp_cint_t;
#define SSE_CHAR_IS_WCHAR
typedef sse_wchar_t sse_char_t;
typedef sse_wcint_t sse_cint_t;
#endif
#endif
#if defined(XP_CHAR_IS_WCHAR) && defined(_WIN32)
#if defined(SSE_CHAR_IS_WCHAR) && defined(_WIN32)
#ifndef UNICODE
#define UNICODE
#endif