From c7464a59b3c719ba439feda2d23ab3bc4b6d356b Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sun, 11 Sep 2011 00:49:08 -0400 Subject: [PATCH] Parsing - Tags may no longer begin with a digit. --- src/A3.cpp | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/src/A3.cpp b/src/A3.cpp index 22aa57300..94777f3e5 100644 --- a/src/A3.cpp +++ b/src/A3.cpp @@ -1500,7 +1500,7 @@ bool A3::is_duration (Nibbler& n, std::string& result) std::string unit; std::vector units = Duration::get_units (); - if (n.getNumber (d) && + if (n.getUnsignedNumber (d) && n.getOneOf (units, unit)) { char next = n.next (); @@ -1657,19 +1657,21 @@ bool A3::is_uuid (Nibbler& n, std::string& result) bool A3::is_tag (Nibbler& n, std::string& result) { n.save (); - std::string::size_type start = n.cursor (); if (n.skipAllOneOf ("+-")) { - std::string name; - if (n.getUntilOneOf (" \t()+-*/", name) && - name.length ()) + if (!isdigit (n.next ())) { - std::string::size_type end = n.cursor (); - n.restore (); - if (n.getN (end - start, result)) - return true; + std::string name; + if (n.getUntilOneOf (" \t()+-*/", name) && + name.length ()) + { + std::string::size_type end = n.cursor (); + n.restore (); + if (n.getN (end - start, result)) + return true; + } } }