
OK, here are the sources. I work with a particular dev. environnement
(liba <==> lib abstract). I think we should make libXearth independant
from this library (because it's not interesting for most of users).
Liba contains hash tables, dictionnaries manipulations and also contains
code for system portability. None of these are useful for libXearth.

If you know well the code of xearth, you will notice that I've replaced
extarr.c by my own extended array routines (a_arr.c). Except for the
kind of "debug_malloc" that I've implemented which needs a_hash.c,
a_id.c, a_dm.c and gdm.c. Normally libXearth doesn't need any of other
sources. Memory code of xearth was not really clear! Normally,
everything is now OK regarding memory.

EarthT is a little test program and uses a_opt.c but it is possible to
replace it byt the XrmOptionRec structures.

Earth.c is the body of the widget. To make the code reentrant and to
interface correctly with the code of xearth (to respect the original
code), I've had to create some kind of structures (t_map_scan_input,
t_map_scan_output, etc...). The simplest thing is to understand well the
meaning of these structures.
Be careful, when a Resize() occurs, we have to call the correct
reallocation methods because I've tried to limit the reallocations. By
example, when the resource XtNtime changes, I don't realloc the
rendermap nor the XImage (because XtNwidth and XtNheight hasn't
changed).

Not all the resources are deeply implemented (but almost all the most
interesting ones). You have to know that there is some big problems with
XtRfloat!!! On a 32 bit system, you can't pass them trough a XtSetValues
and the best thing you've got to do (to be portable) is to pass them in
using XtRString (and by example XtVaTypedArg). There is also another
method by implementing public procedures (as in XawScrollbar for the
thumb resource). It's what I've done.

Do we let the "debug_malloc" code in the final package? We've got to
study it in knowing that is very useful to improve or debug the widget.

XearthDrawLine() (to draw lines on the earth surface) is not finnished.
And we have to find a way to keep a context concerning these lines to
correctly redraw them on exposures. 

The widget Map.w is destined to trash ;-)

The widget Sat.w has been written with WBUILD but can be rewrote in C.

To visualize Earth with other views, we have to do:

$ ./EarthT -xrm "*doGrid:False"

To remove the grid.

$ ./EarthT -xrm "*projType:mercator" -xrm "*doShade:False"

To see the Earth in mercator and remove the shades.

etc...

