John Wiegley
ab416f759f
Updated copyrights to 2003-2010
2010-03-05 22:14:10 -05:00
John Wiegley
d89c60f49c
Memoize results from the fast predicate matcher
...
This gains another 15% for the parser, again with a very simple change
that has no impact if the fast predicate matcher fails to work.
2009-11-14 04:29:53 -05:00
John Wiegley
e3064b9520
Spot optimization for simple automated xact exprs
...
This reduces parsing time in the optimized build by 25%, and was a safe,
easy patch. If the "quick predicate evaluator" fails, we disable it
from that point on go back to what the standard code does.
2009-11-14 03:45:18 -05:00
John Wiegley
48dc654eda
Added has_xdata() methods for journal_t and xact_t
2009-11-12 05:11:06 -05:00
John Wiegley
b6ff8f19d5
Transactions now verified after applying auto xacts
...
This way you cannot violate the balancing rules, not even by adding a
stray posting via an automated transaction.
2009-11-11 21:33:07 -05:00
John Wiegley
c22b8457ef
Did away with the "finalizer" abstraction
...
This was from an earlier time, when it was intended to be used by
Python. But it's not needed anymore.
2009-11-11 18:29:21 -05:00
John Wiegley
e8ea2d4938
Automated postings defer amount expression calculation
...
This allows for value expressions to be used which reference the
incoming posting, for example:
= Income:Clients:
(Liabilities:Taxes:VAT1) (floor(amount) * 1)
(Liabilities:Taxes:VAT2) 0.19
2009/07/27 * Invoice
Assets:Bank:Checking $1,190.45
Income:Clients:ACME_Inc
The automated posting for VAT1 will use the floored amount multiplied by
a factor, while the posting for VAT2 multiples the whole amount as
before.
2009-11-11 04:22:37 -05:00
John Wiegley
6cdb79e2a6
XML reporting now works via the "xml" command
2009-11-09 03:42:35 -05:00
John Wiegley
c3535d06c8
Redesigned the expr_t, predicate_t, query_t classes
2009-11-09 02:06:06 -05:00
John Wiegley
394c7bd8df
Removed a bunch of empty comments
2009-11-08 14:59:11 -05:00
John Wiegley
5e3f3d7f47
Report sought magnitude when balancing errors occur
2009-11-05 17:43:28 -05:00
John Wiegley
3dc200983d
Moved xdata clearing code into each type proper
2009-11-05 02:27:39 -05:00
John Wiegley
40a430139e
Transactions, etc., are now accessed by iterators
2009-11-05 02:22:17 -05:00
John Wiegley
78e6770c4c
Segregated symbols into 5 separate namespaces
...
The different namespaces are:
Function Value expression functions, which receive a "context"
Option Command-line options
Precommand Commands which are invoked before reading the journal
Command Commands which are invoked after reading the journal
Directive Directives that occur at column 0 in a data file
This greatly eases the ability for Python uses to add intercept hooks to
change how the basic Ledger module functions. An example of what should
be possible soon:
import ledger
def my_foo_handler(value):
print "--foo received:", value
ledger.add_handler(ledger.Option, "foo=", my_foo_handler)
2009-11-04 20:40:48 -05:00
John Wiegley
b14c814fec
Whitespace fix
2009-11-04 20:40:42 -05:00
John Wiegley
caff01ba75
Whitespace fixes
2009-11-01 21:14:18 -05:00
John Wiegley
c5c2027624
Fix to xact_t::valid()
2009-11-01 04:25:23 -05:00
John Wiegley
3909d2678e
Removed most #if 0 blocks and callout comments
2009-10-31 04:50:07 -04:00
John Wiegley
a757b19f51
Added serialization methods for most type
...
This allows journal_t objects to be completed serialized to disk and
deserialized.
2009-10-30 18:06:37 -04:00
John Wiegley
1b8811f997
Removed erroneous throw specifier from period_xact_t
2009-10-30 18:03:40 -04:00
John Wiegley
ddfd00afe1
Made the id function available in post contexts
2009-10-27 04:00:59 -04:00
John Wiegley
49f5465adb
Temporarily stubbed out an inaccurate assert
2009-06-15 22:55:17 +01:00
John Wiegley
a05353e269
First iteration of the new date_interval_t rewrite
2009-03-15 22:39:44 -04:00
John Wiegley
c11d325712
Reduced the #include dependency tree to a minimum
2009-03-04 23:53:43 -04:00
John Wiegley
06365aac05
Fixed the way item state is parsed and managed
2009-02-27 02:35:51 -04:00
John Wiegley
944c63e6f2
The Great Renaming, Part II
...
The last commit did not contain the majority of changes because of a
slight mishap. This contains the real changeset.
2009-02-23 19:07:30 -04:00
John Wiegley
9f53efbf5f
Many fixes to both --market and --exchange
2009-02-23 01:51:23 -04:00
John Wiegley
03219d910f
Added xact_t::count member
...
This allows reports to access the "whicheth" index of the reported
transaction. It's used mainly by the --average report, which divides
the running total by this count to get the arithmetic mean.
2009-02-15 15:41:24 -04:00
John Wiegley
ee5e0600aa
xact metadata searches get passed up to the entry
...
That is, if a metadata tag cannot be found in a transaction, look in the
parent entry to see if it was set there. Transactions "inherit"
notational details from their entries.
2009-02-14 05:37:53 -04:00
John Wiegley
092542a3bf
Sorting expr now uses "-" to indicate descending
...
For example: -S payee,-date sorts 1) ascending by payee, then 2)
descending by date.
2009-02-12 20:45:33 -04:00
John Wiegley
c8cd2c468e
Re-enabled some code, and removed a bunch of deadwood.
2009-02-12 03:30:41 -04:00
John Wiegley
555e953dc1
Was failing to copy over the xact's assigned_amount when copy constructing.
2009-02-09 14:54:58 -04:00
John Wiegley
02110394b4
Use the report's amount_expr everywhere that computes an xact's amount.
2009-02-09 14:53:29 -04:00
John Wiegley
cdcd52dbaf
Removed the nearly unknown --descend and --descend-if options.
2009-02-06 23:36:32 -04:00
John Wiegley
2d941730b1
Largely removed all of Ledger's use of global variables, for the REPL's sake.
2009-02-04 19:55:27 -04:00
John Wiegley
1cc33531ea
Simplified the textual parser, and improved metadata support.
2009-02-04 03:34:37 -04:00
John Wiegley
24ef163ba5
Removed unneeded member variables.
2009-02-04 00:35:02 -04:00
John Wiegley
2e9c14ef30
Don't store the amount expression object in transactions.
...
This is unnecessary since binary caching is no longer being used.
2009-02-03 19:06:56 -04:00
John Wiegley
1ece3f8b1c
Added documentation stubs for all include files and classes.
2009-01-31 15:28:23 -04:00
John Wiegley
05c77351e4
Stopped using the generic "unsigned int" in favor of more specific types.
2009-01-29 18:23:57 -04:00
John Wiegley
887828a40c
Increased copyright range to include 2009.
2009-01-20 01:53:31 -04:00
John Wiegley
0e95974360
Changed some of the transaction flags, since all must fit in 8 bits.
2008-09-19 08:31:17 -04:00
John Wiegley
1edb531c05
Renamed XACT_BALANCE flag to XACT_MUST_BALANCE.
2008-09-19 08:08:28 -04:00
John Wiegley
fdc7a4e4c5
Factored common parts of entry_t and xact_t into new item_t
2008-09-19 08:06:20 -04:00
John Wiegley
41c33a2442
Restored --cleared, --pending, --uncleared, -X and -Y.
2008-09-16 05:05:23 -04:00
John Wiegley
7d1809cb15
Transactional assignments (i.e., confirmed balances) are working now.
2008-09-14 19:38:44 -04:00
John Wiegley
ba02f0a450
Fixed a memory leak that would show up if --verify --verbose was running and
...
an error or exception occurred.
2008-08-10 01:41:59 -04:00
John Wiegley
f6f4a46cf5
Moved around most of the files so that source code is in src/, documentation
...
is in doc/, etc.
2008-08-05 18:05:49 -04:00