Commit graph

938 commits

Author SHA1 Message Date
John Wiegley
bf24b93818 Fixes to the value expression parser and evaluator 2009-11-10 02:26:20 -05:00
John Wiegley
f49b7b2166 If -v is used, valexpr errors are more informative 2009-11-10 02:25:49 -05:00
John Wiegley
c8013c04d4 Whitespace fix 2009-11-10 02:25:36 -05:00
John Wiegley
3e39329eff Added "bucket" directive, as alt for A 2009-11-10 01:28:57 -05:00
John Wiegley
a5f0b6e5dc account_amount() is now account().amount 2009-11-10 01:28:57 -05:00
John Wiegley
115da19121 account.amount and .total return simplified values 2009-11-10 01:28:53 -05:00
John Wiegley
16a2a16097 Support include-ing of relative pathnames 2009-11-10 01:06:04 -05:00
John Wiegley
009b257397 It's now an error to use "end" without "account" 2009-11-10 01:05:44 -05:00
John Wiegley
09c9ec4b41 Directives no longer require @ or ! prefix char 2009-11-10 01:05:12 -05:00
John Wiegley
c927c74c2d Throw an exception if an include file doesn't exist 2009-11-10 00:30:09 -05:00
John Wiegley
687c71c71d Improved the numerical parser for basic amounts
1,00,000 now causes an error, for example, whereas before the commas
were largely ignored.
2009-11-10 00:10:25 -05:00
John Wiegley
5f01659b1c Fix for automated amount multipliers and null amounts 2009-11-09 22:03:12 -05:00
John Wiegley
9e07e61fad Fix to the XML code for ICU users 2009-11-09 14:05:01 -05:00
John Wiegley
6cdb79e2a6 XML reporting now works via the "xml" command 2009-11-09 03:42:35 -05:00
John Wiegley
2c80227339 Added basic foundation for XML reporting 2009-11-09 02:17:26 -05:00
John Wiegley
7411c74d6d Redesigned the draft_t class 2009-11-09 02:06:08 -05:00
John Wiegley
fb8be53edb Redesigned the format_t class 2009-11-09 02:06:08 -05:00
John Wiegley
c3535d06c8 Redesigned the expr_t, predicate_t, query_t classes 2009-11-09 02:06:06 -05:00
John Wiegley
523d4243e8 Made --european more pervasive in its effect 2009-11-08 18:30:35 -05:00
John Wiegley
394c7bd8df Removed a bunch of empty comments 2009-11-08 14:59:11 -05:00
John Wiegley
6005975006 Check for Python options before functions 2009-11-08 13:36:16 -05:00
John Wiegley
47c1089c61 Make sure to clean up memory after a Python exception 2009-11-07 20:00:34 -05:00
John Wiegley
1bb2261c99 Fixed -r flag for balance reports 2009-11-07 08:36:27 -05:00
John Wiegley
98bf53eabc Expose journal_t::read to Python 2009-11-07 08:36:24 -05:00
John Wiegley
c8641a6de6 Added support for Boost.Regex w/ ICU
This allows for correct searching of UTF-8 encoded strings, such as
lower-case versions of Russian words to find mixed-case words.
2009-11-07 08:34:13 -05:00
John Wiegley
9b2c2b6032 Python vars of unconvertable type return NULL_VALUE 2009-11-07 08:34:01 -05:00
John Wiegley
1a43b22791 Throw an error for unrecognized options in data files 2009-11-07 06:40:09 -05:00
John Wiegley
06f4c27867 Renamed journal_t::basket to bucket 2009-11-07 06:39:50 -05:00
John Wiegley
c8bab6d1c6 Throw an error if UTF-8 encoding is incorrect 2009-11-07 06:39:14 -05:00
John Wiegley
832e53f300 Column widths are always calculated now 2009-11-07 05:17:00 -05:00
John Wiegley
3f00f8362c Don't use archive_t if boost_serialization unavailable 2009-11-06 16:17:30 -05:00
John Wiegley
2056396699 Fixed NULL pointer bug if --account=EXPR is invalid 2009-11-06 02:39:35 -05:00
John Wiegley
a05d39b722 Renamed --set-reported-account to just --account
This fits better with the --amount and --total options, which both
change the amount and total used for calculation.  Same with --account:
it happens after filtering, but before calculation so that balance
reports look as you'd expect.
2009-11-06 02:39:30 -05:00
John Wiegley
05d0f1a17f The binary cache is working again 2009-11-06 02:07:56 -05:00
John Wiegley
61f7d1295f Changed dividers output by --options 2009-11-06 02:05:39 -05:00
John Wiegley
b2e9cf4ebe Added disabled feature: "date" keyword in queries 2009-11-06 01:54:18 -05:00
John Wiegley
5e3f3d7f47 Report sought magnitude when balancing errors occur 2009-11-05 17:43:28 -05:00
John Wiegley
1bdb9330e5 Simplified passing of scope objects in Python 2009-11-05 17:16:59 -05:00
John Wiegley
09ace752d6 Added missing call to _dup() in value_t::in_place_cast 2009-11-05 05:11:50 -05:00
John Wiegley
deb674586c Added new account_total value expression
This is used for accessing an account's current total within one's
Ledger file.
2009-11-05 05:11:39 -05:00
John Wiegley
4464ed187b If a posting's amount is null, return 0L 2009-11-05 05:11:15 -05:00
John Wiegley
ab9fc6f9f0 Changed the type being throw of some exceptions 2009-11-05 05:11:01 -05:00
John Wiegley
060fc0e00b Made many object methods in Python properties 2009-11-05 02:27:42 -05:00
John Wiegley
8bd16b2e8e Simplified usage of Boost.Python in several cases 2009-11-05 02:27:42 -05:00
John Wiegley
34ee358f5e Moved journal reading code into journal_t 2009-11-05 02:27:42 -05:00
John Wiegley
817f1ae161 std::string now only intercepted if STRING_VERIFY_ON 2009-11-05 02:27:42 -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
4a14f3224b Added value_t::push_front 2009-11-04 20:40:45 -05:00