Bug Fix - use " not ' for annotation quoting

- Annotations were using ' to quote text, sanitizing ' -> " inside
  the text.  It would be better to quote with " and sanitize " -> '
  because ' is more common in the text (e.g. "Doesn't work") than ".
This commit is contained in:
Paul Beckingham 2009-04-12 22:53:20 -04:00
parent 22f0b1d9fb
commit 7431f0cdd3

View file

@ -280,7 +280,7 @@ void T::setAnnotations (const std::map <time_t, std::string>& all)
void T::addAnnotation (const std::string& description) void T::addAnnotation (const std::string& description)
{ {
std::string sanitized = description; std::string sanitized = description;
std::replace (sanitized.begin (), sanitized.end (), '\'', '"'); std::replace (sanitized.begin (), sanitized.end (), '"', '\'');
std::replace (sanitized.begin (), sanitized.end (), '[', '('); std::replace (sanitized.begin (), sanitized.end (), '[', '(');
std::replace (sanitized.begin (), sanitized.end (), ']', ')'); std::replace (sanitized.begin (), sanitized.end (), ']', ')');
mAnnotations[time (NULL)] = sanitized; mAnnotations[time (NULL)] = sanitized;
@ -337,7 +337,7 @@ const std::string T::compose () const
else else
annotation << " "; annotation << " ";
annotation << note->first << ":'" << note->second << "'"; annotation << note->first << ":\"" << note->second << "\"";
} }
line += annotation.str () + "] "; line += annotation.str () + "] ";
@ -584,7 +584,7 @@ void T::parse (const std::string& line)
} }
// Extract and split the annotations, which are of the form: // Extract and split the annotations, which are of the form:
// 1234:'...' 5678:'...' // 1234:"..." 5678:"..."
std::string annotations = line.substr ( std::string annotations = line.substr (
openAnnoBracket + 1, closeAnnoBracket - openAnnoBracket - 1); openAnnoBracket + 1, closeAnnoBracket - openAnnoBracket - 1);
pairs.clear (); pairs.clear ();
@ -593,10 +593,10 @@ void T::parse (const std::string& line)
std::string::size_type end = 0; std::string::size_type end = 0;
do do
{ {
end = annotations.find ('\'', start); end = annotations.find ('"', start);
if (end != std::string::npos) if (end != std::string::npos)
{ {
end = annotations.find ('\'', end + 1); end = annotations.find ('"', end + 1);
if (start != std::string::npos && if (start != std::string::npos &&
end != std::string::npos) end != std::string::npos)