summaryrefslogtreecommitdiff
path: root/tools/aapt2/Source.h
diff options
context:
space:
mode:
authorBill Peckham <bpeckham@google.com>2018-09-08 10:06:40 -0700
committerBill Peckham <bpeckham@google.com>2018-09-08 10:06:40 -0700
commita74879d25eb0e4ef53855b57181b038bca75d05f (patch)
tree2a1ef83944343e547bebeae9998b098557225070 /tools/aapt2/Source.h
parentb00720941bf751117cf02da40add144683ab51f1 (diff)
Merge QP1A.180823.001
Change-Id: Ia2d6fa811b3c57185c1975db603d59e6eaef73fc
Diffstat (limited to 'tools/aapt2/Source.h')
-rw-r--r--tools/aapt2/Source.h12
1 files changed, 10 insertions, 2 deletions
diff --git a/tools/aapt2/Source.h b/tools/aapt2/Source.h
index 0f312d6998f1..92934c343960 100644
--- a/tools/aapt2/Source.h
+++ b/tools/aapt2/Source.h
@@ -31,12 +31,16 @@ namespace aapt {
struct Source {
std::string path;
Maybe<size_t> line;
+ Maybe<std::string> archive;
Source() = default;
inline Source(const android::StringPiece& path) : path(path.to_string()) { // NOLINT(implicit)
}
+ inline Source(const android::StringPiece& path, const android::StringPiece& archive)
+ : path(path.to_string()), archive(archive.to_string()) {}
+
inline Source(const android::StringPiece& path, size_t line)
: path(path.to_string()), line(line) {}
@@ -45,10 +49,14 @@ struct Source {
}
std::string to_string() const {
+ std::string s = path;
+ if (archive) {
+ s = ::android::base::StringPrintf("%s@%s", archive.value().c_str(), s.c_str());
+ }
if (line) {
- return ::android::base::StringPrintf("%s:%zd", path.c_str(), line.value());
+ s = ::android::base::StringPrintf("%s:%zd", s.c_str(), line.value());
}
- return path;
+ return s;
}
};