Change setFromEscapedString to take the string plus begin and end offsets.
diff --git a/ndn-cpp/name.cpp b/ndn-cpp/name.cpp
index 0b8ab91..d94eecd 100644
--- a/ndn-cpp/name.cpp
+++ b/ndn-cpp/name.cpp
@@ -103,9 +103,9 @@
return result.str();
}
-bool Name::Component::setFromEscapedString(const char *first, const char *last)
+bool Name::Component::setFromEscapedString(const char *escapedString, unsigned int beginOffset, unsigned int endOffset)
{
- string trimmedString(first, last);
+ string trimmedString(escapedString + beginOffset, escapedString + endOffset);
trim(trimmedString);
string component = unescape(trimmedString);
@@ -190,7 +190,7 @@
iComponentEnd = uri.size();
components_.push_back(Component());
- if (!components_[components_.size() - 1].setFromEscapedString(&uri[iComponentStart], &uri[iComponentEnd]))
+ if (!components_[components_.size() - 1].setFromEscapedString(&uri[0], iComponentStart, iComponentEnd))
// Ignore the illegal component. This also gets rid of a trailing '/'.
components_.pop_back();