HTML entities in street names
This commit is contained in:
parent
5c0ed9229d
commit
1cbf2ab0d7
@ -295,12 +295,12 @@ public:
|
|||||||
return ed.distance;
|
return ed.distance;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline std::string &GetNameForNameID(const NodeID nameID) const {
|
inline std::string &GetUnescapedNameForNameID(const NodeID nameID) const {
|
||||||
return (nameID >= _names->size() ? _names->at(0) : _names->at(nameID) );
|
return (nameID >= _names->size() ? _names->at(0) : _names->at(nameID) );
|
||||||
}
|
}
|
||||||
|
|
||||||
inline std::string GetEscapedNameForNameID(const NodeID nameID) const {
|
inline std::string GetEscapedNameForNameID(const NodeID nameID) const {
|
||||||
return (nameID >= _names->size() ? _names->at(0) : replaceAll(_names->at(nameID), "\"", "\\\"") );
|
return ( nameID >= _names->size() ? std::string("") : HTMLEntitize(_names->at(nameID)) );
|
||||||
}
|
}
|
||||||
|
|
||||||
inline short GetTypeOfEdgeForOriginDestinationNodeID(NodeID s, NodeID t) const {
|
inline short GetTypeOfEdgeForOriginDestinationNodeID(NodeID s, NodeID t) const {
|
||||||
|
@ -79,12 +79,31 @@ inline void doubleToString(const double value, std::string & output)
|
|||||||
output = buffer ;
|
output = buffer ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline std::string & replaceAll(std::string &s, const std::string &sub, const std::string &other) {
|
||||||
|
assert(!sub.empty());
|
||||||
|
size_t b = 0;
|
||||||
|
for (;;) {
|
||||||
|
b = s.find(sub, b);
|
||||||
|
if (b == s.npos) break;
|
||||||
|
s.replace(b, sub.size(), other);
|
||||||
|
b += other.size();
|
||||||
|
}
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
|
||||||
std::string replaceAll( std::string result, const std::string& replaceWhat, const std::string& replaceWithWhat) {
|
std::string originals[] = {"&", "\"", "<", ">", "'", "[", "]"};
|
||||||
while(true) {
|
std::string entities[] = {"&", """, "<", ">", "'", "&91;", "&93;" };
|
||||||
const int pos = result.find(replaceWhat);
|
|
||||||
if (pos==-1) break;
|
std::string HTMLEntitize( std::string result) {
|
||||||
result.replace(pos,replaceWhat.size(),replaceWithWhat);
|
for(unsigned i = 0; i < sizeof(originals)/sizeof(std::string); i++) {
|
||||||
|
result = replaceAll(result, originals[i], entities[i]);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string HTMLDeEntitize( std::string result) {
|
||||||
|
for(unsigned i = 0; i < sizeof(originals)/sizeof(std::string); i++) {
|
||||||
|
result = replaceAll(result, entities[i], originals[i]);
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user