added sed::str_to_str to the sed module for awk
fixed some build issues on legacy systems
This commit is contained in:
@ -48,7 +48,9 @@
|
||||
# define INCL_DOSERRORS
|
||||
# include <os2.h>
|
||||
#elif defined(__DOS__)
|
||||
# include <cwdllfnc.h>
|
||||
# if !defined(QSE_ENABLE_STATIC_MODULE)
|
||||
# include <cwdllfnc.h>
|
||||
# endif
|
||||
#else
|
||||
# include <unistd.h>
|
||||
# include <ltdl.h>
|
||||
@ -1340,7 +1342,13 @@ StdAwk::flt_t StdAwk::sqrt (flt_t x)
|
||||
|
||||
void* StdAwk::modopen (const mod_spec_t* spec)
|
||||
{
|
||||
#if defined(USE_LTDL)
|
||||
#if defined(QSE_ENABLE_STATIC_MODULE)
|
||||
/* this won't be called at all when modules are linked into
|
||||
* the main library. */
|
||||
this->setError (QSE_AWK_ENOIMPL);
|
||||
return QSE_NULL;
|
||||
|
||||
#elif defined(USE_LTDL)
|
||||
|
||||
void* h;
|
||||
qse_mchar_t* modpath;
|
||||
@ -1470,7 +1478,10 @@ void* StdAwk::modopen (const mod_spec_t* spec)
|
||||
|
||||
void StdAwk::modclose (void* handle)
|
||||
{
|
||||
#if defined(USE_LTDL)
|
||||
#if defined(QSE_ENABLE_STATIC_MODULE)
|
||||
/* this won't be called at all when modules are linked into
|
||||
* the main library. */
|
||||
#elif defined(USE_LTDL)
|
||||
lt_dlclose ((lt_dlhandle)handle);
|
||||
#elif defined(_WIN32)
|
||||
FreeLibrary ((HMODULE)handle);
|
||||
@ -1499,7 +1510,11 @@ void* StdAwk::modsym (void* handle, const qse_char_t* name)
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_LTDL)
|
||||
#if defined(QSE_ENABLE_STATIC_MODULE)
|
||||
/* this won't be called at all when modules are linked into
|
||||
* the main library. */
|
||||
s = QSE_NULL;
|
||||
#elif defined(USE_LTDL)
|
||||
s = lt_dlsym ((lt_dlhandle)handle, mname);
|
||||
#elif defined(_WIN32)
|
||||
s = (void*)GetProcAddress ((HMODULE)handle, mname);
|
||||
|
@ -18,7 +18,7 @@
|
||||
License along with QSE. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "mod-str.h"
|
||||
#include "mod-sed.h"
|
||||
#include <qse/sed/stdsed.h>
|
||||
#include "../cmn/mem.h"
|
||||
|
||||
@ -51,10 +51,10 @@ static qse_char_t* errmsg[] =
|
||||
|
||||
static int fnc_errstr (qse_awk_rtx_t* rtx, const qse_awk_fnc_info_t* fi)
|
||||
{
|
||||
uctx_list_t* list;
|
||||
qse_awk_val_t* retv;
|
||||
qse_awk_int_t errnum;
|
||||
|
||||
/*
|
||||
list = rtx_to_list (rtx, fi);
|
||||
|
||||
if (qse_awk_rtx_getnargs (rtx) <= 0 ||
|
||||
@ -62,6 +62,11 @@ static int fnc_errstr (qse_awk_rtx_t* rtx, const qse_awk_fnc_info_t* fi)
|
||||
{
|
||||
errnum = list->errnum;
|
||||
}
|
||||
*/
|
||||
|
||||
ret = qse_awk_rtx_valtoint (rtx, qse_awk_rtx_getarg (rtx, 0), &id);
|
||||
if (ret <= -1) errnum = -1;
|
||||
|
||||
|
||||
if (errnum < 0 || errnum >= QSE_COUNTOF(errmsg)) errnum = QSE_COUNTOF(errmsg) - 1;
|
||||
|
||||
@ -78,8 +83,7 @@ static int fnc_file_to_file (qse_awk_rtx_t* rtx, const qse_awk_fnc_info_t* fi)
|
||||
qse_sed_t* sed = QSE_NULL;
|
||||
qse_awk_val_t* retv;
|
||||
qse_awk_val_t* a[3];
|
||||
qse_char_t* str[3];
|
||||
qse_size_t len[3];
|
||||
qse_xstr_t xstr[3];
|
||||
int i = 0, ret = 0;
|
||||
|
||||
/* result = sed::file_to_file ("s/ABC/123/g", input_file, output_file [, option_string]) */
|
||||
@ -96,21 +100,21 @@ static int fnc_file_to_file (qse_awk_rtx_t* rtx, const qse_awk_fnc_info_t* fi)
|
||||
for (i = 0; i < 3; i++)
|
||||
{
|
||||
a[i] = qse_awk_rtx_getarg (rtx, i);
|
||||
str[i] = qse_awk_rtx_getvalstr (rtx, a[i], &len[i]);
|
||||
if (str[i] == QSE_NULL)
|
||||
xstr[i].ptr = qse_awk_rtx_getvalstr (rtx, a[i], &xstr[i].len);
|
||||
if (xstr[i].ptr == QSE_NULL)
|
||||
{
|
||||
ret = -2;
|
||||
goto oops;
|
||||
}
|
||||
}
|
||||
|
||||
if (qse_sed_compstdstrx (sed, str[0], len[0]) <= -1)
|
||||
if (qse_sed_compstdxstr (sed, &xstr[0]) <= -1)
|
||||
{
|
||||
ret = -3; /* compile error */
|
||||
goto oops;
|
||||
}
|
||||
|
||||
if (qse_sed_execstdfile (sed, str[1], str[2], QSE_NULL) <= -1)
|
||||
if (qse_sed_execstdfile (sed, xstr[1].ptr, xstr[2].ptr, QSE_NULL) <= -1)
|
||||
{
|
||||
ret = -4;
|
||||
goto oops;
|
||||
@ -123,7 +127,7 @@ oops:
|
||||
while (i > 0)
|
||||
{
|
||||
--i;
|
||||
qse_awk_rtx_freevalstr (rtx, a[i], str[i]);
|
||||
qse_awk_rtx_freevalstr (rtx, a[i], xstr[i].ptr);
|
||||
}
|
||||
|
||||
if (sed) qse_sed_close (sed);
|
||||
@ -133,7 +137,76 @@ oops:
|
||||
|
||||
static int fnc_str_to_str (qse_awk_rtx_t* rtx, const qse_awk_fnc_info_t* fi)
|
||||
{
|
||||
return -1;
|
||||
qse_sed_t* sed = QSE_NULL;
|
||||
qse_awk_val_t* retv;
|
||||
qse_awk_val_t* a[2], * tmp;
|
||||
qse_xstr_t xstr[2];
|
||||
qse_xstr_t outstr;
|
||||
int i = 0, ret = 0, n;
|
||||
|
||||
sed = qse_sed_openstdwithmmgr (qse_awk_rtx_getmmgr(rtx), 0);
|
||||
if (sed == QSE_NULL)
|
||||
{
|
||||
ret = -2;
|
||||
goto oops;
|
||||
}
|
||||
|
||||
/* TODO qse_set_opt (TRAIT) using the optional parameter */
|
||||
|
||||
for (i = 0; i < 2; i++)
|
||||
{
|
||||
a[i] = qse_awk_rtx_getarg (rtx, i);
|
||||
xstr[i].ptr = qse_awk_rtx_getvalstr (rtx, a[i], &xstr[i].len);
|
||||
if (xstr[i].ptr == QSE_NULL)
|
||||
{
|
||||
ret = -2;
|
||||
goto oops;
|
||||
}
|
||||
}
|
||||
|
||||
if (qse_sed_compstdxstr (sed, &xstr[0]) <= -1)
|
||||
{
|
||||
ret = -3; /* compile error */
|
||||
goto oops;
|
||||
}
|
||||
|
||||
if (qse_sed_execstdxstr (sed, &xstr[1], &outstr, QSE_NULL) <= -1)
|
||||
{
|
||||
ret = -4;
|
||||
goto oops;
|
||||
}
|
||||
|
||||
tmp = qse_awk_rtx_makestrvalwithxstr (rtx, &outstr);
|
||||
qse_sed_freemem (sed, outstr.ptr);
|
||||
|
||||
if (!tmp)
|
||||
{
|
||||
ret = -1;
|
||||
goto oops;
|
||||
}
|
||||
|
||||
qse_awk_rtx_refupval (rtx, tmp);
|
||||
n = qse_awk_rtx_setrefval (rtx, qse_awk_rtx_getarg (rtx, 2), tmp);
|
||||
qse_awk_rtx_refdownval (rtx, tmp);
|
||||
if (n <= -1)
|
||||
{
|
||||
ret = -5;
|
||||
goto oops;
|
||||
}
|
||||
|
||||
oops:
|
||||
retv = qse_awk_rtx_makeintval (rtx, ret);
|
||||
if (retv == QSE_NULL) retv = qse_awk_rtx_makeintval (rtx, -1);
|
||||
|
||||
while (i > 0)
|
||||
{
|
||||
--i;
|
||||
qse_awk_rtx_freevalstr (rtx, a[i], xstr[i].ptr);
|
||||
}
|
||||
|
||||
if (sed) qse_sed_close (sed);
|
||||
qse_awk_rtx_setretval (rtx, retv);
|
||||
return 0;
|
||||
}
|
||||
|
||||
typedef struct fnctab_t fnctab_t;
|
||||
@ -172,7 +245,6 @@ static int query (qse_awk_mod_t* mod, qse_awk_t* awk, const qse_char_t* name, qs
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
ea.ptr = name;
|
||||
ea.len = qse_strlen(name);
|
||||
qse_awk_seterror (awk, QSE_AWK_ENOENT, &ea, QSE_NULL);
|
||||
|
@ -389,7 +389,12 @@ static int fnc_sleep (qse_awk_rtx_t* rtx, const qse_awk_fnc_info_t* fi)
|
||||
DosSleep ((ULONG)QSE_SEC_TO_MSEC(lv));
|
||||
rx = 0;
|
||||
#elif defined(__DOS__)
|
||||
rx = sleep (lv);
|
||||
#if (defined(__WATCOMC__) && (__WATCOMC__ < 1200))
|
||||
sleep (lv);
|
||||
rx = 0;
|
||||
#else
|
||||
rx = sleep (lv);
|
||||
#endif
|
||||
#elif defined(HAVE_NANOSLEEP)
|
||||
struct timespec req;
|
||||
req.tv_sec = lv;
|
||||
@ -409,7 +414,12 @@ static int fnc_sleep (qse_awk_rtx_t* rtx, const qse_awk_fnc_info_t* fi)
|
||||
rx = 0;
|
||||
#elif defined(__DOS__)
|
||||
/* no high-resolution sleep() is available */
|
||||
rx = sleep ((qse_awk_int_t)fv);
|
||||
#if (defined(__WATCOMC__) && (__WATCOMC__ < 1200))
|
||||
sleep ((qse_awk_int_t)fv);
|
||||
rx = 0;
|
||||
#else
|
||||
rx = sleep ((qse_awk_int_t)fv);
|
||||
#endif;
|
||||
#elif defined(HAVE_NANOSLEEP)
|
||||
struct timespec req;
|
||||
req.tv_sec = (qse_awk_int_t)fv;
|
||||
|
@ -52,7 +52,9 @@
|
||||
# define INCL_DOSERRORS
|
||||
# include <os2.h>
|
||||
#elif defined(__DOS__)
|
||||
# include <cwdllfnc.h>
|
||||
# if !defined(QSE_ENABLE_STATIC_MODULE)
|
||||
# include <cwdllfnc.h>
|
||||
# endif
|
||||
#else
|
||||
# include <unistd.h>
|
||||
# include <ltdl.h>
|
||||
|
@ -201,106 +201,8 @@ qse_awk_val_t* qse_awk_rtx_makefltval (qse_awk_rtx_t* rtx, qse_awk_flt_t v)
|
||||
return (qse_awk_val_t*)val;
|
||||
}
|
||||
|
||||
qse_awk_val_t* qse_awk_rtx_makestrvalwithmbs (
|
||||
qse_awk_rtx_t* rtx, const qse_mchar_t* mbs)
|
||||
{
|
||||
#if defined(QSE_CHAR_IS_MCHAR)
|
||||
return qse_awk_rtx_makestrval (rtx, mbs, qse_mbslen(mbs));
|
||||
#else
|
||||
qse_awk_val_t* v;
|
||||
qse_wxstr_t tmp;
|
||||
|
||||
tmp.ptr = qse_mbstowcsdup (mbs, &tmp.len, rtx->awk->mmgr);
|
||||
if (tmp.ptr == QSE_NULL)
|
||||
{
|
||||
qse_awk_rtx_seterrnum (rtx, QSE_AWK_ENOMEM, QSE_NULL);
|
||||
return QSE_NULL;
|
||||
}
|
||||
|
||||
v = qse_awk_rtx_makestrvalwithcstr (rtx, (qse_cstr_t*)&tmp);
|
||||
QSE_AWK_FREE (rtx->awk, tmp.ptr);
|
||||
return v;
|
||||
#endif
|
||||
}
|
||||
|
||||
qse_awk_val_t* qse_awk_rtx_makestrvalwithwcs (
|
||||
qse_awk_rtx_t* rtx, const qse_wchar_t* wcs)
|
||||
{
|
||||
#if defined(QSE_CHAR_IS_MCHAR)
|
||||
qse_awk_val_t* v;
|
||||
qse_mxstr_t tmp;
|
||||
|
||||
tmp.ptr = qse_wcstombsdup (wcs, &tmp.len, rtx->awk->mmgr);
|
||||
if (tmp.ptr == QSE_NULL)
|
||||
{
|
||||
qse_awk_rtx_seterrnum (rtx, QSE_AWK_ENOMEM, QSE_NULL);
|
||||
return QSE_NULL;
|
||||
}
|
||||
|
||||
v = qse_awk_rtx_makestrvalwithcstr (rtx, &tmp);
|
||||
QSE_AWK_FREE (rtx->awk, tmp.ptr);
|
||||
return v;
|
||||
#else
|
||||
return qse_awk_rtx_makestrval (rtx, wcs, qse_wcslen(wcs));
|
||||
#endif
|
||||
}
|
||||
|
||||
qse_awk_val_t* qse_awk_rtx_makestrvalwithstr (
|
||||
qse_awk_rtx_t* rtx, const qse_char_t* str)
|
||||
{
|
||||
return qse_awk_rtx_makestrval (rtx, str, qse_strlen(str));
|
||||
}
|
||||
|
||||
qse_awk_val_t* qse_awk_rtx_makestrvalwithmcstr (
|
||||
qse_awk_rtx_t* rtx, const qse_mcstr_t* mcstr)
|
||||
{
|
||||
#if defined(QSE_CHAR_IS_MCHAR)
|
||||
return qse_awk_rtx_makestrvalwithcstr (rtx, mcstr);
|
||||
#else
|
||||
qse_awk_val_t* v;
|
||||
qse_wxstr_t tmp;
|
||||
qse_size_t mbslen;
|
||||
|
||||
mbslen = mcstr->len;
|
||||
tmp.ptr = qse_mbsntowcsdup (mcstr->ptr, &mbslen, &tmp.len, rtx->awk->mmgr);
|
||||
if (tmp.ptr == QSE_NULL)
|
||||
{
|
||||
qse_awk_rtx_seterrnum (rtx, QSE_AWK_ENOMEM, QSE_NULL);
|
||||
return QSE_NULL;
|
||||
}
|
||||
|
||||
v = qse_awk_rtx_makestrvalwithcstr (rtx, (qse_cstr_t*)&tmp);
|
||||
QSE_AWK_FREE (rtx->awk, tmp.ptr);
|
||||
return v;
|
||||
#endif
|
||||
}
|
||||
|
||||
qse_awk_val_t* qse_awk_rtx_makestrvalwithwcstr (
|
||||
qse_awk_rtx_t* rtx, const qse_wcstr_t* wcstr)
|
||||
{
|
||||
#if defined(QSE_CHAR_IS_MCHAR)
|
||||
qse_awk_val_t* v;
|
||||
qse_mxstr_t tmp;
|
||||
qse_size_t wcslen;
|
||||
|
||||
wcslen = wcstr->len;
|
||||
tmp.ptr = qse_wcsntombsdup (wcstr->ptr, &wcslen, &tmp.len, rtx->awk->mmgr);
|
||||
if (tmp.ptr == QSE_NULL)
|
||||
{
|
||||
qse_awk_rtx_seterrnum (rtx, QSE_AWK_ENOMEM, QSE_NULL);
|
||||
return QSE_NULL;
|
||||
}
|
||||
|
||||
v = qse_awk_rtx_makestrvalwithcstr (rtx, &tmp);
|
||||
QSE_AWK_FREE (rtx->awk, tmp.ptr);
|
||||
return v;
|
||||
#else
|
||||
return qse_awk_rtx_makestrvalwithcstr (rtx, wcstr);
|
||||
#endif
|
||||
}
|
||||
|
||||
qse_awk_val_t* qse_awk_rtx_makestrvalwithcstr (
|
||||
qse_awk_rtx_t* rtx, const qse_cstr_t* str)
|
||||
qse_awk_val_t* qse_awk_rtx_makestrvalwithxstr (
|
||||
qse_awk_rtx_t* rtx, const qse_xstr_t* str)
|
||||
{
|
||||
qse_awk_val_str_t* val = QSE_NULL;
|
||||
qse_size_t rlen = str->len;
|
||||
@ -347,6 +249,110 @@ init:
|
||||
return (qse_awk_val_t*)val;
|
||||
}
|
||||
|
||||
QSE_INLINE qse_awk_val_t* qse_awk_rtx_makestrvalwithcstr (
|
||||
qse_awk_rtx_t* rtx, const qse_cstr_t* str)
|
||||
{
|
||||
return qse_awk_rtx_makestrvalwithxstr (rtx, (const qse_xstr_t*)str);
|
||||
}
|
||||
|
||||
qse_awk_val_t* qse_awk_rtx_makestrvalwithmbs (
|
||||
qse_awk_rtx_t* rtx, const qse_mchar_t* mbs)
|
||||
{
|
||||
#if defined(QSE_CHAR_IS_MCHAR)
|
||||
return qse_awk_rtx_makestrval (rtx, mbs, qse_mbslen(mbs));
|
||||
#else
|
||||
qse_awk_val_t* v;
|
||||
qse_wxstr_t tmp;
|
||||
|
||||
tmp.ptr = qse_mbstowcsdup (mbs, &tmp.len, rtx->awk->mmgr);
|
||||
if (tmp.ptr == QSE_NULL)
|
||||
{
|
||||
qse_awk_rtx_seterrnum (rtx, QSE_AWK_ENOMEM, QSE_NULL);
|
||||
return QSE_NULL;
|
||||
}
|
||||
|
||||
v = qse_awk_rtx_makestrvalwithxstr (rtx, &tmp);
|
||||
QSE_AWK_FREE (rtx->awk, tmp.ptr);
|
||||
return v;
|
||||
#endif
|
||||
}
|
||||
|
||||
qse_awk_val_t* qse_awk_rtx_makestrvalwithwcs (
|
||||
qse_awk_rtx_t* rtx, const qse_wchar_t* wcs)
|
||||
{
|
||||
#if defined(QSE_CHAR_IS_MCHAR)
|
||||
qse_awk_val_t* v;
|
||||
qse_mxstr_t tmp;
|
||||
|
||||
tmp.ptr = qse_wcstombsdup (wcs, &tmp.len, rtx->awk->mmgr);
|
||||
if (tmp.ptr == QSE_NULL)
|
||||
{
|
||||
qse_awk_rtx_seterrnum (rtx, QSE_AWK_ENOMEM, QSE_NULL);
|
||||
return QSE_NULL;
|
||||
}
|
||||
|
||||
v = qse_awk_rtx_makestrvalwithxstr (rtx, &tmp);
|
||||
QSE_AWK_FREE (rtx->awk, tmp.ptr);
|
||||
return v;
|
||||
#else
|
||||
return qse_awk_rtx_makestrval (rtx, wcs, qse_wcslen(wcs));
|
||||
#endif
|
||||
}
|
||||
|
||||
qse_awk_val_t* qse_awk_rtx_makestrvalwithstr (
|
||||
qse_awk_rtx_t* rtx, const qse_char_t* str)
|
||||
{
|
||||
return qse_awk_rtx_makestrval (rtx, str, qse_strlen(str));
|
||||
}
|
||||
|
||||
qse_awk_val_t* qse_awk_rtx_makestrvalwithmcstr (
|
||||
qse_awk_rtx_t* rtx, const qse_mcstr_t* mcstr)
|
||||
{
|
||||
#if defined(QSE_CHAR_IS_MCHAR)
|
||||
return qse_awk_rtx_makestrvalwithcstr (rtx, mcstr);
|
||||
#else
|
||||
qse_awk_val_t* v;
|
||||
qse_wxstr_t tmp;
|
||||
qse_size_t mbslen;
|
||||
|
||||
mbslen = mcstr->len;
|
||||
tmp.ptr = qse_mbsntowcsdup (mcstr->ptr, &mbslen, &tmp.len, rtx->awk->mmgr);
|
||||
if (tmp.ptr == QSE_NULL)
|
||||
{
|
||||
qse_awk_rtx_seterrnum (rtx, QSE_AWK_ENOMEM, QSE_NULL);
|
||||
return QSE_NULL;
|
||||
}
|
||||
|
||||
v = qse_awk_rtx_makestrvalwithxstr (rtx, &tmp);
|
||||
QSE_AWK_FREE (rtx->awk, tmp.ptr);
|
||||
return v;
|
||||
#endif
|
||||
}
|
||||
|
||||
qse_awk_val_t* qse_awk_rtx_makestrvalwithwcstr (
|
||||
qse_awk_rtx_t* rtx, const qse_wcstr_t* wcstr)
|
||||
{
|
||||
#if defined(QSE_CHAR_IS_MCHAR)
|
||||
qse_awk_val_t* v;
|
||||
qse_mxstr_t tmp;
|
||||
qse_size_t wcslen;
|
||||
|
||||
wcslen = wcstr->len;
|
||||
tmp.ptr = qse_wcsntombsdup (wcstr->ptr, &wcslen, &tmp.len, rtx->awk->mmgr);
|
||||
if (tmp.ptr == QSE_NULL)
|
||||
{
|
||||
qse_awk_rtx_seterrnum (rtx, QSE_AWK_ENOMEM, QSE_NULL);
|
||||
return QSE_NULL;
|
||||
}
|
||||
|
||||
v = qse_awk_rtx_makestrvalwithxstr (rtx, &tmp);
|
||||
QSE_AWK_FREE (rtx->awk, tmp.ptr);
|
||||
return v;
|
||||
#else
|
||||
return qse_awk_rtx_makestrvalwithcstr (rtx, wcstr);
|
||||
#endif
|
||||
}
|
||||
|
||||
qse_awk_val_t* qse_awk_rtx_makestrval (
|
||||
qse_awk_rtx_t* rtx, const qse_char_t* str, qse_size_t len)
|
||||
{
|
||||
|
@ -73,7 +73,7 @@ typedef DWORD WINAPI (*getmappedfilename_t) (
|
||||
|
||||
#elif defined(__OS2__)
|
||||
|
||||
#if defined(__WATCOMC__) && (__WATCOMC__ <= 1100) && !defined(LONGLONG_INCLUDED)
|
||||
#if defined(__WATCOMC__) && (__WATCOMC__ < 1200) && !defined(LONGLONG_INCLUDED)
|
||||
typedef struct _LONGLONG {
|
||||
ULONG ulLo;
|
||||
LONG ulHi;
|
||||
|
@ -25,6 +25,15 @@
|
||||
# include <winsock2.h>
|
||||
# include <ws2tcpip.h> /* sockaddr_in6 */
|
||||
# include <windows.h>
|
||||
# if (defined(__WATCOMC__) && (__WATCOMC__ < 1200))
|
||||
/* the header files shipped with watcom 11 doesn't contain
|
||||
* proper inet6 support. note using the compiler version
|
||||
* in the contidional isn't that good idea since you
|
||||
* can use newer header files with this old compiler.
|
||||
* never mind it for the time being.
|
||||
*/
|
||||
# undef AF_INET6
|
||||
# endif
|
||||
#elif defined(__OS2__)
|
||||
# include <types.h>
|
||||
# include <sys/socket.h>
|
||||
|
@ -26,7 +26,7 @@
|
||||
#if defined(_WIN32)
|
||||
# include <winsock2.h>
|
||||
# include <ws2tcpip.h>
|
||||
# include <iphlpapi.h>
|
||||
/*# include <iphlpapi.h> */
|
||||
#elif defined(__OS2__)
|
||||
# if defined(TCPV40HDRS)
|
||||
# define BSD_SELECT
|
||||
|
@ -22,6 +22,18 @@
|
||||
#include <qse/cmn/mbwc.h>
|
||||
#include "mem.h"
|
||||
|
||||
#if !defined(QSE_HAVE_CONFIG_H)
|
||||
# if defined(_WIN32) || defined(__OS2__) || defined(__DOS__)
|
||||
# if (defined(__WATCOMC__) && (__WATCOMC__ < 1200))
|
||||
# undef HAVE_VA_COPY
|
||||
# undef HAVE___VA_COPY
|
||||
# else
|
||||
# define HAVE_VA_COPY
|
||||
# define HAVE___VA_COPY
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if !defined(HAVE_VA_COPY)
|
||||
# if defined(HAVE___VA_COPY)
|
||||
# define va_copy(dst,src) __va_copy((dst),(src))
|
||||
|
@ -25,6 +25,9 @@
|
||||
#include "../cmn/mem.h"
|
||||
|
||||
#include <stdio.h> /* for snprintf. TODO: remove this. */
|
||||
#if defined(_MSC_VER) || defined(__BORLANDC__) || (defined(__WATCOMC__) && (__WATCOMC__ < 1200))
|
||||
# define snprintf _snprintf
|
||||
#endif
|
||||
|
||||
int qse_comparehttpversions (
|
||||
const qse_http_version_t* v1,
|
||||
@ -377,10 +380,6 @@ qse_mchar_t* qse_fmthttptime (
|
||||
|
||||
/* TODO: avoid using snprintf () */
|
||||
|
||||
#if defined(_MSC_VER) || defined(__BORLANDC__) || (defined(__WATCOMC__) && (__WATCOMC__ < 1200))
|
||||
# define snprintf _snprintf
|
||||
#endif
|
||||
|
||||
snprintf (
|
||||
buf, bufsz,
|
||||
QSE_MT("%s, %d %s %d %02d:%02d:%02d GMT"),
|
||||
|
@ -26,6 +26,9 @@
|
||||
#include <qse/cmn/path.h>
|
||||
|
||||
#include <stdio.h> /* TODO: remove this */
|
||||
#if defined(_MSC_VER) || defined(__BORLANDC__) || (defined(__WATCOMC__) && (__WATCOMC__ < 1200))
|
||||
# define snprintf _snprintf
|
||||
#endif
|
||||
|
||||
typedef struct task_cgi_arg_t task_cgi_arg_t;
|
||||
struct task_cgi_arg_t
|
||||
|
@ -24,6 +24,9 @@
|
||||
#include <qse/cmn/fmt.h>
|
||||
|
||||
#include <stdio.h> /* TODO: remove this */
|
||||
#if defined(_MSC_VER) || defined(__BORLANDC__) || (defined(__WATCOMC__) && (__WATCOMC__ < 1200))
|
||||
# define snprintf _snprintf
|
||||
#endif
|
||||
|
||||
typedef struct task_dir_t task_dir_t;
|
||||
struct task_dir_t
|
||||
|
@ -92,6 +92,10 @@
|
||||
#endif
|
||||
|
||||
#include <stdio.h> /* TODO: remove this */
|
||||
#if defined(_MSC_VER) || defined(__BORLANDC__) || (defined(__WATCOMC__) && (__WATCOMC__ < 1200))
|
||||
# define snprintf _snprintf
|
||||
#endif
|
||||
|
||||
|
||||
#define DEFAULT_PORT 80
|
||||
#define DEFAULT_SECURE_PORT 443
|
||||
|
@ -849,13 +849,12 @@ int qse_sed_compstdstr (qse_sed_t* sed, const qse_char_t* script)
|
||||
return qse_sed_compstd (sed, in, QSE_NULL);
|
||||
}
|
||||
|
||||
int qse_sed_compstdstrx (qse_sed_t* sed, const qse_char_t* script, qse_size_t script_len)
|
||||
int qse_sed_compstdxstr (qse_sed_t* sed, const qse_xstr_t* script)
|
||||
{
|
||||
qse_sed_iostd_t in[2];
|
||||
|
||||
in[0].type = QSE_SED_IOSTD_STR;
|
||||
in[0].u.str.ptr = (qse_char_t*)script;
|
||||
in[0].u.str.len = script_len;
|
||||
in[0].u.str = *script;
|
||||
in[1].type = QSE_SED_IOSTD_NULL;
|
||||
|
||||
return qse_sed_compstd (sed, in, QSE_NULL);
|
||||
@ -888,3 +887,24 @@ int qse_sed_execstdfile (
|
||||
|
||||
return qse_sed_execstd (sed, pin, pout);
|
||||
}
|
||||
|
||||
int qse_sed_execstdxstr (
|
||||
qse_sed_t* sed, const qse_xstr_t* instr,
|
||||
qse_xstr_t* outstr, qse_cmgr_t* cmgr)
|
||||
{
|
||||
qse_sed_iostd_t in[2];
|
||||
qse_sed_iostd_t out;
|
||||
int n;
|
||||
|
||||
in[0].type = QSE_SED_IOSTD_STR;
|
||||
in[0].u.str = *instr;
|
||||
in[1].type = QSE_SED_IOSTD_NULL;
|
||||
|
||||
out.type = QSE_SED_IOSTD_STR;
|
||||
|
||||
n = qse_sed_execstd (sed, in, &out);
|
||||
|
||||
if (n >= 0) *outstr = out.u.str;
|
||||
|
||||
return n;
|
||||
}
|
||||
|
Reference in New Issue
Block a user