From 4bb71a765e447826d38cb7100b2d5cc7506f01c7 Mon Sep 17 00:00:00 2001 From: hyung-hwan Date: Sun, 8 Jun 2014 14:11:12 +0000 Subject: [PATCH] fixed a bug in configure.ac and bugs in awk sample programs --- qse/configure | 2 +- qse/configure.ac | 4 +-- qse/include/qse/awk/stdawk.h | 1 - qse/include/qse/cmn/sio.h | 1 + qse/lib/awk/StdAwk.cpp | 3 ++ qse/samples/awk/awk01.c | 1 + qse/samples/awk/awk02.c | 1 + qse/samples/awk/awk03.c | 1 + qse/samples/awk/awk04.c | 1 + qse/samples/awk/awk05.c | 1 + qse/samples/awk/awk06.c | 1 + qse/samples/awk/awk07.c | 1 + qse/samples/awk/awk08.c | 8 +++-- qse/samples/awk/awk09.c | 8 +++-- qse/samples/awk/awk10.c | 8 +++-- qse/samples/awk/awk11.c | 6 +++- qse/samples/awk/awk12.c | 24 +++++++++------ qse/samples/awk/awk15.c | 6 +++- qse/samples/awk/awk22.cpp | 4 ++- qse/samples/awk/awk23.cpp | 4 ++- qse/samples/awk/awk24.cpp | 43 +++++++++++++++----------- qse/samples/awk/awk25.cpp | 59 +++++++++++++++++++----------------- qse/samples/awk/awk26.cpp | 47 ++++++++++++++++------------ qse/samples/awk/awk27.cpp | 43 +++++++++++++++----------- qse/samples/awk/awk28.cpp | 51 +++++++++++++++++-------------- 25 files changed, 202 insertions(+), 127 deletions(-) diff --git a/qse/configure b/qse/configure index 92c6e0f7..d7b1ba84 100755 --- a/qse/configure +++ b/qse/configure @@ -20676,7 +20676,7 @@ fi test "${HAVE_CXX}" = "yes" || enable_cxx_is="no" -test "${HAVE_CXX_NAMESPACE_STD}" = "yes" || enable_cxx_is="no" +test "${ax_cv_cxx_have_std_namespace}" = "yes" || enable_cxx_is="no" if test "${enable_cxx_is}" = "yes" ; then ENABLE_CXX_TRUE= diff --git a/qse/configure.ac b/qse/configure.ac index b2f2efec..45fd7d7c 100644 --- a/qse/configure.ac +++ b/qse/configure.ac @@ -578,9 +578,9 @@ AC_ARG_ENABLE([cxx], ) dnl disable c++ if no c++ compiler was found -[test "${HAVE_CXX}" = "yes" || enable_cxx_is="no"] +test "${HAVE_CXX}" = "yes" || enable_cxx_is="no" dnl disable c++ if the compiler is too old. -[test "${HAVE_CXX_NAMESPACE_STD}" = "yes" || enable_cxx_is="no"] +test "${ax_cv_cxx_have_std_namespace}" = "yes" || enable_cxx_is="no" AM_CONDITIONAL(ENABLE_CXX, test "${enable_cxx_is}" = "yes" ) diff --git a/qse/include/qse/awk/stdawk.h b/qse/include/qse/awk/stdawk.h index ef3e83c5..4a06d9e2 100644 --- a/qse/include/qse/awk/stdawk.h +++ b/qse/include/qse/awk/stdawk.h @@ -22,7 +22,6 @@ #define _QSE_AWK_STDAWK_H_ #include -#include /** \file * This file defines functions and data types that help you create diff --git a/qse/include/qse/cmn/sio.h b/qse/include/qse/cmn/sio.h index e3b97350..b2abeeb4 100644 --- a/qse/include/qse/cmn/sio.h +++ b/qse/include/qse/cmn/sio.h @@ -449,6 +449,7 @@ QSE_EXPORT qse_ssize_t qse_errputwcsvf ( #define qse_vprintf qse_putstrvf #define qse_fprintf qse_sio_putstrf #define qse_vfprintf qse_sio_putstrvf +#define qse_fflush qse_sio_flush #ifdef __cplusplus diff --git a/qse/lib/awk/StdAwk.cpp b/qse/lib/awk/StdAwk.cpp index d6d104a7..ee2c90b5 100644 --- a/qse/lib/awk/StdAwk.cpp +++ b/qse/lib/awk/StdAwk.cpp @@ -31,8 +31,11 @@ #include #include + #if defined(HAVE_QUADMATH_H) +extern "C" { // some gcc distros don't have extern "C" declared in the header file. # include +} #endif #if defined(_WIN32) diff --git a/qse/samples/awk/awk01.c b/qse/samples/awk/awk01.c index 7078c678..b6b9e546 100644 --- a/qse/samples/awk/awk01.c +++ b/qse/samples/awk/awk01.c @@ -1,4 +1,5 @@ #include +#include static const qse_char_t* script = QSE_T("BEGIN { print \"hello, world\"; }"); diff --git a/qse/samples/awk/awk02.c b/qse/samples/awk/awk02.c index 4dfebb1d..9a22afe3 100644 --- a/qse/samples/awk/awk02.c +++ b/qse/samples/awk/awk02.c @@ -1,5 +1,6 @@ #include #include +#include #include #include "awk00.h" diff --git a/qse/samples/awk/awk03.c b/qse/samples/awk/awk03.c index abe0763a..9deabe22 100644 --- a/qse/samples/awk/awk03.c +++ b/qse/samples/awk/awk03.c @@ -1,5 +1,6 @@ #include #include +#include #include #include "awk00.h" diff --git a/qse/samples/awk/awk04.c b/qse/samples/awk/awk04.c index 57c9bc3c..f0f440fa 100644 --- a/qse/samples/awk/awk04.c +++ b/qse/samples/awk/awk04.c @@ -1,4 +1,5 @@ #include +#include #include #include "awk00.h" diff --git a/qse/samples/awk/awk05.c b/qse/samples/awk/awk05.c index 8d807874..40098864 100644 --- a/qse/samples/awk/awk05.c +++ b/qse/samples/awk/awk05.c @@ -1,4 +1,5 @@ #include +#include #include #include "awk00.h" diff --git a/qse/samples/awk/awk06.c b/qse/samples/awk/awk06.c index c87475c9..a2a35f17 100644 --- a/qse/samples/awk/awk06.c +++ b/qse/samples/awk/awk06.c @@ -1,4 +1,5 @@ #include +#include #include #include "awk00.h" diff --git a/qse/samples/awk/awk07.c b/qse/samples/awk/awk07.c index 4cd5fc74..f832542c 100644 --- a/qse/samples/awk/awk07.c +++ b/qse/samples/awk/awk07.c @@ -1,4 +1,5 @@ #include +#include #include #include "awk00.h" diff --git a/qse/samples/awk/awk08.c b/qse/samples/awk/awk08.c index f2be5c52..1157a207 100644 --- a/qse/samples/awk/awk08.c +++ b/qse/samples/awk/awk08.c @@ -1,6 +1,6 @@ #include +#include #include -#include #include "awk00.h" static const qse_char_t* src = QSE_T( @@ -126,7 +126,11 @@ oops: int qse_main (int argc, qse_achar_t* argv[]) { + int x; + qse_openstdsios (); init_awk_sample_locale (); - return qse_runmain (argc, argv, awk_main); + x = qse_runmain (argc, argv, awk_main); + qse_closestdsios (); + return x; } diff --git a/qse/samples/awk/awk09.c b/qse/samples/awk/awk09.c index 498fb749..0f43c322 100644 --- a/qse/samples/awk/awk09.c +++ b/qse/samples/awk/awk09.c @@ -1,8 +1,8 @@ #include +#include #include #include #include -#include #include "awk00.h" static const qse_char_t* src = QSE_T( @@ -133,7 +133,11 @@ oops: int qse_main (int argc, qse_achar_t* argv[]) { + int x; + qse_openstdsios (); init_awk_sample_locale (); - return qse_runmain (argc, argv, awk_main); + x = qse_runmain (argc, argv, awk_main); + qse_closestdsios (); + return x; } diff --git a/qse/samples/awk/awk10.c b/qse/samples/awk/awk10.c index bf951a5e..3bbd0beb 100644 --- a/qse/samples/awk/awk10.c +++ b/qse/samples/awk/awk10.c @@ -1,8 +1,8 @@ #include +#include #include #include #include -#include #include "awk00.h" static const qse_char_t* src = QSE_T( @@ -146,6 +146,10 @@ oops: int qse_main (int argc, qse_achar_t* argv[]) { + int x; + qse_openstdsios (); init_awk_sample_locale (); - return qse_runmain (argc, argv, awk_main); + x = qse_runmain (argc, argv, awk_main); + qse_closestdsios (); + return x; } diff --git a/qse/samples/awk/awk11.c b/qse/samples/awk/awk11.c index 1464e126..a2f24403 100644 --- a/qse/samples/awk/awk11.c +++ b/qse/samples/awk/awk11.c @@ -19,7 +19,7 @@ */ #include -#include +#include const qse_char_t* src = QSE_T("BEGIN { print \"hello, world\" | \"dir\"; }"); @@ -72,6 +72,8 @@ int main () qse_awk_parsestd_t psin[2]; int ret = -1; + qse_openstdsios (); + awk = qse_awk_openstd (0); if (awk == QSE_NULL) { @@ -122,6 +124,8 @@ int main () oops: if (rtx != QSE_NULL) qse_awk_rtx_close (rtx); if (awk != QSE_NULL) qse_awk_close (awk); + + qse_closestdsios (); return ret; } diff --git a/qse/samples/awk/awk12.c b/qse/samples/awk/awk12.c index 21c36519..04e1bde3 100644 --- a/qse/samples/awk/awk12.c +++ b/qse/samples/awk/awk12.c @@ -1,5 +1,5 @@ #include -#include +#include /* this sample produces 8 text files containing multiplication chart. */ @@ -25,17 +25,19 @@ int main () const qse_char_t* output_files[] = { - QSE_T("awk09.out.2"), - QSE_T("awk09.out.3"), - QSE_T("awk09.out.4"), - QSE_T("awk09.out.5"), - QSE_T("awk09.out.6"), - QSE_T("awk09.out.7"), - QSE_T("awk09.out.8"), - QSE_T("awk09.out.9"), + QSE_T("awk12.out.2"), + QSE_T("awk12.out.3"), + QSE_T("awk12.out.4"), + QSE_T("awk12.out.5"), + QSE_T("awk12.out.6"), + QSE_T("awk12.out.7"), + QSE_T("awk12.out.8"), + QSE_T("awk12.out.9"), QSE_NULL }; + qse_openstdsios (); + awk = qse_awk_openstd (0); if (awk == QSE_NULL) { @@ -62,7 +64,7 @@ int main () rtx = qse_awk_rtx_openstd ( awk, 0, - QSE_T("awk09"), + QSE_T("awk12"), QSE_NULL, /* stdin */ output_files, QSE_NULL /* default cmgr */ @@ -88,6 +90,8 @@ int main () oops: if (rtx != QSE_NULL) qse_awk_rtx_close (rtx); if (awk != QSE_NULL) qse_awk_close (awk); + + qse_closestdsios (); return ret; } diff --git a/qse/samples/awk/awk15.c b/qse/samples/awk/awk15.c index f84b9bc0..6acefffd 100644 --- a/qse/samples/awk/awk15.c +++ b/qse/samples/awk/awk15.c @@ -21,7 +21,7 @@ #include #include #include -#include +#include static const qse_char_t* src = QSE_T( "BEGIN {" @@ -45,6 +45,8 @@ int main () int ret; + qse_openstdsios (); + awk = qse_awk_openstd (0); if (awk == QSE_NULL) { @@ -104,6 +106,8 @@ int main () oops: if (rtx != QSE_NULL) qse_awk_rtx_close (rtx); if (awk != QSE_NULL) qse_awk_close (awk); + + qse_closestdsios (); return -1; } diff --git a/qse/samples/awk/awk22.cpp b/qse/samples/awk/awk22.cpp index dd925db6..b32603fc 100644 --- a/qse/samples/awk/awk22.cpp +++ b/qse/samples/awk/awk22.cpp @@ -1,5 +1,5 @@ #include -#include +#include #include #if defined(QSE_CHAR_IS_WCHAR) @@ -117,6 +117,7 @@ int main (int argc, char* argv[]) { MyAwk awk; + qse_openstdsios (); int ret = awk.open (); if (ret >= 0) ret = run_awk (awk); @@ -127,6 +128,7 @@ int main (int argc, char* argv[]) } awk.close (); + qse_closestdsios (); return ret; } diff --git a/qse/samples/awk/awk23.cpp b/qse/samples/awk/awk23.cpp index 2d9b8afc..cd469f79 100644 --- a/qse/samples/awk/awk23.cpp +++ b/qse/samples/awk/awk23.cpp @@ -1,5 +1,5 @@ #include -#include +#include #include #if defined(QSE_CHAR_IS_WCHAR) @@ -170,6 +170,7 @@ int main (int argc, char* argv[]) { MyAwk awk; + qse_openstdsios (); int ret = awk.open (); if (ret >= 0) ret = run_awk (awk); @@ -180,6 +181,7 @@ int main (int argc, char* argv[]) } awk.close (); + qse_closestdsios (); return ret; } diff --git a/qse/samples/awk/awk24.cpp b/qse/samples/awk/awk24.cpp index db7093c6..a58c4bde 100644 --- a/qse/samples/awk/awk24.cpp +++ b/qse/samples/awk/awk24.cpp @@ -19,7 +19,7 @@ */ #include -#include +#include #include #include @@ -151,23 +151,32 @@ static int awk_main (int argc, qse_char_t* argv[]) int qse_main (int argc, qse_achar_t* argv[]) { -#if defined(_WIN32) - char locale[100]; - UINT codepage = GetConsoleOutputCP(); - if (codepage == CP_UTF8) + int x; + + qse_openstdsios (); + { - /*SetConsoleOUtputCP (CP_UTF8);*/ - qse_setdflcmgrbyid (QSE_CMGR_UTF8); - } - else - { - sprintf (locale, ".%u", (unsigned int)codepage); - setlocale (LC_ALL, locale); + #if defined(_WIN32) + char locale[100]; + UINT codepage = GetConsoleOutputCP(); + if (codepage == CP_UTF8) + { + /*SetConsoleOUtputCP (CP_UTF8);*/ + qse_setdflcmgrbyid (QSE_CMGR_UTF8); + } + else + { + sprintf (locale, ".%u", (unsigned int)codepage); + setlocale (LC_ALL, locale); + qse_setdflcmgrbyid (QSE_CMGR_SLMB); + } + #else + setlocale (LC_ALL, ""); qse_setdflcmgrbyid (QSE_CMGR_SLMB); + #endif } -#else - setlocale (LC_ALL, ""); - qse_setdflcmgrbyid (QSE_CMGR_SLMB); -#endif - return qse_runmain (argc,argv,awk_main); + + x = qse_runmain (argc,argv,awk_main); + qse_closestdsios (); + return x; } diff --git a/qse/samples/awk/awk25.cpp b/qse/samples/awk/awk25.cpp index b707e829..43099025 100644 --- a/qse/samples/awk/awk25.cpp +++ b/qse/samples/awk/awk25.cpp @@ -22,7 +22,7 @@ #include #include #include -#include +#include #include #include @@ -84,7 +84,7 @@ public: return -1; } - long_t x = args[0].toInt(); + Awk::int_t x = args[0].toInt(); /*Value arg; if (run.getGlobal(idLastSleep, arg) == 0) @@ -263,7 +263,7 @@ static void unset_signal (void) #endif } -static void print_usage (QSE_FILE* out, const qse_char_t* argv0) +static void print_usage (qse_sio_t* out, const qse_char_t* argv0) { qse_fprintf (out, QSE_T("USAGE: %s [options] -f sourcefile [ -- ] [datafile]*\n"), argv0); qse_fprintf (out, QSE_T(" %s [options] [ -- ] sourcestring [datafile]*\n"), argv0); @@ -444,40 +444,45 @@ int qse_main (int argc, qse_achar_t* argv[]) { int ret; -#if defined(_WIN32) - char locale[100]; - UINT codepage; - WSADATA wsadata; + qse_openstdsios (); - codepage = GetConsoleOutputCP(); - if (codepage == CP_UTF8) { - /*SetConsoleOUtputCP (CP_UTF8);*/ - qse_setdflcmgrbyid (QSE_CMGR_UTF8); - } - else - { - sprintf (locale, ".%u", (unsigned int)codepage); - setlocale (LC_ALL, locale); + #if defined(_WIN32) + char locale[100]; + UINT codepage; + WSADATA wsadata; + + codepage = GetConsoleOutputCP(); + if (codepage == CP_UTF8) + { + /*SetConsoleOUtputCP (CP_UTF8);*/ + qse_setdflcmgrbyid (QSE_CMGR_UTF8); + } + else + { + sprintf (locale, ".%u", (unsigned int)codepage); + setlocale (LC_ALL, locale); + qse_setdflcmgrbyid (QSE_CMGR_SLMB); + } + + if (WSAStartup (MAKEWORD(2,0), &wsadata) != 0) + { + print_error (QSE_T("Failed to start up winsock\n")); + return -1; + } + + #else + setlocale (LC_ALL, ""); qse_setdflcmgrbyid (QSE_CMGR_SLMB); + #endif } - if (WSAStartup (MAKEWORD(2,0), &wsadata) != 0) - { - print_error (QSE_T("Failed to start up winsock\n")); - return -1; - } - -#else - setlocale (LC_ALL, ""); - qse_setdflcmgrbyid (QSE_CMGR_SLMB); -#endif - ret = qse_runmain (argc, argv, awk_main); #if defined(_WIN32) WSACleanup (); #endif + qse_closestdsios (); return ret; } diff --git a/qse/samples/awk/awk26.cpp b/qse/samples/awk/awk26.cpp index bbe53a87..be1cfdaa 100644 --- a/qse/samples/awk/awk26.cpp +++ b/qse/samples/awk/awk26.cpp @@ -19,7 +19,7 @@ */ #include -#include +#include #include #include @@ -82,24 +82,31 @@ static int awk_main (int argc, qse_char_t* argv[]) int qse_main (int argc, qse_achar_t* argv[]) { -#if defined(_WIN32) - char locale[100]; - UINT codepage = GetConsoleOutputCP(); - if (codepage == CP_UTF8) - { - /*SetConsoleOUtputCP (CP_UTF8);*/ - qse_setdflcmgrbyid (QSE_CMGR_UTF8); - } - else - { - sprintf (locale, ".%u", (unsigned int)codepage); - setlocale (LC_ALL, locale); - qse_setdflcmgrbyid (QSE_CMGR_SLMB); - } -#else - setlocale (LC_ALL, ""); - qse_setdflcmgrbyid (QSE_CMGR_SLMB); -#endif + int x; - return qse_runmain (argc,argv,awk_main); + qse_openstdsios (); + { + #if defined(_WIN32) + char locale[100]; + UINT codepage = GetConsoleOutputCP(); + if (codepage == CP_UTF8) + { + /*SetConsoleOUtputCP (CP_UTF8);*/ + qse_setdflcmgrbyid (QSE_CMGR_UTF8); + } + else + { + sprintf (locale, ".%u", (unsigned int)codepage); + setlocale (LC_ALL, locale); + qse_setdflcmgrbyid (QSE_CMGR_SLMB); + } + #else + setlocale (LC_ALL, ""); + qse_setdflcmgrbyid (QSE_CMGR_SLMB); + #endif + } + + x = qse_runmain (argc,argv,awk_main); + qse_closestdsios (); + return x; } diff --git a/qse/samples/awk/awk27.cpp b/qse/samples/awk/awk27.cpp index 2aa364e9..73d7d539 100644 --- a/qse/samples/awk/awk27.cpp +++ b/qse/samples/awk/awk27.cpp @@ -19,7 +19,7 @@ */ #include -#include +#include #include #include @@ -109,23 +109,32 @@ static int awk_main (int argc, qse_char_t* argv[]) int qse_main (int argc, qse_achar_t* argv[]) { -#if defined(_WIN32) - char locale[100]; - UINT codepage = GetConsoleOutputCP(); - if (codepage == CP_UTF8) + int x; + + qse_openstdsios (); + { - /*SetConsoleOUtputCP (CP_UTF8);*/ - qse_setdflcmgrbyid (QSE_CMGR_UTF8); - } - else - { - sprintf (locale, ".%u", (unsigned int)codepage); - setlocale (LC_ALL, locale); + #if defined(_WIN32) + char locale[100]; + UINT codepage = GetConsoleOutputCP(); + if (codepage == CP_UTF8) + { + /*SetConsoleOUtputCP (CP_UTF8);*/ + qse_setdflcmgrbyid (QSE_CMGR_UTF8); + } + else + { + sprintf (locale, ".%u", (unsigned int)codepage); + setlocale (LC_ALL, locale); + qse_setdflcmgrbyid (QSE_CMGR_SLMB); + } + #else + setlocale (LC_ALL, ""); qse_setdflcmgrbyid (QSE_CMGR_SLMB); + #endif } -#else - setlocale (LC_ALL, ""); - qse_setdflcmgrbyid (QSE_CMGR_SLMB); -#endif - return qse_runmain (argc,argv,awk_main); + + x = qse_runmain (argc,argv,awk_main); + qse_closestdsios (); + return x; } diff --git a/qse/samples/awk/awk28.cpp b/qse/samples/awk/awk28.cpp index e50489c2..c5052651 100644 --- a/qse/samples/awk/awk28.cpp +++ b/qse/samples/awk/awk28.cpp @@ -19,7 +19,7 @@ */ #include -#include +#include #include #include #include @@ -95,7 +95,7 @@ protected: return -1; } - ssize_t read (StdAwk::Console& io, StdAwk::char_t* data, size_t size) + StdAwk::ssize_t read (StdAwk::Console& io, StdAwk::char_t* data, size_t size) { if (this->inptr >= this->inend) return 0; // EOF size_t x = qse_strxncpy (data, size, inptr, inend - inptr); @@ -103,7 +103,7 @@ protected: return x; } - ssize_t write (StdAwk::Console& io, const StdAwk::char_t* data, size_t size) + StdAwk::ssize_t write (StdAwk::Console& io, const StdAwk::char_t* data, size_t size) { try { this->output.append (data, size); } catch (...) @@ -217,24 +217,31 @@ static int awk_main (int argc, qse_char_t* argv[]) int qse_main (int argc, qse_achar_t* argv[]) { -#if defined(_WIN32) - char locale[100]; - UINT codepage = GetConsoleOutputCP(); - if (codepage == CP_UTF8) - { - /*SetConsoleOUtputCP (CP_UTF8);*/ - qse_setdflcmgrbyid (QSE_CMGR_UTF8); - } - else - { - sprintf (locale, ".%u", (unsigned int)codepage); - setlocale (LC_ALL, locale); - qse_setdflcmgrbyid (QSE_CMGR_SLMB); - } -#else - setlocale (LC_ALL, ""); - qse_setdflcmgrbyid (QSE_CMGR_SLMB); -#endif + int x; + qse_openstdsios (); - return qse_runmain (argc,argv,awk_main); + { + #if defined(_WIN32) + char locale[100]; + UINT codepage = GetConsoleOutputCP(); + if (codepage == CP_UTF8) + { + /*SetConsoleOUtputCP (CP_UTF8);*/ + qse_setdflcmgrbyid (QSE_CMGR_UTF8); + } + else + { + sprintf (locale, ".%u", (unsigned int)codepage); + setlocale (LC_ALL, locale); + qse_setdflcmgrbyid (QSE_CMGR_SLMB); + } + #else + setlocale (LC_ALL, ""); + qse_setdflcmgrbyid (QSE_CMGR_SLMB); + #endif + } + + x = qse_runmain (argc,argv,awk_main); + qse_closestdsios (); + return x; }