diff options
author | Adam Lesinski <adamlesinski@google.com> | 2017-08-02 14:57:43 -0700 |
---|---|---|
committer | Adam Lesinski <adamlesinski@google.com> | 2017-08-03 17:33:52 -0700 |
commit | efeb7af13be4446ce4a511a2ca707691e9a67c1e (patch) | |
tree | 36dc0651bcad4b81faf41fe730754d96d6eea465 /tools/aapt2/configuration/ConfigurationParser.cpp | |
parent | f0f9fa330772f5f6a13673bd1204251c464ce67b (diff) |
AAPT2: Fix windows unicode path issues
Mingw64 was being difficult, so instead of defining a wmain entrypoint,
the command line parameters are parsed manually using built-in Windows
methods that support Unicode. The results are converted to UTF8 and
handled just like the rest of the linux/mac version of the code.
This also removes dependencies on std::istream in favour of a
FileInputStream which calls the appropriate unicode version of
open to read a file.
No speed regressions found on Linux or MacOS.
Bug: 62336414
Bug: 63830502
Test: manual
Change-Id: I597da51e33729ed1b98bf246e7e773337fd3fee8
Diffstat (limited to 'tools/aapt2/configuration/ConfigurationParser.cpp')
-rw-r--r-- | tools/aapt2/configuration/ConfigurationParser.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/tools/aapt2/configuration/ConfigurationParser.cpp b/tools/aapt2/configuration/ConfigurationParser.cpp index c56492c8af9d..b0ed792215df 100644 --- a/tools/aapt2/configuration/ConfigurationParser.cpp +++ b/tools/aapt2/configuration/ConfigurationParser.cpp @@ -22,13 +22,14 @@ #include <memory> #include <utility> -#include <android-base/file.h> -#include <android-base/logging.h> +#include "android-base/file.h" +#include "android-base/logging.h" #include "ConfigDescription.h" #include "Diagnostics.h" #include "io/File.h" #include "io/FileSystem.h" +#include "io/StringInputStream.h" #include "util/Maybe.h" #include "util/Util.h" #include "xml/XmlActionExecutor.h" @@ -49,6 +50,7 @@ using ::aapt::configuration::Group; using ::aapt::configuration::Locale; using ::aapt::io::IFile; using ::aapt::io::RegularFile; +using ::aapt::io::StringInputStream; using ::aapt::util::TrimWhitespace; using ::aapt::xml::Element; using ::aapt::xml::FindRootElement; @@ -194,8 +196,7 @@ ConfigurationParser::ConfigurationParser(std::string contents) } Maybe<PostProcessingConfiguration> ConfigurationParser::Parse() { - std::istringstream in(contents_); - + StringInputStream in(contents_); auto doc = xml::Inflate(&in, diag_, Source("config.xml")); if (!doc) { return {}; |