diff --git a/qse/cmd/http/Makefile.am b/qse/cmd/http/Makefile.am index 1783b6a1..e2a56295 100644 --- a/qse/cmd/http/Makefile.am +++ b/qse/cmd/http/Makefile.am @@ -11,8 +11,9 @@ qsecfg_DATA = httpd.conf httpd-mime.conf bin_PROGRAMS = qsehttpd qseursd qsehttpd_SOURCES = httpd.c +qsehttpd_CFLAGS = $(PTHREAD_CFLAGS) qsehttpd_LDFLAGS = -L../../lib/xli -L../../lib/http -L../../lib/si -L../../lib/cmn -qsehttpd_LDADD = -lqsexli -lqsehttp -lqsesi -lqsecmn $(SSL_LIBS) +qsehttpd_LDADD = -lqsexli -lqsehttp -lqsesi -lqsecmn $(SSL_LIBS) $(LIBM) $(PTHREAD_LIBS) qsehttpd_DEPENDENCIES = ../../lib/xli/libqsexli.la ../../lib/http/libqsehttp.la ../../lib/si/libqsesi.la ../../lib/cmn/libqsecmn.la if WIN32 @@ -22,8 +23,9 @@ endif endif qseursd_SOURCES = ursd.c +qseursd_CFLAGS = $(PTHREAD_CFLAGS) qseursd_LDFLAGS = -L../../lib/si -L../../lib/cmn -qseursd_LDADD = -lqsesi -lqsecmn +qseursd_LDADD = -lqsesi -lqsecmn $(LIBM) $(PTHREAD_LIBS) qseursd_DEPENDENCIES = ../../lib/si/libqsesi.la ../../lib/cmn/libqsecmn.la EXTRA_DIST = $(qsecfg_DATA) diff --git a/qse/cmd/http/Makefile.in b/qse/cmd/http/Makefile.in index 3812928b..b03b6563 100644 --- a/qse/cmd/http/Makefile.in +++ b/qse/cmd/http/Makefile.in @@ -109,7 +109,7 @@ CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(qsecfgdir)" PROGRAMS = $(bin_PROGRAMS) -am_qsehttpd_OBJECTS = httpd.$(OBJEXT) +am_qsehttpd_OBJECTS = qsehttpd-httpd.$(OBJEXT) qsehttpd_OBJECTS = $(am_qsehttpd_OBJECTS) am__DEPENDENCIES_1 = @WCHAR_TRUE@@WIN32_TRUE@am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1) @@ -118,13 +118,13 @@ am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = qsehttpd_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(qsehttpd_LDFLAGS) $(LDFLAGS) -o $@ -am_qseursd_OBJECTS = ursd.$(OBJEXT) + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(qsehttpd_CFLAGS) \ + $(CFLAGS) $(qsehttpd_LDFLAGS) $(LDFLAGS) -o $@ +am_qseursd_OBJECTS = qseursd-ursd.$(OBJEXT) qseursd_OBJECTS = $(am_qseursd_OBJECTS) qseursd_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(qseursd_LDFLAGS) $(LDFLAGS) -o $@ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(qseursd_CFLAGS) \ + $(CFLAGS) $(qseursd_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false @@ -140,7 +140,8 @@ am__v_at_1 = DEFAULT_INCLUDES = depcomp = $(SHELL) $(top_srcdir)/ac/depcomp am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/httpd.Po ./$(DEPDIR)/ursd.Po +am__depfiles_remade = ./$(DEPDIR)/qsehttpd-httpd.Po \ + ./$(DEPDIR)/qseursd-ursd.Po am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) @@ -389,13 +390,15 @@ AM_CPPFLAGS = \ qsecfgdir = $(sysconfdir)/qse qsecfg_DATA = httpd.conf httpd-mime.conf qsehttpd_SOURCES = httpd.c +qsehttpd_CFLAGS = $(PTHREAD_CFLAGS) qsehttpd_LDFLAGS = -L../../lib/xli -L../../lib/http -L../../lib/si -L../../lib/cmn qsehttpd_LDADD = -lqsexli -lqsehttp -lqsesi -lqsecmn $(SSL_LIBS) \ - $(am__append_1) + $(LIBM) $(PTHREAD_LIBS) $(am__append_1) qsehttpd_DEPENDENCIES = ../../lib/xli/libqsexli.la ../../lib/http/libqsehttp.la ../../lib/si/libqsesi.la ../../lib/cmn/libqsecmn.la qseursd_SOURCES = ursd.c +qseursd_CFLAGS = $(PTHREAD_CFLAGS) qseursd_LDFLAGS = -L../../lib/si -L../../lib/cmn -qseursd_LDADD = -lqsesi -lqsecmn +qseursd_LDADD = -lqsesi -lqsecmn $(LIBM) $(PTHREAD_LIBS) qseursd_DEPENDENCIES = ../../lib/si/libqsesi.la ../../lib/cmn/libqsecmn.la EXTRA_DIST = $(qsecfg_DATA) all: all-am @@ -495,8 +498,8 @@ mostlyclean-compile: distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/httpd.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ursd.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/qsehttpd-httpd.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/qseursd-ursd.Po@am__quote@ # am--include-marker $(am__depfiles_remade): @$(MKDIR_P) $(@D) @@ -525,6 +528,34 @@ am--depfiles: $(am__depfiles_remade) @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< +qsehttpd-httpd.o: httpd.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(qsehttpd_CFLAGS) $(CFLAGS) -MT qsehttpd-httpd.o -MD -MP -MF $(DEPDIR)/qsehttpd-httpd.Tpo -c -o qsehttpd-httpd.o `test -f 'httpd.c' || echo '$(srcdir)/'`httpd.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/qsehttpd-httpd.Tpo $(DEPDIR)/qsehttpd-httpd.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='httpd.c' object='qsehttpd-httpd.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(qsehttpd_CFLAGS) $(CFLAGS) -c -o qsehttpd-httpd.o `test -f 'httpd.c' || echo '$(srcdir)/'`httpd.c + +qsehttpd-httpd.obj: httpd.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(qsehttpd_CFLAGS) $(CFLAGS) -MT qsehttpd-httpd.obj -MD -MP -MF $(DEPDIR)/qsehttpd-httpd.Tpo -c -o qsehttpd-httpd.obj `if test -f 'httpd.c'; then $(CYGPATH_W) 'httpd.c'; else $(CYGPATH_W) '$(srcdir)/httpd.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/qsehttpd-httpd.Tpo $(DEPDIR)/qsehttpd-httpd.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='httpd.c' object='qsehttpd-httpd.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(qsehttpd_CFLAGS) $(CFLAGS) -c -o qsehttpd-httpd.obj `if test -f 'httpd.c'; then $(CYGPATH_W) 'httpd.c'; else $(CYGPATH_W) '$(srcdir)/httpd.c'; fi` + +qseursd-ursd.o: ursd.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(qseursd_CFLAGS) $(CFLAGS) -MT qseursd-ursd.o -MD -MP -MF $(DEPDIR)/qseursd-ursd.Tpo -c -o qseursd-ursd.o `test -f 'ursd.c' || echo '$(srcdir)/'`ursd.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/qseursd-ursd.Tpo $(DEPDIR)/qseursd-ursd.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ursd.c' object='qseursd-ursd.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(qseursd_CFLAGS) $(CFLAGS) -c -o qseursd-ursd.o `test -f 'ursd.c' || echo '$(srcdir)/'`ursd.c + +qseursd-ursd.obj: ursd.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(qseursd_CFLAGS) $(CFLAGS) -MT qseursd-ursd.obj -MD -MP -MF $(DEPDIR)/qseursd-ursd.Tpo -c -o qseursd-ursd.obj `if test -f 'ursd.c'; then $(CYGPATH_W) 'ursd.c'; else $(CYGPATH_W) '$(srcdir)/ursd.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/qseursd-ursd.Tpo $(DEPDIR)/qseursd-ursd.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ursd.c' object='qseursd-ursd.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(qseursd_CFLAGS) $(CFLAGS) -c -o qseursd-ursd.obj `if test -f 'ursd.c'; then $(CYGPATH_W) 'ursd.c'; else $(CYGPATH_W) '$(srcdir)/ursd.c'; fi` + mostlyclean-libtool: -rm -f *.lo @@ -679,8 +710,8 @@ clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am distclean: distclean-am - -rm -f ./$(DEPDIR)/httpd.Po - -rm -f ./$(DEPDIR)/ursd.Po + -rm -f ./$(DEPDIR)/qsehttpd-httpd.Po + -rm -f ./$(DEPDIR)/qseursd-ursd.Po -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags @@ -726,8 +757,8 @@ install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am - -rm -f ./$(DEPDIR)/httpd.Po - -rm -f ./$(DEPDIR)/ursd.Po + -rm -f ./$(DEPDIR)/qsehttpd-httpd.Po + -rm -f ./$(DEPDIR)/qseursd-ursd.Po -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic diff --git a/qse/cmd/xli/Makefile.am b/qse/cmd/xli/Makefile.am index 567384a3..45349d23 100644 --- a/qse/cmd/xli/Makefile.am +++ b/qse/cmd/xli/Makefile.am @@ -7,8 +7,9 @@ AM_CPPFLAGS = \ bin_PROGRAMS = qsexli qsexli_SOURCES = xli.c +qsexli_CFLAGS = $(PTHREAD_CFLAGS) qsexli_LDFLAGS = -L../../lib/xli -L../../lib/si -L../../lib/cmn -qsexli_LDADD = -lqsexli -lqsesi -lqsecmn +qsexli_LDADD = -lqsexli -lqsesi -lqsecmn $(LIBM) $(PTHREAD_LIBS) qsexli_DEPENDENCIES = ../../lib/xli/libqsexli.la ../../lib/si/libqsesi.la ../../lib/cmn/libqsecmn.la if WIN32 diff --git a/qse/cmd/xli/Makefile.in b/qse/cmd/xli/Makefile.in index a1626616..e3f31e8d 100644 --- a/qse/cmd/xli/Makefile.in +++ b/qse/cmd/xli/Makefile.in @@ -108,7 +108,7 @@ CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" PROGRAMS = $(bin_PROGRAMS) -am_qsexli_OBJECTS = xli.$(OBJEXT) +am_qsexli_OBJECTS = qsexli-xli.$(OBJEXT) qsexli_OBJECTS = $(am_qsexli_OBJECTS) am__DEPENDENCIES_1 = @WCHAR_TRUE@@WIN32_TRUE@am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1) @@ -117,7 +117,7 @@ am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = qsexli_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(qsexli_CFLAGS) $(CFLAGS) \ $(qsexli_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) @@ -134,7 +134,7 @@ am__v_at_1 = DEFAULT_INCLUDES = depcomp = $(SHELL) $(top_srcdir)/ac/depcomp am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/xli.Po +am__depfiles_remade = ./$(DEPDIR)/qsexli-xli.Po am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) @@ -353,8 +353,10 @@ AM_CPPFLAGS = \ -I$(top_srcdir)/include qsexli_SOURCES = xli.c +qsexli_CFLAGS = $(PTHREAD_CFLAGS) qsexli_LDFLAGS = -L../../lib/xli -L../../lib/si -L../../lib/cmn -qsexli_LDADD = -lqsexli -lqsesi -lqsecmn $(am__append_1) +qsexli_LDADD = -lqsexli -lqsesi -lqsecmn $(LIBM) $(PTHREAD_LIBS) \ + $(am__append_1) qsexli_DEPENDENCIES = ../../lib/xli/libqsexli.la ../../lib/si/libqsesi.la ../../lib/cmn/libqsecmn.la all: all-am @@ -449,7 +451,7 @@ mostlyclean-compile: distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xli.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/qsexli-xli.Po@am__quote@ # am--include-marker $(am__depfiles_remade): @$(MKDIR_P) $(@D) @@ -478,6 +480,20 @@ am--depfiles: $(am__depfiles_remade) @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< +qsexli-xli.o: xli.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(qsexli_CFLAGS) $(CFLAGS) -MT qsexli-xli.o -MD -MP -MF $(DEPDIR)/qsexli-xli.Tpo -c -o qsexli-xli.o `test -f 'xli.c' || echo '$(srcdir)/'`xli.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/qsexli-xli.Tpo $(DEPDIR)/qsexli-xli.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='xli.c' object='qsexli-xli.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(qsexli_CFLAGS) $(CFLAGS) -c -o qsexli-xli.o `test -f 'xli.c' || echo '$(srcdir)/'`xli.c + +qsexli-xli.obj: xli.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(qsexli_CFLAGS) $(CFLAGS) -MT qsexli-xli.obj -MD -MP -MF $(DEPDIR)/qsexli-xli.Tpo -c -o qsexli-xli.obj `if test -f 'xli.c'; then $(CYGPATH_W) 'xli.c'; else $(CYGPATH_W) '$(srcdir)/xli.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/qsexli-xli.Tpo $(DEPDIR)/qsexli-xli.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='xli.c' object='qsexli-xli.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(qsexli_CFLAGS) $(CFLAGS) -c -o qsexli-xli.obj `if test -f 'xli.c'; then $(CYGPATH_W) 'xli.c'; else $(CYGPATH_W) '$(srcdir)/xli.c'; fi` + mostlyclean-libtool: -rm -f *.lo @@ -611,7 +627,7 @@ clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am distclean: distclean-am - -rm -f ./$(DEPDIR)/xli.Po + -rm -f ./$(DEPDIR)/qsexli-xli.Po -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags @@ -657,7 +673,7 @@ install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am - -rm -f ./$(DEPDIR)/xli.Po + -rm -f ./$(DEPDIR)/qsexli-xli.Po -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic diff --git a/qse/include/qse/Types.hpp b/qse/include/qse/Types.hpp index 1c97eac0..d282b89a 100644 --- a/qse/include/qse/Types.hpp +++ b/qse/include/qse/Types.hpp @@ -246,7 +246,7 @@ public: E_EPIPE, E_EINPROG, /* in progress */ - E_EAGAIN, /* resource unavailable unavailable */ + E_EAGAIN, /* resource unavailable unavailable */ E_EEXCEPT /**< exception */ }; }; diff --git a/qse/include/qse/cmn/ErrorGrab.hpp b/qse/include/qse/cmn/ErrorGrab.hpp index ce48be78..2e6fcda4 100644 --- a/qse/include/qse/cmn/ErrorGrab.hpp +++ b/qse/include/qse/cmn/ErrorGrab.hpp @@ -85,6 +85,7 @@ struct TypesErrorNumberToStr const qse_char_t* operator() (Types::ErrorNumber errnum); }; +typedef ErrorGrab ErrorGrab64; typedef ErrorGrab ErrorGrab128; typedef ErrorGrab ErrorGrab256; diff --git a/qse/include/qse/cmn/Mmgr.hpp b/qse/include/qse/cmn/Mmgr.hpp index 8daf8ae4..b765d019 100644 --- a/qse/include/qse/cmn/Mmgr.hpp +++ b/qse/include/qse/cmn/Mmgr.hpp @@ -83,7 +83,7 @@ public: /// void* allocate (qse_size_t n, bool raise_exception = true) /*QSE_CPP_THREXCEPT1(MemoryError)*/ { - void* xptr = this->allocMem (n); + void* xptr = this->allocMem(n); if (!xptr && raise_exception) QSE_THROW (MemoryError); return xptr; } @@ -101,7 +101,7 @@ public: /// void* reallocate (void* ptr, qse_size_t n, bool raise_exception = true) /*QSE_CPP_THREXCEPT1(MemoryError)*/ { - void* xptr = this->reallocMem (ptr, n); + void* xptr = this->reallocMem(ptr, n); if (!xptr && raise_exception) QSE_THROW (MemoryError); return xptr; } diff --git a/qse/include/qse/si/Socket.hpp b/qse/include/qse/si/Socket.hpp index 55ea2291..aa06ba28 100644 --- a/qse/include/qse/si/Socket.hpp +++ b/qse/include/qse/si/Socket.hpp @@ -30,6 +30,7 @@ #include #include #include +#include #include #include @@ -38,7 +39,7 @@ QSE_BEGIN_NAMESPACE(QSE) ///////////////////////////////// -class Socket: public Uncopyable, public Types, public Transmittable +class Socket: public Uncopyable, public Types, public Transmittable, public ErrorGrab64 { public: enum Trait @@ -50,9 +51,6 @@ public: Socket () QSE_CPP_NOEXCEPT; virtual ~Socket () QSE_CPP_NOEXCEPT; - ErrorNumber getErrorNumber () const QSE_CPP_NOEXCEPT { return this->errcode; } - void setErrorNumber (ErrorNumber errcode) QSE_CPP_NOEXCEPT { this->errcode = errcode; } - int open (int domain, int type, int protocol, int traits = 0) QSE_CPP_NOEXCEPT; void close () QSE_CPP_NOEXCEPT; @@ -161,9 +159,7 @@ public: protected: qse_sck_hnd_t handle; int domain; - ErrorNumber errcode; - void set_errcode_with_syserr (int syserr); int get_ifce_index (const void* name, qse_size_t len, bool wchar); int get_ifce_address (int cmd, const void* name, qse_size_t len, bool wchar, SocketAddress* addr); }; diff --git a/qse/include/qse/sttp/Sttp.hpp b/qse/include/qse/sttp/Sttp.hpp index 0bf9461d..f008727b 100644 --- a/qse/include/qse/sttp/Sttp.hpp +++ b/qse/include/qse/sttp/Sttp.hpp @@ -30,187 +30,133 @@ #include #include -#include -#include +#include #include QSE_BEGIN_NAMESPACE(QSE) -class Sttp: public Mmged, public Uncopyable +class QSE_EXPORT Sttp: public Mmged, public Uncopyable, public Types, public ErrorGrab64 { public: - enum ErrorNumber + Sttp (Mmgr* mmgr = QSE_NULL) QSE_CPP_NOEXCEPT; + virtual ~Sttp (); + + void reset (); + int feed (const qse_uint8_t* data, qse_size_t len, qse_size_t* rem); + + int beginWrite (const qse_mchar_t* cmd); + int beginWrite (const qse_wchar_t* cmd); + int writeWordArg (const qse_mchar_t* arg); + int writeWordArg (const qse_wchar_t* arg); + int writeStringArg (const qse_mchar_t* arg); + int writeStringArg (const qse_mchar_t* arg, qse_size_t len); + int writeStringArg (const qse_wchar_t* arg); + int writeStringArg (const qse_wchar_t* arg, qse_size_t len); + int endWrite (); + + int sendCmd (const qse_mchar_t* name, qse_size_t nargs, ...); + int sendCmd (const qse_wchar_t* name, qse_size_t nargs, ...); + int sendCmdL (const qse_mchar_t* name, qse_size_t nargs, ...); + int sendCmdL (const qse_wchar_t* name, qse_size_t nargs, ...); + + // ------------------------------------------------------------------ + + virtual int handle_command (const SttpCmd& cmd) { - E_NOERR = 0, - E_MEMORY, - E_RECEIVE, - E_SEND, - E_UTF8_CONV, - E_CMDNAME, - E_CMDPROC, // user cmd proc returned -1 - E_UNKNOWNCMD, // unknown command received - E_TOOLONGCMD, - E_SEMICOLON, - E_TOOMANYARGS, - E_WRONGARG, - E_WRONGCHAR + // it's the subclssases' responsibility to implement this + return 0; + } + + virtual int write_bytes (const qse_uint8_t* data, qse_size_t len) + { + // it's the subclssases' responsibility to implement this + return 0; + } + + // ------------------------------------------------------------------ + +private: + enum rd_state_t + { + STATE_START, + STATE_IN_NAME, + STATE_IN_PARAM_LIST, + STATE_IN_PARAM_WORD, + STATE_IN_PARAM_STRING, }; - Sttp (Transmittable* s = QSE_NULL, Mmgr* mmgr = QSE_NULL) QSE_CPP_NOEXCEPT; - ~Sttp () QSE_CPP_NOEXCEPT; - - void reset () QSE_CPP_NOEXCEPT; - - qse_size_t getMaxRawCmdLen () const QSE_CPP_NOEXCEPT + struct rd_state_node_t { - return this->max_raw_cmd_len; - } - void setMaxRawCmdLen (qse_size_t v) QSE_CPP_NOEXCEPT - { - this->max_raw_cmd_len = v; - } - - qse_size_t setMaxArgCount () const QSE_CPP_NOEXCEPT - { - return this->max_arg_count; - } - void setMaxArgCount (qse_size_t v) QSE_CPP_NOEXCEPT - { - this->max_arg_count = v; - } - - bool getOptSendNewline () const QSE_CPP_NOEXCEPT - { - return this->opt_send_newline; - } - void setOptSendNewline (bool opt) QSE_CPP_NOEXCEPT - { - this->opt_send_newline = opt; - } - - int getErrorNumber() const QSE_CPP_NOEXCEPT - { - return this->p_errcode; - } - - // The receiveCmd() function reads a complete command and stores - // it to the command object pointed to by \a cmd. - // - // Upon failure, if the error code is #ERR_RECEIVE, you can check - // the error code of the medium set to find more about the error. - // See the following pseudo code. - // - // \code - // Socket sck; - // Sttp sttp(sck); - // if (sttp->receiveCmd(&cmd) <= -1 && - // sttp->getErrorNumber() == Sttp::E_RECEIVE && - // sck->getErrorNumber() == Socket::E_EAGAIN) { ... } - // \endcode - // - // \return 1 if a command is received. 0 if end of input is detected - // -1 if an error has occurred. - int receiveCmd (SttpCmd* cmd) QSE_CPP_NOEXCEPT; - - int sendCmd (const SttpCmd& cmd) QSE_CPP_NOEXCEPT; - int sendCmd (const qse_char_t* name, qse_size_t nargs, ...) QSE_CPP_NOEXCEPT; - int sendCmdL (const qse_char_t* name, qse_size_t nargs, ...) QSE_CPP_NOEXCEPT; - int sendCmdL (const qse_char_t* name, qse_size_t nmlen, qse_size_t nargs, ...) QSE_CPP_NOEXCEPT; - - const qse_char_t* getErrorStr () const QSE_CPP_NOEXCEPT; - - void setErrorNumber (int code) QSE_CPP_NOEXCEPT - { - this->p_errcode = code; - } - -protected: - enum - { - MAX_RAW_CMD_LEN = 1024 * 1000, - MAX_ARG_COUNT = 20, - MAX_INBUF_LEN = 1024, - MAX_OUTBUF_LEN = 1024 - - }; - - enum TokenType - { - T_EOF = 1, - T_STRING = 2, - T_IDENT = 3, - T_SEMICOLON = 4, - T_COMMA = 5 - }; - - Transmittable* p_medium; - int p_errcode; /* ErrorNumber */ - - qse_mchar_t inbuf [MAX_INBUF_LEN]; - qse_mchar_t outbuf[MAX_OUTBUF_LEN]; - qse_size_t inbuf_len; - qse_size_t outbuf_len; - qse_size_t sttp_curp; - qse_cint_t sttp_curc; - - qse_size_t max_raw_cmd_len; - qse_size_t max_arg_count; - qse_size_t raw_cmd_len; - bool opt_send_newline; - - TokenType token_type; - QSE::String token_value; - - int get_char () QSE_CPP_NOEXCEPT; - int get_token () QSE_CPP_NOEXCEPT; - int get_ident () QSE_CPP_NOEXCEPT; - int get_string (qse_char_t end) QSE_CPP_NOEXCEPT; - qse_cint_t translate_escaped_char (qse_cint_t c) QSE_CPP_NOEXCEPT; - bool is_ident_char (qse_cint_t c) QSE_CPP_NOEXCEPT; - - int put_mchar (qse_mchar_t ch) QSE_CPP_NOEXCEPT; - int put_wchar (qse_wchar_t ch) QSE_CPP_NOEXCEPT; - - int put_char (qse_char_t ch) QSE_CPP_NOEXCEPT - { - #if defined(QSE_CHAR_IS_MCHAR) - return this->put_mchar(ch); - #else - return this->put_wchar(ch); - #endif - } - - int flush_outbuf () QSE_CPP_NOEXCEPT; -}; - - -#if 0 -class SttpStdHandler -{ - int operator() (const SttpCmd& cmd) - { - } - -}; - -template -class SttpX -{ - int exec() - { - if (this->receiveCmd(&cmd) <= -1) + rd_state_t state; + union { - } + struct + { + bool got_value; + } ipl; /* in parameter list */ + struct + { + int escaped; + int digit_count; + qse_wchar_t acc; + qse_char_t qc; + } ps; /* parameter string */ + } u; + rd_state_node_t* next; + }; - if (this->handler(&cmd) <= -1) - { - } + rd_state_node_t rd_rd_state_top; + rd_state_node_t* rd_state_stack; + SttpCmd command; + QSE::String token; + qse_uint8_t rd_lo[QSE_MBLEN_MAX]; + qse_size_t rd_lo_len; + + qse_uint8_t wr_buf[4096]; + qse_size_t wr_buf_len; + int wr_arg_count; + + int feed_chunk (const qse_uint8_t* data, qse_size_t len, qse_size_t* xlen); + int handle_char (qse_char_t c); + int handle_start_char (qse_char_t c); + int handle_name_char (qse_char_t c); + int handle_param_list_char (qse_char_t c); + int handle_param_word_char (qse_char_t c); + int handle_param_string_char (qse_char_t c); + + bool is_space_char (qse_char_t c) + { + return QSE_ISSPACE(c); } -protected: - HANDLER handler; + bool is_ident_char (qse_char_t c) + { + return QSE_ISALNUM(c) || c == QSE_T('_') || c == QSE_T('.') || c == QSE_T('*') || c == QSE_T('@'); + } + + void add_char_to_token (qse_char_t c) + { + this->token.append (c); + } + + void add_chars_to_token (const qse_char_t* ptr, qse_size_t len) + { + this->token.append (ptr, len); + } + + void clear_token () + { + this->token.clear (); + } + + int push_read_state (rd_state_t state); + void pop_read_state (); + void pop_all_read_states (); + + + int write_char (qse_wchar_t c); + int write_char (qse_mchar_t c); }; -#endif QSE_END_NAMESPACE(QSE) diff --git a/qse/include/qse/sttp/SttpCmd.hpp b/qse/include/qse/sttp/SttpCmd.hpp index ebeab805..c9dd0179 100644 --- a/qse/include/qse/sttp/SttpCmd.hpp +++ b/qse/include/qse/sttp/SttpCmd.hpp @@ -61,12 +61,22 @@ public: this->insertLast (QSE::String(n, size)); } + void addArg (const QSE::String& str) + { + this->insertLast (str); + } + void setName (const qse_char_t* n, qse_size_t size) { this->name.truncate (0); this->name.append (n, size); } + void setName (const QSE::String& str) + { + this->name = str; + } + const QSE::String& getName () const { return this->name; @@ -77,6 +87,12 @@ public: return this->name.getSize() == 0; } + void clear () + { + this->name.clear (); + QSE::Array::clear (); + } + QSE::String name; }; diff --git a/qse/lib/awk/Makefile.am b/qse/lib/awk/Makefile.am index b600f101..39604b93 100644 --- a/qse/lib/awk/Makefile.am +++ b/qse/lib/awk/Makefile.am @@ -45,12 +45,7 @@ libqseawk_la_LIBADD = $(LIBADD_LIB_COMMON) libqseawk_la_DEPENDENCIES = $(DEPENDENCIES_LIB_COMMON) if ENABLE_CXX -lib_LTLIBRARIES += libqseawkxx.la -libqseawkxx_la_SOURCES = Awk.cpp StdAwk.cpp -libqseawkxx_la_CPPFLAGS = $(CPPFLAGS_LIB_COMMON) -libqseawkxx_la_LDFLAGS = $(LDFLAGS_LIB_COMMON) -libqseawkxx_la_LIBADD = -lqseawk -lqsecmnxx -lqseawk -lqsesi -lqsecmn $(LIBADD_LIB_COMMON) -libqseawkxx_la_DEPENDENCIES = libqseawk.la +libqseawk_la_SOURCES += Awk.cpp StdAwk.cpp endif if ENABLE_STATIC_MODULE diff --git a/qse/lib/awk/Makefile.in b/qse/lib/awk/Makefile.in index 13a6803e..befd9af8 100644 --- a/qse/lib/awk/Makefile.in +++ b/qse/lib/awk/Makefile.in @@ -96,7 +96,7 @@ host_triplet = @host@ # to the first number in -version-info above @WIN32_TRUE@am__append_3 = -DQSE_AWK_DEFAULT_MODPREFIX=\"libqseawk-\" -DQSE_AWK_DEFAULT_MODPOSTFIX=\"-1\" @WIN32_FALSE@am__append_4 = -DQSE_AWK_DEFAULT_MODPREFIX=\"$(libdir)/libqseawk-\" -DQSE_AWK_DEFAULT_MODPOSTFIX=\"\" -@ENABLE_CXX_TRUE@am__append_5 = libqseawkxx.la +@ENABLE_CXX_TRUE@am__append_5 = Awk.cpp StdAwk.cpp ################################################## # STATIC MODULES BUILT INTO MAIN LIBRARY @@ -212,9 +212,11 @@ am__DEPENDENCIES_4 = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) \ $(am__DEPENDENCIES_3) am__libqseawk_la_SOURCES_DIST = awk.c err.c tree.c parse.c run.c rec.c \ val.c val-imp.h fnc.c imap-imp.h misc.c misc-imp.h rio.c std.c \ - mod-dir.c mod-dir.h mod-math.c mod-math.h mod-str.c mod-str.h \ - mod-sys.c mod-sys.h -@ENABLE_STATIC_MODULE_TRUE@am__objects_1 = libqseawk_la-mod-dir.lo \ + Awk.cpp StdAwk.cpp mod-dir.c mod-dir.h mod-math.c mod-math.h \ + mod-str.c mod-str.h mod-sys.c mod-sys.h +@ENABLE_CXX_TRUE@am__objects_1 = libqseawk_la-Awk.lo \ +@ENABLE_CXX_TRUE@ libqseawk_la-StdAwk.lo +@ENABLE_STATIC_MODULE_TRUE@am__objects_2 = libqseawk_la-mod-dir.lo \ @ENABLE_STATIC_MODULE_TRUE@ libqseawk_la-mod-math.lo \ @ENABLE_STATIC_MODULE_TRUE@ libqseawk_la-mod-str.lo \ @ENABLE_STATIC_MODULE_TRUE@ libqseawk_la-mod-sys.lo @@ -222,20 +224,11 @@ am_libqseawk_la_OBJECTS = libqseawk_la-awk.lo libqseawk_la-err.lo \ libqseawk_la-tree.lo libqseawk_la-parse.lo libqseawk_la-run.lo \ libqseawk_la-rec.lo libqseawk_la-val.lo libqseawk_la-fnc.lo \ libqseawk_la-misc.lo libqseawk_la-rio.lo libqseawk_la-std.lo \ - $(am__objects_1) + $(am__objects_1) $(am__objects_2) libqseawk_la_OBJECTS = $(am_libqseawk_la_OBJECTS) -libqseawk_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(libqseawk_la_LDFLAGS) $(LDFLAGS) -o $@ -am__libqseawkxx_la_SOURCES_DIST = Awk.cpp StdAwk.cpp -@ENABLE_CXX_TRUE@am_libqseawkxx_la_OBJECTS = libqseawkxx_la-Awk.lo \ -@ENABLE_CXX_TRUE@ libqseawkxx_la-StdAwk.lo -libqseawkxx_la_OBJECTS = $(am_libqseawkxx_la_OBJECTS) -libqseawkxx_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \ - $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ - $(AM_CXXFLAGS) $(CXXFLAGS) $(libqseawkxx_la_LDFLAGS) \ - $(LDFLAGS) -o $@ -@ENABLE_CXX_TRUE@am_libqseawkxx_la_rpath = -rpath $(libdir) +libqseawk_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(libqseawk_la_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false @@ -252,6 +245,8 @@ DEFAULT_INCLUDES = depcomp = $(SHELL) $(top_srcdir)/ac/depcomp am__maybe_remake_depfiles = depfiles am__depfiles_remade = ./$(DEPDIR)/libqseawk_dir_la-mod-dir.Plo \ + ./$(DEPDIR)/libqseawk_la-Awk.Plo \ + ./$(DEPDIR)/libqseawk_la-StdAwk.Plo \ ./$(DEPDIR)/libqseawk_la-awk.Plo \ ./$(DEPDIR)/libqseawk_la-err.Plo \ ./$(DEPDIR)/libqseawk_la-fnc.Plo \ @@ -269,9 +264,7 @@ am__depfiles_remade = ./$(DEPDIR)/libqseawk_dir_la-mod-dir.Plo \ ./$(DEPDIR)/libqseawk_la-val.Plo \ ./$(DEPDIR)/libqseawk_math_la-mod-math.Plo \ ./$(DEPDIR)/libqseawk_str_la-mod-str.Plo \ - ./$(DEPDIR)/libqseawk_sys_la-mod-sys.Plo \ - ./$(DEPDIR)/libqseawkxx_la-Awk.Plo \ - ./$(DEPDIR)/libqseawkxx_la-StdAwk.Plo + ./$(DEPDIR)/libqseawk_sys_la-mod-sys.Plo am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) @@ -311,13 +304,12 @@ am__v_CXXLD_0 = @echo " CXXLD " $@; am__v_CXXLD_1 = SOURCES = $(libqseawk_dir_la_SOURCES) $(libqseawk_math_la_SOURCES) \ $(libqseawk_str_la_SOURCES) $(libqseawk_sys_la_SOURCES) \ - $(libqseawk_la_SOURCES) $(libqseawkxx_la_SOURCES) + $(libqseawk_la_SOURCES) DIST_SOURCES = $(am__libqseawk_dir_la_SOURCES_DIST) \ $(am__libqseawk_math_la_SOURCES_DIST) \ $(am__libqseawk_str_la_SOURCES_DIST) \ $(am__libqseawk_sys_la_SOURCES_DIST) \ - $(am__libqseawk_la_SOURCES_DIST) \ - $(am__libqseawkxx_la_SOURCES_DIST) + $(am__libqseawk_la_SOURCES_DIST) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -528,21 +520,16 @@ LIBADD_LIB_COMMON = -lqsecmn -lqsesi $(LIBM) $(am__append_1) \ $(am__append_2) DEPENDENCIES_LIB_COMMON = ../../lib/cmn/libqsecmn.la ../../lib/si/libqsesi.la noinst_HEADERS = awk-prv.h err.h rio.h val.h fnc.h misc.h parse.h run.h tree.h std.h -lib_LTLIBRARIES = libqseawk.la $(am__append_5) +lib_LTLIBRARIES = libqseawk.la libqseawk_la_SOURCES = awk.c err.c tree.c parse.c run.c rec.c val.c \ val-imp.h fnc.c imap-imp.h misc.c misc-imp.h rio.c std.c \ - $(am__append_6) + $(am__append_5) $(am__append_6) libqseawk_la_CPPFLAGS = $(CPPFLAGS_LIB_COMMON) libqseawk_la_LDFLAGS = $(LDFLAGS_LIB_COMMON) libqseawk_la_LIBADD = $(LIBADD_LIB_COMMON) $(am__append_7) \ $(am__append_9) $(am__append_11) $(am__append_13) libqseawk_la_DEPENDENCIES = $(DEPENDENCIES_LIB_COMMON) $(am__append_8) \ $(am__append_10) $(am__append_12) $(am__append_14) -@ENABLE_CXX_TRUE@libqseawkxx_la_SOURCES = Awk.cpp StdAwk.cpp -@ENABLE_CXX_TRUE@libqseawkxx_la_CPPFLAGS = $(CPPFLAGS_LIB_COMMON) -@ENABLE_CXX_TRUE@libqseawkxx_la_LDFLAGS = $(LDFLAGS_LIB_COMMON) -@ENABLE_CXX_TRUE@libqseawkxx_la_LIBADD = -lqseawk -lqsecmnxx -lqseawk -lqsesi -lqsecmn $(LIBADD_LIB_COMMON) -@ENABLE_CXX_TRUE@libqseawkxx_la_DEPENDENCIES = libqseawk.la ################################################## # DYNAMIC MODULES @@ -692,10 +679,7 @@ libqseawk-sys.la: $(libqseawk_sys_la_OBJECTS) $(libqseawk_sys_la_DEPENDENCIES) $ $(AM_V_CCLD)$(libqseawk_sys_la_LINK) $(am_libqseawk_sys_la_rpath) $(libqseawk_sys_la_OBJECTS) $(libqseawk_sys_la_LIBADD) $(LIBS) libqseawk.la: $(libqseawk_la_OBJECTS) $(libqseawk_la_DEPENDENCIES) $(EXTRA_libqseawk_la_DEPENDENCIES) - $(AM_V_CCLD)$(libqseawk_la_LINK) -rpath $(libdir) $(libqseawk_la_OBJECTS) $(libqseawk_la_LIBADD) $(LIBS) - -libqseawkxx.la: $(libqseawkxx_la_OBJECTS) $(libqseawkxx_la_DEPENDENCIES) $(EXTRA_libqseawkxx_la_DEPENDENCIES) - $(AM_V_CXXLD)$(libqseawkxx_la_LINK) $(am_libqseawkxx_la_rpath) $(libqseawkxx_la_OBJECTS) $(libqseawkxx_la_LIBADD) $(LIBS) + $(AM_V_CXXLD)$(libqseawk_la_LINK) -rpath $(libdir) $(libqseawk_la_OBJECTS) $(libqseawk_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -704,6 +688,8 @@ distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libqseawk_dir_la-mod-dir.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libqseawk_la-Awk.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libqseawk_la-StdAwk.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libqseawk_la-awk.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libqseawk_la-err.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libqseawk_la-fnc.Plo@am__quote@ # am--include-marker @@ -722,8 +708,6 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libqseawk_math_la-mod-math.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libqseawk_str_la-mod-str.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libqseawk_sys_la-mod-sys.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libqseawkxx_la-Awk.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libqseawkxx_la-StdAwk.Plo@am__quote@ # am--include-marker $(am__depfiles_remade): @$(MKDIR_P) $(@D) @@ -906,19 +890,19 @@ libqseawk_la-mod-sys.lo: mod-sys.c @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< -libqseawkxx_la-Awk.lo: Awk.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libqseawkxx_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libqseawkxx_la-Awk.lo -MD -MP -MF $(DEPDIR)/libqseawkxx_la-Awk.Tpo -c -o libqseawkxx_la-Awk.lo `test -f 'Awk.cpp' || echo '$(srcdir)/'`Awk.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libqseawkxx_la-Awk.Tpo $(DEPDIR)/libqseawkxx_la-Awk.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Awk.cpp' object='libqseawkxx_la-Awk.lo' libtool=yes @AMDEPBACKSLASH@ +libqseawk_la-Awk.lo: Awk.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libqseawk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libqseawk_la-Awk.lo -MD -MP -MF $(DEPDIR)/libqseawk_la-Awk.Tpo -c -o libqseawk_la-Awk.lo `test -f 'Awk.cpp' || echo '$(srcdir)/'`Awk.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libqseawk_la-Awk.Tpo $(DEPDIR)/libqseawk_la-Awk.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Awk.cpp' object='libqseawk_la-Awk.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libqseawkxx_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libqseawkxx_la-Awk.lo `test -f 'Awk.cpp' || echo '$(srcdir)/'`Awk.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libqseawk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libqseawk_la-Awk.lo `test -f 'Awk.cpp' || echo '$(srcdir)/'`Awk.cpp -libqseawkxx_la-StdAwk.lo: StdAwk.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libqseawkxx_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libqseawkxx_la-StdAwk.lo -MD -MP -MF $(DEPDIR)/libqseawkxx_la-StdAwk.Tpo -c -o libqseawkxx_la-StdAwk.lo `test -f 'StdAwk.cpp' || echo '$(srcdir)/'`StdAwk.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libqseawkxx_la-StdAwk.Tpo $(DEPDIR)/libqseawkxx_la-StdAwk.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='StdAwk.cpp' object='libqseawkxx_la-StdAwk.lo' libtool=yes @AMDEPBACKSLASH@ +libqseawk_la-StdAwk.lo: StdAwk.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libqseawk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libqseawk_la-StdAwk.lo -MD -MP -MF $(DEPDIR)/libqseawk_la-StdAwk.Tpo -c -o libqseawk_la-StdAwk.lo `test -f 'StdAwk.cpp' || echo '$(srcdir)/'`StdAwk.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libqseawk_la-StdAwk.Tpo $(DEPDIR)/libqseawk_la-StdAwk.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='StdAwk.cpp' object='libqseawk_la-StdAwk.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libqseawkxx_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libqseawkxx_la-StdAwk.lo `test -f 'StdAwk.cpp' || echo '$(srcdir)/'`StdAwk.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libqseawk_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libqseawk_la-StdAwk.lo `test -f 'StdAwk.cpp' || echo '$(srcdir)/'`StdAwk.cpp mostlyclean-libtool: -rm -f *.lo @@ -1055,6 +1039,8 @@ clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ distclean: distclean-am -rm -f ./$(DEPDIR)/libqseawk_dir_la-mod-dir.Plo + -rm -f ./$(DEPDIR)/libqseawk_la-Awk.Plo + -rm -f ./$(DEPDIR)/libqseawk_la-StdAwk.Plo -rm -f ./$(DEPDIR)/libqseawk_la-awk.Plo -rm -f ./$(DEPDIR)/libqseawk_la-err.Plo -rm -f ./$(DEPDIR)/libqseawk_la-fnc.Plo @@ -1073,8 +1059,6 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/libqseawk_math_la-mod-math.Plo -rm -f ./$(DEPDIR)/libqseawk_str_la-mod-str.Plo -rm -f ./$(DEPDIR)/libqseawk_sys_la-mod-sys.Plo - -rm -f ./$(DEPDIR)/libqseawkxx_la-Awk.Plo - -rm -f ./$(DEPDIR)/libqseawkxx_la-StdAwk.Plo -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags @@ -1121,6 +1105,8 @@ installcheck-am: maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/libqseawk_dir_la-mod-dir.Plo + -rm -f ./$(DEPDIR)/libqseawk_la-Awk.Plo + -rm -f ./$(DEPDIR)/libqseawk_la-StdAwk.Plo -rm -f ./$(DEPDIR)/libqseawk_la-awk.Plo -rm -f ./$(DEPDIR)/libqseawk_la-err.Plo -rm -f ./$(DEPDIR)/libqseawk_la-fnc.Plo @@ -1139,8 +1125,6 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/libqseawk_math_la-mod-math.Plo -rm -f ./$(DEPDIR)/libqseawk_str_la-mod-str.Plo -rm -f ./$(DEPDIR)/libqseawk_sys_la-mod-sys.Plo - -rm -f ./$(DEPDIR)/libqseawkxx_la-Awk.Plo - -rm -f ./$(DEPDIR)/libqseawkxx_la-StdAwk.Plo -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic diff --git a/qse/lib/cmn/Makefile.am b/qse/lib/cmn/Makefile.am index 141c98d0..36343610 100644 --- a/qse/lib/cmn/Makefile.am +++ b/qse/lib/cmn/Makefile.am @@ -124,13 +124,14 @@ libqsecmn_la_LIBADD = $(SOCKET_LIBS) $(QUADMATH_LIBS) if ENABLE_CXX -lib_LTLIBRARIES += libqsecmnxx.la -libqsecmnxx_la_SOURCES = \ - ErrorGrab.cpp Mmgr.cpp StdMmgr.cpp HeapMmgr.cpp Mmged.cpp Mpool.cpp String.cpp -libqsecmnxx_la_LDFLAGS = -version-info 1:0:0 -no-undefined -libqsecmnxx_la_LIBADD = -lqsecmn -libqsecmnxx_la_DEPENDENCIES = libqsecmn.la - +libqsecmn_la_SOURCES += \ + ErrorGrab.cpp \ + Mmgr.cpp \ + StdMmgr.cpp \ + HeapMmgr.cpp \ + Mmged.cpp \ + Mpool.cpp \ + String.cpp endif diff --git a/qse/lib/cmn/Makefile.in b/qse/lib/cmn/Makefile.in index 11573914..94ae6f8c 100644 --- a/qse/lib/cmn/Makefile.in +++ b/qse/lib/cmn/Makefile.in @@ -91,8 +91,15 @@ build_triplet = @build@ host_triplet = @host@ @ENABLE_BUNDLED_UNICODE_TRUE@am__append_1 = uni.c @ENABLE_XCMGRS_TRUE@am__append_2 = cp949.c cp950.c -@ENABLE_CXX_TRUE@am__append_3 = libqsecmnxx.la -@ENABLE_CXX_FALSE@libqsecmnxx_la_DEPENDENCIES = +@ENABLE_CXX_TRUE@am__append_3 = \ +@ENABLE_CXX_TRUE@ ErrorGrab.cpp \ +@ENABLE_CXX_TRUE@ Mmgr.cpp \ +@ENABLE_CXX_TRUE@ StdMmgr.cpp \ +@ENABLE_CXX_TRUE@ HeapMmgr.cpp \ +@ENABLE_CXX_TRUE@ Mmged.cpp \ +@ENABLE_CXX_TRUE@ Mpool.cpp \ +@ENABLE_CXX_TRUE@ String.cpp + subdir = lib/cmn ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_check_sign.m4 \ @@ -154,9 +161,13 @@ am__libqsecmn_la_SOURCES_DIST = alg-base64.c alg-rand.c alg-search.c \ str-set.c str-spl.c str-spn.c str-str.c str-subst.c str-tok.c \ str-trm.c str-type.c str-word.c time.c tmr.c tre.c tre-ast.c \ tre-compile.c tre-match-bt.c tre-match-pa.c tre-parse.c \ - tre-stack.c uri.c utf8.c xma.c uni.c cp949.c cp950.c + tre-stack.c uri.c utf8.c xma.c uni.c cp949.c cp950.c \ + ErrorGrab.cpp Mmgr.cpp StdMmgr.cpp HeapMmgr.cpp Mmged.cpp \ + Mpool.cpp String.cpp @ENABLE_BUNDLED_UNICODE_TRUE@am__objects_1 = uni.lo @ENABLE_XCMGRS_TRUE@am__objects_2 = cp949.lo cp950.lo +@ENABLE_CXX_TRUE@am__objects_3 = ErrorGrab.lo Mmgr.lo StdMmgr.lo \ +@ENABLE_CXX_TRUE@ HeapMmgr.lo Mmged.lo Mpool.lo String.lo am_libqsecmn_la_OBJECTS = alg-base64.lo alg-rand.lo alg-search.lo \ alg-sort.lo arr.lo assert.lo chr.lo dll.lo env.lo gdl.lo \ htb.lo htl.lo fma.lo fmt-intmax.lo fmt-out.lo hton.lo hwad.lo \ @@ -171,26 +182,16 @@ am_libqsecmn_la_OBJECTS = alg-base64.lo alg-rand.lo alg-search.lo \ str-subst.lo str-tok.lo str-trm.lo str-type.lo str-word.lo \ time.lo tmr.lo tre.lo tre-ast.lo tre-compile.lo \ tre-match-bt.lo tre-match-pa.lo tre-parse.lo tre-stack.lo \ - uri.lo utf8.lo xma.lo $(am__objects_1) $(am__objects_2) + uri.lo utf8.lo xma.lo $(am__objects_1) $(am__objects_2) \ + $(am__objects_3) libqsecmn_la_OBJECTS = $(am_libqsecmn_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = -libqsecmn_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(libqsecmn_la_LDFLAGS) $(LDFLAGS) -o $@ -am__libqsecmnxx_la_SOURCES_DIST = ErrorGrab.cpp Mmgr.cpp StdMmgr.cpp \ - HeapMmgr.cpp Mmged.cpp Mpool.cpp String.cpp -@ENABLE_CXX_TRUE@am_libqsecmnxx_la_OBJECTS = ErrorGrab.lo Mmgr.lo \ -@ENABLE_CXX_TRUE@ StdMmgr.lo HeapMmgr.lo Mmged.lo Mpool.lo \ -@ENABLE_CXX_TRUE@ String.lo -libqsecmnxx_la_OBJECTS = $(am_libqsecmnxx_la_OBJECTS) -libqsecmnxx_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \ - $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ - $(AM_CXXFLAGS) $(CXXFLAGS) $(libqsecmnxx_la_LDFLAGS) \ - $(LDFLAGS) -o $@ -@ENABLE_CXX_TRUE@am_libqsecmnxx_la_rpath = -rpath $(libdir) +libqsecmn_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(libqsecmn_la_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false @@ -285,9 +286,8 @@ AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) am__v_CXXLD_0 = @echo " CXXLD " $@; am__v_CXXLD_1 = -SOURCES = $(libqsecmn_la_SOURCES) $(libqsecmnxx_la_SOURCES) -DIST_SOURCES = $(am__libqsecmn_la_SOURCES_DIST) \ - $(am__libqsecmnxx_la_SOURCES_DIST) +SOURCES = $(libqsecmn_la_SOURCES) +DIST_SOURCES = $(am__libqsecmn_la_SOURCES_DIST) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -485,7 +485,7 @@ AM_CPPFLAGS = \ -I$(top_builddir)/include \ -I$(top_srcdir)/include -lib_LTLIBRARIES = libqsecmn.la $(am__append_3) +lib_LTLIBRARIES = libqsecmn.la noinst_HEADERS = \ cp949.h \ cp950.h \ @@ -523,15 +523,10 @@ libqsecmn_la_SOURCES = alg-base64.c alg-rand.c alg-search.c alg-sort.c \ str-set.c str-spl.c str-spn.c str-str.c str-subst.c str-tok.c \ str-trm.c str-type.c str-word.c time.c tmr.c tre.c tre-ast.c \ tre-compile.c tre-match-bt.c tre-match-pa.c tre-parse.c \ - tre-stack.c uri.c utf8.c xma.c $(am__append_1) $(am__append_2) + tre-stack.c uri.c utf8.c xma.c $(am__append_1) $(am__append_2) \ + $(am__append_3) libqsecmn_la_LDFLAGS = -version-info 1:0:0 -no-undefined libqsecmn_la_LIBADD = $(SOCKET_LIBS) $(QUADMATH_LIBS) -@ENABLE_CXX_TRUE@libqsecmnxx_la_SOURCES = \ -@ENABLE_CXX_TRUE@ ErrorGrab.cpp Mmgr.cpp StdMmgr.cpp HeapMmgr.cpp Mmged.cpp Mpool.cpp String.cpp - -@ENABLE_CXX_TRUE@libqsecmnxx_la_LDFLAGS = -version-info 1:0:0 -no-undefined -@ENABLE_CXX_TRUE@libqsecmnxx_la_LIBADD = -lqsecmn -@ENABLE_CXX_TRUE@libqsecmnxx_la_DEPENDENCIES = libqsecmn.la all: all-am .SUFFIXES: @@ -602,10 +597,7 @@ clean-libLTLIBRARIES: } libqsecmn.la: $(libqsecmn_la_OBJECTS) $(libqsecmn_la_DEPENDENCIES) $(EXTRA_libqsecmn_la_DEPENDENCIES) - $(AM_V_CCLD)$(libqsecmn_la_LINK) -rpath $(libdir) $(libqsecmn_la_OBJECTS) $(libqsecmn_la_LIBADD) $(LIBS) - -libqsecmnxx.la: $(libqsecmnxx_la_OBJECTS) $(libqsecmnxx_la_DEPENDENCIES) $(EXTRA_libqsecmnxx_la_DEPENDENCIES) - $(AM_V_CXXLD)$(libqsecmnxx_la_LINK) $(am_libqsecmnxx_la_rpath) $(libqsecmnxx_la_OBJECTS) $(libqsecmnxx_la_LIBADD) $(LIBS) + $(AM_V_CXXLD)$(libqsecmn_la_LINK) -rpath $(libdir) $(libqsecmn_la_OBJECTS) $(libqsecmn_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) diff --git a/qse/lib/cmn/Mmgr.cpp b/qse/lib/cmn/Mmgr.cpp index 6e72e704..2fd35a63 100644 --- a/qse/lib/cmn/Mmgr.cpp +++ b/qse/lib/cmn/Mmgr.cpp @@ -50,7 +50,7 @@ void Mmgr::free_mem (mmgr_t* mmgr, void* ptr) QSE_CPP_NOEXCEPT void* Mmgr::callocate (qse_size_t n, bool raise_exception) /*QSE_CPP_THREXCEPT1(MemoryError)*/ { void* ptr = this->allocate(n, raise_exception); - QSE_MEMSET (ptr, 0, n); + if (ptr) QSE_MEMSET (ptr, 0, n); return ptr; } diff --git a/qse/lib/sed/Makefile.am b/qse/lib/sed/Makefile.am index c30ded4e..f3e0b54e 100644 --- a/qse/lib/sed/Makefile.am +++ b/qse/lib/sed/Makefile.am @@ -13,10 +13,6 @@ libqsesed_la_LIBADD = -lqsecmn -lqsesi libqsesed_la_DEPENDENCIES = ../../lib/cmn/libqsecmn.la ../../lib/si/libqsesi.la if ENABLE_CXX -lib_LTLIBRARIES += libqsesedxx.la -libqsesedxx_la_SOURCES = Sed.cpp StdSed.cpp -libqsesedxx_la_LDFLAGS = -L. -L../cmn -L../si -version-info 1:0:0 -no-undefined -libqsesedxx_la_LIBADD = -lqsesed -lqsecmnxx -lqsesi -lqsecmn -libqsesedxx_la_DEPENDENCIES = libqsesed.la ../../lib/cmn/libqsecmnxx.la ../../lib/si/libqsesi.la ../../lib/cmn/libqsecmn.la +libqsesed_la_SOURCES += Sed.cpp StdSed.cpp endif diff --git a/qse/lib/sed/Makefile.in b/qse/lib/sed/Makefile.in index 448faf24..f3afab09 100644 --- a/qse/lib/sed/Makefile.in +++ b/qse/lib/sed/Makefile.in @@ -89,8 +89,7 @@ PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ -@ENABLE_CXX_TRUE@am__append_1 = libqsesedxx.la -@ENABLE_CXX_FALSE@libqsesedxx_la_DEPENDENCIES = +@ENABLE_CXX_TRUE@am__append_1 = Sed.cpp StdSed.cpp subdir = lib/sed ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_check_sign.m4 \ @@ -137,23 +136,17 @@ am__uninstall_files_from_dir = { \ } am__installdirs = "$(DESTDIR)$(libdir)" LTLIBRARIES = $(lib_LTLIBRARIES) -am_libqsesed_la_OBJECTS = sed.lo err.lo std.lo +am__libqsesed_la_SOURCES_DIST = sed.c err.c std.c Sed.cpp StdSed.cpp +@ENABLE_CXX_TRUE@am__objects_1 = Sed.lo StdSed.lo +am_libqsesed_la_OBJECTS = sed.lo err.lo std.lo $(am__objects_1) libqsesed_la_OBJECTS = $(am_libqsesed_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = -libqsesed_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(libqsesed_la_LDFLAGS) $(LDFLAGS) -o $@ -am__libqsesedxx_la_SOURCES_DIST = Sed.cpp StdSed.cpp -@ENABLE_CXX_TRUE@am_libqsesedxx_la_OBJECTS = Sed.lo StdSed.lo -libqsesedxx_la_OBJECTS = $(am_libqsesedxx_la_OBJECTS) -libqsesedxx_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \ - $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ - $(AM_CXXFLAGS) $(CXXFLAGS) $(libqsesedxx_la_LDFLAGS) \ - $(LDFLAGS) -o $@ -@ENABLE_CXX_TRUE@am_libqsesedxx_la_rpath = -rpath $(libdir) +libqsesed_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(libqsesed_la_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false @@ -208,9 +201,8 @@ AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) am__v_CXXLD_0 = @echo " CXXLD " $@; am__v_CXXLD_1 = -SOURCES = $(libqsesed_la_SOURCES) $(libqsesedxx_la_SOURCES) -DIST_SOURCES = $(libqsesed_la_SOURCES) \ - $(am__libqsesedxx_la_SOURCES_DIST) +SOURCES = $(libqsesed_la_SOURCES) +DIST_SOURCES = $(am__libqsesed_la_SOURCES_DIST) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -409,15 +401,11 @@ AM_CPPFLAGS = \ -I$(top_srcdir)/include noinst_HEADERS = sed-prv.h -lib_LTLIBRARIES = libqsesed.la $(am__append_1) -libqsesed_la_SOURCES = sed.c err.c std.c +lib_LTLIBRARIES = libqsesed.la +libqsesed_la_SOURCES = sed.c err.c std.c $(am__append_1) libqsesed_la_LDFLAGS = -L../cmn -L../si -version-info 1:0:0 -no-undefined libqsesed_la_LIBADD = -lqsecmn -lqsesi libqsesed_la_DEPENDENCIES = ../../lib/cmn/libqsecmn.la ../../lib/si/libqsesi.la -@ENABLE_CXX_TRUE@libqsesedxx_la_SOURCES = Sed.cpp StdSed.cpp -@ENABLE_CXX_TRUE@libqsesedxx_la_LDFLAGS = -L. -L../cmn -L../si -version-info 1:0:0 -no-undefined -@ENABLE_CXX_TRUE@libqsesedxx_la_LIBADD = -lqsesed -lqsecmnxx -lqsesi -lqsecmn -@ENABLE_CXX_TRUE@libqsesedxx_la_DEPENDENCIES = libqsesed.la ../../lib/cmn/libqsecmnxx.la ../../lib/si/libqsesi.la ../../lib/cmn/libqsecmn.la all: all-am .SUFFIXES: @@ -488,10 +476,7 @@ clean-libLTLIBRARIES: } libqsesed.la: $(libqsesed_la_OBJECTS) $(libqsesed_la_DEPENDENCIES) $(EXTRA_libqsesed_la_DEPENDENCIES) - $(AM_V_CCLD)$(libqsesed_la_LINK) -rpath $(libdir) $(libqsesed_la_OBJECTS) $(libqsesed_la_LIBADD) $(LIBS) - -libqsesedxx.la: $(libqsesedxx_la_OBJECTS) $(libqsesedxx_la_DEPENDENCIES) $(EXTRA_libqsesedxx_la_DEPENDENCIES) - $(AM_V_CXXLD)$(libqsesedxx_la_LINK) $(am_libqsesedxx_la_rpath) $(libqsesedxx_la_OBJECTS) $(libqsesedxx_la_LIBADD) $(LIBS) + $(AM_V_CXXLD)$(libqsesed_la_LINK) -rpath $(libdir) $(libqsesed_la_OBJECTS) $(libqsesed_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) diff --git a/qse/lib/si/Makefile.am b/qse/lib/si/Makefile.am index 10e0b7e1..63e58f1f 100644 --- a/qse/lib/si/Makefile.am +++ b/qse/lib/si/Makefile.am @@ -49,16 +49,12 @@ libqsesi_la_LIBADD = -lqsecmn $(PTHREAD_LIBS) $(SSL_LIBS) libqsesi_la_DEPENDENCIES = ../../lib/cmn/libqsecmn.la if ENABLE_CXX -lib_LTLIBRARIES += libqsesixx.la -libqsesixx_la_SOURCES = \ +libqsesi_la_SOURCES += \ App.cpp \ Path.cpp \ SocketAddress.cpp \ Socket.cpp \ TcpServer.cpp \ Thread.cpp -libqsesixx_la_LDFLAGS = -L. -L../cmn -version-info 1:0:0 -no-undefined -libqsesixx_la_LIBADD = -lqsecmnxx -lqsesi -lqsecmn -libqsesixx_la_DEPENDENCIES = ../../lib/cmn/libqsecmnxx.la libqsesi.la ../../lib/cmn/libqsecmn.la endif diff --git a/qse/lib/si/Makefile.in b/qse/lib/si/Makefile.in index 683d3282..632e22e8 100644 --- a/qse/lib/si/Makefile.in +++ b/qse/lib/si/Makefile.in @@ -89,8 +89,14 @@ PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ -@ENABLE_CXX_TRUE@am__append_1 = libqsesixx.la -@ENABLE_CXX_FALSE@libqsesixx_la_DEPENDENCIES = +@ENABLE_CXX_TRUE@am__append_1 = \ +@ENABLE_CXX_TRUE@ App.cpp \ +@ENABLE_CXX_TRUE@ Path.cpp \ +@ENABLE_CXX_TRUE@ SocketAddress.cpp \ +@ENABLE_CXX_TRUE@ Socket.cpp \ +@ENABLE_CXX_TRUE@ TcpServer.cpp \ +@ENABLE_CXX_TRUE@ Thread.cpp + subdir = lib/si ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_check_sign.m4 \ @@ -138,6 +144,14 @@ am__uninstall_files_from_dir = { \ am__installdirs = "$(DESTDIR)$(libdir)" LTLIBRARIES = $(lib_LTLIBRARIES) am__DEPENDENCIES_1 = +am__libqsesi_la_SOURCES_DIST = cnd.c dir.c fio.c fs.c fs-attr.c \ + fs-copy.c fs-delete.c fs-err.c fs-make.c fs-move.c fs-util.c \ + glob.c intr.c log.c mtx.c mux.c netlink.c nwad.c nwad-skad.c \ + nwif.c nwif-cfg.c nwio.c os.c pio.c rwl.c sck.c sinfo.c sio.c \ + task.c thr.c thr-prv.h tio.c App.cpp Path.cpp \ + SocketAddress.cpp Socket.cpp TcpServer.cpp Thread.cpp +@ENABLE_CXX_TRUE@am__objects_1 = App.lo Path.lo SocketAddress.lo \ +@ENABLE_CXX_TRUE@ Socket.lo TcpServer.lo Thread.lo am_libqsesi_la_OBJECTS = libqsesi_la-cnd.lo libqsesi_la-dir.lo \ libqsesi_la-fio.lo libqsesi_la-fs.lo libqsesi_la-fs-attr.lo \ libqsesi_la-fs-copy.lo libqsesi_la-fs-delete.lo \ @@ -150,26 +164,15 @@ am_libqsesi_la_OBJECTS = libqsesi_la-cnd.lo libqsesi_la-dir.lo \ libqsesi_la-nwio.lo libqsesi_la-os.lo libqsesi_la-pio.lo \ libqsesi_la-rwl.lo libqsesi_la-sck.lo libqsesi_la-sinfo.lo \ libqsesi_la-sio.lo libqsesi_la-task.lo libqsesi_la-thr.lo \ - libqsesi_la-tio.lo + libqsesi_la-tio.lo $(am__objects_1) libqsesi_la_OBJECTS = $(am_libqsesi_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = -libqsesi_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libqsesi_la_CFLAGS) \ - $(CFLAGS) $(libqsesi_la_LDFLAGS) $(LDFLAGS) -o $@ -am__libqsesixx_la_SOURCES_DIST = App.cpp Path.cpp SocketAddress.cpp \ - Socket.cpp TcpServer.cpp Thread.cpp -@ENABLE_CXX_TRUE@am_libqsesixx_la_OBJECTS = App.lo Path.lo \ -@ENABLE_CXX_TRUE@ SocketAddress.lo Socket.lo TcpServer.lo \ -@ENABLE_CXX_TRUE@ Thread.lo -libqsesixx_la_OBJECTS = $(am_libqsesixx_la_OBJECTS) -libqsesixx_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \ - $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ - $(AM_CXXFLAGS) $(CXXFLAGS) $(libqsesixx_la_LDFLAGS) $(LDFLAGS) \ - -o $@ -@ENABLE_CXX_TRUE@am_libqsesixx_la_rpath = -rpath $(libdir) +libqsesi_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(libqsesi_la_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false @@ -255,9 +258,8 @@ AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) am__v_CXXLD_0 = @echo " CXXLD " $@; am__v_CXXLD_1 = -SOURCES = $(libqsesi_la_SOURCES) $(libqsesixx_la_SOURCES) -DIST_SOURCES = $(libqsesi_la_SOURCES) \ - $(am__libqsesixx_la_SOURCES_DIST) +SOURCES = $(libqsesi_la_SOURCES) +DIST_SOURCES = $(am__libqsesi_la_SOURCES_DIST) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -459,56 +461,16 @@ noinst_HEADERS = \ fs-prv.h \ glob-imp.h -lib_LTLIBRARIES = libqsesi.la $(am__append_1) -libqsesi_la_SOURCES = \ - cnd.c \ - dir.c \ - fio.c \ - fs.c \ - fs-attr.c \ - fs-copy.c \ - fs-delete.c \ - fs-err.c \ - fs-make.c \ - fs-move.c \ - fs-util.c \ - glob.c \ - intr.c \ - log.c \ - mtx.c \ - mux.c \ - netlink.c \ - nwad.c \ - nwad-skad.c \ - nwif.c \ - nwif-cfg.c \ - nwio.c \ - os.c \ - pio.c \ - rwl.c \ - sck.c \ - sinfo.c \ - sio.c \ - task.c \ - thr.c \ - thr-prv.h \ - tio.c - +lib_LTLIBRARIES = libqsesi.la +libqsesi_la_SOURCES = cnd.c dir.c fio.c fs.c fs-attr.c fs-copy.c \ + fs-delete.c fs-err.c fs-make.c fs-move.c fs-util.c glob.c \ + intr.c log.c mtx.c mux.c netlink.c nwad.c nwad-skad.c nwif.c \ + nwif-cfg.c nwio.c os.c pio.c rwl.c sck.c sinfo.c sio.c task.c \ + thr.c thr-prv.h tio.c $(am__append_1) libqsesi_la_CFLAGS = $(PTHREAD_CFLAGS) libqsesi_la_LDFLAGS = -L../cmn -version-info 1:0:0 -no-undefined libqsesi_la_LIBADD = -lqsecmn $(PTHREAD_LIBS) $(SSL_LIBS) libqsesi_la_DEPENDENCIES = ../../lib/cmn/libqsecmn.la -@ENABLE_CXX_TRUE@libqsesixx_la_SOURCES = \ -@ENABLE_CXX_TRUE@ App.cpp \ -@ENABLE_CXX_TRUE@ Path.cpp \ -@ENABLE_CXX_TRUE@ SocketAddress.cpp \ -@ENABLE_CXX_TRUE@ Socket.cpp \ -@ENABLE_CXX_TRUE@ TcpServer.cpp \ -@ENABLE_CXX_TRUE@ Thread.cpp - -@ENABLE_CXX_TRUE@libqsesixx_la_LDFLAGS = -L. -L../cmn -version-info 1:0:0 -no-undefined -@ENABLE_CXX_TRUE@libqsesixx_la_LIBADD = -lqsecmnxx -lqsesi -lqsecmn -@ENABLE_CXX_TRUE@libqsesixx_la_DEPENDENCIES = ../../lib/cmn/libqsecmnxx.la libqsesi.la ../../lib/cmn/libqsecmn.la all: all-am .SUFFIXES: @@ -579,10 +541,7 @@ clean-libLTLIBRARIES: } libqsesi.la: $(libqsesi_la_OBJECTS) $(libqsesi_la_DEPENDENCIES) $(EXTRA_libqsesi_la_DEPENDENCIES) - $(AM_V_CCLD)$(libqsesi_la_LINK) -rpath $(libdir) $(libqsesi_la_OBJECTS) $(libqsesi_la_LIBADD) $(LIBS) - -libqsesixx.la: $(libqsesixx_la_OBJECTS) $(libqsesixx_la_DEPENDENCIES) $(EXTRA_libqsesixx_la_DEPENDENCIES) - $(AM_V_CXXLD)$(libqsesixx_la_LINK) $(am_libqsesixx_la_rpath) $(libqsesixx_la_OBJECTS) $(libqsesixx_la_LIBADD) $(LIBS) + $(AM_V_CXXLD)$(libqsesi_la_LINK) -rpath $(libdir) $(libqsesi_la_OBJECTS) $(libqsesi_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) diff --git a/qse/lib/si/Socket.cpp b/qse/lib/si/Socket.cpp index 48cf943f..bcc263ea 100644 --- a/qse/lib/si/Socket.cpp +++ b/qse/lib/si/Socket.cpp @@ -36,6 +36,7 @@ #include #include #include +#include // strerror #if defined(HAVE_NET_IF_H) # include @@ -56,7 +57,7 @@ QSE_BEGIN_NAMESPACE(QSE) #include "../cmn/syserr.h" IMPLEMENT_SYSERR_TO_ERRNUM (Socket::ErrorNumber, Socket::) -Socket::Socket () QSE_CPP_NOEXCEPT: handle(QSE_INVALID_SCKHND), domain(-1), errcode(E_ENOERR) +Socket::Socket () QSE_CPP_NOEXCEPT: handle(QSE_INVALID_SCKHND), domain(-1) { } @@ -92,7 +93,7 @@ open_socket: goto open_socket; } #endif - this->setErrorNumber (syserr_to_errnum(errno)); + this->setErrorFmt (syserr_to_errnum(errno), QSE_T("%hs"), strerror(errno)); return -1; } else @@ -108,7 +109,7 @@ open_socket: if (fcntl_v == -1) { fcntl_failure: - this->setErrorNumber (syserr_to_errnum(errno)); + this->setErrorFmt (syserr_to_errnum(errno), QSE_T("%hs"), strerror(errno)); ::close (x); return -1; } @@ -157,7 +158,7 @@ int Socket::getSockName (SocketAddress& addr) QSE_CPP_NOEXCEPT QSE_ASSERT (qse_is_sck_valid(this->handle)); qse_sck_len_t len = addr.getAddrCapa(); int n = ::getsockname(this->handle, (struct sockaddr*)addr.getAddrPtr(), &len); - if (n == -1) this->setErrorNumber (syserr_to_errnum(errno)); + if (n == -1) this->setErrorFmt (syserr_to_errnum(errno), QSE_T("%hs"), strerror(errno)); return n; } @@ -166,7 +167,7 @@ int Socket::getPeerName (SocketAddress& addr) QSE_CPP_NOEXCEPT QSE_ASSERT (qse_is_sck_valid(this->handle)); qse_sck_len_t len = addr.getAddrCapa(); int n = ::getpeername(this->handle, (struct sockaddr*)addr.getAddrPtr(), &len); - if (n == -1) this->setErrorNumber (syserr_to_errnum(errno)); + if (n == -1) this->setErrorFmt (syserr_to_errnum(errno), QSE_T("%hs"), strerror(errno)); return n; } @@ -174,7 +175,7 @@ int Socket::getOption (int level, int optname, void* optval, qse_sck_len_t* optl { QSE_ASSERT (qse_is_sck_valid(this->handle)); int n = ::getsockopt(this->handle, level, optname, (char*)optval, optlen); - if (n == -1) this->setErrorNumber (syserr_to_errnum(errno)); + if (n == -1) this->setErrorFmt (syserr_to_errnum(errno), QSE_T("%hs"), strerror(errno)); return n; } @@ -182,24 +183,24 @@ int Socket::setOption (int level, int optname, const void* optval, qse_sck_len_t { QSE_ASSERT (qse_is_sck_valid(this->handle)); int n = ::setsockopt(this->handle, level, optname, (const char*)optval, optlen); - if (n == -1) this->setErrorNumber (syserr_to_errnum(errno)); + if (n == -1) this->setErrorFmt (syserr_to_errnum(errno), QSE_T("%hs"), strerror(errno)); return n; } int Socket::setDebug (int n) QSE_CPP_NOEXCEPT { - return this->setOption (SOL_SOCKET, SO_DEBUG, (char*)&n, QSE_SIZEOF(n)); + return this->setOption(SOL_SOCKET, SO_DEBUG, (char*)&n, QSE_SIZEOF(n)); }; int Socket::setReuseAddr (int n) QSE_CPP_NOEXCEPT { - return this->setOption (SOL_SOCKET, SO_REUSEADDR, (char*)&n, QSE_SIZEOF(n)); + return this->setOption(SOL_SOCKET, SO_REUSEADDR, (char*)&n, QSE_SIZEOF(n)); } int Socket::setReusePort (int n) QSE_CPP_NOEXCEPT { #if defined(SO_REUSEPORT) - return this->setOption (SOL_SOCKET, SO_REUSEPORT, (char*)&n, QSE_SIZEOF(n)); + return this->setOption(SOL_SOCKET, SO_REUSEPORT, (char*)&n, QSE_SIZEOF(n)); #else this->setErrorNumber (E_ENOIMPL); return -1; @@ -208,7 +209,7 @@ int Socket::setReusePort (int n) QSE_CPP_NOEXCEPT int Socket::setKeepAlive (int n, int keepidle, int keepintvl, int keepcnt) QSE_CPP_NOEXCEPT { - if (this->setOption (SOL_SOCKET, SO_KEEPALIVE, (char*)&n, QSE_SIZEOF(n)) <= -1) return -1; + if (this->setOption(SOL_SOCKET, SO_KEEPALIVE, (char*)&n, QSE_SIZEOF(n)) <= -1) return -1; // the following values are just hints. // i don't care about success and failure @@ -226,17 +227,17 @@ int Socket::setKeepAlive (int n, int keepidle, int keepintvl, int keepcnt) QSE_C int Socket::setBroadcast (int n) QSE_CPP_NOEXCEPT { - return this->setOption (SOL_SOCKET, SO_BROADCAST, (char*)&n, QSE_SIZEOF(n)); + return this->setOption(SOL_SOCKET, SO_BROADCAST, (char*)&n, QSE_SIZEOF(n)); } int Socket::setSendBuf (unsigned int size) QSE_CPP_NOEXCEPT { - return this->setOption (SOL_SOCKET, SO_SNDBUF, (char*)&size, QSE_SIZEOF(size)); + return this->setOption(SOL_SOCKET, SO_SNDBUF, (char*)&size, QSE_SIZEOF(size)); } int Socket::setRecvBuf (unsigned int size) QSE_CPP_NOEXCEPT { - return this->setOption (SOL_SOCKET, SO_RCVBUF, (char*)&size, QSE_SIZEOF(size)); + return this->setOption(SOL_SOCKET, SO_RCVBUF, (char*)&size, QSE_SIZEOF(size)); } int Socket::setLingerOn (int sec) QSE_CPP_NOEXCEPT @@ -244,7 +245,7 @@ int Socket::setLingerOn (int sec) QSE_CPP_NOEXCEPT struct linger lng; lng.l_onoff = 1; lng.l_linger = sec; - return this->setOption (SOL_SOCKET, SO_LINGER, (char*)&lng, QSE_SIZEOF(lng)); + return this->setOption(SOL_SOCKET, SO_LINGER, (char*)&lng, QSE_SIZEOF(lng)); } int Socket::setLingerOff () QSE_CPP_NOEXCEPT @@ -252,13 +253,13 @@ int Socket::setLingerOff () QSE_CPP_NOEXCEPT struct linger lng; lng.l_onoff = 0; lng.l_linger = 0; - return this->setOption (SOL_SOCKET, SO_LINGER, (char*)&lng, QSE_SIZEOF(lng)); + return this->setOption(SOL_SOCKET, SO_LINGER, (char*)&lng, QSE_SIZEOF(lng)); } int Socket::setTcpNodelay (int n) QSE_CPP_NOEXCEPT { #if defined(TCP_NODELAY) - return this->setOption (IPPROTO_TCP, TCP_NODELAY, (char*)&n, QSE_SIZEOF(n)); + return this->setOption(IPPROTO_TCP, TCP_NODELAY, (char*)&n, QSE_SIZEOF(n)); #else this->setErrorNumber (E_ENOIMPL); return -1; @@ -268,7 +269,7 @@ int Socket::setTcpNodelay (int n) QSE_CPP_NOEXCEPT int Socket::setOobInline (int n) QSE_CPP_NOEXCEPT { #if defined(SO_OOBINLINE) - return this->setOption (SOL_SOCKET, SO_OOBINLINE, (char*)&n, QSE_SIZEOF(n)); + return this->setOption(SOL_SOCKET, SO_OOBINLINE, (char*)&n, QSE_SIZEOF(n)); #else this->setErrorNumber (E_ENOIMPL); return -1; @@ -278,7 +279,7 @@ int Socket::setOobInline (int n) QSE_CPP_NOEXCEPT int Socket::setIpv6Only (int n) QSE_CPP_NOEXCEPT { #if defined(IPV6_V6ONLY) - return this->setOption (IPPROTO_IPV6, IPV6_V6ONLY, (char*)&n, QSE_SIZEOF(n)); + return this->setOption(IPPROTO_IPV6, IPV6_V6ONLY, (char*)&n, QSE_SIZEOF(n)); #else this->setErrorNumber (E_ENOIMPL); return -1; @@ -292,7 +293,7 @@ int Socket::shutdown (int how) QSE_CPP_NOEXCEPT // i put this guard to allow multiple calls to shutdown(). if (::shutdown(this->handle, how) == -1) { - this->setErrorNumber (syserr_to_errnum(errno)); + this->setErrorFmt (syserr_to_errnum(errno), QSE_T("%hs"), strerror(errno)); return -1; } } @@ -306,7 +307,7 @@ int Socket::connect (const SocketAddress& target) QSE_CPP_NOEXCEPT if (::connect(this->handle, (struct sockaddr*)target.getAddrPtr(), target.getAddrSize()) == -1) { - this->setErrorNumber (syserr_to_errnum(errno)); + this->setErrorFmt (syserr_to_errnum(errno), QSE_T("%hs"), strerror(errno)); return -1; } @@ -319,7 +320,7 @@ int Socket::bind (const SocketAddress& target) QSE_CPP_NOEXCEPT if (::bind(this->handle, (struct sockaddr*)target.getAddrPtr(), target.getAddrSize()) == -1) { - this->setErrorNumber (syserr_to_errnum(errno)); + this->setErrorFmt (syserr_to_errnum(errno), QSE_T("%hs"), strerror(errno)); return -1; } @@ -370,7 +371,7 @@ int Socket::bindToIfce (const qse_wchar_t* ifce) QSE_CPP_NOEXCEPT #if defined(SO_BINDTODEVICE) if (!ifce) { - return this->setOption (SOL_SOCKET, SO_BINDTODEVICE, QSE_NULL, 0); + return this->setOption(SOL_SOCKET, SO_BINDTODEVICE, QSE_NULL, 0); } else { @@ -383,7 +384,7 @@ int Socket::bindToIfce (const qse_wchar_t* ifce) QSE_CPP_NOEXCEPT this->setErrorNumber (E_EINVAL); return -1; } - return this->setOption (SOL_SOCKET, SO_BINDTODEVICE, (char*)&ifr, QSE_SIZEOF(ifr)); + return this->setOption(SOL_SOCKET, SO_BINDTODEVICE, (char*)&ifr, QSE_SIZEOF(ifr)); } #else this->setErrorNumber (E_ENOIMPL); @@ -397,7 +398,7 @@ int Socket::listen (int backlog) QSE_CPP_NOEXCEPT if (::listen(this->handle, backlog) == -1) { - this->setErrorNumber (syserr_to_errnum(errno)); + this->setErrorFmt (syserr_to_errnum(errno), QSE_T("%hs"), strerror(errno)); return -1; } @@ -423,7 +424,7 @@ int Socket::accept (Socket* newsck, SocketAddress* newaddr, int traits) QSE_CPP_ { if (errno != ENOSYS) { - this->setErrorNumber (syserr_to_errnum(errno)); + this->setErrorFmt (syserr_to_errnum(errno), QSE_T("%hs"), strerror(errno)); return -1; } @@ -439,7 +440,7 @@ int Socket::accept (Socket* newsck, SocketAddress* newaddr, int traits) QSE_CPP_ newfd = ::accept(this->handle, (struct sockaddr*)newaddr->getAddrPtr(), &addrlen); if (newfd == -1) { - this->setErrorNumber (syserr_to_errnum(errno)); + this->setErrorFmt (syserr_to_errnum(errno), QSE_T("%hs"), strerror(errno)); return -1; } @@ -449,7 +450,7 @@ int Socket::accept (Socket* newsck, SocketAddress* newaddr, int traits) QSE_CPP_ if (flag_v == -1) { fcntl_failure: - this->setErrorNumber (syserr_to_errnum(errno)); + this->setErrorFmt (syserr_to_errnum(errno), QSE_T("%hs"), strerror(errno)); ::close (newfd); return -1; } @@ -479,7 +480,7 @@ qse_ssize_t Socket::send (const void* buf, qse_size_t len) QSE_CPP_NOEXCEPT qse_ssize_t n = ::send(this->handle, buf, len, 0); if (n == -1) { - this->setErrorNumber (syserr_to_errnum(errno)); + this->setErrorFmt (syserr_to_errnum(errno), QSE_T("%hs"), strerror(errno)); return -1; } @@ -493,7 +494,7 @@ qse_ssize_t Socket::send (const void* buf, qse_size_t len, const SocketAddress& qse_ssize_t n = ::sendto(this->handle, buf, len, 0, (struct sockaddr*)dstaddr.getAddrPtr(), dstaddr.getAddrSize()); if (n == -1) { - this->setErrorNumber (syserr_to_errnum(errno)); + this->setErrorFmt (syserr_to_errnum(errno), QSE_T("%hs"), strerror(errno)); return -1; } @@ -529,7 +530,7 @@ qse_ssize_t Socket::send (const qse_ioptl_t* iov, int count) QSE_CPP_NOEXCEPT #endif if (nwritten <= -1) { - this->setErrorNumber (syserr_to_errnum(errno)); + this->setErrorFmt (syserr_to_errnum(errno), QSE_T("%hs"), strerror(errno)); return -1; } @@ -557,7 +558,7 @@ qse_ssize_t Socket::send (const qse_ioptl_t* iov, int count, const SocketAddress nwritten = ::sendmsg(this->handle, &msg, 0); if (nwritten <= -1) { - this->setErrorNumber (syserr_to_errnum(errno)); + this->setErrorFmt (syserr_to_errnum(errno), QSE_T("%hs"), strerror(errno)); return -1; } @@ -671,7 +672,7 @@ int Socket::sendx (const void* buf, qse_size_t len, qse_size_t* total_sent) QSE_ qse_ssize_t n = ::send(this->handle, (char*)buf + pos, len - pos, 0); if (n <= -1) { - this->setErrorNumber (syserr_to_errnum(errno)); + this->setErrorFmt (syserr_to_errnum(errno), QSE_T("%hs"), strerror(errno)); if (total_sent) *total_sent = pos; return -1; } @@ -694,7 +695,7 @@ int Socket::sendx (const void* buf, qse_size_t len, const SocketAddress& dstaddr qse_ssize_t n = ::sendto(this->handle, (char*)buf + pos, len - pos, 0, (struct sockaddr*)dstaddr.getAddrPtr(), dstaddr.getAddrSize()); if (n == -1) { - this->setErrorNumber (syserr_to_errnum(errno)); + this->setErrorFmt (syserr_to_errnum(errno), QSE_T("%hs"), strerror(errno)); if (total_sent) *total_sent = pos; return -1; } @@ -734,7 +735,7 @@ int Socket::sendx (qse_ioptl_t* iov, int count, qse_size_t* total_sent) QSE_CPP_ #endif if (nwritten <= -1) { - this->setErrorNumber (syserr_to_errnum(errno)); + this->setErrorFmt (syserr_to_errnum(errno), QSE_T("%hs"), strerror(errno)); if (backup_index >= 0) iov[backup_index] = backup; if (total_sent) *total_sent = total; return -1; @@ -784,7 +785,7 @@ int Socket::sendx (qse_ioptl_t* iov, int count, qse_size_t* total_sent) QSE_CPP_ nwritten = ::send(this->handle, (qse_uint8_t*)v->ptr + pos, rem, 0); if (nwritten <= -1) { - this->setErrorNumber (syserr_to_errnum(errno)); + this->setErrorFmt (syserr_to_errnum(errno), QSE_T("%hs"), strerror(errno)); if (total_sent) *total_sent = total; return -1; } @@ -829,7 +830,7 @@ int Socket::sendx (qse_ioptl_t* iov, int count, const SocketAddress& dstaddr, qs nwritten = ::sendmsg(this->handle, &msg, 0); if (nwritten <= -1) { - this->setErrorNumber (syserr_to_errnum(errno)); + this->setErrorFmt (syserr_to_errnum(errno), QSE_T("%hs"), strerror(errno)); if (backup_index >= 0) iov[backup_index] = backup; if (total_sent) *total_sent = total; return -1; @@ -879,7 +880,7 @@ int Socket::sendx (qse_ioptl_t* iov, int count, const SocketAddress& dstaddr, qs nwritten = ::sendto(this->handle, (qse_uint8_t*)v->ptr + pos, rem, 0); if (nwritten <= -1) { - this->setErrorNumber (syserr_to_errnum(errno)); + this->setErrorFmt (syserr_to_errnum(errno), QSE_T("%hs"), strerror(errno)); if (total_sent) *total_sent = total; return -1; } @@ -907,7 +908,7 @@ qse_ssize_t Socket::receive (void* buf, qse_size_t len) QSE_CPP_NOEXCEPT qse_ssize_t n = ::recv(this->handle, buf, len, 0); if (n == -1) { - this->setErrorNumber (syserr_to_errnum(errno)); + this->setErrorFmt (syserr_to_errnum(errno), QSE_T("%hs"), strerror(errno)); return -1; } @@ -922,7 +923,7 @@ qse_ssize_t Socket::receive (void* buf, qse_size_t len, SocketAddress& srcaddr) qse_ssize_t n = ::recvfrom(this->handle, buf, len, 0, (struct sockaddr*)srcaddr.getAddrPtr(), &addrlen); if (n == -1) { - this->setErrorNumber (syserr_to_errnum(errno)); + this->setErrorFmt (syserr_to_errnum(errno), QSE_T("%hs"), strerror(errno)); return -1; } @@ -1061,7 +1062,7 @@ int Socket::get_ifce_index (const void* name, qse_size_t len, bool wchar) if (::ioctl(this->handle, SIOCGIFINDEX, &ifr) == -1) { - this->setErrorNumber (syserr_to_errnum(errno)); + this->setErrorFmt (syserr_to_errnum(errno), QSE_T("%hs"), strerror(errno)); return -1; } diff --git a/qse/lib/sttp/Makefile.am b/qse/lib/sttp/Makefile.am index 9b7e5dad..31b060d0 100644 --- a/qse/lib/sttp/Makefile.am +++ b/qse/lib/sttp/Makefile.am @@ -6,13 +6,11 @@ AM_CPPFLAGS = \ #noinst_HEADERS = -lib_LTLIBRARIES = + +lib_LTLIBRARIES = libqsesttp.la +libqsesttp_la_SOURCES = if ENABLE_CXX -lib_LTLIBRARIES += libqsesttpxx.la -libqsesttpxx_la_SOURCES = Sttp.cpp -libqsesttpxx_la_LDFLAGS = -L. -L../cmn -L../si -version-info 1:0:0 -no-undefined -libqsesttpxx_la_LIBADD = -lqsecmnxx -lqsesi -lqsecmn -libqsesttpxx_la_DEPENDENCIES = ../../lib/cmn/libqsecmnxx.la ../../lib/si/libqsesi.la ../../lib/cmn/libqsecmn.la +libqsesttp_la_SOURCES += Sttp.cpp endif diff --git a/qse/lib/sttp/Makefile.in b/qse/lib/sttp/Makefile.in index e5507fbd..03564e96 100644 --- a/qse/lib/sttp/Makefile.in +++ b/qse/lib/sttp/Makefile.in @@ -88,8 +88,7 @@ PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ -@ENABLE_CXX_TRUE@am__append_1 = libqsesttpxx.la -@ENABLE_CXX_FALSE@libqsesttpxx_la_DEPENDENCIES = +@ENABLE_CXX_TRUE@am__append_1 = Sttp.cpp subdir = lib/sttp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_check_sign.m4 \ @@ -135,18 +134,15 @@ am__uninstall_files_from_dir = { \ } am__installdirs = "$(DESTDIR)$(libdir)" LTLIBRARIES = $(lib_LTLIBRARIES) -am__libqsesttpxx_la_SOURCES_DIST = Sttp.cpp -@ENABLE_CXX_TRUE@am_libqsesttpxx_la_OBJECTS = Sttp.lo -libqsesttpxx_la_OBJECTS = $(am_libqsesttpxx_la_OBJECTS) +libqsesttp_la_LIBADD = +am__libqsesttp_la_SOURCES_DIST = Sttp.cpp +@ENABLE_CXX_TRUE@am__objects_1 = Sttp.lo +am_libqsesttp_la_OBJECTS = $(am__objects_1) +libqsesttp_la_OBJECTS = $(am_libqsesttp_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = -libqsesttpxx_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \ - $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ - $(AM_CXXFLAGS) $(CXXFLAGS) $(libqsesttpxx_la_LDFLAGS) \ - $(LDFLAGS) -o $@ -@ENABLE_CXX_TRUE@am_libqsesttpxx_la_rpath = -rpath $(libdir) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false @@ -182,8 +178,8 @@ AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) am__v_CXXLD_0 = @echo " CXXLD " $@; am__v_CXXLD_1 = -SOURCES = $(libqsesttpxx_la_SOURCES) -DIST_SOURCES = $(am__libqsesttpxx_la_SOURCES_DIST) +SOURCES = $(libqsesttp_la_SOURCES) +DIST_SOURCES = $(am__libqsesttp_la_SOURCES_DIST) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -382,11 +378,8 @@ AM_CPPFLAGS = \ #noinst_HEADERS = -lib_LTLIBRARIES = $(am__append_1) -@ENABLE_CXX_TRUE@libqsesttpxx_la_SOURCES = Sttp.cpp -@ENABLE_CXX_TRUE@libqsesttpxx_la_LDFLAGS = -L. -L../cmn -L../si -version-info 1:0:0 -no-undefined -@ENABLE_CXX_TRUE@libqsesttpxx_la_LIBADD = -lqsecmnxx -lqsesi -lqsecmn -@ENABLE_CXX_TRUE@libqsesttpxx_la_DEPENDENCIES = ../../lib/cmn/libqsecmnxx.la ../../lib/si/libqsesi.la ../../lib/cmn/libqsecmn.la +lib_LTLIBRARIES = libqsesttp.la +libqsesttp_la_SOURCES = $(am__append_1) all: all-am .SUFFIXES: @@ -456,8 +449,8 @@ clean-libLTLIBRARIES: rm -f $${locs}; \ } -libqsesttpxx.la: $(libqsesttpxx_la_OBJECTS) $(libqsesttpxx_la_DEPENDENCIES) $(EXTRA_libqsesttpxx_la_DEPENDENCIES) - $(AM_V_CXXLD)$(libqsesttpxx_la_LINK) $(am_libqsesttpxx_la_rpath) $(libqsesttpxx_la_OBJECTS) $(libqsesttpxx_la_LIBADD) $(LIBS) +libqsesttp.la: $(libqsesttp_la_OBJECTS) $(libqsesttp_la_DEPENDENCIES) $(EXTRA_libqsesttp_la_DEPENDENCIES) + $(AM_V_CXXLD)$(CXXLINK) -rpath $(libdir) $(libqsesttp_la_OBJECTS) $(libqsesttp_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) diff --git a/qse/lib/sttp/Sttp.cpp b/qse/lib/sttp/Sttp.cpp index 2c848849..ba83d722 100644 --- a/qse/lib/sttp/Sttp.cpp +++ b/qse/lib/sttp/Sttp.cpp @@ -26,590 +26,763 @@ #include + #include #include #include "../cmn/mem-prv.h" -#define GET_CHAR() if (this->get_char() <= -1) return -1; -#define GET_TOKEN() if (this->get_token() <= -1) return -1; -#define PUT_CHAR(x) if (this->put_char(x) <= -1) return -1; - QSE_BEGIN_NAMESPACE(QSE) -Sttp::Sttp (Transmittable* s, Mmgr* mmgr) QSE_CPP_NOEXCEPT: Mmged(mmgr), p_medium(s) +Sttp::Sttp (Mmgr* mmgr) QSE_CPP_NOEXCEPT: Mmged(mmgr) { - this->reset (); + this->rd_rd_state_top.state = STATE_START; + this->rd_rd_state_top.next = QSE_NULL; + this->rd_state_stack = &this->rd_rd_state_top; + this->rd_lo_len = 0; + + this->wr_buf_len = 0; + this->wr_arg_count = 0; } -Sttp::~Sttp () QSE_CPP_NOEXCEPT +Sttp::~Sttp () { + this->pop_all_read_states (); } -void Sttp::reset () QSE_CPP_NOEXCEPT +void Sttp::reset () { - this->inbuf_len = 0; - this->outbuf_len = 0; - this->sttp_curp = 0; - this->sttp_curc = QSE_T('\0'); + this->pop_all_read_states (); + this->rd_lo_len = 0; - this->max_raw_cmd_len = MAX_RAW_CMD_LEN; - this->max_arg_count = MAX_ARG_COUNT; - this->raw_cmd_len = 0; - - this->opt_send_newline = true; + this->wr_buf_len = 0; + this->wr_arg_count = 0; } -int Sttp::receiveCmd (SttpCmd* cmd) QSE_CPP_NOEXCEPT +int Sttp::feed (const qse_uint8_t* data, qse_size_t len, qse_size_t* rem) { - QSE_ASSERT (p_medium != QSE_NULL); + qse_size_t xlen, pos = 0, alen = len; - this->p_errcode = E_NOERR; - this->raw_cmd_len = 0; - - GET_CHAR (); - GET_TOKEN(); - - /* - if (this->token_type == T_SEMICOLON) { - // null command - cmd->clear (); - return 0; - } - */ - - if (this->token_type == T_EOF) return 0; // no more command. end of input - - if (this->token_type != T_IDENT) + if (this->rd_lo_len > 0) { - this->p_errcode = E_CMDNAME; - return -1; - } - - cmd->clear (); - try { cmd->setName (token_value.getBuffer(), token_value.getSize()); } - catch (...) - { - this->p_errcode= E_MEMORY; - return -1; - } - - while (1) - { - GET_TOKEN(); - switch (this->token_type) + int n; + while (1) { - case T_STRING: - try { cmd->addArg (token_value.getBuffer(), token_value.getSize()); } - catch (...) - { - this->p_errcode = E_MEMORY; - return -1; - } - break; + this->rd_lo[this->rd_lo_len++] = data[pos++]; + alen--; - case T_IDENT: - // you don't have to quote a string owing to this. - try { cmd->addArg (token_value.getBuffer(), token_value.getSize()); } - catch (...) - { - this->p_errcode = E_MEMORY; - return -1; - } - break; - - default: - if (cmd->getArgCount() == 0) break; - this->p_errcode = E_WRONGARG; - return -1; - } - - GET_TOKEN(); - if (this->token_type != T_COMMA) break; - if (cmd->getArgCount() >= this->max_arg_count) - { - this->p_errcode = E_TOOMANYARGS; - return -1; - } - } - - if (this->token_type != T_SEMICOLON) - { - this->p_errcode = E_SEMICOLON; - return -1; - } - - return 1; // got a command -} - -int Sttp::sendCmd (const SttpCmd& cmd) QSE_CPP_NOEXCEPT -{ - this->p_errcode = E_NOERR; - - const qse_char_t* p = (const qse_char_t*)cmd.name; - if (*p == QSE_T('\0')) return 0; // don't send a null command - - while (*p != QSE_T('\0')) PUT_CHAR(*p++); - - qse_size_t nargs = cmd.getArgCount(); - if (nargs > 0) - { - PUT_CHAR (QSE_T(' ')); - - for (qse_size_t i = 0; i < nargs; i++) - { - const qse_char_t* arg = cmd.getArgAt(i); - qse_size_t arg_len = cmd.getArgLenAt(i); - - PUT_CHAR (QSE_T('\"')); - for (qse_size_t j = 0; j < arg_len; j++) + n = this->feed_chunk(this->rd_lo, this->rd_lo_len, &xlen); + if (n <= -1) return -1; + if (n == 0 && xlen == 0) { - // Don't have to send a backslash when encryption is on - // because only 16 characters from 'A' TO 'P' are used - if (arg[j] == QSE_T('\\') || - arg[j] == QSE_T('\"')) PUT_CHAR ('\\'); - PUT_CHAR (arg[j]); + /* not complete - incomplete sequence */ + if (alen > 0) continue; /* but still has more data given */ + goto done; /* still not resolved the incomplete sequence */ } - PUT_CHAR (QSE_T('\"')); - if (i < nargs - 1) PUT_CHAR (QSE_T(',')); + break; } + QSE_ASSERT (xlen == this->rd_lo_len); + this->rd_lo_len = 0; } - PUT_CHAR (QSE_T(';')); - if (this->opt_send_newline) + while (alen > 0) { - PUT_CHAR (QSE_T('\r')); - PUT_CHAR (QSE_T('\n')); - } - return this->flush_outbuf(); -} + int n = this->feed_chunk(&data[pos], alen, &xlen); + if (n <= -1) return -1; + pos += xlen; + alen -= xlen; -int Sttp::sendCmd (const qse_char_t* name, qse_size_t nargs = 0, ...) QSE_CPP_NOEXCEPT -{ - this->p_errcode = E_NOERR; - - const qse_char_t* p = name; - if (*p == QSE_T('\0')) return 0; // don't send a null command - - while (*p != QSE_T('\0')) PUT_CHAR (*p++); - - if (nargs > 0) - { - va_list ap; - va_start (ap, nargs); - - PUT_CHAR (QSE_T(' ')); - for (qse_size_t i = 1; i <= nargs; i++) + if (rem) { - p = va_arg (ap, qse_char_t*); - - PUT_CHAR (QSE_T('\"')); - while (*p) - { - if (*p == QSE_T('\\') || *p == QSE_T('\"')) PUT_CHAR (QSE_T('\\')); - PUT_CHAR (*p++); - } - PUT_CHAR (QSE_T('\"')); - - if (i < nargs) PUT_CHAR (QSE_T(',')); - } - va_end (ap); - } - - PUT_CHAR (QSE_T(';')); - if (this->opt_send_newline) - { - PUT_CHAR (QSE_T('\r')); - PUT_CHAR (QSE_T('\n')); - } - return this->flush_outbuf(); -} - -int Sttp::sendCmdL (const qse_char_t* name, qse_size_t nargs = 0, ...) QSE_CPP_NOEXCEPT -{ - this->p_errcode = E_NOERR; - - const qse_char_t* p = name; - if (*p == QSE_T('\0')) return 0; // don't send a null command - - while (*p != QSE_T('\0')) PUT_CHAR (*p++); - - if (nargs > 0) - { - va_list ap; - va_start (ap, nargs); - - PUT_CHAR (QSE_T(' ')); - for (qse_size_t i = 1; i <= nargs; i++) - { - p = va_arg (ap, qse_char_t*); - qse_size_t len = va_arg (ap, qse_size_t); - - PUT_CHAR (QSE_T('\"')); - while (len > 0) - { - if (*p == QSE_T('\\') || *p == QSE_T('\"')) PUT_CHAR (QSE_T('\\')); - PUT_CHAR (*p++); - len--; - } - PUT_CHAR (QSE_T('\"')); - - if (i < nargs) PUT_CHAR (QSE_T(',')); - } - va_end (ap); - } - - PUT_CHAR (QSE_T(';')); - if (this->opt_send_newline) - { - PUT_CHAR (QSE_T('\r')); - PUT_CHAR (QSE_T('\n')); - } - return this->flush_outbuf(); -} - -int Sttp::sendCmdL (const qse_char_t* name, qse_size_t nmlen, qse_size_t nargs = 0, ...) QSE_CPP_NOEXCEPT -{ - this->p_errcode = E_NOERR; - - qse_char_t* p = (qse_char_t*)name; - if (*p == QSE_T('\0')) return 0; // don't send a null command - - //while (*p != QSE_T('\0')) PUT_CHAR (*p++); - while (nmlen > 0) - { - PUT_CHAR (*p++); - nmlen--; - } - - if (nargs > 0) - { - va_list ap; - - va_start (ap, nargs); - - PUT_CHAR (QSE_T(' ')); - for (qse_size_t i = 1; i <= nargs; i++) - { - p = va_arg (ap, qse_char_t*); - qse_size_t len = va_arg (ap, qse_size_t); - - PUT_CHAR (QSE_T('\"')); - while (len > 0) - { - if (*p == QSE_T('\\') || *p == QSE_T('\"')) PUT_CHAR (QSE_T('\\')); - PUT_CHAR (*p++); - len--; - } - PUT_CHAR (QSE_T('\"')); - - if (i < nargs) PUT_CHAR (QSE_T(',')); + /* + n=-1 error + n=0 need more data rem > 0 -> incomplete sequence rem == 0 incomplete command + n=1 completed at least a command rem > 0 -> more command data at the back. rem == 0. no more command + */ + break; } - va_end (ap); - } - - PUT_CHAR (QSE_T(';')); - if (this->opt_send_newline) - { - PUT_CHAR (QSE_T('\r')); - PUT_CHAR (QSE_T('\n')); - } - return this->flush_outbuf(); -} - - -int Sttp::get_char () QSE_CPP_NOEXCEPT -{ - qse_size_t remain = 0; - - if (this->sttp_curp == this->inbuf_len) - { - qse_ssize_t n; - - if (this->sttp_curc == QSE_CHAR_EOF) - { - /* called again after EOF is received. */ - this->p_errcode = E_RECEIVE; - return -1; - } - -#if defined(QSE_CHAR_IS_WCHAR) - get_char_utf8: -#endif - n = this->p_medium->receive(&inbuf[remain], QSE_COUNTOF(inbuf) - remain); - if (n <= -1) - { - this->p_errcode = E_RECEIVE; - return -1; - } if (n == 0) { - // no more input -// TODO: if EOF has been read already, raise an error - - this->sttp_curc = QSE_CHAR_EOF; - return 0; + while (alen > 0) + { + /* the unprocessed data is due to an incomplete sequence */ + this->rd_lo[this->rd_lo_len++] = data[pos++]; + alen--; + } + break; } - - this->sttp_curp = 0; - this->inbuf_len = (qse_size_t)n + remain; - } - -#if defined(QSE_CHAR_IS_WCHAR) - - remain = this->inbuf_len - this->sttp_curp; - - qse_size_t seqlen = qse_utf8len(&this->inbuf[this->sttp_curp], remain); - if (seqlen == 0) - { - // invalid sequence - this->sttp_curp++; // skip one byte - this->p_errcode = E_UTF8_CONV; - return -1; } - if (remain < seqlen) - { - // incomplete sequence. must read further... - qse_memcpy (this->inbuf, &this->inbuf[this->sttp_curp], remain); - this->sttp_curp = 0; - this->inbuf_len = remain; - goto get_char_utf8; - } - - qse_wchar_t wch; - qse_size_t n = qse_utf8touc(&this->inbuf[this->sttp_curp], seqlen, &wch); - if (n == 0) - { - // this part is not likely to be reached for qse_utf8len() above. - // but keep it for completeness - this->sttp_curp++; // still must skip a character - this->p_errcode = E_UTF8_CONV; - return -1; - } - - this->sttp_curc = wch; - this->sttp_curp += n; -#else - this->sttp_curc = this->inbuf[this->sttp_curp++]; -#endif - - /* - if (sttp_curc == QSE_T('\0')) { - this->p_errcode = E_WRONGCHAR; - return -1; - } - */ - - if (raw_cmd_len >= max_raw_cmd_len) - { - this->p_errcode = E_TOOLONGCMD; - return -1; - } - raw_cmd_len++; - +done: + if (rem) *rem = alen; return 0; } -int Sttp::get_token () QSE_CPP_NOEXCEPT +int Sttp::feed_chunk (const qse_uint8_t* data, qse_size_t len, qse_size_t* xlen) { - while (QSE_ISSPACE(this->sttp_curc)) GET_CHAR (); // skip spaces... + const qse_uint8_t* ptr, * end, * optr; + bool ever_completed = false; - if (is_ident_char(this->sttp_curc)) return this->get_ident (); + ptr = data; + end = ptr + len; + +//printf ("FEED => len=%d [", (int)len); +//for (int i = 0; i < len; i++) printf ("%u ", data[i]); +//printf ("]\n"); + while (ptr < end) + { + qse_char_t c; + + optr = ptr; + #if defined(QSE_CHAR_IS_MCHAR) + c = *ptr++; + #else + qse_size_t bcslen = end - ptr; + qse_wchar_t uc; + qse_size_t n = qse_utf8touc((const qse_mchar_t*)ptr, bcslen, &uc); + if (n == 0) + { + /* invalid sequence */ + this->setErrorFmt (E_EINVAL, QSE_T("invalid utf8 sequence starting with 0x%lx"), (unsigned long int)*ptr); + return -1; + } + else if (n > bcslen) + { + /* incomplete sequence */ + break; + } + + ptr += n; + c = uc; + #endif + + if (this->rd_state_stack->state == STATE_START && this->is_space_char(c)) continue; + if (ever_completed) + { + ptr = optr; + break; + } + + if (this->handle_char(c) <= -1) return -1; /* error */ + if (this->rd_state_stack->state == STATE_START) ever_completed = true; // don't break here to consume some space after the semicolon + } + + *xlen = ptr - data; + return ever_completed? 1: 0; +} + +int Sttp::handle_char (qse_char_t c) +{ + int x; + +start_over: + switch (this->rd_state_stack->state) + { + case STATE_START: + x = this->handle_start_char(c); + break; + + case STATE_IN_NAME: + x = this->handle_name_char(c); + break; + + case STATE_IN_PARAM_LIST: + x = this->handle_param_list_char(c); + break; + + case STATE_IN_PARAM_WORD: + x = this->handle_param_word_char(c); + break; + + case STATE_IN_PARAM_STRING: + x = this->handle_param_string_char(c); + break; + + default: + this->setErrorNumber (E_EINTERN); + x = -1; + break; + } + + if (x <= -1) return -1; + if (x == 0) goto start_over; + + return x; +} + +#define PUSH_READ_STATE(x) if (this->push_read_state(x) <= -1) return -1; + +int Sttp::handle_start_char (qse_char_t c) +{ + if (this->is_ident_char(c)) + { + this->token.append (c); + PUSH_READ_STATE (STATE_IN_NAME); + return 1; + } +#if 0 + else if (c == ';') + { + // empty command + } +#endif else { - switch (this->sttp_curc) - { - case QSE_T('\"'): - case QSE_T('\''): - return this->get_string(sttp_curc); - - case QSE_T(';'): - this->token_type = T_SEMICOLON; - this->token_value = QSE_T(';'); - // do not read the next character to terminate a command - // get_char (); - break; - - case QSE_T(','): - this->token_type = T_COMMA; - this->token_value = QSE_T(','); - GET_CHAR (); - break; - - case QSE_CHAR_EOF: - this->token_type = T_EOF; - this->token_value = this->sttp_curc; - break; - - default: - this->p_errcode = E_WRONGCHAR; - return -1; - } + this->setErrorFmt (E_EINVAL, QSE_T("invalid start character 0x%lx[%jc]"), (unsigned long int)c, c); + return -1; } - - return 0; } -int Sttp::get_ident () QSE_CPP_NOEXCEPT +int Sttp::handle_name_char (qse_char_t c) { - this->token_type = T_IDENT; - this->token_value = QSE_T(""); - - while (is_ident_char(this->sttp_curc)) + if (this->is_ident_char(c)) { - this->token_value.append (this->sttp_curc); - GET_CHAR (); + this->token.append (c); } - - return 0; -} - -int Sttp::get_string (qse_char_t end) QSE_CPP_NOEXCEPT -{ - bool escaped = false; - - this->token_type = T_STRING; - this->token_value = QSE_T(""); - - GET_CHAR (); - while (1) + else if (this->is_space_char(c)) { - if (escaped == true) - { - this->sttp_curc = this->translate_escaped_char(this->sttp_curc); - escaped = false; - } - else - { - if (this->sttp_curc == end) - { - GET_CHAR (); - break; - } - else if (this->sttp_curc == QSE_T('\\')) - { - GET_CHAR (); - escaped = true; - continue; - } - } - - this->token_value.append (this->sttp_curc); - GET_CHAR (); + this->command.setName (this->token); + this->clear_token (); + this->pop_read_state (); + PUSH_READ_STATE (STATE_IN_PARAM_LIST); } - - return 0; -} - -qse_cint_t Sttp::translate_escaped_char (qse_cint_t c) QSE_CPP_NOEXCEPT -{ - if (c == QSE_T('n')) c = QSE_T('\n'); - else if (c == QSE_T('t')) c = QSE_T('\t'); - else if (c == QSE_T('r')) c = QSE_T('\r'); - else if (c == QSE_T('v')) c = QSE_T('\v'); - else if (c == QSE_T('f')) c = QSE_T('\f'); - else if (c == QSE_T('a')) c = QSE_T('\a'); - else if (c == QSE_T('b')) c = QSE_T('\b'); - //else if (c == QSE_T('0')) c = QSE_T('\0'); - - return c; -} - -bool Sttp::is_ident_char (qse_cint_t c) QSE_CPP_NOEXCEPT -{ - return QSE_ISALNUM(c) || c == QSE_T('_') || c == QSE_T('.') || c == QSE_T('*') || c == QSE_T('@'); -} - -///////////////////////////////////////////////////////////////////////// - -int Sttp::put_mchar (qse_mchar_t ch) QSE_CPP_NOEXCEPT -{ - this->outbuf[outbuf_len++] = ch; - if (this->outbuf_len >= QSE_COUNTOF(outbuf)) return this->flush_outbuf(); - return 0; -} - -int Sttp::put_wchar (qse_wchar_t ch) QSE_CPP_NOEXCEPT -{ - qse_mchar_t buf[QSE_UTF8LEN_MAX]; - qse_size_t len = qse_uctoutf8(ch, buf, QSE_COUNTOF(buf)); - if (len == 0 || len > QSE_COUNTOF(buf)) + else if (c == ';') { - this->p_errcode = E_UTF8_CONV; + this->command.setName (this->token); + this->clear_token (); + this->pop_read_state (); + + int x = this->handle_command(this->command); + this->command.clear (); + if (x <= -1) return -1; + } + else + { + this->setErrorFmt (E_EINVAL, QSE_T("invalid character 0x%lx[%jc] in the command name"), (unsigned long int)c, c); return -1; } - for (qse_size_t i = 0; i < len; i++) - { - if (this->put_mchar(buf[i]) == -1) return -1; - } - return 0; + return 1; } - -int Sttp::flush_outbuf () QSE_CPP_NOEXCEPT +int Sttp::handle_param_list_char (qse_char_t c) { - if (this->outbuf_len > 0) + if (c == ';') { - qse_size_t pos = 0; - - do + if (this->rd_state_stack->u.ipl.got_value || this->command.getArgCount() == 0) { - qse_ssize_t n = this->p_medium->send(&this->outbuf[pos], this->outbuf_len); - if (n <= -1) - { - if (pos > 0) QSE_MEMCPY (&this->outbuf[0], &this->outbuf[pos], this->outbuf_len * QSE_SIZEOF(this->outbuf[0])); - this->p_errcode = E_SEND; - return -1; - } + this->command.addArg (this->token); + this->clear_token(); + this->rd_state_stack->u.ipl.got_value = false; + this->pop_read_state (); // back to the START state. - this->outbuf_len -= n; - pos += n; + int x = this->handle_command (this->command); + this->command.clear (); + if (x <= -1) return -1; } - while (this->outbuf_len > 0); + else + { + this->setErrorFmt (E_EINVAL, QSE_T("no parameter after a comma")); + return -1; + } + } + else if (c == ',') + { + if (this->rd_state_stack->u.ipl.got_value) + { + this->command.addArg (this->token); + this->clear_token(); + this->rd_state_stack->u.ipl.got_value = false; + } + else + { + this->setErrorFmt (E_EINVAL, QSE_T("redundant comma")); + return -1; + } + } + else if (this->is_space_char(c)) + { + // do nothing; + } + else + { + if (this->rd_state_stack->u.ipl.got_value) + { + // comma required. + this->setErrorFmt (E_EINVAL, QSE_T("comma required")); + return -1; + } + + if (c == '\"' || c == '\'') + { + this->rd_state_stack->u.ipl.got_value = true; + PUSH_READ_STATE (STATE_IN_PARAM_STRING); + this->rd_state_stack->u.ps.qc = c; + this->clear_token (); + return 1; + } + else if (this->is_ident_char(c)) + { + this->rd_state_stack->u.ipl.got_value = true; + PUSH_READ_STATE (STATE_IN_PARAM_WORD); + this->clear_token (); + this->add_char_to_token (c); + return 1; + } + else + { + this->setErrorFmt (E_EINVAL, QSE_T("invalid character 0x%lx[%jc]"), (unsigned long int)c, c); + return -1; + } + } + + return 1; +} + +int Sttp::handle_param_word_char (qse_char_t c) +{ + if (this->is_ident_char(c)) + { + this->token.append (c); return 1; } + this->pop_read_state (); + return 0; /* let handle_char() to handle this comma again */ +} + +static QSE_INLINE qse_char_t unescape (qse_char_t c) +{ + switch (c) + { + case 'a': return '\a'; + case 'b': return '\b'; + case 'f': return '\f'; + case 'n': return '\n'; + case 'r': return '\r'; + case 't': return '\t'; + case 'v': return '\v'; + default: return c; + } +} + +int Sttp::handle_param_string_char (qse_char_t c) +{ + int ret = 1; + + if (this->rd_state_stack->u.ps.escaped == 3) + { + if (c >= '0' && c <= '7') + { + this->rd_state_stack->u.ps.acc = this->rd_state_stack->u.ps.acc * 8 + c - '0'; + this->rd_state_stack->u.ps.digit_count++; + if (this->rd_state_stack->u.ps.digit_count >= this->rd_state_stack->u.ps.escaped) goto add_sv_acc; + } + else + { + ret = 0; + goto add_sv_acc; + } + } + else if (this->rd_state_stack->u.ps.escaped >= 2) + { + if (c >= '0' && c <= '9') + { + this->rd_state_stack->u.ps.acc = this->rd_state_stack->u.ps.acc * 16 + c - '0'; + this->rd_state_stack->u.ps.digit_count++; + if (this->rd_state_stack->u.ps.digit_count >= this->rd_state_stack->u.ps.escaped) goto add_sv_acc; + } + else if (c >= 'a' && c <= 'f') + { + this->rd_state_stack->u.ps.acc = this->rd_state_stack->u.ps.acc * 16 + c - 'a' + 10; + this->rd_state_stack->u.ps.digit_count++; + if (this->rd_state_stack->u.ps.digit_count >= this->rd_state_stack->u.ps.escaped) goto add_sv_acc; + } + else if (c >= 'A' && c <= 'F') + { + this->rd_state_stack->u.ps.acc = this->rd_state_stack->u.ps.acc * 16 + c - 'A' + 10; + this->rd_state_stack->u.ps.digit_count++; + if (this->rd_state_stack->u.ps.digit_count >= this->rd_state_stack->u.ps.escaped) goto add_sv_acc; + } + else + { + ret = 0; + add_sv_acc: + #if defined(QSE_CHAR_IS_MCHAR) + /* convert the character to utf8 */ + qse_mchar_t bcsbuf[QSE_MBLEN_MAX]; + qse_size_t n; + + n = qse_uctoutf8(this->rd_state_stack->u.ps.acc, bcsbuf, QSE_COUNTOF(bcsbuf)); + if (n == 0 || n > QSE_COUNTOF(bcsbuf)) + { + // illegal character or buffer to small + this->setErrorFmt (E_EINVAL, QSE_T("unable to convert 0x%lx to utf8"), this->rd_state_stack->u.ps.acc); + return -1; + } + + this->add_chars_to_token(bcsbuf, n); + #else + this->add_char_to_token(this->rd_state_stack->u.ps.acc); + #endif + this->rd_state_stack->u.ps.escaped = 0; + } + } + else if (this->rd_state_stack->u.ps.escaped == 1) + { + if (c >= '0' && c <= '8') + { + this->rd_state_stack->u.ps.escaped = 3; + this->rd_state_stack->u.ps.digit_count = 0; + this->rd_state_stack->u.ps.acc = c - '0'; + } + else if (c == 'x') + { + this->rd_state_stack->u.ps.escaped = 2; + this->rd_state_stack->u.ps.digit_count = 0; + this->rd_state_stack->u.ps.acc = 0; + } + else if (c == 'u') + { + this->rd_state_stack->u.ps.escaped = 4; + this->rd_state_stack->u.ps.digit_count = 0; + this->rd_state_stack->u.ps.acc = 0; + } + else if (c == 'U') + { + this->rd_state_stack->u.ps.escaped = 8; + this->rd_state_stack->u.ps.digit_count = 0; + this->rd_state_stack->u.ps.acc = 0; + } + else + { + this->rd_state_stack->u.ps.escaped = 0; + this->add_char_to_token(unescape(c)); + } + } + else if (c == '\\') + { + this->rd_state_stack->u.ps.escaped = 1; + } + else if (c == this->rd_state_stack->u.ps.qc) + { + this->pop_read_state (); + } + else + { + this->add_char_to_token(c); + } + + return ret; +} + +int Sttp::push_read_state (rd_state_t state) +{ + rd_state_node_t* ss; + + ss = (rd_state_node_t*)this->getMmgr()->callocate(QSE_SIZEOF(*ss), false); + if (!ss) + { + this->setErrorNumber (E_ENOMEM); + return -1; + } + + ss->state = state; + ss->next = this->rd_state_stack; + + this->rd_state_stack = ss; + return 0; +} + +void Sttp::pop_read_state () +{ + rd_state_node_t* ss; + + ss = this->rd_state_stack; + QSE_ASSERT (ss != QSE_NULL && ss != &this->rd_rd_state_top); + this->rd_state_stack = ss->next; + + // anything todo here? + + /* TODO: don't free this. move it to the free list? */ + this->getMmgr()->dispose(ss); +} + +void Sttp::pop_all_read_states () +{ + while (this->rd_state_stack != &this->rd_rd_state_top) this->pop_read_state (); +} + + +#define WRITE_CHAR(x) if (this->write_char(x) <= -1) return -1; + +int Sttp::beginWrite (const qse_mchar_t* cmd) +{ + const qse_mchar_t* ptr = cmd; + this->wr_arg_count = 0; + while (*ptr != '\0') WRITE_CHAR(*ptr++); + return 0; +} + +int Sttp::beginWrite (const qse_wchar_t* cmd) +{ + const qse_wchar_t* ptr = cmd; + this->wr_arg_count = 0; + while (*ptr != '\0') WRITE_CHAR(*ptr++); + return 0; +} + +int Sttp::writeWordArg (const qse_mchar_t* arg) +{ + const qse_mchar_t* ptr = arg; + if (this->wr_arg_count > 0) WRITE_CHAR(','); + WRITE_CHAR (' '); + while (*ptr != '\0') WRITE_CHAR(*ptr++); + this->wr_arg_count++; + return 0; +} + +int Sttp::writeWordArg (const qse_wchar_t* arg) +{ + const qse_wchar_t* ptr = arg; + if (this->wr_arg_count > 0) WRITE_CHAR(','); + WRITE_CHAR (' '); + while (*ptr != '\0') WRITE_CHAR(*ptr++); + this->wr_arg_count++; + return 0; +} + +int Sttp::writeStringArg (const qse_mchar_t* arg) +{ + const qse_mchar_t* ptr = arg; + if (this->wr_arg_count > 0) WRITE_CHAR(','); + + WRITE_CHAR(' '); + WRITE_CHAR('\"'); + + while (*ptr != '\0') + { + if (*ptr == '\"' || *ptr == '\\') WRITE_CHAR('\\'); + WRITE_CHAR(*ptr++); + } + + WRITE_CHAR('\"'); + this->wr_arg_count++; + return 0; +} + +int Sttp::writeStringArg (const qse_mchar_t* arg, qse_size_t len) +{ + const qse_mchar_t* ptr = arg; + const qse_mchar_t* end = arg + len; + + if (this->wr_arg_count > 0) WRITE_CHAR(','); + + WRITE_CHAR(' '); + WRITE_CHAR('\"'); + + while (ptr < end) + { + if (*ptr == '\"' || *ptr == '\\') WRITE_CHAR('\\'); + WRITE_CHAR(*ptr++); + } + + WRITE_CHAR('\"'); + this->wr_arg_count++; + return 0; +} + +int Sttp::writeStringArg (const qse_wchar_t* arg) +{ + const qse_wchar_t* ptr = arg; + if (this->wr_arg_count > 0) WRITE_CHAR(','); + + WRITE_CHAR(' '); + WRITE_CHAR('\"'); + + while (*ptr != '\0') + { + if (*ptr == '\"' || *ptr == '\\') WRITE_CHAR('\\'); + WRITE_CHAR(*ptr++); + } + + WRITE_CHAR('\"'); + this->wr_arg_count++; + return 0; +} + +int Sttp::writeStringArg (const qse_wchar_t* arg, qse_size_t len) +{ + const qse_wchar_t* ptr = arg; + const qse_wchar_t* end = arg + len; + + if (this->wr_arg_count > 0) WRITE_CHAR(','); + + WRITE_CHAR(' '); + WRITE_CHAR('\"'); + + while (ptr < end) + { + if (*ptr == '\"' || *ptr == '\\') WRITE_CHAR('\\'); + WRITE_CHAR(*ptr++); + } + + WRITE_CHAR('\"'); + this->wr_arg_count++; return 0; } -const qse_char_t* Sttp::getErrorStr () const QSE_CPP_NOEXCEPT +int Sttp::endWrite () { - switch (this->p_errcode) + WRITE_CHAR(';'); + WRITE_CHAR('\n'); + if (this->wr_buf_len > 0) { - case E_NOERR: - return QSE_T("no error"); - case E_MEMORY: - return QSE_T("memory exhausted"); - case E_RECEIVE: - return QSE_T("failed receive over medium"); - case E_SEND: - return QSE_T("failed send over medium"); - case E_UTF8_CONV: - return QSE_T("utf8 conversion failure"); - case E_CMDNAME: - return QSE_T("command name expected"); - case E_CMDPROC: - return QSE_T("command procedure exit"); - case E_UNKNOWNCMD: - return QSE_T("unknown command"); - case E_TOOLONGCMD: - return QSE_T("command too long"); - case E_SEMICOLON: - return QSE_T("semicolon expected"); - case E_TOOMANYARGS: - return QSE_T("too many command arguments"); - case E_WRONGARG: - return QSE_T("wrong command argument"); - case E_WRONGCHAR: - return QSE_T("wrong character"); - default: - return QSE_T("unknown error"); + if (this->write_bytes(this->wr_buf, this->wr_buf_len) <= -1) return -1; + this->wr_buf_len = 0; } + return 0; +} + + +int Sttp::write_char (qse_mchar_t c) +{ + if (this->wr_buf_len >= QSE_COUNTOF(this->wr_buf)) + { + if (this->write_bytes (this->wr_buf, this->wr_buf_len) <= -1) return -1; + this->wr_buf_len = 0; + } + + this->wr_buf[this->wr_buf_len++] = c; + return 0; +} + +int Sttp::write_char (qse_wchar_t c) +{ + qse_mchar_t bcsbuf[QSE_MBLEN_MAX]; + qse_size_t n; + + n = qse_uctoutf8(c, bcsbuf, QSE_COUNTOF(bcsbuf)); + if (n == 0 || n > QSE_COUNTOF(bcsbuf)) + { + this->setErrorFmt (E_EINVAL, QSE_T("unable to convert 0x%lx to utf8"), (unsigned long int)c); + return -1; + } + + for (qse_size_t i = 0; i < n; i++) + { + if (this->write_char(bcsbuf[i]) <= -1) return -1; + } + return 0; +} + +int Sttp::sendCmd (const qse_mchar_t* name, qse_size_t nargs = 0, ...) +{ + if (name[0] == '\0') return 0; // don't send a null command + if (this->beginWrite(name) <= -1) return -1; + + if (nargs > 0) + { + va_list ap; + va_start (ap, nargs); + + for (qse_size_t i = 1; i <= nargs; i++) + { + qse_mchar_t* p = va_arg(ap, qse_mchar_t*); + if (this->writeStringArg(p) <= -1) + { + va_end (ap); + return -1; + } + } + va_end (ap); + } + + if (this->endWrite() <= -1) return -1; + return 0; +} + +int Sttp::sendCmd (const qse_wchar_t* name, qse_size_t nargs = 0, ...) +{ + if (name[0] == '\0') return 0; // don't send a null command + if (this->beginWrite(name) <= -1) return -1; + + if (nargs > 0) + { + va_list ap; + va_start (ap, nargs); + + for (qse_size_t i = 1; i <= nargs; i++) + { + qse_wchar_t* p = va_arg(ap, qse_wchar_t*); + if (this->writeStringArg(p) <= -1) + { + va_end (ap); + return -1; + } + } + va_end (ap); + } + + if (this->endWrite() <= -1) return -1; + return 0; +} + +int Sttp::sendCmdL (const qse_mchar_t* name, qse_size_t nargs = 0, ...) +{ + if (name[0] == '\0') return 0; // don't send a null command + if (this->beginWrite(name) <= -1) return -1; + + if (nargs > 0) + { + va_list ap; + va_start (ap, nargs); + + for (qse_size_t i = 1; i <= nargs; i++) + { + qse_mchar_t* p = va_arg(ap, qse_mchar_t*); + qse_size_t l = va_arg(ap, qse_size_t); + if (this->writeStringArg(p, l) <= -1) + { + va_end (ap); + return -1; + } + } + va_end (ap); + } + + if (this->endWrite() <= -1) return -1; + return 0; +} + +int Sttp::sendCmdL (const qse_wchar_t* name, qse_size_t nargs = 0, ...) +{ + if (name[0] == '\0') return 0; // don't send a null command + if (this->beginWrite(name) <= -1) return -1; + + if (nargs > 0) + { + va_list ap; + va_start (ap, nargs); + + for (qse_size_t i = 1; i <= nargs; i++) + { + qse_wchar_t* p = va_arg(ap, qse_wchar_t*); + qse_size_t l = va_arg(ap, qse_size_t); + if (this->writeStringArg(p, l) <= -1) + { + va_end (ap); + return -1; + } + } + va_end (ap); + } + + if (this->endWrite() <= -1) return -1; + return 0; } QSE_END_NAMESPACE(QSE) diff --git a/qse/lib/xli/Makefile.am b/qse/lib/xli/Makefile.am index f605e1ee..145ef583 100644 --- a/qse/lib/xli/Makefile.am +++ b/qse/lib/xli/Makefile.am @@ -15,10 +15,6 @@ libqsexli_la_DEPENDENCIES = ../../lib/si/libqsesi.la ../../lib/cmn/libqsecmn.la if ENABLE_CXX -lib_LTLIBRARIES += libqsexlixx.la -libqsexlixx_la_SOURCES = SkvEnv.cpp -libqsexlixx_la_LDFLAGS = -L. -L../cmn -L../si -version-info 1:0:0 -no-undefined -libqsexlixx_la_LIBADD = -lqsecmnxx -lqsexli -lqsesi -lqsecmn -libqsexlixx_la_DEPENDENCIES = libqsexli.la ../../lib/cmn/libqsecmnxx.la ../../lib/si/libqsesi.la ../../lib/cmn/libqsecmn.la +libqsexli_la_SOURCES += SkvEnv.cpp endif diff --git a/qse/lib/xli/Makefile.in b/qse/lib/xli/Makefile.in index 6a620dac..a2e77735 100644 --- a/qse/lib/xli/Makefile.in +++ b/qse/lib/xli/Makefile.in @@ -88,8 +88,7 @@ PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ -@ENABLE_CXX_TRUE@am__append_1 = libqsexlixx.la -@ENABLE_CXX_FALSE@libqsexlixx_la_DEPENDENCIES = +@ENABLE_CXX_TRUE@am__append_1 = SkvEnv.cpp subdir = lib/xli ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_check_sign.m4 \ @@ -135,25 +134,21 @@ am__uninstall_files_from_dir = { \ } am__installdirs = "$(DESTDIR)$(libdir)" LTLIBRARIES = $(lib_LTLIBRARIES) +am__libqsexli_la_SOURCES_DIST = xli-prv.h xli.c err.c read.c \ + read-ini.c read-json.c write.c write-ini.c write-json.c std.c \ + json.c SkvEnv.cpp +@ENABLE_CXX_TRUE@am__objects_1 = SkvEnv.lo am_libqsexli_la_OBJECTS = xli.lo err.lo read.lo read-ini.lo \ read-json.lo write.lo write-ini.lo write-json.lo std.lo \ - json.lo + json.lo $(am__objects_1) libqsexli_la_OBJECTS = $(am_libqsexli_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = -libqsexli_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(libqsexli_la_LDFLAGS) $(LDFLAGS) -o $@ -am__libqsexlixx_la_SOURCES_DIST = SkvEnv.cpp -@ENABLE_CXX_TRUE@am_libqsexlixx_la_OBJECTS = SkvEnv.lo -libqsexlixx_la_OBJECTS = $(am_libqsexlixx_la_OBJECTS) -libqsexlixx_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \ - $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ - $(AM_CXXFLAGS) $(CXXFLAGS) $(libqsexlixx_la_LDFLAGS) \ - $(LDFLAGS) -o $@ -@ENABLE_CXX_TRUE@am_libqsexlixx_la_rpath = -rpath $(libdir) +libqsexli_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(libqsexli_la_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false @@ -212,9 +207,8 @@ AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) am__v_CXXLD_0 = @echo " CXXLD " $@; am__v_CXXLD_1 = -SOURCES = $(libqsexli_la_SOURCES) $(libqsexlixx_la_SOURCES) -DIST_SOURCES = $(libqsexli_la_SOURCES) \ - $(am__libqsexlixx_la_SOURCES_DIST) +SOURCES = $(libqsexli_la_SOURCES) +DIST_SOURCES = $(am__libqsexli_la_SOURCES_DIST) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -411,19 +405,13 @@ AM_CPPFLAGS = \ -I$(top_builddir)/include \ -I$(top_srcdir)/include -lib_LTLIBRARIES = libqsexli.la $(am__append_1) -libqsexli_la_SOURCES = xli-prv.h xli.c err.c \ - read.c read-ini.c read-json.c \ - write.c write-ini.c write-json.c \ - std.c json.c - +lib_LTLIBRARIES = libqsexli.la +libqsexli_la_SOURCES = xli-prv.h xli.c err.c read.c read-ini.c \ + read-json.c write.c write-ini.c write-json.c std.c json.c \ + $(am__append_1) libqsexli_la_LDFLAGS = -L../cmn -L../si -version-info 1:0:0 -no-undefined libqsexli_la_LIBADD = -lqsesi -lqsecmn libqsexli_la_DEPENDENCIES = ../../lib/si/libqsesi.la ../../lib/cmn/libqsecmn.la -@ENABLE_CXX_TRUE@libqsexlixx_la_SOURCES = SkvEnv.cpp -@ENABLE_CXX_TRUE@libqsexlixx_la_LDFLAGS = -L. -L../cmn -L../si -version-info 1:0:0 -no-undefined -@ENABLE_CXX_TRUE@libqsexlixx_la_LIBADD = -lqsecmnxx -lqsexli -lqsesi -lqsecmn -@ENABLE_CXX_TRUE@libqsexlixx_la_DEPENDENCIES = libqsexli.la ../../lib/cmn/libqsecmnxx.la ../../lib/si/libqsesi.la ../../lib/cmn/libqsecmn.la all: all-am .SUFFIXES: @@ -494,10 +482,7 @@ clean-libLTLIBRARIES: } libqsexli.la: $(libqsexli_la_OBJECTS) $(libqsexli_la_DEPENDENCIES) $(EXTRA_libqsexli_la_DEPENDENCIES) - $(AM_V_CCLD)$(libqsexli_la_LINK) -rpath $(libdir) $(libqsexli_la_OBJECTS) $(libqsexli_la_LIBADD) $(LIBS) - -libqsexlixx.la: $(libqsexlixx_la_OBJECTS) $(libqsexlixx_la_DEPENDENCIES) $(EXTRA_libqsexlixx_la_DEPENDENCIES) - $(AM_V_CXXLD)$(libqsexlixx_la_LINK) $(am_libqsexlixx_la_rpath) $(libqsexlixx_la_OBJECTS) $(libqsexlixx_la_LIBADD) $(LIBS) + $(AM_V_CXXLD)$(libqsexli_la_LINK) -rpath $(libdir) $(libqsexli_la_OBJECTS) $(libqsexli_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) diff --git a/qse/samples/awk/Makefile.am b/qse/samples/awk/Makefile.am index 1685f50b..eb0b38bd 100644 --- a/qse/samples/awk/Makefile.am +++ b/qse/samples/awk/Makefile.am @@ -45,13 +45,4 @@ awk25_SOURCES = awk25.cpp awk26_SOURCES = awk26.cpp awk27_SOURCES = awk27.cpp awk28_SOURCES = awk28.cpp - -awk21_LDADD = $(CXXLIB) $(LDADD) -awk22_LDADD = $(CXXLIB) $(LDADD) -awk23_LDADD = $(CXXLIB) $(LDADD) -awk24_LDADD = $(CXXLIB) $(LDADD) -awk25_LDADD = $(CXXLIB) $(LDADD) -awk26_LDADD = $(CXXLIB) $(LDADD) -awk27_LDADD = $(CXXLIB) $(LDADD) -awk28_LDADD = $(CXXLIB) $(LDADD) endif diff --git a/qse/samples/cmn/Makefile.am b/qse/samples/cmn/Makefile.am index 02a3c4b4..5804a2a8 100644 --- a/qse/samples/cmn/Makefile.am +++ b/qse/samples/cmn/Makefile.am @@ -35,8 +35,10 @@ bin_PROGRAMS = \ uri01 \ xma +AM_CFLAGS = $(PTHREAD_CFLAGS) +AM_CXXFLAGS = $(PTHREAD_CFLAGS) AM_LDFLAGS = -L../../lib/si -L../../lib/cmn -LDADD = -lqsesi -lqsecmn +LDADD = -lqsesi -lqsecmn $(LIBM) $(PTHREAD_LIBS) if WIN32 if WCHAR @@ -79,36 +81,25 @@ if ENABLE_CXX bin_PROGRAMS += arr02 arr03 bh01 bh02 hl01 htb02 rbt02 rbt03 sp01 sp02 str02 arr02_SOURCES = arr02.cpp -arr02_LDADD = $(LDADD) -lqsecmnxx arr03_SOURCES = arr03.cpp -arr03_LDADD = $(LDADD) -lqsecmnxx bh01_SOURCES = bh01.cpp -bh01_LDADD = $(LDADD) -lqsecmnxx bh02_SOURCES = bh02.cpp -bh02_LDADD = $(LDADD) -lqsecmnxx hl01_SOURCES = hl01.cpp -hl01_LDADD = $(LDADD) -lqsecmnxx htb02_SOURCES = htb02.cpp -htb02_LDADD = $(LDADD) -lqsecmnxx rbt02_SOURCES = rbt02.cpp #RedBlackTree -rbt02_LDADD = $(LDADD) -lqsecmnxx rbt03_SOURCES = rbt03.cpp #RedBlackTable -rbt03_LDADD = $(LDADD) -lqsecmnxx sp01_SOURCES = sp01.cpp # ScopedPtr -sp01_LDADD = $(LDADD) -lqsecmnxx sp02_SOURCES = sp02.cpp # SharedPtr -sp02_LDADD = $(LDADD) -lqsecmnxx str02_SOURCES = str02.cpp # SharedPtr -str02_LDADD = $(LDADD) -lqsecmnxx endif diff --git a/qse/samples/cmn/Makefile.in b/qse/samples/cmn/Makefile.in index e176462b..489c4679 100644 --- a/qse/samples/cmn/Makefile.in +++ b/qse/samples/cmn/Makefile.in @@ -130,7 +130,8 @@ arr01_OBJECTS = $(am_arr01_OBJECTS) arr01_LDADD = $(LDADD) am__DEPENDENCIES_1 = @WCHAR_TRUE@@WIN32_TRUE@am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1) -arr01_DEPENDENCIES = $(am__DEPENDENCIES_2) +arr01_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_2) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent @@ -138,148 +139,194 @@ am__v_lt_1 = am__arr02_SOURCES_DIST = arr02.cpp @ENABLE_CXX_TRUE@am_arr02_OBJECTS = arr02.$(OBJEXT) arr02_OBJECTS = $(am_arr02_OBJECTS) -am__DEPENDENCIES_3 = $(am__DEPENDENCIES_2) -@ENABLE_CXX_TRUE@arr02_DEPENDENCIES = $(am__DEPENDENCIES_3) +arr02_LDADD = $(LDADD) +arr02_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_2) am__arr03_SOURCES_DIST = arr03.cpp @ENABLE_CXX_TRUE@am_arr03_OBJECTS = arr03.$(OBJEXT) arr03_OBJECTS = $(am_arr03_OBJECTS) -@ENABLE_CXX_TRUE@arr03_DEPENDENCIES = $(am__DEPENDENCIES_3) +arr03_LDADD = $(LDADD) +arr03_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_2) am__bh01_SOURCES_DIST = bh01.cpp @ENABLE_CXX_TRUE@am_bh01_OBJECTS = bh01.$(OBJEXT) bh01_OBJECTS = $(am_bh01_OBJECTS) -@ENABLE_CXX_TRUE@bh01_DEPENDENCIES = $(am__DEPENDENCIES_3) +bh01_LDADD = $(LDADD) +bh01_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_2) am__bh02_SOURCES_DIST = bh02.cpp @ENABLE_CXX_TRUE@am_bh02_OBJECTS = bh02.$(OBJEXT) bh02_OBJECTS = $(am_bh02_OBJECTS) -@ENABLE_CXX_TRUE@bh02_DEPENDENCIES = $(am__DEPENDENCIES_3) +bh02_LDADD = $(LDADD) +bh02_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_2) am_chr01_OBJECTS = chr01.$(OBJEXT) chr01_OBJECTS = $(am_chr01_OBJECTS) chr01_LDADD = $(LDADD) -chr01_DEPENDENCIES = $(am__DEPENDENCIES_2) +chr01_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_2) am_dll_OBJECTS = dll.$(OBJEXT) dll_OBJECTS = $(am_dll_OBJECTS) dll_LDADD = $(LDADD) -dll_DEPENDENCIES = $(am__DEPENDENCIES_2) +dll_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_2) am_env01_OBJECTS = env01.$(OBJEXT) env01_OBJECTS = $(am_env01_OBJECTS) env01_LDADD = $(LDADD) -env01_DEPENDENCIES = $(am__DEPENDENCIES_2) +env01_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_2) am_fma_OBJECTS = fma.$(OBJEXT) fma_OBJECTS = $(am_fma_OBJECTS) fma_LDADD = $(LDADD) -fma_DEPENDENCIES = $(am__DEPENDENCIES_2) +fma_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_2) am_fmt01_OBJECTS = fmt01.$(OBJEXT) fmt01_OBJECTS = $(am_fmt01_OBJECTS) fmt01_LDADD = $(LDADD) -fmt01_DEPENDENCIES = $(am__DEPENDENCIES_2) +fmt01_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_2) am_fmt02_OBJECTS = fmt02.$(OBJEXT) fmt02_OBJECTS = $(am_fmt02_OBJECTS) fmt02_LDADD = $(LDADD) -fmt02_DEPENDENCIES = $(am__DEPENDENCIES_2) +fmt02_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_2) am__hl01_SOURCES_DIST = hl01.cpp @ENABLE_CXX_TRUE@am_hl01_OBJECTS = hl01.$(OBJEXT) hl01_OBJECTS = $(am_hl01_OBJECTS) -@ENABLE_CXX_TRUE@hl01_DEPENDENCIES = $(am__DEPENDENCIES_3) +hl01_LDADD = $(LDADD) +hl01_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_2) am_htb01_OBJECTS = htb01.$(OBJEXT) htb01_OBJECTS = $(am_htb01_OBJECTS) htb01_LDADD = $(LDADD) -htb01_DEPENDENCIES = $(am__DEPENDENCIES_2) +htb01_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_2) am__htb02_SOURCES_DIST = htb02.cpp @ENABLE_CXX_TRUE@am_htb02_OBJECTS = htb02.$(OBJEXT) htb02_OBJECTS = $(am_htb02_OBJECTS) -@ENABLE_CXX_TRUE@htb02_DEPENDENCIES = $(am__DEPENDENCIES_3) +htb02_LDADD = $(LDADD) +htb02_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_2) htl01_SOURCES = htl01.c htl01_OBJECTS = htl01.$(OBJEXT) htl01_LDADD = $(LDADD) -htl01_DEPENDENCIES = $(am__DEPENDENCIES_2) +htl01_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_2) am_ipad01_OBJECTS = ipad01.$(OBJEXT) ipad01_OBJECTS = $(am_ipad01_OBJECTS) ipad01_LDADD = $(LDADD) -ipad01_DEPENDENCIES = $(am__DEPENDENCIES_2) +ipad01_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_2) am_main01_OBJECTS = main01.$(OBJEXT) main01_OBJECTS = $(am_main01_OBJECTS) main01_LDADD = $(LDADD) -main01_DEPENDENCIES = $(am__DEPENDENCIES_2) +main01_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_2) am_main02_OBJECTS = main02.$(OBJEXT) main02_OBJECTS = $(am_main02_OBJECTS) main02_LDADD = $(LDADD) -main02_DEPENDENCIES = $(am__DEPENDENCIES_2) +main02_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_2) am_mbwc01_OBJECTS = mbwc01.$(OBJEXT) mbwc01_OBJECTS = $(am_mbwc01_OBJECTS) mbwc01_LDADD = $(LDADD) -mbwc01_DEPENDENCIES = $(am__DEPENDENCIES_2) +mbwc01_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_2) am_mbwc02_OBJECTS = mbwc02.$(OBJEXT) mbwc02_OBJECTS = $(am_mbwc02_OBJECTS) mbwc02_LDADD = $(LDADD) -mbwc02_DEPENDENCIES = $(am__DEPENDENCIES_2) +mbwc02_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_2) am_oht_OBJECTS = oht.$(OBJEXT) oht_OBJECTS = $(am_oht_OBJECTS) oht_LDADD = $(LDADD) -oht_DEPENDENCIES = $(am__DEPENDENCIES_2) +oht_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_2) am_path01_OBJECTS = path01.$(OBJEXT) path01_OBJECTS = $(am_path01_OBJECTS) path01_LDADD = $(LDADD) -path01_DEPENDENCIES = $(am__DEPENDENCIES_2) +path01_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_2) am_pma_OBJECTS = pma.$(OBJEXT) pma_OBJECTS = $(am_pma_OBJECTS) pma_LDADD = $(LDADD) -pma_DEPENDENCIES = $(am__DEPENDENCIES_2) +pma_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_2) am_rbt01_OBJECTS = rbt01.$(OBJEXT) rbt01_OBJECTS = $(am_rbt01_OBJECTS) rbt01_LDADD = $(LDADD) -rbt01_DEPENDENCIES = $(am__DEPENDENCIES_2) +rbt01_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_2) am__rbt02_SOURCES_DIST = rbt02.cpp @ENABLE_CXX_TRUE@am_rbt02_OBJECTS = rbt02.$(OBJEXT) rbt02_OBJECTS = $(am_rbt02_OBJECTS) -@ENABLE_CXX_TRUE@rbt02_DEPENDENCIES = $(am__DEPENDENCIES_3) +rbt02_LDADD = $(LDADD) +rbt02_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_2) am__rbt03_SOURCES_DIST = rbt03.cpp @ENABLE_CXX_TRUE@am_rbt03_OBJECTS = rbt03.$(OBJEXT) rbt03_OBJECTS = $(am_rbt03_OBJECTS) -@ENABLE_CXX_TRUE@rbt03_DEPENDENCIES = $(am__DEPENDENCIES_3) +rbt03_LDADD = $(LDADD) +rbt03_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_2) am_rex01_OBJECTS = rex01.$(OBJEXT) rex01_OBJECTS = $(am_rex01_OBJECTS) rex01_LDADD = $(LDADD) -rex01_DEPENDENCIES = $(am__DEPENDENCIES_2) +rex01_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_2) am_sll_OBJECTS = sll.$(OBJEXT) sll_OBJECTS = $(am_sll_OBJECTS) sll_LDADD = $(LDADD) -sll_DEPENDENCIES = $(am__DEPENDENCIES_2) +sll_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_2) am_slmb01_OBJECTS = slmb01.$(OBJEXT) slmb01_OBJECTS = $(am_slmb01_OBJECTS) slmb01_LDADD = $(LDADD) -slmb01_DEPENDENCIES = $(am__DEPENDENCIES_2) +slmb01_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_2) am__sp01_SOURCES_DIST = sp01.cpp @ENABLE_CXX_TRUE@am_sp01_OBJECTS = sp01.$(OBJEXT) sp01_OBJECTS = $(am_sp01_OBJECTS) -@ENABLE_CXX_TRUE@sp01_DEPENDENCIES = $(am__DEPENDENCIES_3) +sp01_LDADD = $(LDADD) +sp01_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_2) am__sp02_SOURCES_DIST = sp02.cpp @ENABLE_CXX_TRUE@am_sp02_OBJECTS = sp02.$(OBJEXT) sp02_OBJECTS = $(am_sp02_OBJECTS) -@ENABLE_CXX_TRUE@sp02_DEPENDENCIES = $(am__DEPENDENCIES_3) +sp02_LDADD = $(LDADD) +sp02_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_2) am_str01_OBJECTS = str01.$(OBJEXT) str01_OBJECTS = $(am_str01_OBJECTS) str01_LDADD = $(LDADD) -str01_DEPENDENCIES = $(am__DEPENDENCIES_2) +str01_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_2) am__str02_SOURCES_DIST = str02.cpp @ENABLE_CXX_TRUE@am_str02_OBJECTS = str02.$(OBJEXT) str02_OBJECTS = $(am_str02_OBJECTS) -@ENABLE_CXX_TRUE@str02_DEPENDENCIES = $(am__DEPENDENCIES_3) +str02_LDADD = $(LDADD) +str02_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_2) am_time_OBJECTS = time.$(OBJEXT) time_OBJECTS = $(am_time_OBJECTS) time_LDADD = $(LDADD) -time_DEPENDENCIES = $(am__DEPENDENCIES_2) +time_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_2) am_tre01_OBJECTS = tre01.$(OBJEXT) tre01_OBJECTS = $(am_tre01_OBJECTS) tre01_LDADD = $(LDADD) -tre01_DEPENDENCIES = $(am__DEPENDENCIES_2) +tre01_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_2) uri01_SOURCES = uri01.c uri01_OBJECTS = uri01.$(OBJEXT) uri01_LDADD = $(LDADD) -uri01_DEPENDENCIES = $(am__DEPENDENCIES_2) +uri01_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_2) am_xma_OBJECTS = xma.$(OBJEXT) xma_OBJECTS = $(am_xma_OBJECTS) xma_LDADD = $(LDADD) -xma_DEPENDENCIES = $(am__DEPENDENCIES_2) +xma_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_2) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false @@ -569,8 +616,10 @@ AM_CPPFLAGS = \ -I$(top_srcdir)/include \ -I$(includedir) +AM_CFLAGS = $(PTHREAD_CFLAGS) +AM_CXXFLAGS = $(PTHREAD_CFLAGS) AM_LDFLAGS = -L../../lib/si -L../../lib/cmn -LDADD = -lqsesi -lqsecmn $(am__append_1) +LDADD = -lqsesi -lqsecmn $(LIBM) $(PTHREAD_LIBS) $(am__append_1) chr01_SOURCES = chr01.c env01_SOURCES = env01.c dll_SOURCES = dll.c @@ -596,27 +645,16 @@ time_SOURCES = time.c tre01_SOURCES = tre01.c xma_SOURCES = xma.c @ENABLE_CXX_TRUE@arr02_SOURCES = arr02.cpp -@ENABLE_CXX_TRUE@arr02_LDADD = $(LDADD) -lqsecmnxx @ENABLE_CXX_TRUE@arr03_SOURCES = arr03.cpp -@ENABLE_CXX_TRUE@arr03_LDADD = $(LDADD) -lqsecmnxx @ENABLE_CXX_TRUE@bh01_SOURCES = bh01.cpp -@ENABLE_CXX_TRUE@bh01_LDADD = $(LDADD) -lqsecmnxx @ENABLE_CXX_TRUE@bh02_SOURCES = bh02.cpp -@ENABLE_CXX_TRUE@bh02_LDADD = $(LDADD) -lqsecmnxx @ENABLE_CXX_TRUE@hl01_SOURCES = hl01.cpp -@ENABLE_CXX_TRUE@hl01_LDADD = $(LDADD) -lqsecmnxx @ENABLE_CXX_TRUE@htb02_SOURCES = htb02.cpp -@ENABLE_CXX_TRUE@htb02_LDADD = $(LDADD) -lqsecmnxx @ENABLE_CXX_TRUE@rbt02_SOURCES = rbt02.cpp #RedBlackTree -@ENABLE_CXX_TRUE@rbt02_LDADD = $(LDADD) -lqsecmnxx @ENABLE_CXX_TRUE@rbt03_SOURCES = rbt03.cpp #RedBlackTable -@ENABLE_CXX_TRUE@rbt03_LDADD = $(LDADD) -lqsecmnxx @ENABLE_CXX_TRUE@sp01_SOURCES = sp01.cpp # ScopedPtr -@ENABLE_CXX_TRUE@sp01_LDADD = $(LDADD) -lqsecmnxx @ENABLE_CXX_TRUE@sp02_SOURCES = sp02.cpp # SharedPtr -@ENABLE_CXX_TRUE@sp02_LDADD = $(LDADD) -lqsecmnxx @ENABLE_CXX_TRUE@str02_SOURCES = str02.cpp # SharedPtr -@ENABLE_CXX_TRUE@str02_LDADD = $(LDADD) -lqsecmnxx all: all-am .SUFFIXES: diff --git a/qse/samples/cry/Makefile.am b/qse/samples/cry/Makefile.am index bec6dd49..3ed9e8c2 100644 --- a/qse/samples/cry/Makefile.am +++ b/qse/samples/cry/Makefile.am @@ -10,9 +10,10 @@ bin_PROGRAMS = \ bf01 \ sha01 -AM_LDFLAGS = -L../../lib/cry -L../../lib/si -L../../lib/cmn -LDADD = -lqsecry -lqsesi -lqsecmn +AM_CFLAGS = $(PTHREAD_CFLAGS) +AM_LDFLAGS = -L../../lib/cry -L../../lib/si -L../../lib/cmn +LDADD = -lqsecry -lqsesi -lqsecmn $(LIBM) $(PTHREAD_LIBS) if WIN32 if WCHAR LDADD += $(UNICOWS_LIBS) diff --git a/qse/samples/cry/Makefile.in b/qse/samples/cry/Makefile.in index d76fad5b..4548ed02 100644 --- a/qse/samples/cry/Makefile.in +++ b/qse/samples/cry/Makefile.in @@ -113,7 +113,8 @@ bf01_OBJECTS = $(am_bf01_OBJECTS) bf01_LDADD = $(LDADD) am__DEPENDENCIES_1 = @WCHAR_TRUE@@WIN32_TRUE@am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1) -bf01_DEPENDENCIES = $(am__DEPENDENCIES_2) +bf01_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_2) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent @@ -121,7 +122,8 @@ am__v_lt_1 = am_sha01_OBJECTS = sha01.$(OBJEXT) sha01_OBJECTS = $(am_sha01_OBJECTS) sha01_LDADD = $(LDADD) -sha01_DEPENDENCIES = $(am__DEPENDENCIES_2) +sha01_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_2) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false @@ -356,8 +358,10 @@ AM_CPPFLAGS = \ -I$(top_srcdir)/include \ -I$(includedir) +AM_CFLAGS = $(PTHREAD_CFLAGS) AM_LDFLAGS = -L../../lib/cry -L../../lib/si -L../../lib/cmn -LDADD = -lqsecry -lqsesi -lqsecmn $(am__append_1) +LDADD = -lqsecry -lqsesi -lqsecmn $(LIBM) $(PTHREAD_LIBS) \ + $(am__append_1) bf01_SOURCES = bf01.c sha01_SOURCES = sha01.c all: all-am diff --git a/qse/samples/sed/Makefile.am b/qse/samples/sed/Makefile.am index a194cd71..5f870125 100644 --- a/qse/samples/sed/Makefile.am +++ b/qse/samples/sed/Makefile.am @@ -29,13 +29,9 @@ sed03_LDADD = $(LDADD) if ENABLE_CXX -CXXLIB = -lqsesedxx -lqsecmnxx bin_PROGRAMS += sed21 sed22 sed21_SOURCES = sed21.cpp $(CMNFILES) -sed21_LDADD = $(CXXLIB) $(LDADD) - sed22_SOURCES = sed22.cpp $(CMNFILES) -sed22_LDADD = $(CXXLIB) $(LDADD) endif diff --git a/qse/samples/si/Makefile.am b/qse/samples/si/Makefile.am index 7b634150..cecbd721 100644 --- a/qse/samples/si/Makefile.am +++ b/qse/samples/si/Makefile.am @@ -29,6 +29,7 @@ bin_PROGRAMS = \ AM_LDFLAGS = -L../../lib/si -L../../lib/cmn AM_CFLAGS = $(PTHREAD_CFLAGS) +AM_CXXFLAGS = $(PTHREAD_CFLAGS) LDADD = -lqsesi -lqsecmn $(PTHREAD_LIBS) if WIN32 @@ -61,8 +62,6 @@ thr01_SOURCES = thr01.c if ENABLE_CXX -CXXLIB = -lqsesixx -lqsecmnxx - bin_PROGRAMS += sck01 spl02 tcpsvr01 tcpsvr02 thr02 thr03 sck01_SOURCES = sck01.cpp @@ -72,12 +71,7 @@ tcpsvr02_SOURCES = tcpsvr02.cpp thr02_SOURCES = thr02.cpp thr03_SOURCES = thr03.cpp -sck01_LDADD = $(CXXLIB) $(LDADD) -spl02_LDADD = $(CXXLIB) $(LDADD) -tcpsvr01_LDADD = $(CXXLIB) $(LDADD) -tcpsvr02_LDADD = $(CXXLIB) $(LDADD) -L../../lib/sttp -lqsesttpxx -thr02_LDADD = $(CXXLIB) $(LDADD) -thr03_LDADD = $(CXXLIB) $(LDADD) +tcpsvr02_LDADD = $(LDADD) -L../../lib/sttp -lqsesttp endif diff --git a/qse/samples/si/Makefile.in b/qse/samples/si/Makefile.in index 78ff545b..87687352 100644 --- a/qse/samples/si/Makefile.in +++ b/qse/samples/si/Makefile.in @@ -178,9 +178,8 @@ rwl01_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) am__sck01_SOURCES_DIST = sck01.cpp @ENABLE_CXX_TRUE@am_sck01_OBJECTS = sck01.$(OBJEXT) sck01_OBJECTS = $(am_sck01_OBJECTS) -am__DEPENDENCIES_3 = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) -@ENABLE_CXX_TRUE@sck01_DEPENDENCIES = $(am__DEPENDENCIES_1) \ -@ENABLE_CXX_TRUE@ $(am__DEPENDENCIES_3) +sck01_LDADD = $(LDADD) +sck01_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) am_sio01_OBJECTS = sio01.$(OBJEXT) sio01_OBJECTS = $(am_sio01_OBJECTS) sio01_LDADD = $(LDADD) @@ -200,8 +199,8 @@ spl01_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) am__spl02_SOURCES_DIST = spl02.cpp @ENABLE_CXX_TRUE@am_spl02_OBJECTS = spl02.$(OBJEXT) spl02_OBJECTS = $(am_spl02_OBJECTS) -@ENABLE_CXX_TRUE@spl02_DEPENDENCIES = $(am__DEPENDENCIES_1) \ -@ENABLE_CXX_TRUE@ $(am__DEPENDENCIES_3) +spl02_LDADD = $(LDADD) +spl02_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) am_task01_OBJECTS = task01.$(OBJEXT) task01_OBJECTS = $(am_task01_OBJECTS) task01_LDADD = $(LDADD) @@ -209,13 +208,13 @@ task01_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) am__tcpsvr01_SOURCES_DIST = tcpsvr01.cpp @ENABLE_CXX_TRUE@am_tcpsvr01_OBJECTS = tcpsvr01.$(OBJEXT) tcpsvr01_OBJECTS = $(am_tcpsvr01_OBJECTS) -@ENABLE_CXX_TRUE@tcpsvr01_DEPENDENCIES = $(am__DEPENDENCIES_1) \ -@ENABLE_CXX_TRUE@ $(am__DEPENDENCIES_3) +tcpsvr01_LDADD = $(LDADD) +tcpsvr01_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) am__tcpsvr02_SOURCES_DIST = tcpsvr02.cpp @ENABLE_CXX_TRUE@am_tcpsvr02_OBJECTS = tcpsvr02.$(OBJEXT) tcpsvr02_OBJECTS = $(am_tcpsvr02_OBJECTS) -@ENABLE_CXX_TRUE@tcpsvr02_DEPENDENCIES = $(am__DEPENDENCIES_1) \ -@ENABLE_CXX_TRUE@ $(am__DEPENDENCIES_3) +am__DEPENDENCIES_3 = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) +@ENABLE_CXX_TRUE@tcpsvr02_DEPENDENCIES = $(am__DEPENDENCIES_3) am_thr01_OBJECTS = thr01.$(OBJEXT) thr01_OBJECTS = $(am_thr01_OBJECTS) thr01_LDADD = $(LDADD) @@ -223,13 +222,13 @@ thr01_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) am__thr02_SOURCES_DIST = thr02.cpp @ENABLE_CXX_TRUE@am_thr02_OBJECTS = thr02.$(OBJEXT) thr02_OBJECTS = $(am_thr02_OBJECTS) -@ENABLE_CXX_TRUE@thr02_DEPENDENCIES = $(am__DEPENDENCIES_1) \ -@ENABLE_CXX_TRUE@ $(am__DEPENDENCIES_3) +thr02_LDADD = $(LDADD) +thr02_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) am__thr03_SOURCES_DIST = thr03.cpp @ENABLE_CXX_TRUE@am_thr03_OBJECTS = thr03.$(OBJEXT) thr03_OBJECTS = $(am_thr03_OBJECTS) -@ENABLE_CXX_TRUE@thr03_DEPENDENCIES = $(am__DEPENDENCIES_1) \ -@ENABLE_CXX_TRUE@ $(am__DEPENDENCIES_3) +thr03_LDADD = $(LDADD) +thr03_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false @@ -510,6 +509,7 @@ AM_CPPFLAGS = \ AM_LDFLAGS = -L../../lib/si -L../../lib/cmn AM_CFLAGS = $(PTHREAD_CFLAGS) +AM_CXXFLAGS = $(PTHREAD_CFLAGS) LDADD = -lqsesi -lqsecmn $(PTHREAD_LIBS) $(am__append_1) dir01_SOURCES = dir01.c fio01_SOURCES = fio01.c @@ -530,19 +530,13 @@ sio03_SOURCES = sio03.c spl01_SOURCES = spl01.c task01_SOURCES = task01.c thr01_SOURCES = thr01.c -@ENABLE_CXX_TRUE@CXXLIB = -lqsesixx -lqsecmnxx @ENABLE_CXX_TRUE@sck01_SOURCES = sck01.cpp @ENABLE_CXX_TRUE@spl02_SOURCES = spl02.cpp @ENABLE_CXX_TRUE@tcpsvr01_SOURCES = tcpsvr01.cpp @ENABLE_CXX_TRUE@tcpsvr02_SOURCES = tcpsvr02.cpp @ENABLE_CXX_TRUE@thr02_SOURCES = thr02.cpp @ENABLE_CXX_TRUE@thr03_SOURCES = thr03.cpp -@ENABLE_CXX_TRUE@sck01_LDADD = $(CXXLIB) $(LDADD) -@ENABLE_CXX_TRUE@spl02_LDADD = $(CXXLIB) $(LDADD) -@ENABLE_CXX_TRUE@tcpsvr01_LDADD = $(CXXLIB) $(LDADD) -@ENABLE_CXX_TRUE@tcpsvr02_LDADD = $(CXXLIB) $(LDADD) -L../../lib/sttp -lqsesttpxx -@ENABLE_CXX_TRUE@thr02_LDADD = $(CXXLIB) $(LDADD) -@ENABLE_CXX_TRUE@thr03_LDADD = $(CXXLIB) $(LDADD) +@ENABLE_CXX_TRUE@tcpsvr02_LDADD = $(LDADD) -L../../lib/sttp -lqsesttp all: all-am .SUFFIXES: diff --git a/qse/samples/xli/Makefile.am b/qse/samples/xli/Makefile.am index 7c88c07d..3b48b3c6 100644 --- a/qse/samples/xli/Makefile.am +++ b/qse/samples/xli/Makefile.am @@ -19,10 +19,6 @@ endif if ENABLE_CXX -CXXLIB = -lqsexlixx -lqsecmnxx - skvenv01_SOURCES = skvenv01.cpp -skvenv01_LDADD = $(CXXLIB) $(LDADD) - endif