diff --git a/qse/include/qse/sttp/Sttp.hpp b/qse/include/qse/sttp/Sttp.hpp index 247a0025..ee117f9e 100644 --- a/qse/include/qse/sttp/Sttp.hpp +++ b/qse/include/qse/sttp/Sttp.hpp @@ -62,7 +62,8 @@ public: int sendCmdV (const qse_mchar_t* name, qse_size_t nargs, va_list ap); int sendCmdV (const qse_wchar_t* name, qse_size_t nargs, va_list ap); - // TODO: sendCmdLV + int sendCmdLV (const qse_mchar_t* name, qse_size_t nargs, va_list ap); + int sendCmdLV (const qse_wchar_t* name, qse_size_t nargs, va_list ap); // ------------------------------------------------------------------ diff --git a/qse/lib/sttp/Sttp.cpp b/qse/lib/sttp/Sttp.cpp index a938cf99..45c61642 100644 --- a/qse/lib/sttp/Sttp.cpp +++ b/qse/lib/sttp/Sttp.cpp @@ -683,79 +683,41 @@ int Sttp::write_char (qse_wchar_t c) int Sttp::sendCmd (const qse_mchar_t* name, qse_size_t nargs, ...) { int n; - va_list ap; va_start (ap, nargs); n = this->sendCmd(name, nargs, ap); va_end (ap); - return n; } int Sttp::sendCmd (const qse_wchar_t* name, qse_size_t nargs, ...) { int n; - va_list ap; va_start (ap, nargs); n = this->sendCmd(name, nargs, ap); va_end (ap); - return n; } int Sttp::sendCmdL (const qse_mchar_t* name, qse_size_t nargs, ...) { - 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 n; + va_list ap; + va_start (ap, nargs); + n = this->sendCmdL(name, nargs, ap); + va_end (ap); + return n; } int Sttp::sendCmdL (const qse_wchar_t* name, qse_size_t nargs, ...) { - 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; + int n; + va_list ap; + va_start (ap, nargs); + n = this->sendCmdL(name, nargs, ap); + va_end (ap); + return n; } int Sttp::sendCmdV (const qse_mchar_t* name, qse_size_t nargs, va_list ap) @@ -768,11 +730,7 @@ int Sttp::sendCmdV (const qse_mchar_t* name, qse_size_t nargs, va_list ap) 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; - } + if (this->writeStringArg(p) <= -1) return -1; } } @@ -790,11 +748,45 @@ int Sttp::sendCmdV (const qse_wchar_t* name, qse_size_t nargs, va_list ap) 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; - } + if (this->writeStringArg(p) <= -1) return -1; + } + } + + if (this->endWrite() <= -1) return -1; + return 0; +} + +int Sttp::sendCmdLV (const qse_mchar_t* name, qse_size_t nargs, va_list ap) +{ + if (name[0] == '\0') return 0; // don't send a null command + if (this->beginWrite(name) <= -1) return -1; + + if (nargs > 0) + { + 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) return -1; + } + } + + if (this->endWrite() <= -1) return -1; + return 0; +} + +int Sttp::sendCmdLV (const qse_wchar_t* name, qse_size_t nargs, va_list ap) +{ + if (name[0] == '\0') return 0; // don't send a null command + if (this->beginWrite(name) <= -1) return -1; + + if (nargs > 0) + { + 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) return -1; } }