Commit graph

227 commits

Author SHA1 Message Date
Alexis Hildebrandt
ba35340ca9 Bugfix 1038: empty reg report for this month period
when year was specified with literal Y or year directive, but not
when using apply year.
2014-12-29 11:08:10 +01:00
Alexis Hildebrandt
0462c887ae Improve error handling when parsing year directives
A literal Y directive or ‘year’ directive with an empty or invalid 
argument, e.g. ‘2o14’ (that is a small letter ‘oh’ instead of a zero)
would fail with the following rather unhelpful error message:
Error: bad lexical cast: source type value could not be interpreted as target
2014-12-28 13:42:02 +01:00
Alexis Hildebrandt
e716980c7d Fix plain year directive
Only Y2014 or apply year 2014 would actually set the year for the
following transactions; year 2014 would silently do nothing.
2014-12-28 13:32:22 +01:00
Alexis Hildebrandt
1dd9dcaab4 Bump copyright notice to 2015
The following script makes it a no-brainer:
% NEXT_YEAR=2015; ag -l 'Copyright.*Wiegley' \
  | xargs sed -i '' -e "s/\(Copyright.*\)-20[0-9]\{2\}/\1-${NEXT_YEAR}/"
2014-12-27 11:24:55 +01:00
Alexis Hildebrandt
a1a51f69f3 Correct no-python error messages
[ci skip]
2014-12-25 12:28:31 +01:00
Adrian Lang
a013a73b26 Fix off by one error in textual.cc
This fixes parsing of transactions with single-character payees and comments.
2014-12-11 21:57:25 +01:00
Martin Michlmayr
b886342064 Preserve the given cost for print
Patch from John Wiegley
2014-07-14 21:05:54 -04:00
Max Satula
de17ccf1f4 When a status flag (! or *) is explicitly specified for an individual posting, it always has a priority over entire transaction status. 2014-06-30 13:39:22 -04:00
Martin Michlmayr
23902686a3 Don't lose commodity when cost is not separated by whitespace
When a cost was specified without a whitespace after the @ symbol,
as in @$5.01, this was incorrectly parsed as 5.01 (losing the
commodity) rather than $5.01.

Bug fix for #1050
2014-06-05 19:46:22 -04:00
thdox
8b3f8d1884 Fix bug introduced by commit AA2FF2B
Correction is to not use uninitialized amount
2014-05-17 23:41:07 +02:00
Martin Michlmayr
ab921cca0c Ensure that high-levels directives have arguments if they need one
Ensure that high-levels directives, such as account, alias and
commodity, have arguments if they need one.  Bug fix for #1036
2014-05-14 17:55:07 -04:00
Martin Michlmayr
86fd99c9d0 Ensure that directives have arguments if they need one
Ensure that account, commodity and payee directives have arguments
if they need one.  Bug fix for #785
2014-05-14 17:53:43 -04:00
Christophe Rhodes
da51f5b510 support payee uuid directive
The semantics of this are a little bit tricky: we want, if we come
across a transaction with exactly the given UUID, to set the
transaction's payee to be the specified one.

We need to set that payee before the first post in the transaction is
parsed, otherwise that post will inherit the wrong payee; however, we
need to do it after the transaction's tags have been parsed.  The
implementation as it is in this commit is potentially a little
wasteful, if there are post-like (non-comment non-assertion) entries
in the transaction that don't successfully parse as posts.
2014-05-13 16:08:10 +01:00
Christophe Rhodes
bcb28b066f rename payee_mappings to payee_alias_mappings
(and similar renames) in preparation for payee_uuid_mappings
2014-05-12 23:16:07 +01:00
John Wiegley
aa2ff2b5db Improve an error message relating to balance assertions 2014-04-16 15:56:30 -05:00
John Wiegley
0d23e3d4f6 Apply any outstanding deferred postings at the end of parsing 2014-04-14 11:08:26 -05:00
John Wiegley
8f8a94c28e Add the concept of "deferred postings"
This is pretty much exclusively for allowing one to use balance
assertions with replicated transactions across multiple files.
2014-04-13 23:26:14 -05:00
John Wiegley
634aa589cd The option --permissive now quiets balance assertions 2014-04-13 23:26:14 -05:00
Peter Feigl
c80b495546 Adding support for recursive aliases.
Alias expansion is now a loop. If you define

alias A=B:A
alias B=C:B

then A will expand to C:B:A.

Also added a short section to the manual about this.
2014-02-25 22:50:20 +01:00
Alexis Hildebrandt
e7cfaa1e65 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.
2014-02-12 10:38:07 +01:00
Alexis Hildebrandt
2b9208e850 Bump copyright information to 2014 2014-02-02 12:36:22 +01:00
John Wiegley
6b52a1684f Fixed parsing of the "fixed" directive 2013-05-19 04:16:12 -05:00
John Wiegley
0951bcebef Bump copyright information to 2013 2013-02-18 06:51:21 -06:00
John Wiegley
2b245f823b Added missing call to timelog.close() 2013-01-30 17:00:07 -06:00
John Wiegley
63712728e1 Properly handle metadata tags on auto-postings 2012-11-12 02:30:04 -06:00
John Wiegley
3b9b2cf908 Corrected a typo 2012-10-31 00:14:47 -05:00
Johann Klähn
e824070b4a fix bucket directive (bug 765)
This was caused by both 'A' and 'bucket' using
default_account_directive. This function was still stripping the 'A'
directive, so the first character of the account name used with 'bucket'
was cut off. Maybe the code for the other directives should be changed
accordingly for consistency (put line + 1 in call instead of function).
2012-10-23 12:13:22 +02:00
John Wiegley
afc023406a Always store absolute paths internally 2012-08-02 16:13:58 -05:00
John Wiegley
4681e58d7f Converted the Ledger build system to use CMake 2012-05-20 04:48:05 -05:00
John Wiegley
f4f3058b8c Switch to using Boost.Format 2012-05-14 21:44:00 -06:00
John Wiegley
c0fa144ca5 Added "last_checkout_cleared" valexpr variable 2012-05-07 01:53:53 -05:00
John Wiegley
fcabd64a89 Whitespace fix 2012-04-04 02:26:34 -05:00
John Wiegley
bc31e4838b Fixed #711: Parsing of alias directive 2012-03-17 07:02:03 -05:00
John Wiegley
22c1b867f0 Added option --day-break 2012-03-17 05:27:43 -05:00
John Wiegley
20c076dff9 Improved error reports about leading whitespace 2012-03-16 03:50:40 -05:00
John Wiegley
11067d9cc6 Unexpected initial whitespace is an error (again)
Fixes #565
2012-03-16 02:39:42 -05:00
John Wiegley
be289fba1f Fixed a few bugs related to apply directives 2012-03-12 22:38:36 -05:00
John Wiegley
ed42a7ebfe Allow payee names to contain multiple spaces 2012-03-12 05:48:10 -05:00
John Wiegley
fb2e80406f Ignore all trailing whitespace in Ledger journals 2012-03-12 05:48:10 -05:00
John Wiegley
c9f7195936 Added the notion of "virtual costs" 2012-03-09 01:28:20 -06:00
John Wiegley
7bb83173da Added some missing DEBUG #if's 2012-03-07 08:34:15 -06:00
John Wiegley
76f97a63da Added parsing support for the many value directives 2012-03-07 05:20:42 -06:00
John Wiegley
3ae4a38e4d Fixed parsing of "deferred notes" in auto xacts 2012-03-07 05:19:21 -06:00
John Wiegley
9ea5b60899 Whitespace fixes 2012-03-07 00:32:56 -06:00
John Wiegley
71d0033b6f Corrected several compile and link problems 2012-03-06 23:04:27 -06:00
John Wiegley
97d68ebc8c Added "value" sub-directive for commodity directive 2012-03-06 03:24:06 -06:00
John Wiegley
59a16e59ee Simplified Python import in a journal file 2012-03-05 21:48:45 -06:00
John Wiegley
97dbf379d5 Rewrote the way annotated commodities are managed
The new scheme should be much more efficient, and allows for future
growth of what annotations may appear on a commodity.
2012-03-05 17:50:17 -06:00
John Wiegley
b6adc8f460 Use unique_ptr instead of std::auto_ptr 2012-03-05 17:46:42 -06:00
John Wiegley
ddba59b703 This now works: ledger --import os eval 'os.path.isdir("/tmp")' 2012-03-02 01:36:58 -06:00