diff options
author | Alexis Hildebrandt <afh@surryhill.net> | 2014-02-12 10:38:07 +0100 |
---|---|---|
committer | Alexis Hildebrandt <afh@surryhill.net> | 2014-02-12 10:38:07 +0100 |
commit | e7cfaa1e652ac989ac33bda824b53dee401c10b3 (patch) | |
tree | 022bb36faa7c03db0b47d3969418e1f0f4f99ff2 | |
parent | c59aadaace0b142eacb89d40921ac331887bb671 (diff) | |
download | ledger-e7cfaa1e652ac989ac33bda824b53dee401c10b3.tar.gz ledger-e7cfaa1e652ac989ac33bda824b53dee401c10b3.tar.bz2 ledger-e7cfaa1e652ac989ac33bda824b53dee401c10b3.zip |
Fix apply_year_directive
Using the Y 2014 syntax works fine, but using
apply year 2014 resulted in the following error:
Error: Year is out of valid range: 1400..10000
since part of the given year string was chopped off.
-rw-r--r-- | src/textual.cc | 4 | ||||
-rw-r--r-- | test/regress/6E7C2DF9.test | 24 |
2 files changed, 26 insertions, 2 deletions
diff --git a/src/textual.cc b/src/textual.cc index 5536359d..d8648c93 100644 --- a/src/textual.cc +++ b/src/textual.cc @@ -416,7 +416,7 @@ void instance_t::read_next_directive(bool& error_flag) price_xact_directive(line); break; case 'Y': // set the current year - apply_year_directive(line); + apply_year_directive(line + 1); break; } } @@ -865,7 +865,7 @@ void instance_t::apply_year_directive(char * line) // This must be set to the last day of the year, otherwise partial // dates like "11/01" will refer to last year's november, not the // current year. - unsigned short year(lexical_cast<unsigned short>(skip_ws(line + 1))); + unsigned short year(lexical_cast<unsigned short>(skip_ws(line))); DEBUG("times.epoch", "Setting current year to " << year); epoch = datetime_t(date_t(year, 12, 31)); } diff --git a/test/regress/6E7C2DF9.test b/test/regress/6E7C2DF9.test new file mode 100644 index 00000000..c55fbdcc --- /dev/null +++ b/test/regress/6E7C2DF9.test @@ -0,0 +1,24 @@ +Y 2010 +10/10 * TwentyTen + Account:Ten $ 10.10 + Assets:Cash + +apply year 2011 +11/11 * TwentyEleven + Account:Eleven $ 11.11 + Assets:Cash + +2012/12/12 * TwentyTwelve + Account:Twelve $ 12.12 + Assets:Cash + +11/11 * TwentyEleven Again + Account:Eleven $ 11.11 + Assets:Cash + +test reg --sort date account +10-Oct-10 TwentyTen Account:Ten $ 10.10 $ 10.10 +11-Nov-11 TwentyEleven Account:Eleven $ 11.11 $ 21.21 +11-Nov-11 TwentyEleven Again Account:Eleven $ 11.11 $ 32.32 +12-Dec-12 TwentyTwelve Account:Twelve $ 12.12 $ 44.44 +end test |