wsd/FileServer.cpp | 29 ++++++++++++++++++++++++++++- wsd/FileServer.hpp | 2 +- 2 files changed, 29 insertions(+), 2 deletions(-)
New commits: commit 6144d55f44c2109d43bc45c408fe4d1ca8f42207 Author: Henry Castro <hcas...@collabora.com> AuthorDate: Sun Feb 10 13:40:38 2019 -0400 Commit: Henry Castro <hcas...@collabora.com> CommitDate: Tue Mar 5 18:27:58 2019 -0400 wsd: tokenize symbol "_('') _("")" Change-Id: I9c0e7f30a96a355f6d69b2c5a5244dbfbd863e08 diff --git a/wsd/FileServer.cpp b/wsd/FileServer.cpp index 7c297deb1..61259ac05 100644 --- a/wsd/FileServer.cpp +++ b/wsd/FileServer.cpp @@ -567,7 +567,7 @@ constexpr char BRANDING[] = "branding"; constexpr char BRANDING_UNSUPPORTED[] = "branding-unsupported"; #endif -void FileServerRequestHandler::getToken(std::istream& istr, std::string& token) +void FileServerRequestHandler::getToken(std::istringstream& istr, std::string& token) { token.clear(); int chr = istr.get(); @@ -583,6 +583,33 @@ void FileServerRequestHandler::getToken(std::istream& istr, std::string& token) token += "%>"; istr.get(); } + else if (chr == '_' && istr.peek() == '(') + { + token += "_("; + istr.get(); + chr = istr.peek(); + switch (chr) + { + case '\"': + chr = istr.get(); + token += (char) chr; + break; + case '\'': + chr = istr.get(); + token += (char) chr; + break; + } + } + else if (chr == '"' && istr.peek() == ')') + { + token += "\")"; + istr.get(); + } + else if (chr == '\'' && istr.peek() == ')') + { + token += "')"; + istr.get(); + } else token += (char) chr; } } diff --git a/wsd/FileServer.hpp b/wsd/FileServer.hpp index 637424468..45cf7538b 100644 --- a/wsd/FileServer.hpp +++ b/wsd/FileServer.hpp @@ -20,7 +20,7 @@ class FileServerRequestHandler { static std::string getRequestPathname(const Poco::Net::HTTPRequest& request); - static void getToken(std::istream&, std::string&); + static void getToken(std::istringstream&, std::string&); static void preprocessFile(const Poco::Net::HTTPRequest& request, Poco::MemoryInputStream& message, const std::shared_ptr<StreamSocket>& socket); static void preprocessAdminFile(const Poco::Net::HTTPRequest& request, const std::shared_ptr<StreamSocket>& socket); public: _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits