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
* (1<<0) and (1<<7) inclusive reserved in qse_fio_flag_t.
* 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_NOAUTOFLUSH = (1 << 2),
QSE_SIO_KEEPPATH = (1 << 3),
@ -116,7 +117,7 @@ struct qse_sio_t
qse_char_t* path;
#if defined(_WIN32)
#if defined(_WIN32) || defined(__OS2__)
int status;
#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
* 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_str_t* str,
qse_size_t* len,

View File

@ -73,6 +73,18 @@ typedef DWORD WINAPI (*getmappedfilename_t) (
#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) (
PSZ pszFileName,
PHFILE pHf,

View File

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

View File

@ -24,22 +24,32 @@
#include <qse/cmn/fmt.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
extern {
#endif
qse_ssize_t qse_mxprintf (
const qse_mchar_t* fmt,
int (*put_mchar) (qse_mchar_t, void*),
int (*put_wchar) (qse_wchar_t, void*),
qse_printf_mchar_t put_mchar,
qse_printf_wchar_t put_wchar,
void* arg,
va_list ap
);
qse_ssize_t qse_wxprintf (
const qse_wchar_t* fmt,
int (*put_wchar) (qse_wchar_t, void*),
int (*put_mchar) (qse_mchar_t, void*),
qse_printf_wchar_t put_wchar,
qse_printf_mchar_t put_mchar,
void* arg,
va_list ap
);

View File

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

View File

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

View File

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

View File

@ -35,10 +35,10 @@
/* internal status codes */
enum
{
STATUS_UTF8_CONSOLE = (1 << 0)
STATUS_UTF8_CONSOLE = (1 << 0),
STATUS_LINE_BREAK = (1 << 1)
};
static qse_ssize_t file_input (
qse_tio_t* tio, qse_tio_cmd_t cmd, void* buf, qse_size_t size);
static qse_ssize_t file_output (
@ -208,6 +208,9 @@ int qse_sio_init (
goto oops03;
}
#if defined(__OS2__)
if (flags & QSE_SIO_LINEBREAK) sio->status |= STATUS_LINE_BREAK;
#endif
return 0;
oops03:
@ -583,12 +586,26 @@ qse_ssize_t qse_sio_putwcsn (
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)
{
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, ...)
@ -737,6 +754,8 @@ static qse_ssize_t file_output (
return 0;
}
/* ---------------------------------------------------------- */
static qse_sio_t* sio_stdout = QSE_NULL;
static qse_sio_t* sio_stderr = QSE_NULL;
@ -744,11 +763,11 @@ int qse_openstdsios (void)
{
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)
{
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)