loolwsd/LOOLProtocol.hpp | 15 ++++++++------- loolwsd/test/UnitFonts.cpp | 4 ++-- 2 files changed, 10 insertions(+), 9 deletions(-)
New commits: commit f7327115debc9c9d18f061ba9baef8fb993cc9de Author: Ashod Nakashian <ashod.nakash...@collabora.co.uk> Date: Sat Oct 8 13:12:16 2016 -0400 loolwsd: allow for delimiter in LOOLProtocol parsers Change-Id: I9c7e503aed067dfe36953552237941e7c1841457 Reviewed-on: https://gerrit.libreoffice.org/29633 Reviewed-by: Ashod Nakashian <ashnak...@gmail.com> Tested-by: Ashod Nakashian <ashnak...@gmail.com> diff --git a/loolwsd/LOOLProtocol.hpp b/loolwsd/LOOLProtocol.hpp index e5e79b9..6120e0c 100644 --- a/loolwsd/LOOLProtocol.hpp +++ b/loolwsd/LOOLProtocol.hpp @@ -75,29 +75,29 @@ namespace LOOLProtocol bool parseStatus(const std::string& message, LibreOfficeKitDocumentType& type, int& nParts, int& currentPart, int& width, int& height); inline - std::string getDelimitedInitialSubstring(const char *message, const int length, const char delimiter) + std::string getDelimitedInitialSubstring(const char *message, const int length, const char delim) { if (message == nullptr || length <= 0) { return ""; } - const char *foundDelimiter = static_cast<const char *>(std::memchr(message, delimiter, length)); - const auto size = (foundDelimiter == nullptr ? length : foundDelimiter - message); + const char *founddelim = static_cast<const char *>(std::memchr(message, delim, length)); + const auto size = (founddelim == nullptr ? length : founddelim - message); return std::string(message, size); } /// Returns the first token of a message. inline - std::string getFirstToken(const char *message, const int length) + std::string getFirstToken(const char *message, const int length, const char delim) { - return getDelimitedInitialSubstring(message, length, ' '); + return getDelimitedInitialSubstring(message, length, delim); } template <typename T> - std::string getFirstToken(const T& message) + std::string getFirstToken(const T& message, const char delim = ' ') { - return getFirstToken(message.data(), message.size()); + return getFirstToken(message.data(), message.size(), delim); } /// Returns true if the token is a user-interaction token. @@ -126,6 +126,7 @@ namespace LOOLProtocol return getDelimitedInitialSubstring(message, length, '\n'); } + /// Returns the first line of any data which payload char*. template <typename T> std::string getFirstLine(const T& message) { diff --git a/loolwsd/test/UnitFonts.cpp b/loolwsd/test/UnitFonts.cpp index 2d1b157..c82dcbb 100644 --- a/loolwsd/test/UnitFonts.cpp +++ b/loolwsd/test/UnitFonts.cpp @@ -144,10 +144,10 @@ public: virtual bool filterKitMessage(const std::shared_ptr<Poco::Net::WebSocket> &ws, std::string &message) override { - std::string token = LOOLProtocol::getFirstToken(message.c_str(), message.length()); + const std::string token = LOOLProtocol::getFirstToken(message); if (token == "unit-getfontlist:") { - std::string fontListReply = getFontList() + "\n"; + const std::string fontListReply = getFontList() + "\n"; ws->sendFrame(fontListReply.c_str(), fontListReply.length()); return true; } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits