Commit graph

229 commits

Author SHA1 Message Date
John Wiegley
0fdb900c99 Redid the way temporaries are handled in filtering 2009-10-27 08:30:39 -04:00
John Wiegley
48d24e2a4c Use boost::iostreams::file_descriptor_sink
This is instead of the custom fdstream.hpp file I was distributing.
2009-10-25 04:28:49 -04:00
John Wiegley
4574c30fcf The --download option is now fully restored 2009-06-26 16:52:41 +01:00
John Wiegley
991e3a3eaf Split commodity.h/cc into three files
commodity.h - code for commodity_t
annotate.h  - commodity annotations
pool.h      - commodity pool management
2009-06-24 16:43:46 +01:00
John Wiegley
77d69d0e24 Removed unneeded header files: ledger.h, pyledger.h 2009-06-24 16:33:45 +01:00
John Wiegley
1b4ce1b0b9 Added make rule to build mondo.dat 2009-03-10 19:30:13 -04:00
John Wiegley
a982af13f3 Simplified Makefile.am somewhat
I removed some extraneous macro expansions which owed to my lack of
understanding of automake previously.
2009-03-10 03:27:19 -04:00
John Wiegley
36b38c1194 Fixed the 'acprep distcheck' build 2009-03-10 02:07:05 -04:00
John Wiegley
e0473e207b Rewrote acprep in Python and improved the build 2009-03-09 21:51:02 -04:00
John Wiegley
1ee237d1a1 Disabled some tests, which were running too slowly 2009-03-08 00:48:56 -04:00
John Wiegley
79515680cf Doxygen is no longer being used
Since I'm going to focus on the man page and manual, there is no time to
work on code comments that may only rarely be seen in the 3.0 version.
2009-03-07 04:26:47 -04:00
John Wiegley
70b1c21603 make release-distcheck works again 2009-03-07 04:14:11 -04:00
John Wiegley
5ce7755f30 Don't remove ABOUT-NLS file during distriution 2009-03-06 12:57:19 -04:00
John Wiegley
0b1c36145d Removed outdated reference to python/interp.py 2009-03-06 04:40:59 -04:00
John Wiegley
f340d50362 Revised the ways statistics are computed
It is no longer done in calc_posts, but recursively on each account.
This allows value expressions to ask statistical questions, like
"earliest cleared posting?" (TBD) from any specific account, computed
lazily.
2009-03-06 04:07:25 -04:00
John Wiegley
aff490534a In fullcheck, divide --verify and --gmalloc 2009-03-06 02:39:37 -04:00
John Wiegley
5f3e5f5b7c Restored Makefile.am ordering to be top-down 2009-03-05 04:14:11 -04:00
John Wiegley
c11d325712 Reduced the #include dependency tree to a minimum 2009-03-04 23:53:43 -04:00
John Wiegley
27c0de0da3 Using ./acprep now builds statically by default 2009-03-03 14:54:42 -04:00
John Wiegley
8da771e331 Added missing reference to LedgerHarness.py 2009-03-03 14:08:45 -04:00
John Wiegley
67b9c917e6 Fixed a broken Makefile dependency 2009-03-01 22:43:51 -04:00
John Wiegley
9a23b73491 Move tools/autogen.sh to root of distribution 2009-03-01 01:07:16 -04:00
John Wiegley
e60791dc46 Filter debug info output by GuardMalloc 2009-02-28 06:21:21 -04:00
John Wiegley
4d632903c1 Added LedgerHarness.py, to simplify test creation 2009-02-28 05:37:49 -04:00
John Wiegley
e0f8e36eb4 Removed custom rules relating to TAGS generation 2009-02-28 05:06:42 -04:00
John Wiegley
5e6c95e348 Removed an extraneous addition to EXTRA_DIST 2009-02-27 12:55:51 -04:00
John Wiegley
6b62be59fb Added generate command, --seed, and GenerateTests 2009-02-27 03:58:43 -04:00
John Wiegley
513e2b59eb Fixed a bad option passed to rm in Makefile.am 2009-02-26 04:12:19 -04:00
John Wiegley
d58797e98c The -B, -G, -V reports now show rounding amounts
This way, if the running total is off by a penny or two due to rounding
of one or more commodities in the account, the user will see it.

This commit also reorganizes the testing code a bit, which I did after
adding the ninth test series (ConfirmTests), to validate the new
rounding code.
2009-02-26 03:16:39 -04:00
John Wiegley
9db6e8cdbe Added rm -fr test/python to distclean-local hook 2009-02-25 20:02:53 -04:00
John Wiegley
f33d3f97f6 Made a dependency ref to UnitTest.py explicit 2009-02-25 03:53:46 -04:00
John Wiegley
f745767fa6 Removed reference to test/__init__.py 2009-02-25 02:43:35 -04:00
John Wiegley
e012917ceb Created some new Python scripts under python/ 2009-02-24 19:33:03 -04:00
John Wiegley
1799ed3a2a Moved python/*.cc files into src/
This is because soon, I intend to have real Python source files in
python/.
2009-02-24 16:08:49 -04:00
John Wiegley
d525db35d8 Restored the use of Python unit tests 2009-02-24 13:16:28 -04:00
John Wiegley
07fcc3a08a Build Python module using automake, not setup.py 2009-02-24 12:48:11 -04:00
John Wiegley
9f9381db64 Restored the py_amount and py_balance mappings 2009-02-24 12:41:52 -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
9e0d66610c Renamed acconf.h to config.h, for included gettext 2009-02-22 16:21:22 -04:00
John Wiegley
b902894284 Added support for using GNU gettext 2009-02-21 20:21:13 -04:00
John Wiegley
66c5cd4427 Use a "format accumulator" for error strings
This makes it possible to internationalize strings while still using
I/O streams.  For example:

    std::cout << ACCUM(_("Hello to %1 and %2!") << "me" << "you")
              << std::endl;
2009-02-21 20:20:57 -04:00
John Wiegley
1f39d4148e Create a new interactive_t helper class
The purpose of this class is much like Emacs' (interactive) form: it
allows a value expression function to declare exactly how many
arguments, and of what type, it intends to receive.  It then offers
type-safe access to theese arguments in a consistent manner.

An example value expression function definition in C++:

    value_t fn_foo(call_scope_t& scope) {
      // We expect a string, an integer, and an optional date
      interactive_t args(scope, "sl&d");

      std::cout << "String  = " << args.get<string>(0)
                << "Integer = " << args.get<long>(1) << std::endl;

      if (args.has(2)) // was a date provided?
        std::cout << "Date    = " << args.get<date_t>(2) << std::endl;

      return NULL_VALUE;
    }

There is also an in_context_t<T> template, which finds the context type
T in the current scope hierarchy.  The in_context_t then also acts as a
smart pointer to reference this context object, in addition to serving
the same duty as interactive_t.  This combination of intent is solely
for the sake of brevity.

    value_t fn_bar(call_scope_t& scope) {
      in_context_t<account_t> env(scope, "sl&d");
      std::cout << "Account name = " << env->fullname()
                << "String arg   = " << env.get<string>(0)
                << std::endl;
      return NULL_VALUE;
    }

As you can see here, 'env' acts as a smart pointer to the required
context, and an object to extract the typed arguments.
2009-02-21 18:49:43 -04:00
John Wiegley
067f512e94 The --help (-h, -H) options now visit the man page 2009-02-21 16:24:10 -04:00
John Wiegley
37097e6008 Added an automake rule for installing the man page 2009-02-21 14:34:48 -04:00
John Wiegley
740cd8e8f1 Added feature baseline tests
These are like regression tests to confirm the basic functionality of
every Ledger feature.  Also, made the release-distcheck target less
sensitive.
2009-02-20 13:31:01 -04:00
John Wiegley
4365d9e3fc Moved around some functions for clarity 2009-02-16 04:10:22 -04:00
John Wiegley
6f2e3b8864 Properly handle UTF-8 characters in commodity strings. 2009-02-12 02:34:39 -04:00
John Wiegley
9c9320bc58 make clean should remove system.hh.gch from the source tree. 2009-02-12 02:05:01 -04:00
John Wiegley
44518bc640 Wired up the "entry" command from 2.x, though it still needs to be ported. 2009-02-10 22:37:05 -04:00
John Wiegley
3f7104e9be Removed the balance_pair_t type, since it's now an unneeded abstraction.
This type was a holdback from the days before the amount_expr was used
everywhere to determine a transaction's value.
2009-02-09 14:54:42 -04:00