Recovered from cvs revision 2007-04-30 05:47:00

This commit is contained in:
2007-04-30 18:34:00 +00:00
parent a5832c2672
commit 76daf75d92
442 changed files with 0 additions and 62624 deletions

View File

@ -1,127 +0,0 @@
# Microsoft Developer Studio Project File - Name="aseutl" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Static Library" 0x0104
CFG=aseutl - Win32 Release
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "aseutl.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "aseutl.mak" CFG="aseutl - Win32 Release"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "aseutl - Win32 Release" (based on "Win32 (x86) Static Library")
!MESSAGE "aseutl - Win32 Debug" (based on "Win32 (x86) Static Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
RSC=rc.exe
!IF "$(CFG)" == "aseutl - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "../release/lib"
# PROP Intermediate_Dir "release"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
MTL=midl.exe
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_UNICODE" /D "_USRDLL" /Yu"stdafx.h" /FD /c
# ADD CPP /nologo /MT /Za /W3 /GX /O2 /I "../.." /D "NDEBUG" /D "WIN32" /D "_UNICODE" /FD /c
# SUBTRACT CPP /YX /Yc /Yu
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
!ELSEIF "$(CFG)" == "aseutl - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "../debug/lib"
# PROP Intermediate_Dir "debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
MTL=midl.exe
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_UNICODE" /D "_USRDLL" /Yu"stdafx.h" /FD /GZ /c
# ADD CPP /nologo /MTd /Za /W3 /Gm /GX /ZI /Od /I "../.." /D "_DEBUG" /D "WIN32" /D "_UNICODE" /FD /GZ /c
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
!ENDIF
# Begin Target
# Name "aseutl - Win32 Release"
# Name "aseutl - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=.\ctype.c
# End Source File
# Begin Source File
SOURCE=.\main.c
# End Source File
# Begin Source File
SOURCE=.\stdio.c
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# Begin Source File
SOURCE=.\ctype.h
# End Source File
# Begin Source File
SOURCE=.\main.h
# End Source File
# Begin Source File
SOURCE=.\stdio.h
# End Source File
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# End Group
# End Target
# End Project

View File

@ -1,150 +0,0 @@
/*
* $Id: ctype.c,v 1.1.1.1 2007/03/28 14:05:30 bacon Exp $
*/
#include <ase/utl/ctype.h>
#if defined(ASE_CHAR_IS_MCHAR)
#include <ctype.h>
ase_bool_t ase_isupper (ase_cint_t c)
{
return isupper (c);
}
ase_bool_t ase_islower (ase_cint_t c)
{
return islower (c);
}
ase_bool_t ase_isalpha (ase_cint_t c)
{
return isalpha (c);
}
ase_bool_t ase_isdigit (ase_cint_t c)
{
return isdigit (c);
}
ase_bool_t ase_isxdigit (ase_cint_t c)
{
return isxdigit (c);
}
ase_bool_t ase_isalnum (ase_cint_t c)
{
return isalnum (c);
}
ase_bool_t ase_isspace (ase_cint_t c)
{
return isspace (c);
}
ase_bool_t ase_isprint (ase_cint_t c)
{
return isprint (c);
}
ase_bool_t ase_isgraph (ase_cint_t c)
{
return isgraph (c);
}
ase_bool_t ase_iscntrl (ase_cint_t c)
{
return iscntrl (c);
}
ase_bool_t ase_ispunct (ase_cint_t c)
{
return ispunct (c);
}
ase_cint_t ase_toupper (ase_cint_t c)
{
return toupper (c);
}
ase_cint_t ase_tolower (ase_cint_t c)
{
return tolower (c);
}
#elif defined(ASE_CHAR_IS_WCHAR)
#include <ctype.h>
#include <wctype.h>
ase_bool_t ase_isupper (ase_cint_t c)
{
return iswupper (c);
}
ase_bool_t ase_islower (ase_cint_t c)
{
return iswlower (c);
}
ase_bool_t ase_isalpha (ase_cint_t c)
{
return iswalpha (c);
}
ase_bool_t ase_isdigit (ase_cint_t c)
{
return iswdigit (c);
}
ase_bool_t ase_isxdigit (ase_cint_t c)
{
return iswxdigit (c);
}
ase_bool_t ase_isalnum (ase_cint_t c)
{
return iswalnum (c);
}
ase_bool_t ase_isspace (ase_cint_t c)
{
return iswspace (c);
}
ase_bool_t ase_isprint (ase_cint_t c)
{
return iswprint (c);
}
ase_bool_t ase_isgraph (ase_cint_t c)
{
return iswgraph (c);
}
ase_bool_t ase_iscntrl (ase_cint_t c)
{
return iswcntrl (c);
}
ase_bool_t ase_ispunct (ase_cint_t c)
{
return iswpunct (c);
}
ase_cint_t ase_toupper (ase_cint_t c)
{
return towupper (c);
}
ase_cint_t ase_tolower (ase_cint_t c)
{
return towlower (c);
}
#else
#error unsupported character type
#endif

View File

@ -1,34 +0,0 @@
/*
* $id$
*/
#ifndef _ASE_UTL_CTYPE_H_
#define _ASE_UTL_CTYPE_H_
#include <ase/cmn/types.h>
#include <ase/cmn/macros.h>
#ifdef __cplusplus
extern "C" {
#endif
ase_bool_t ase_isupper (ase_cint_t c);
ase_bool_t ase_islower (ase_cint_t c);
ase_bool_t ase_isalpha (ase_cint_t c);
ase_bool_t ase_isdigit (ase_cint_t c);
ase_bool_t ase_isxdigit (ase_cint_t c);
ase_bool_t ase_isalnum (ase_cint_t c);
ase_bool_t ase_isspace (ase_cint_t c);
ase_bool_t ase_isprint (ase_cint_t c);
ase_bool_t ase_isgraph (ase_cint_t c);
ase_bool_t ase_iscntrl (ase_cint_t c);
ase_bool_t ase_ispunct (ase_cint_t c);
ase_cint_t ase_toupper (ase_cint_t c);
ase_cint_t ase_tolower (ase_cint_t c);
#ifdef __cplusplus
}
#endif
#endif

View File

@ -1,16 +0,0 @@
#
# OpenVMS MMS/MMK
#
objects = main.obj,ctype.obj,stdio.obj
CFLAGS = /include="../.."
#CFLAGS = /pointer_size=long /include="../.."
LIBRFLAGS =
aseutl.olb : $(objects)
$(LIBR)/create $(MMS$TARGET) $(objects)
main.obj depends_on main.c
ctype.obj depends_on ctype.c
stdio.obj depends_on stdio.c

View File

@ -1,89 +0,0 @@
/*
* $Id: main.c,v 1.1.1.1 2007/03/28 14:05:30 bacon Exp $
*
* {License}
*/
#include <ase/utl/main.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <locale.h>
#if !defined(_WIN32) && defined(ASE_CHAR_IS_MCHAR)
int main (int argc, char* argv[], char** envp)
{
setlocale (LC_ALL, "");
return ase_main (argc, argv, envp);
}
#elif !defined(_WIN32) && defined(ASE_CHAR_IS_WCHAR)
#include <wchar.h>
int main (int argc, char* argv[]/*, char** envp*/)
{
int i, ret;
ase_char_t** v;
setlocale (LC_ALL, "");
v = (ase_char_t**) malloc (argc * ASE_SIZEOF(ase_char_t*));
if (v == NULL) return -1;
for (i = 0; i < argc; i++) v[i] = NULL;
for (i = 0; i < argc; i++)
{
ase_size_t n, len, rem;
char* p = argv[i];
len = 0; rem = strlen (p);
while (*p != '\0')
{
int x = mblen (p, rem);
if (x == -1)
{
ret = -1;
goto exit_main;
}
if (x == 0) break;
p += x; rem -= x; len++;
}
#if (defined(vms) || defined(__vms)) && (ASE_SIZEOF_VOID_P >= 8)
v[i] = (ase_char_t*) _malloc32 ((len+1)*ASE_SIZEOF(ase_char_t));
#else
v[i] = (ase_char_t*) malloc ((len+1)*ASE_SIZEOF(ase_char_t));
#endif
if (v[i] == NULL)
{
ret = -1;
goto exit_main;
}
n = mbstowcs (v[i], argv[i], len);
if (n == (size_t)-1)
{
/* error */
return -1;
}
if (n == len) v[i][len] = ASE_T('\0');
}
/* TODO: envp... */
ret = ase_main (argc, v, NULL);
exit_main:
for (i = 0; i < argc; i++)
{
if (v[i] != NULL) free (v[i]);
}
free (v);
return ret;
}
#endif

View File

@ -1,26 +0,0 @@
/*
* $Id: main.h,v 1.1.1.1 2007/03/28 14:05:30 bacon Exp $
*/
#ifndef _ASE_UTL_MAIN_H_
#define _ASE_UTL_MAIN_H_
#include <ase/cmn/types.h>
#include <ase/cmn/macros.h>
#if defined(_WIN32)
#include <tchar.h>
#define ase_main _tmain
#else
#ifdef __cplusplus
extern "C" { int ase_main (...); }
#else
extern int ase_main ();
#endif
#endif
#endif

View File

@ -1,49 +0,0 @@
#
# $Id: makefile.in,v 1.1.1.1 2007/03/28 14:05:30 bacon Exp $
#
NAME = aseutl
CC = @CC@
AR = ar
MAKE = @MAKE@
RANLIB = @RANLIB@
CFLAGS = @CFLAGS@ -I@abs_top_builddir@/..
LDFLAGS = @LDFLAGS@
LIBS = @LIBS@
MODE = @BUILDMODE@
OUT_DIR = ../$(MODE)/lib
OUT_FILE = $(OUT_DIR)/lib$(NAME).a
TMP_DIR = $(MODE)
OBJ_FILES = \
$(TMP_DIR)/main.o \
$(TMP_DIR)/ctype.o \
$(TMP_DIR)/stdio.o
lib: $(OUT_FILE)
$(OUT_FILE): $(OBJ_FILES) $(OUT_DIR)
$(AR) cr $(OUT_FILE) $(OBJ_FILES)
if [ "$(RANLIB)" = "ranlib" ]; then ranlib $(OUT_FILE); fi
$(TMP_DIR)/main.o: $(TMP_DIR)
$(CC) $(CFLAGS) -o $@ -c main.c
$(TMP_DIR)/ctype.o: $(TMP_DIR)
$(CC) $(CFLAGS) -o $@ -c ctype.c
$(TMP_DIR)/stdio.o: $(TMP_DIR)
$(CC) $(CFLAGS) -o $@ -c stdio.c
$(OUT_DIR):
mkdir -p $(OUT_DIR)
$(TMP_DIR):
mkdir -p $(TMP_DIR)
clean:
rm -rf $(OUT_FILE) $(OBJ_FILES)

View File

@ -1,31 +0,0 @@
OUT = aseutl
C_SRCS = main.c ctype.c stdio.c
C_OBJS = $(C_SRCS:.c=.obj)
CC = bcc32
LD = ilink32
AR = tlib
CFLAGS = -O2 -WM -WU -RT- -w -q -I../.. -DNDEBUG
LDFLAGS = -Tpd -ap -Gn -c -q
STARTUP = c0d32w.obj
LIBS = import32.lib cw32mt.lib
JNI_LIBS = $(LIBS) $(OUT).lib
all: lib
lib: $(C_OBJS)
$(AR) $(OUT).lib @&&!
+-$(**: = &^
+-)
!
clean:
-del $(OBJS) $(OUT).lib *.obj
.SUFFIXES: .c .obj
.c.obj:
$(CC) $(CFLAGS) -c $<

View File

@ -1,23 +0,0 @@
OUT = aseutl
C_SRCS = main.c ctype.c stdio.c
C_OBJS = $(C_SRCS:.c=.obj)
CC = cl
LD = link
CFLAGS = /nologo /O2 /MT /W3 /GR- /Za -I../.. -DNDEBUG
all: lib
lib: $(C_OBJS)
$(LD) /lib @<<
/nologo /out:$(OUT).lib $(C_OBJS)
<<
clean:
del $(OBJS) $(OUT).lib *.obj
.SUFFIXES: .c .obj
.c.obj:
$(CC) $(CFLAGS) /c $<

View File

@ -1,366 +0,0 @@
/*
* $Id: stdio.c,v 1.1.1.1 2007/03/28 14:05:30 bacon Exp $
*
* {License}
*/
#include <ase/utl/stdio.h>
#include <ase/utl/ctype.h>
#include <wchar.h>
#include <stdlib.h>
#include <limits.h>
#ifndef PATH_MAX
#define PATH_MAX 2048
#endif
#if defined(_WIN32)
int ase_vsprintf (ase_char_t* buf, size_t size, const ase_char_t* fmt, va_list ap)
{
int n;
n = _vsntprintf (buf, size, fmt, ap);
if (n < 0 || (size_t)n >= size)
{
if (size > 0) buf[size-1] = ASE_T('\0');
n = -1;
}
return n;
}
int ase_sprintf (ase_char_t* buf, size_t size, const ase_char_t* fmt, ...)
{
int n;
va_list ap;
va_start (ap, fmt);
n = ase_vsprintf (buf, size, fmt, ap);
va_end (ap);
return n;
}
#else
static ase_char_t* __adjust_format (const ase_char_t* format);
int ase_vfprintf (FILE *stream, const ase_char_t* fmt, va_list ap)
{
int n;
ase_char_t* nf = __adjust_format (fmt);
if (nf == NULL) return -1;
#ifdef ASE_CHAR_IS_MCHAR
n = vfprintf (stream, nf, ap);
#else
n = vfwprintf (stream, nf, ap);
#endif
free (nf);
return n;
}
int ase_vprintf (const ase_char_t* fmt, va_list ap)
{
return ase_vfprintf (stdout, fmt, ap);
}
int ase_fprintf (FILE* file, const ase_char_t* fmt, ...)
{
int n;
va_list ap;
va_start (ap, fmt);
n = ase_vfprintf (file, fmt, ap);
va_end (ap);
return n;
}
int ase_printf (const ase_char_t* fmt, ...)
{
int n;
va_list ap;
va_start (ap, fmt);
n = ase_vprintf (fmt, ap);
va_end (ap);
return n;
}
int ase_vsprintf (ase_char_t* buf, size_t size, const ase_char_t* fmt, va_list ap)
{
int n;
ase_char_t* nf = __adjust_format (fmt);
if (nf == NULL) return -1;
#if defined(ASE_CHAR_IS_MCHAR)
n = vsnprintf (buf, size, nf, ap);
#elif defined(_WIN32)
n = _vsnwprintf (buf, size, nf, ap);
#else
n = vswprintf (buf, size, nf, ap);
#endif
if (n < 0 || (size_t)n >= size)
{
if (size > 0) buf[size-1] = ASE_T('\0');
n = -1;
}
free (nf);
return n;
}
int ase_sprintf (ase_char_t* buf, size_t size, const ase_char_t* fmt, ...)
{
int n;
va_list ap;
va_start (ap, fmt);
n = ase_vsprintf (buf, size, fmt, ap);
va_end (ap);
return n;
}
#define MOD_SHORT 1
#define MOD_LONG 2
#define MOD_LONGLONG 3
#define ADDC(buf,c) \
do { \
if (buf.len >= buf.cap) \
{ \
ase_char_t* tmp; \
tmp = (ase_char_t*)realloc ( \
buf.ptr, sizeof(ase_char_t)*(buf.cap+256+1)); \
if (tmp == NULL) \
{ \
free (buf.ptr); \
return NULL; \
} \
buf.ptr = tmp; \
buf.cap = buf.cap + 256; \
} \
buf.ptr[buf.len++] = c; \
} while (0)
static ase_char_t* __adjust_format (const ase_char_t* format)
{
const ase_char_t* fp = format;
int modifier;
ase_char_t ch;
struct
{
ase_char_t* ptr;
ase_size_t len;
ase_size_t cap;
} buf;
buf.len = 0;
buf.cap = 256;
#if (defined(vms) || defined(__vms)) && (ASE_SIZEOF_VOID_P >= 8)
buf.ptr = (ase_char_t*) _malloc32 (sizeof(ase_char_t)*(buf.cap+1));
#else
buf.ptr = (ase_char_t*) malloc (sizeof(ase_char_t)*(buf.cap+1));
#endif
if (buf.ptr == NULL) return NULL;
while (*fp != ASE_T('\0'))
{
while (*fp != ASE_T('\0') && *fp != ASE_T('%'))
{
ADDC (buf, *fp++);
}
if (*fp == ASE_T('\0')) break;
ch = *fp++;
ADDC (buf, ch); /* add % */
ch = *fp++;
/* flags */
while (1)
{
if (ch == ASE_T(' ') || ch == ASE_T('+') ||
ch == ASE_T('-') || ch == ASE_T('#'))
{
ADDC (buf, ch);
ch = *fp++;
}
else
{
if (ch == ASE_T('0'))
{
ADDC (buf, ch);
ch = *fp++;
}
break;
}
}
/* check the width */
if (ch == ASE_T('*'))
{
ADDC (buf, ch);
ch = *fp++;
}
else
{
while (ase_isdigit(ch))
{
ADDC (buf, ch);
ch = *fp++;
}
}
/* precision */
if (ch == ASE_T('.'))
{
ADDC (buf, ch);
ch = *fp++;
if (ch == ASE_T('*'))
{
ADDC (buf, ch);
ch = *fp++;
}
else
{
while (ase_isdigit(ch))
{
ADDC (buf, ch);
ch = *fp++;
}
}
}
/* modifier */
for (modifier = 0;;)
{
if (ch == ASE_T('h')) modifier = MOD_SHORT;
else if (ch == ASE_T('l'))
{
modifier = (modifier == MOD_LONG)? MOD_LONGLONG: MOD_LONG;
}
else break;
ch = *fp++;
}
/* type */
if (ch == ASE_T('%')) ADDC (buf, ch);
else if (ch == ASE_T('c') || ch == ASE_T('s'))
{
#if !defined(ASE_CHAR_IS_MCHAR) && !defined(_WIN32)
ADDC (buf, 'l');
#endif
ADDC (buf, ch);
}
else if (ch == ASE_T('C') || ch == ASE_T('S'))
{
#ifdef _WIN32
ADDC (buf, ch);
#else
#ifdef ASE_CHAR_IS_MCHAR
ADDC (buf, 'l');
#endif
ADDC (buf, ase_tolower(ch));
#endif
}
else if (ch == ASE_T('d') || ch == ASE_T('i') ||
ch == ASE_T('o') || ch == ASE_T('u') ||
ch == ASE_T('x') || ch == ASE_T('X'))
{
if (modifier == MOD_SHORT)
{
ADDC (buf, 'h');
}
else if (modifier == MOD_LONG)
{
ADDC (buf, 'l');
}
else if (modifier == MOD_LONGLONG)
{
#if defined(_WIN32) && !defined(__LCC__)
ADDC (buf, 'I');
ADDC (buf, '6');
ADDC (buf, '4');
#else
ADDC (buf, 'l');
ADDC (buf, 'l');
#endif
}
ADDC (buf, ch);
}
else if (ch == ASE_T('\0')) break;
else ADDC (buf, ch);
}
buf.ptr[buf.len] = ASE_T('\0');
return buf.ptr;
}
#endif
int ase_dprintf (const ase_char_t* fmt, ...)
{
int n;
va_list ap;
va_start (ap, fmt);
n = ase_vfprintf (stderr, fmt, ap);
va_end (ap);
return n;
}
FILE* ase_fopen (const ase_char_t* path, const ase_char_t* mode)
{
#if defined(_WIN32)
return _tfopen (path, mode);
#elif defined(ASE_CHAR_IS_MCHAR)
return fopen (path, mode);
#else
char path_mb[PATH_MAX + 1];
char mode_mb[32];
size_t n;
n = wcstombs (path_mb, path, ASE_COUNTOF(path_mb));
if (n == (size_t)-1) return NULL;
if (n == ASE_COUNTOF(path_mb)) path_mb[ASE_COUNTOF(path_mb)-1] = '\0';
n = wcstombs (mode_mb, mode, ASE_COUNTOF(mode_mb));
if (n == (size_t)-1) return NULL;
if (n == ASE_COUNTOF(mode_mb)) path_mb[ASE_COUNTOF(mode_mb)-1] = '\0';
return fopen (path_mb, mode_mb);
#endif
}
FILE* ase_popen (const ase_char_t* cmd, const ase_char_t* mode)
{
#if defined(_WIN32)
return _tpopen (cmd, mode);
#elif defined(ASE_CHAR_IS_MCHAR)
return popen (cmd, mode);
#else
char cmd_mb[PATH_MAX + 1];
char mode_mb[32];
size_t n;
n = wcstombs (cmd_mb, cmd, ASE_COUNTOF(cmd_mb));
if (n == (size_t)-1) return NULL;
if (n == ASE_COUNTOF(cmd_mb)) cmd_mb[ASE_COUNTOF(cmd_mb)-1] = '\0';
n = wcstombs (mode_mb, mode, ASE_COUNTOF(mode_mb));
if (n == (size_t)-1) return NULL;
if (n == ASE_COUNTOF(mode_mb)) cmd_mb[ASE_COUNTOF(mode_mb)-1] = '\0';
return popen (cmd_mb, mode_mb);
#endif
}

View File

@ -1,55 +0,0 @@
/*
* $Id: stdio.h,v 1.1.1.1 2007/03/28 14:05:30 bacon Exp $
*/
#ifndef _ASE_UTL_STDIO_H_
#define _ASE_UTL_STDIO_H_
#include <ase/cmn/types.h>
#include <ase/cmn/macros.h>
#include <stdio.h>
#include <stdarg.h>
#include <wchar.h>
#if defined(_WIN32)
#include <tchar.h>
#define ase_printf _tprintf
#define ase_vprintf _vtprintf
#define ase_fprintf _ftprintf
#define ase_vfprintf _vftprintf
#define ase_fgets _fgetts
#define ase_fgetc _fgettc
#elif defined(ASE_CHAR_IS_MCHAR)
#define ase_fgets fgets
#define ase_fgetc fgetc
#else
#define ase_fgets fgetws
#define ase_fgetc fgetwc
#endif
#ifdef __cplusplus
extern "C" {
#endif
int ase_vsprintf (ase_char_t* buf, size_t size, const ase_char_t* fmt, va_list ap);
int ase_sprintf (ase_char_t* buf, size_t size, const ase_char_t* fmt, ...);
#if !defined(WIN32)
int ase_vfprintf (FILE *stream, const ase_char_t* fmt, va_list ap);
int ase_vprintf (const ase_char_t* fmt, va_list ap);
int ase_fprintf (FILE* file, const ase_char_t* fmt, ...);
int ase_printf (const ase_char_t* fmt, ...);
#endif
int ase_dprintf (const ase_char_t* fmt, ...);
FILE* ase_fopen (const ase_char_t* path, const ase_char_t* mode);
FILE* ase_popen (const ase_char_t* cmd, const ase_char_t* mode);
#ifdef __cplusplus
}
#endif
#endif