enhanced httpd directory listing

This commit is contained in:
2012-01-26 14:19:48 +00:00
parent 246dc4f5b7
commit e7b5bfaf4b
59 changed files with 7083 additions and 4247 deletions

View File

@ -1077,6 +1077,7 @@ int Awk::open ()
prm.math.atan = atan;
prm.math.atan2 = atan2;
prm.math.log = log;
prm.math.log10 = log10;
prm.math.exp = exp;
prm.math.sqrt = sqrt;
@ -1792,6 +1793,12 @@ Awk::flt_t Awk::log (awk_t* awk, flt_t x)
return xtn->awk->log (x);
}
Awk::flt_t Awk::log10 (awk_t* awk, flt_t x)
{
xtn_t* xtn = (xtn_t*) QSE_XTN (awk);
return xtn->awk->log10 (x);
}
Awk::flt_t Awk::exp (awk_t* awk, flt_t x)
{
xtn_t* xtn = (xtn_t*) QSE_XTN (awk);

View File

@ -137,6 +137,7 @@ CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DLLTOOL = @DLLTOOL@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
ECHO = @ECHO@
@ -164,6 +165,7 @@ LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
NM = @NM@
NMEDIT = @NMEDIT@
@ -209,6 +211,7 @@ abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@ -243,7 +246,6 @@ libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@

View File

@ -833,6 +833,7 @@ StdAwk::flt_t StdAwk::atan2 (flt_t x, flt_t y)
StdAwk::flt_t StdAwk::log (flt_t x)
{
/* natural logarithm */
#if defined(HAVE_LOGL) && (QSE_SIZEOF_LONG_DOUBLE > QSE_SIZEOF_DOUBLE)
return ::logl (x);
#elif defined(HAVE_LOG)
@ -844,6 +845,20 @@ StdAwk::flt_t StdAwk::log (flt_t x)
#endif
}
StdAwk::flt_t StdAwk::log10 (flt_t x)
{
/* common logarithm */
#if defined(HAVE_LOG10L) && (QSE_SIZEOF_LONG_DOUBLE > QSE_SIZEOF_DOUBLE)
return ::log10l (x);
#elif defined(HAVE_LOG10)
return ::log10 (x);
#elif defined(HAVE_LOG10F)
return ::log10f (x);
#else
#error ### no log10 function available ###
#endif
}
StdAwk::flt_t StdAwk::exp (flt_t x)
{
#if defined(HAVE_EXPL) && (QSE_SIZEOF_LONG_DOUBLE > QSE_SIZEOF_DOUBLE)

View File

@ -128,6 +128,7 @@ qse_awk_t* qse_awk_open (qse_mmgr_t* mmgr, qse_size_t xtn, qse_awk_prm_t* prm)
QSE_ASSERT (prm->math.atan != QSE_NULL);
QSE_ASSERT (prm->math.atan2 != QSE_NULL);
QSE_ASSERT (prm->math.log != QSE_NULL);
QSE_ASSERT (prm->math.log10 != QSE_NULL);
QSE_ASSERT (prm->math.exp != QSE_NULL);
QSE_ASSERT (prm->math.sqrt != QSE_NULL);
if (prm == QSE_NULL ||
@ -139,6 +140,7 @@ qse_awk_t* qse_awk_open (qse_mmgr_t* mmgr, qse_size_t xtn, qse_awk_prm_t* prm)
prm->math.atan == QSE_NULL ||
prm->math.atan2 == QSE_NULL ||
prm->math.log == QSE_NULL ||
prm->math.log10 == QSE_NULL ||
prm->math.exp == QSE_NULL ||
prm->math.sqrt == QSE_NULL)
{

View File

@ -39,6 +39,7 @@ static int fnc_tan (qse_awk_rtx_t* rtx, const qse_cstr_t* fnm);
static int fnc_atan (qse_awk_rtx_t* rtx, const qse_cstr_t* fnm);
static int fnc_atan2 (qse_awk_rtx_t* rtx, const qse_cstr_t* fnm);
static int fnc_log (qse_awk_rtx_t* rtx, const qse_cstr_t* fnm);
static int fnc_log10 (qse_awk_rtx_t* rtx, const qse_cstr_t* fnm);
static int fnc_exp (qse_awk_rtx_t* rtx, const qse_cstr_t* fnm);
static int fnc_sqrt (qse_awk_rtx_t* rtx, const qse_cstr_t* fnm);
static int fnc_int (qse_awk_rtx_t* rtx, const qse_cstr_t* fnm);
@ -84,6 +85,7 @@ static qse_awk_fnc_t sys_fnc[] =
{ {QSE_T("atan"), 4}, 0, 0, {1, 1, QSE_NULL}, fnc_atan},
{ {QSE_T("atan2"), 5}, 0, 0, {2, 2, QSE_NULL}, fnc_atan2},
{ {QSE_T("log"), 3}, 0, 0, {1, 1, QSE_NULL}, fnc_log},
{ {QSE_T("log10"), 5}, 0, 0, {1, 1, QSE_NULL}, fnc_log10},
{ {QSE_T("exp"), 3}, 0, 0, {1, 1, QSE_NULL}, fnc_exp},
{ {QSE_T("sqrt"), 4}, 0, 0, {1, 1, QSE_NULL}, fnc_sqrt},
{ {QSE_T("int"), 3}, 0, 0, {1, 1, QSE_NULL}, fnc_int},
@ -1473,6 +1475,10 @@ static int fnc_log (qse_awk_rtx_t* rtx, const qse_cstr_t* fnm)
{
return fnc_math_1 (rtx, fnm, rtx->awk->prm.math.log);
}
static int fnc_log10 (qse_awk_rtx_t* rtx, const qse_cstr_t* fnm)
{
return fnc_math_1 (rtx, fnm, rtx->awk->prm.math.log10);
}
static int fnc_exp (qse_awk_rtx_t* rtx, const qse_cstr_t* fnm)
{
return fnc_math_1 (rtx, fnm, rtx->awk->prm.math.exp);

View File

@ -231,6 +231,19 @@ static qse_flt_t custom_awk_log (qse_awk_t* awk, qse_flt_t x)
#endif
}
static qse_flt_t custom_awk_log10 (qse_awk_t* awk, qse_flt_t x)
{
#if defined(HAVE_LOG10L) && (QSE_SIZEOF_LONG_DOUBLE > QSE_SIZEOF_DOUBLE)
return log10l (x);
#elif defined(HAVE_LOG10)
return log10 (x);
#elif defined(HAVE_LOG10F)
return log10f (x);
#else
#error ### no log10 function available ###
#endif
}
static qse_flt_t custom_awk_exp (qse_awk_t* awk, qse_flt_t x)
{
#if defined(HAVE_EXPL) && (QSE_SIZEOF_LONG_DOUBLE > QSE_SIZEOF_DOUBLE)
@ -294,6 +307,7 @@ qse_awk_t* qse_awk_openstdwithmmgr (qse_mmgr_t* mmgr, qse_size_t xtnsize)
prm.math.atan = custom_awk_atan;
prm.math.atan2 = custom_awk_atan2;
prm.math.log = custom_awk_log;
prm.math.log10 = custom_awk_log10;
prm.math.exp = custom_awk_exp;
prm.math.sqrt = custom_awk_sqrt;