PROGRAMMERS WANTED!
===================

After Carlos Fernandez left Fidonet, I (Tobias Ernst) took over the source
code from him in order to fix and add some things that I needed to use
CFRoute on my system, and in order to port it to Unix. This work is now
mostly accomplished, and I do not have plans for any major additions to
CFroute, but intend to restrict myself on fixing problems and increasing
portability of the code.

However, I know that some people out there have brilliant ideas on how to
extend CFRoute. Only one example for things that could be done is
nodelist-sensitive routing. If anybody fells he has the time and skill in
order to add this feature to CFRoute, you are invited to do it! I will try
to help you in your work if I can by providing information, hints, etc.

As a starting point, you can take cfr-a95s.zip. If you have made any changes
that seem to work and that you want to submit, use the GNU diff utility
(available as GNUDIFF.ZIP for OS/2 and Win32 on my system, and already
included in most Linux distributions) to create a diff/patch file that
documents your changes. Please use the "-c" option to create a
context-sensitive diff.

If you want to do changes on CFRoute that involve more than just a few
lines, you might want to consider to get a CVS client and take part in our
CVS server source code repository. The logic behind CVS is: You use the CVS
client to download the most current snapshot of CFRoute along with some
control files. Then, while you are offline, you can do any changes that you
like. When you are finished, you use the CVS client to check in all changes
that you have done back to the server. The CVS software deals with all sort
of problems like multiple programmers changing the same source file
simultaneously, etc. It is really a nice utility! If you like more
information, you can visit www.cyclic.com. If you want to have access, to
our CVS server, write to me or to Thomas Winter and ask for a password.

In any case, please try to stick to the coding style of CFRoute if you do
any changes. The policy is not to indent curly braces, but to indent the
text inside curly braces by eight characters. The curly braces themselves
should be on several lines. Example:

int function(void)
{
        if (a < b)
        {
                do_something();
        }
}

If you use Emacs,
  M-x set-c-style RET BSD RET 
  M-x set-variable RET c-basic-offset RET 8 
will do the trick.

Also, please don't use constructs like
  fread(&structure, sizeof(structure), 1, stream); 
if possible. This is not portable accross different RISC architectures,
because the layout of "structure" cannot be guranteed to be the same across
all architectures. I know that CFRoute has code like this in it, but I will
rewrite it soon. Please do use fread to read into an array of bytes and then
use binary logic to copy the array into your structure.

In any case, if you have any questions and want to contribute, simply write
to me at tobi@bland.fido.de or Tobias Ernst @ 2:2476/418. You will be
welcome!

[EOF]
 
