Duration: Some units were not marked as standalone

This commit is contained in:
Paul Beckingham
2015-03-29 17:25:08 -04:00
parent f454a02224
commit 267f054449

View File

@@ -61,47 +61,48 @@ static struct
{"fortnight", 14 * DAY, true}, {"fortnight", 14 * DAY, true},
{"hours", 1 * HOUR, false}, {"hours", 1 * HOUR, false},
{"hour", 1 * HOUR, true}, {"hour", 1 * HOUR, true},
{"hrs", 1 * HOUR, true}, {"hrs", 1 * HOUR, false},
{"hr", 1 * HOUR, true}, {"hr", 1 * HOUR, true},
{"h", 1 * HOUR, false}, {"h", 1 * HOUR, false},
{"minutes", 1 * MINUTE, false}, {"minutes", 1 * MINUTE, false},
{"minute", 1 * MINUTE, false}, {"minute", 1 * MINUTE, true},
{"mins", 1 * MINUTE, false}, {"mins", 1 * MINUTE, false},
{"min", 1 * MINUTE, false}, {"min", 1 * MINUTE, true},
{"monthly", 30 * DAY, true}, {"monthly", 30 * DAY, true},
{"months", 30 * DAY, false}, {"months", 30 * DAY, false},
{"month", 30 * DAY, true}, {"month", 30 * DAY, true},
{"mnths", 30 * DAY, false}, {"mnths", 30 * DAY, false},
{"mths", 30 * DAY, false}, {"mths", 30 * DAY, false},
{"mth", 30 * DAY, false}, {"mth", 30 * DAY, true},
{"mos", 30 * DAY, false}, {"mos", 30 * DAY, false},
{"mo", 30 * DAY, false}, {"mo", 30 * DAY, true},
{"m", 30 * DAY, false}, {"m", 30 * DAY, false},
{"quarterly", 91 * DAY, true}, {"quarterly", 91 * DAY, true},
{"quarters", 91 * DAY, false}, {"quarters", 91 * DAY, false},
{"quarter", 91 * DAY, true}, {"quarter", 91 * DAY, true},
{"qrtrs", 91 * DAY, false}, {"qrtrs", 91 * DAY, false},
{"qrtr", 91 * DAY, true},
{"qtrs", 91 * DAY, false}, {"qtrs", 91 * DAY, false},
{"qtr", 91 * DAY, false}, {"qtr", 91 * DAY, true},
{"q", 91 * DAY, false}, {"q", 91 * DAY, false},
{"semiannual", 183 * DAY, true}, {"semiannual", 183 * DAY, true},
{"sennight", 14 * DAY, false}, {"sennight", 14 * DAY, false},
{"seconds", 1 * SECOND, false}, {"seconds", 1 * SECOND, false},
{"second", 1 * SECOND, true}, {"second", 1 * SECOND, true},
{"secs", 1 * SECOND, true}, {"secs", 1 * SECOND, false},
{"sec", 1 * SECOND, true}, {"sec", 1 * SECOND, true},
{"s", 1 * SECOND, false}, {"s", 1 * SECOND, false},
{"weekdays", 1 * DAY, true}, {"weekdays", 1 * DAY, true},
{"weekly", 7 * DAY, true}, {"weekly", 7 * DAY, true},
{"weeks", 7 * DAY, false}, {"weeks", 7 * DAY, false},
{"week", 7 * DAY, true}, {"week", 7 * DAY, true},
{"wks", 7 * DAY, true}, {"wks", 7 * DAY, false},
{"wk", 7 * DAY, true}, {"wk", 7 * DAY, true},
{"w", 7 * DAY, false}, {"w", 7 * DAY, false},
{"yearly", 365 * DAY, true}, {"yearly", 365 * DAY, true},
{"years", 365 * DAY, false}, {"years", 365 * DAY, false},
{"year", 365 * DAY, true}, {"year", 365 * DAY, true},
{"yrs", 365 * DAY, true}, {"yrs", 365 * DAY, false},
{"yr", 365 * DAY, true}, {"yr", 365 * DAY, true},
{"y", 365 * DAY, false}, {"y", 365 * DAY, false},
}; };
@@ -304,7 +305,7 @@ bool Duration::parse (const std::string& input, std::string::size_type& start)
// Static and so preserved between calls. // Static and so preserved between calls.
static std::vector <std::string> units; static std::vector <std::string> units;
if (units.size () == 0) if (units.size () == 0)
for (int i = 0; i < NUM_DURATIONS; i++) for (unsigned int i = 0; i < NUM_DURATIONS; i++)
units.push_back (durations[i].unit); units.push_back (durations[i].unit);
std::string number; std::string number;
@@ -318,8 +319,7 @@ bool Duration::parse (const std::string& input, std::string::size_type& start)
start = original_start + n.cursor (); start = original_start + n.cursor ();
// Linear lookup - should be logarithmic. // Linear lookup - should be logarithmic.
double seconds = 1; for (unsigned int i = 0; i < NUM_DURATIONS; i++)
for (int i = 0; i < NUM_DURATIONS; i++)
{ {
if (durations[i].unit == unit && if (durations[i].unit == unit &&
durations[i].standalone == true) durations[i].standalone == true)
@@ -344,7 +344,7 @@ bool Duration::parse (const std::string& input, std::string::size_type& start)
// Linear lookup - should be logarithmic. // Linear lookup - should be logarithmic.
double seconds = 1; double seconds = 1;
for (int i = 0; i < NUM_DURATIONS; i++) for (unsigned int i = 0; i < NUM_DURATIONS; i++)
{ {
if (durations[i].unit == unit) if (durations[i].unit == unit)
{ {