summaryrefslogtreecommitdiff
path: root/walk.cc
Commit message (Collapse)AuthorAgeFilesLines
* Moved xact_xdata_t into xact_t itself, as a set of "extended data" that mightJohn Wiegley2008-08-021-97/+70
| | | | | | | | be gathered during reporting. Removed the references to accounts and such from the mask logic, which means that the value expression "acount =~ /foo/" is needed in place of just "/foo/".
* Formatting now relies exclusively on value expressions.John Wiegley2008-08-021-29/+10
| | | | | | | | | | | | | | | | | | | | What this means is that the utility code, basic math, value expressions, string formatting and option handling are now entirely decoupled from the rest of the code. This decoupling not only greatly simplifies the more basic parts of Ledger, but makes it much easier to test and verify its completeness. For example, when the formatting code %X is seen by the format parser, it turns into a call to the expression function fmt_X, which must be defined when the format string is first compiled against an object. If that object is a transaction, the transaction's scope will be the first to have a chance at providing a definition. If an account is being reported, it will. If neither does, the next scope in sequence -- soon to be the current report -- will, and then the session object that "owns" the current Ledger session. In 2.6, the formatting code new everything about transaction and accounts, and relied on flags to communicate special details between them. Now the transaction will offer the details for its own reporting, while the formatter worries only about strings and how to output them.
* Restored the interval_t time and added a new "period" debugging command.John Wiegley2008-08-021-8/+3
| | | | | | You can use 'ledger period "daily in june"' to find out how Ledger will parse that date string, plus up to the first 20 dates it encounters in the range. Note that the 'end' displayed is currently exclusive.
* Journal data structures now use date_t instead of datetime_t.John Wiegley2008-08-011-30/+28
| | | | | | | | This means transactions can only have day-level granularity -- which has always been the case from an data file point of view. The advantage to this restriction is that reports will now be immune from daylight savings related bugs, where a transaction falls to the wrong side of a --monthly report, for example.
* Change many uses of for+iterator to use Boost.Foreach.John Wiegley2008-07-311-88/+54
|
* Revised the way that exceptions are thrown around. Instead of context being aJohn Wiegley2008-07-311-3/+5
| | | | | | | complicated string of pointers, it's now just a global block of text that gets appended to as the error is being thrown up, and can be displayed at the catch point if desired. There are almost no cases where a thrown exception will not result in an error message being displayed to the user.
* A new binary_cache_t object has been creating to manage saving and restoring aJohn Wiegley2008-07-311-11/+11
| | | | | Ledger session from a cache file. It doesn't work at all yet, though at least the major structures are in place now.
* Enabled a huge number of warning flags for g++ in acprep, and fixed them allJohn Wiegley2008-07-301-2/+2
| | | | | | except for several unused parameter warnings (because there is so much code still #if 0'd out), and one implicit conversion from long long to long which still has to be dealt with.
* The register report has begun printing real data, although not all the piecesJohn Wiegley2008-07-291-3/+5
| | | | are in place yet and the formatting is still off.
* Moved around and renamed a very large amount of code in order to rationalizeJohn Wiegley2008-07-291-170/+170
| | | | the way that value expressions extract information from journal objects.
* Value expression architecture is now rewritten, but the functionality of theJohn Wiegley2008-07-291-0/+14
| | | | | | | old system (for example, the meaning of 'a') has yet to be restored. In the new scheme, this will be done by definition a function outside of the value expression logic, rather than the tight coupling between journal innards and value expressions that occurred in 2.x.
* 'make check' is now working again. Also, conversion from amount_t to/fromJohn Wiegley2008-07-271-1/+1
| | | | | | | double has been disabled, because I am no longer packaging the gdtoa library with Ledger (because double conversion really has nothing to do with what Ledger does). If you wish to use it, you can find gdtoa in cpp-rewrite-2006, under a sub-directory of the same name.
* A large body of work to get the register report printing again, but stillJohn Wiegley2008-07-271-38/+109
| | | | fails due to the fact that 2.x value expression syntax is not restored.
* --verify works again, but the memory totals at the end still need work.John Wiegley2008-07-261-2/+3
|
* More work toward getting the textual parser working again. Since this meansJohn Wiegley2008-07-241-1/+1
| | | | that value expressions must work, there are a lot of details involved.
* Merged in from master.John Wiegley2008-07-211-0/+5
|\
| * When converting datetime_t to a long, I now need to directly access the 'when'John Wiegley2008-07-191-0/+5
| | | | | | | | member, otherwise C++ chooses the bool conversion, which is always wrong.
* | Everything but main.cc is compiling again (but with much #if 0'd code).John Wiegley2008-07-201-13/+11
| |
* | I have walked further along the road less compiled by...John Wiegley2008-07-201-8/+8
| |
* | Brought in the final round of 3.0 code, although it does not compile yet:John Wiegley2008-07-201-12/+12
| | | | | | | | report, session, parts of xpath, main, journal, option.
* | The code is compiling again, but it's far from being able to run yet.John Wiegley2008-05-081-32/+58
|/
* (handle_value): The transaction xdata.dflags were being set too late; theJohn Wiegley2008-04-131-2/+3
| | | | TRANSACTION_COMPOUND setting was being thrown away as a result.
* Reworked the way date/times are handled.John Wiegley2008-04-131-35/+33
|
* Several fixes to lot price handling.John Wiegley2008-04-131-0/+2
|
* Further refinement of commodity lot information.John Wiegley2008-04-131-1/+28
|
* *** empty log message ***John Wiegley2008-04-131-3/+0
|
* Tons of corrections and fixes to value expressions and lot figures.John Wiegley2008-04-131-17/+19
|
* *** empty log message ***John Wiegley2008-04-131-2/+2
|
* Added new --descend option.John Wiegley2008-04-131-5/+33
|
* Added much better error location.John Wiegley2008-04-131-11/+14
|
* Added a DATETIME value type.John Wiegley2008-04-131-1/+1
|
* Began support for improved commodity handling.John Wiegley2008-04-131-3/+1
|
* Began support for improved commodity handling.John Wiegley2008-04-131-10/+4
|
* *** empty log message ***John Wiegley2008-04-131-6/+7
|
* Further improvements to lot pricing.John Wiegley2008-04-131-8/+8
|
* Checked in all major updates.John Wiegley2008-04-131-10/+20
|
* Removed Python integration support.John Wiegley2008-04-131-305/+0
|
* Restructed the code that it can build and be used as a shared library.John Wiegley2008-04-131-58/+35
| | | | | The command-line version is still statically bound in the build process by default (for the sake of speed).
* See ChangeLogJohn Wiegley2008-04-131-19/+19
|
* Support has been added for clearing of individual transactions. SetJohn Wiegley2008-04-131-1/+1
| | | | `ledger-clear-whole-entries' in Emacs to revert to the old behavior.
* (operator): Rearranged some code and added an assert.John Wiegley2008-04-131-4/+1
|
* (operator): Rearranged some code and added an assert.John Wiegley2008-04-131-3/+8
|
* (subtotal_transactions::operator()): Changed the usage of theJohn Wiegley2008-04-131-5/+8
| | | | | | temporary `values' map so that account names are always properly sorted in the subtotaled output view. As it was, they were being reported in account creation order.
* (report_budget_items): Removed an unused local variable.John Wiegley2008-04-131-45/+40
|
* (sort_transactions::post_accumulated_xacts): Created this function soJohn Wiegley2008-04-131-4/+2
| | | | | that interval_transactions has a way to post sorted xacts without calling flush().
* (truncate_entries::flush): Fix so that --head and --tail can be usedJohn Wiegley2008-04-131-4/+13
| | | | at the same time. (export_walk): Added TruncateEntries for Python.
* Changed truncate_entries so that --head and --tail can be used at theJohn Wiegley2008-04-131-6/+8
| | | | same time.
* Added the new transaction handler `truncate_entries' which can be usedJohn Wiegley2008-04-131-0/+47
| | | | | | to trim a number of entries from the beginning or end of a transction stream. (push_to_transactions_list): Removed unneeded "handler" argument.
* (clear_transactions_xdata): Clear the transaction xdata pointers onceJohn Wiegley2008-04-131-0/+2
| | | | | they have been freed. (clear_accounts_xdata): Clear the account xdata pointers once they have been freed.
* *** empty log message ***John Wiegley2008-04-131-0/+3
|