fixed some build problems

This commit is contained in:
hyung-hwan 2013-10-21 08:39:53 +00:00
parent f95e8594b8
commit a629a06cdc
9 changed files with 77 additions and 15 deletions

View File

@ -37,6 +37,7 @@ enum qse_sio_flag_t
* qse_fio_flag_t enumerators. you can use values between * qse_fio_flag_t enumerators. you can use values between
* (1<<0) and (1<<7) inclusive reserved in qse_fio_flag_t. * (1<<0) and (1<<7) inclusive reserved in qse_fio_flag_t.
* the range is represented by QSE_FIO_RESERVED. */ * the range is represented by QSE_FIO_RESERVED. */
QSE_SIO_LINEBREAK = (1 << 0), /* expand \n to a system line-break convention if necessary */
QSE_SIO_IGNOREMBWCERR = (1 << 1), QSE_SIO_IGNOREMBWCERR = (1 << 1),
QSE_SIO_NOAUTOFLUSH = (1 << 2), QSE_SIO_NOAUTOFLUSH = (1 << 2),
QSE_SIO_KEEPPATH = (1 << 3), QSE_SIO_KEEPPATH = (1 << 3),
@ -116,7 +117,7 @@ struct qse_sio_t
qse_char_t* path; qse_char_t* path;
#if defined(_WIN32) #if defined(_WIN32) || defined(__OS2__)
int status; int status;
#endif #endif
}; };

View File

@ -623,7 +623,7 @@ QSE_EXPORT qse_xli_str_t* qse_xli_addsegtostr (
* character string each of whose segment is delimited by '\0' and the last * character string each of whose segment is delimited by '\0' and the last
* segment is delimited by double '\0's. The string tags are not included. * segment is delimited by double '\0's. The string tags are not included.
*/ */
qse_char_t* qse_xli_dupflatstr ( QSE_EXPORT qse_char_t* qse_xli_dupflatstr (
qse_xli_t* xli, qse_xli_t* xli,
qse_xli_str_t* str, qse_xli_str_t* str,
qse_size_t* len, qse_size_t* len,

View File

@ -73,6 +73,18 @@ typedef DWORD WINAPI (*getmappedfilename_t) (
#elif defined(__OS2__) #elif defined(__OS2__)
#if defined(__WATCOMC__) && (__WATCOMC__ <= 1100) && !defined(LONGLONG_INCLUDED)
typedef struct _LONGLONG {
ULONG ulLo;
LONG ulHi;
} LONGLONG, *PLONGLONG;
typedef struct _ULONGLONG {
ULONG ulLo;
ULONG ulHi;
} ULONGLONG, *PULONGLONG;
#endif
typedef APIRET APIENTRY (*dosopenl_t) ( typedef APIRET APIENTRY (*dosopenl_t) (
PSZ pszFileName, PSZ pszFileName,
PHFILE pHf, PHFILE pHf,

View File

@ -97,12 +97,23 @@ enum
FLAGC_LENMOD = (1 << 10) /* length modifier */ FLAGC_LENMOD = (1 << 10) /* length modifier */
}; };
/* ------------------------------------------------------------------ */
static const qse_mchar_t* m_hex2ascii =
QSE_MT("0123456789abcdefghijklmnopqrstuvwxyz");
static const qse_wchar_t* w_hex2ascii =
QSE_WT("0123456789abcdefghijklmnopqrstuvwxyz");
/* ------------------------------------------------------------------ */
#include <stdio.h> /* TODO: remove dependency on this */ #include <stdio.h> /* TODO: remove dependency on this */
#if defined(_MSC_VER) || defined(__BORLANDC__) || (defined(__WATCOMC__) && (__WATCOMC__ < 1200)) #if defined(_MSC_VER) || defined(__BORLANDC__) || (defined(__WATCOMC__) && (__WATCOMC__ < 1200))
# define snprintf _snprintf # define snprintf _snprintf
# define vsnprintf _vsnprintf # define vsnprintf _vsnprintf
#endif #endif
/* ------------------------------------------------------------------ */
static int put_wchar (qse_wchar_t c, void *arg) static int put_wchar (qse_wchar_t c, void *arg)
{ {
qse_cmgr_t* cmgr; qse_cmgr_t* cmgr;
@ -131,6 +142,8 @@ static int put_mchar (qse_mchar_t c, void *arg)
return (putchar (c) == EOF)? -1: 0; return (putchar (c) == EOF)? -1: 0;
} }
/* ------------------------------------------------------------------ */
#undef char_t #undef char_t
#undef uchar_t #undef uchar_t
#undef ochar_t #undef ochar_t
@ -150,7 +163,6 @@ static int put_mchar (qse_mchar_t c, void *arg)
#define sprintn m_sprintn #define sprintn m_sprintn
#define xprintf qse_mxprintf #define xprintf qse_mxprintf
static const qse_mchar_t m_hex2ascii[] = QSE_MT("0123456789abcdefghijklmnopqrstuvwxyz");
#define hex2ascii(hex) (m_hex2ascii[hex]) #define hex2ascii(hex) (m_hex2ascii[hex])
#include "fmt-print.h" #include "fmt-print.h"
@ -191,7 +203,6 @@ qse_ssize_t qse_mvprintf (const char_t* fmt, va_list ap)
#define sprintn w_sprintn #define sprintn w_sprintn
#define xprintf qse_wxprintf #define xprintf qse_wxprintf
static const qse_wchar_t w_hex2ascii[] = QSE_WT("0123456789abcdefghijklmnopqrstuvwxyz");
#define hex2ascii(hex) (w_hex2ascii[hex]) #define hex2ascii(hex) (w_hex2ascii[hex])
#include "fmt-print.h" #include "fmt-print.h"

View File

@ -24,22 +24,32 @@
#include <qse/cmn/fmt.h> #include <qse/cmn/fmt.h>
#include <stdarg.h> #include <stdarg.h>
typedef int (*qse_printf_mchar_t) (
qse_mchar_t c,
void* ctx
);
typedef int (*qse_printf_wchar_t) (
qse_mchar_t c,
void* ctx
);
#ifdef __cplusplus #ifdef __cplusplus
extern { extern {
#endif #endif
qse_ssize_t qse_mxprintf ( qse_ssize_t qse_mxprintf (
const qse_mchar_t* fmt, const qse_mchar_t* fmt,
int (*put_mchar) (qse_mchar_t, void*), qse_printf_mchar_t put_mchar,
int (*put_wchar) (qse_wchar_t, void*), qse_printf_wchar_t put_wchar,
void* arg, void* arg,
va_list ap va_list ap
); );
qse_ssize_t qse_wxprintf ( qse_ssize_t qse_wxprintf (
const qse_wchar_t* fmt, const qse_wchar_t* fmt,
int (*put_wchar) (qse_wchar_t, void*), qse_printf_wchar_t put_wchar,
int (*put_mchar) (qse_mchar_t, void*), qse_printf_mchar_t put_mchar,
void* arg, void* arg,
va_list ap va_list ap
); );

View File

@ -27,6 +27,9 @@
# include <windows.h> # include <windows.h>
# define USE_SELECT # define USE_SELECT
#elif defined(__OS2__) #elif defined(__OS2__)
# if defined(TCPV40HDRS)
# define BSD_SELECT
# endif
# include <types.h> # include <types.h>
# include <sys/socket.h> # include <sys/socket.h>
# include <netinet/in.h> # include <netinet/in.h>
@ -34,7 +37,6 @@
# include <nerrno.h> # include <nerrno.h>
# if defined(TCPV40HDRS) # if defined(TCPV40HDRS)
# define USE_SELECT # define USE_SELECT
# define BSD_SELECT
# include <sys/select.h> # include <sys/select.h>
# else # else
# include <unistd.h> # include <unistd.h>

View File

@ -28,12 +28,16 @@
# include <ws2tcpip.h> # include <ws2tcpip.h>
# include <iphlpapi.h> # include <iphlpapi.h>
#elif defined(__OS2__) #elif defined(__OS2__)
# if defined(TCPV40HDRS)
# define BSD_SELECT
# endif
# include <types.h> # include <types.h>
# include <sys/socket.h> # include <sys/socket.h>
# include <netinet/in.h> # include <netinet/in.h>
# include <sys/ioctl.h> # include <sys/ioctl.h>
# include <nerrno.h> # include <nerrno.h>
# if defined(TCPV40HDRS) # if defined(TCPV40HDRS)
# define USE_SELECT
# include <sys/select.h> # include <sys/select.h>
# else # else
# include <unistd.h> # include <unistd.h>

View File

@ -28,6 +28,9 @@
# include <windows.h> # include <windows.h>
# define USE_SELECT # define USE_SELECT
#elif defined(__OS2__) #elif defined(__OS2__)
# if defined(TCPV40HDRS)
# define BSD_SELECT
# endif
# include <types.h> # include <types.h>
# include <sys/socket.h> # include <sys/socket.h>
# include <netinet/in.h> # include <netinet/in.h>

View File

@ -35,10 +35,10 @@
/* internal status codes */ /* internal status codes */
enum enum
{ {
STATUS_UTF8_CONSOLE = (1 << 0) STATUS_UTF8_CONSOLE = (1 << 0),
STATUS_LINE_BREAK = (1 << 1)
}; };
static qse_ssize_t file_input ( static qse_ssize_t file_input (
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 qse_ssize_t file_output ( static qse_ssize_t file_output (
@ -208,6 +208,9 @@ int qse_sio_init (
goto oops03; goto oops03;
} }
#if defined(__OS2__)
if (flags & QSE_SIO_LINEBREAK) sio->status |= STATUS_LINE_BREAK;
#endif
return 0; return 0;
oops03: oops03:
@ -583,12 +586,26 @@ qse_ssize_t qse_sio_putwcsn (
static int put_wchar (qse_wchar_t c, void *arg) static int put_wchar (qse_wchar_t c, void *arg)
{ {
return qse_sio_putwc (arg, c); #if defined(__OS2__)
if (c == QSE_WT('\n') && (((qse_sio_t*)arg)->status & STATUS_LINE_BREAK))
return qse_sio_putwcs ((qse_sio_t*)arg, QSE_WT("\r\n"));
else
return qse_sio_putwc ((qse_sio_t*)arg, c);
#else
return qse_sio_putwc ((qse_sio_t*)arg, c);
#endif
} }
static int put_mchar (qse_mchar_t c, void *arg) static int put_mchar (qse_mchar_t c, void *arg)
{ {
return qse_sio_putmb (arg, c); #if defined(__OS2__)
if (c == QSE_MT('\n') && (((qse_sio_t*)arg)->status & STATUS_LINE_BREAK))
return qse_sio_putmbs ((qse_sio_t*)arg, QSE_MT("\r\n"));
else
return qse_sio_putmb ((qse_sio_t*)arg, c);
#else
return qse_sio_putmb ((qse_sio_t*)arg, c);
#endif
} }
qse_ssize_t qse_sio_putmbsf (qse_sio_t* sio, const qse_mchar_t* fmt, ...) qse_ssize_t qse_sio_putmbsf (qse_sio_t* sio, const qse_mchar_t* fmt, ...)
@ -737,6 +754,8 @@ static qse_ssize_t file_output (
return 0; return 0;
} }
/* ---------------------------------------------------------- */
static qse_sio_t* sio_stdout = QSE_NULL; static qse_sio_t* sio_stdout = QSE_NULL;
static qse_sio_t* sio_stderr = QSE_NULL; static qse_sio_t* sio_stderr = QSE_NULL;
@ -744,11 +763,11 @@ int qse_openstdsios (void)
{ {
if (sio_stdout == QSE_NULL) if (sio_stdout == QSE_NULL)
{ {
sio_stdout = qse_sio_openstd (QSE_MMGR_GETDFL(), 0, QSE_SIO_STDOUT, 0); sio_stdout = qse_sio_openstd (QSE_MMGR_GETDFL(), 0, QSE_SIO_STDOUT, QSE_SIO_LINEBREAK);
} }
if (sio_stderr == QSE_NULL) if (sio_stderr == QSE_NULL)
{ {
sio_stderr = qse_sio_openstd (QSE_MMGR_GETDFL(), 0, QSE_SIO_STDERR, 0); sio_stderr = qse_sio_openstd (QSE_MMGR_GETDFL(), 0, QSE_SIO_STDERR, QSE_SIO_LINEBREAK);
} }
if (sio_stdout == QSE_NULL || sio_stderr == QSE_NULL) if (sio_stdout == QSE_NULL || sio_stderr == QSE_NULL)