summaryrefslogtreecommitdiff
path: root/libs/androidfw/include
diff options
context:
space:
mode:
author TreeHugger Robot <treehugger-gerrit@google.com> 2017-02-09 16:17:15 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2017-02-09 16:17:18 +0000
commit024d22fdb76a75f72ac1a421c4dd184bbfe2ba12 (patch)
tree074240054a9d37547ab9ddd3cac73a05e08b3f0e /libs/androidfw/include
parent34895c404b0153f021094d149cf36918edbd4552 (diff)
parent7542162cb1b1fd2ce8a26dd7f3fedc8de8160d38 (diff)
Merge "AAPT2: Fix pseudolocalization to respect <xliff:g>"
Diffstat (limited to 'libs/androidfw/include')
-rw-r--r--libs/androidfw/include/androidfw/StringPiece.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/libs/androidfw/include/androidfw/StringPiece.h b/libs/androidfw/include/androidfw/StringPiece.h
index 8f6824b5322c..a873d66803e7 100644
--- a/libs/androidfw/include/androidfw/StringPiece.h
+++ b/libs/androidfw/include/androidfw/StringPiece.h
@@ -271,8 +271,36 @@ inline ::std::ostream& operator<<(::std::ostream& out, const BasicStringPiece<ch
return out.write(str.data(), str.size());
}
+template <typename TChar>
+inline ::std::basic_string<TChar>& operator+=(::std::basic_string<TChar>& lhs,
+ const BasicStringPiece<TChar>& rhs) {
+ return lhs.append(rhs.data(), rhs.size());
+}
+
+template <typename TChar>
+inline bool operator==(const ::std::basic_string<TChar>& lhs, const BasicStringPiece<TChar>& rhs) {
+ return rhs == lhs;
+}
+
+template <typename TChar>
+inline bool operator!=(const ::std::basic_string<TChar>& lhs, const BasicStringPiece<TChar>& rhs) {
+ return rhs != lhs;
+}
+
} // namespace android
+inline ::std::ostream& operator<<(::std::ostream& out, const std::u16string& str) {
+ ssize_t utf8_len = utf16_to_utf8_length(str.data(), str.size());
+ if (utf8_len < 0) {
+ return out << "???";
+ }
+
+ std::string utf8;
+ utf8.resize(static_cast<size_t>(utf8_len));
+ utf16_to_utf8(str.data(), str.size(), &*utf8.begin(), utf8_len + 1);
+ return out << utf8;
+}
+
namespace std {
template <typename TChar>