2002-02-22

going to rewrite mdate in c++ and fold libmdate back in for the following
reasons:

1. too hard to debug libmdate (and it needs a rewrite) as a shared library,
much better that it's static. at some point when things are stable, i'll rip
it out again so that interfaces can share the code.

2. the commandline-parser is insane and very difficult to a) debug and b) add
boolean options in any order.

for reasons of both 1 and 2, a c++ rewrite would make some things easier:
overloading functions to cope with differing correlations and to add new
functions.

i realize that the best + brightest think writing such code is a bad idea
already (ivan swore off both c/c++ and wrote probably the best code in python,
but it's too complex for me).

another important change will be that as far as i can, i'm avoiding autoconf
and using straight Makefiles. users will have to get used to editing them.

some functions in the library will naturally remain c-ish. the drem
compatibility function for instance..


2002-02-24

basic classes and code written, simple makefile and a testbed (md.cc).

the classes are behaving well, tho i decided to make data fields private and
use friends. only julian() has an interface function.

set_correlation tests a explicit correlation number and sets a boolean flag
when done. we allow the two standard correlations plus any a user cares to
set.

preliminary list of options:

-p, --program-parseable             : our old friend, the one-liner.
-g, --gmt                           : use gmt correlation (default=no)
-c NNNNNN.0, --corr=NNNNNN.0        : user-defined correlation.
-j NNNNNN.0,  --jdn=NNNNNN.0        : specify JDN.
-d dd mm [-]yyyy --date=ddmmyyyy    : specify gregorian date.
-l NN NN NN NN NN, --lc=NNNNNNNNNN  : specify long count.
-v, --version                       : version.
-h, --help                          : help.


2002-03-01

finished the parser (had to add a few interface functions, hack cmdline.cc
about a bit, and some majestic main() logic.

TODO:

clean up the Makefile for configurable use.

internationalise the code:

i'm thinking along the lines of blackbox, which has a nice way of doing
things, but it uses Xlocale.h :(
