Commit graph

1090 commits

Author SHA1 Message Date
John Wiegley
cb047c013d A string was not terminated with a NUL. 2010-05-12 03:12:31 -04:00
John Wiegley
04cfa7ab71 Added more iterator methods to call_scope_t 2010-05-08 02:24:36 -04:00
John Wiegley
4ec54b86f8 Added any() and all() value expression macros
any() matches an expression against every post in a transaction or
account, and returns true if any of them are true.  all() tests if all
are true.  For example:

  ledger -l 'account =~ /Expense/ & any(account =~ /MasterCard/)' reg

This reports every posting affecting an Expense account (regex match),
but only if some other posting in the same transaction affects the
MasterCard account.

Both functions also take a second boolean argument.  If it is false, the
"source" posting is not considered.  For example:

  ledger -l 'any(/x/, false)'

This matches any posting where a *different* posting in the same
transaction contains the letter 'x'.
2010-05-08 02:06:06 -04:00
John Wiegley
d5f8c3bc57 Added O_EXPAND operator, to handle macros 2010-05-08 02:02:10 -04:00
John Wiegley
713f308d0f interactive_t now takes an "X" for expressions 2010-05-08 02:01:59 -04:00
John Wiegley
8acdb85a91 Added a simple print() value expression function
This is really for debugging more than anything else.
2010-05-08 02:01:23 -04:00
John Wiegley
2d28b34ff3 Allow expr_t& to be passed in a value_t 2010-05-08 02:00:35 -04:00
John Wiegley
4028f0bcb4 print command correctly prints amount expressions 2010-05-07 23:16:45 -04:00
John Wiegley
d0460b0692 The --invert option now works with "convert" 2010-05-07 22:57:55 -04:00
John Wiegley
8dd362b57c The include directive now supports file globbing
This only happens at the base filename, not for any of the directory
names for now.
2010-03-17 02:40:42 -04:00
John Wiegley
36b616da5e Added new --meta and --meta-width options
The usages are:

  --meta=<TAG>        prepend value of TAG before every line
  --meta-width=<NUM>  force the meta column to be NUM wide
  --meta=<TAG>:<NUM>  shortcut that also applies --meta-width
2010-03-17 02:20:08 -04:00
John Wiegley
d7b8095c3d Tags were not being set properly on postings 2010-03-17 02:18:46 -04:00
John Wiegley
0e34d08b8d The --pivot=X option now only matches the tag "X" 2010-03-17 00:56:21 -04:00
John Wiegley
01c3eb8547 Improved the new implementation of "print" 2010-03-17 00:49:14 -04:00
John Wiegley
91f839e827 Do not implicitly sort register output
The switches the default back to the same as 2.x, which is --unsorted.
2010-03-17 00:49:11 -04:00
John Wiegley
2f9ea39869 Short-circuit --head handler when count is reached 2010-03-16 14:20:09 -04:00
John Wiegley
7e719c42dc Extended regexp syntax for "payee" and "capture" 2010-03-10 03:56:34 -05:00
John Wiegley
25c72d6e23 Commented out the date limiter in the lookup code 2010-03-10 03:56:20 -05:00
John Wiegley
9a0ae50ce7 When deriving, don't carry over the code or not 2010-03-10 03:56:08 -05:00
John Wiegley
94c30dcf7f Cleaned up the intelligent lookup algorithm a bit 2010-03-10 01:42:25 -05:00
John Wiegley
4858725377 Corrected a debug string 2010-03-10 01:42:03 -05:00
John Wiegley
1bf0220f24 Added experimental account lookup logic
This is used by the "xact" command, and the CSV importer.  It is very
slow O(xacts*records).
2010-03-08 01:11:55 -05:00
John Wiegley
e070cdfc8d The CSV reader now auto-correlates fields by regex 2010-03-08 01:11:55 -05:00
John Wiegley
8fef868929 Added find() and operator[] to unistring 2010-03-08 01:11:55 -05:00
John Wiegley
75b7294a6d Rewrite the "print" command as a custom function
There ended up being too many corner cases for the generalized formatter
to handle.
2010-03-08 01:11:48 -05:00
John Wiegley
7e79cd82cd Corrected a case for value < value 2010-03-06 00:58:05 -05:00
John Wiegley
93e0d8c67a Abstracted an sha1sum() function 2010-03-06 00:57:56 -05:00
John Wiegley
b90ce78906 Fixed a problem with the "quoted" valexpr function 2010-03-05 22:14:14 -05:00
John Wiegley
fe95280492 Added some preliminary code for convert CSV to Ledger 2010-03-05 22:14:14 -05:00
John Wiegley
3318722089 Added new "payee" and "capture" directives
The payee directive allows for transformation of payee names during the
parsing of a Ledger file.  This means you can record the payee name in
one form, but always have it reported in another form.  The syntax is
(and will be):

payee PAYEE_NAME  REGEXP

or

payee PAYEE_NAME
  REGEXP1
  REGEXP2
  ...

The account directive sets the account automatically based on the payee
iff the base account name is Unknown.  For example, if you have a bunch
of transaction in Expenses:Unknown, you can assign accounts for several
automatically using:

account ACCOUNT_NAME  PAYEE_REGEXP

or

account ACCOUNT_NAME
  PAYEE_REGEXP1
  PAYEE_REGEXP2
  ...
2010-03-05 22:14:14 -05:00
John Wiegley
fd4fa8a114 Change an exception test to a plain if 2010-03-05 22:14:14 -05:00
John Wiegley
ab416f759f Updated copyrights to 2003-2010 2010-03-05 22:14:10 -05:00
John Wiegley
192972f854 Renamed the "args" command to "query" 2010-03-04 13:37:08 -05:00
John Wiegley
69da18cd30 Some minor refactoring of the textual parser 2010-02-05 00:00:40 -05:00
John Wiegley
40eae8bf94 Reformatted a comment 2010-02-05 00:00:40 -05:00
John Wiegley
313c88a656 Added post_t::compare_by_date_and_sequence comparator 2010-02-05 00:00:40 -05:00
John Wiegley
6870c54644 Refactored some comparison helper classes 2010-02-05 00:00:38 -05:00
John Wiegley
9d61d3d621 Added actual_date() methods for items 2010-02-05 00:00:29 -05:00
John Wiegley
b78e22d52b Added a "seq" sequence property for all items
This indicates the absolute parsing order of every transaction and
posting.  It is 0 for generated items.
2010-02-04 18:23:52 -05:00
John Wiegley
428a2b4019 Improved the behavior of pivot reports 2010-02-04 04:12:19 -05:00
John Wiegley
1413085977 Added a --pivot=TAG option
This is equivalent to the following:

  --account='"TAG:" + tag(/TAG/)'
2010-02-02 17:07:05 -05:00
John Wiegley
a56a1db662 When creating temporary accounts, transfer flags 2010-02-02 16:25:46 -05:00
John Wiegley
b76aea7c0b Added a debug statement for report.predicate 2010-02-02 16:25:31 -05:00
John Wiegley
0be486c58b Fixed assertion failure in -M -A bal report 2010-01-21 04:59:45 -05:00
John Wiegley
d406aeb85d Guard against divide by zero error in -A reg report 2010-01-21 04:57:15 -05:00
John Wiegley
61edd3d8f4 Fixed account display bug in the balance report 2010-01-21 04:55:11 -05:00
John Wiegley
590ba76bd1 Restore "-p this" option (aka -p 'this month') 2010-01-21 04:33:56 -05:00
John Wiegley
67ce17e249 Guard against using an uninitialized value
Fixes DDB54BB8-8C1C-4129-A137-07A38068F3BE
2010-01-18 03:41:20 -05:00
John Wiegley
d176abf625 Fix for date parsing when no year is given 2010-01-16 21:12:13 -05:00
John Wiegley
f1a2a5a18d Cost of a post with neg. amount should be negative 2009-12-07 21:23:50 -05:00