diff --git a/ChangeLog b/ChangeLog index eb6cafe04..612decd45 100644 --- a/ChangeLog +++ b/ChangeLog @@ -36,6 +36,7 @@ + The default export format is now JSON. + The configuration variable 'json.array' determines whether 'query' command output is enclosed by '[...]'. + + The duration 'm' is now interpreted as 'months', not 'minutes'. # Tracked Features, sorted by ID. + Added feature #278, which provides a more consistent command line grammar. diff --git a/src/Duration.cpp b/src/Duration.cpp index 31601cbff..5b5c86230 100644 --- a/src/Duration.cpp +++ b/src/Duration.cpp @@ -56,7 +56,6 @@ static const char* durations[] = "minutes", "mins", "min", - "m", "mnths", "monthly", @@ -65,6 +64,7 @@ static const char* durations[] = "mos", "mo", "mths", + "m", "quarterly", "quarters", @@ -338,6 +338,7 @@ void Duration::parse (const std::string& input) else if (match == "mos") mSecs = (int) (value * 86400 * 30); else if (match == "mo") mSecs = (int) (value * 86400 * 30); else if (match == "mths") mSecs = (int) (value * 86400 * 30); + else if (match == "m") mSecs = (int) (value * 86400 * 30); else if (match == "biweekly") mSecs = (int) (value * 86400 * 14); else if (match == "fortnight") mSecs = (int) (value * 86400 * 14); @@ -361,7 +362,6 @@ void Duration::parse (const std::string& input) else if (match == "minutes") mSecs = (int) (value * 60); else if (match == "mins") mSecs = (int) (value * 60); else if (match == "min") mSecs = (int) (value * 60); - else if (match == "m") mSecs = (int) (value * 60); else if (match == "seconds") mSecs = (int) value; else if (match == "secs") mSecs = (int) value; diff --git a/test/duration.t.cpp b/test/duration.t.cpp index e6f1fbe54..120f063fb 100644 --- a/test/duration.t.cpp +++ b/test/duration.t.cpp @@ -560,6 +560,10 @@ int main (int argc, char** argv) t.ok (d.valid ("-1 mths"), "valid duration -1 mths"); t.ok (d.valid ("-1 mth"), "valid duration -1 mth"); t.ok (d.valid ("-1mo"), "valid duration -1mo"); + t.ok (d.valid ("0m"), "valid duration 0m"); + t.ok (d.valid ("1m"), "valid duration 1m"); + t.ok (d.valid ("10m"), "valid duration 10m"); + t.ok (d.valid ("-1m"), "valid duration -1m"); t.ok (d.valid ("0 wks"), "valid duration 0 wks"); t.ok (d.valid ("0 wk"), "valid duration 0 wk"); @@ -603,16 +607,12 @@ int main (int argc, char** argv) t.ok (d.valid ("0 mins"), "valid duration 0 mins"); t.ok (d.valid ("0 min"), "valid duration 0 min"); - t.ok (d.valid ("0m"), "valid duration 0m"); t.ok (d.valid ("1 mins"), "valid duration 1 mins"); t.ok (d.valid ("1 min"), "valid duration 1 min"); - t.ok (d.valid ("1m"), "valid duration 1m"); t.ok (d.valid ("10 mins"), "valid duration 10 mins"); t.ok (d.valid ("10 min"), "valid duration 10 min"); - t.ok (d.valid ("10m"), "valid duration 10m"); t.ok (d.valid ("-1 mins"), "valid duration -1 mins"); t.ok (d.valid ("-1 min"), "valid duration -1 min"); - t.ok (d.valid ("-1m"), "valid duration -1m"); t.ok (d.valid ("0 secs"), "valid duration 0 secs"); t.ok (d.valid ("0 sec"), "valid duration 0 sec"); @@ -676,6 +676,10 @@ int main (int argc, char** argv) t.is (convertDuration ("10 mths"), 300, "valid duration 10 mths"); t.is (convertDuration ("10 mth"), 300, "valid duration 10 mth"); t.is (convertDuration ("10mo"), 300, "valid duration 10mo"); + t.is (convertDuration ("0m"), "valid duration 0m"); + t.is (convertDuration ("1m"), "valid duration 1m"); + t.is (convertDuration ("10m"), "valid duration 10m"); + t.is (convertDuration ("-1m"), "valid duration -1m"); t.is (convertDuration ("0 wks"), 0, "valid duration 0 wks"); t.is (convertDuration ("0 wk"), 0, "valid duration 0 wk");