This file describes the changes in "TX" versions, that is versions modified
by me (Pablo Saratxaga <srtxg@chanae.alphanet.ch>).

I began working with sources to solucionate some minor problems about MSGID,
then I liked it and added some features, from me and Tanaka-san (Tsuneo Tanaka
<tt@efnet.com>).

!!! Note that bugs, if any, are from me. The original 2.10 version worked  !!!
!!! very well. Note also that I've little credit to the ifmail package; it !!!
!!! exists thanks to its author, E. Crosser.                               !!!

I hope that you will find the changes and the new features usefull.
I also will appreciate any feedback from you.

Liège, 3 May 1997
Pablo Saratxaga  <srtxg@chanae.alphanet.ch>

Features in the current TX version
==================================
(that is new features not found in v2.10)

* When gating from FTN to rfc, support has been added for messages previously
  gated by some other gateway, to try to retrieve the most of the original
  informations. Some special ones are compile time configurable.

0) v2.10 already recognizes its own gated messages, with ^aRFC- kludges.
1) @FROM  :, and @SUBJECT: lines generated by a rfc->PcBoard->FTN gate
   (used in France, I don't know if elsewhere) are recognized, and the
   original From: and Subject: lines written in gated article.
   It needs -DPCBOARD_GATE at compilation.
2) Support for messages gated from rfc to FTN by FidoGate.
3) There is a gate program that writes rfc headers in the text body of FTN
   messages. It is parseable, but, Newsgroups: is written erroneously, with
   ", " instead of "," for separating them. It arrived with FTN K12* echoes
   gated from usenet at puddle.fidonet.org. compiling with -DPUDDLE_GATE
   corriges that.
4) Support for headers "Golded-style" (^aHeader: .... instead of 
   ^aRFC-Header...)
5) Support for retrieving original Message-ID's from gigo 

* changes to Makefiles, now "make man" will install the man pages.

* A new manpage for ifcico

* MIME quoted-printable messages will be dequoted when geting from rfc -> FTN

* FidoGate generates, when it gates from FTN -> rfc, Message-ID's from MSGID
  in quoted printable form. The original MSGID is written when gating to FTN
  again.

* "Supersedes: <msgid>" and "Control: cancel <msgid>" are gated to their
  FTN counterparts (^ACUPDATE: MODIFY and ^aACUPDATE: DELETE) used by Squish
  it needs -DALLOW_CONTROL for cancel messages.

* When gating to FTN, if there is more than one group in Newsgroups: line,
  the line is conserved.

* Charset support. I'm trying to done it as complete as possible. Until now
  it can deal with Cyrillic, Hebrew, Japanese, Chinese, Polish, Czech,
  Slovak and West-European languages.
  unicode partially supported (utf-7 and utf-8 decoding, but only if it
  was iso-8859-1, cyrillic or hebrew)
  Greek, Arabic and other latin languages are not complete (I lack info).
  See the file README.charset for more info on this.

  The idea is to do, if necessary, transcodage when gating, according to the
  real charset used in the messages. For this a lot of changes have been done.

  When gating from FTN to rfc, it looks, in that order, for a CHARSET FTN
  kludge line, or a CHRS kludge line or a Content-Type: line (if it is a
  gated article). If none, it will look in Areas file (if compiled with -DJE)
  if that fails, then charset is assumed to be CHRS_DEFAULT_FTN (you should
  configure it according to the one used in your country).
  Then, with this value, the getincode() function gives the charset value 
  that will be used for writting the rfc article (taylor getincode in 
  iflib/charset.c for your needs). Or it will look in Areas file (if you 
  compiled with -DJE)

  When gating from rfc to FTN, it looks for Content-Type: line, or a  
  X-FTN-CHARSET, or a X-FTN-CHRS line. if none, then the default charset is
  searched in Areas file (if compiled with -DJE) if there isn't a charset yet
  and if the message isn't  from FTN networks, charset is assumed to be
  CHRS_DEFAULT_RFC (you should configure it according to the one used in 
  your country).
  Then, with this value, the getoutcode() function gives the charset value that
  will be used for writting the FTN article (taylor getoutcode in
  iflib/charset.c for your needs).
  If you compile with -DJE and a charset is set in Areas file, it is taken
  from there instead of getoutcode()
  If Content-Transfert-Encoding, gives "quoted-printable" or "base64",
  the text body is dequoted to 8bit before transcodage is done. 
  All header lines are passed trough hdrconv() which looks if it is mime 
  encoded (=?charset?codage?coded-string?=), dequoded, then translated. In
  this case the charset read from the mime encoded header (=?charset?... you
  remember ?) has priority from the one read at the beginning (From 
  Content-Type, or X-FTN-CHARSET, or X-FTN-CHRS, you remember ?), then it is
  translated to the charset whe want for the FTN message.

* 8bit and "strange" names in to/from fields of FTN messages are quoted
  in a quoted-printable like way, allowing full recovery when gating
  back to FTN.

* References database; Message-ID <--> MSGID equivalences are stored and
  when a reply arrives from FTN the ^aREPLY kludge is matched against the
  database and eventually the right ID is recupered.

* If -DFORCE_REPLYTO_LOCAL is used, the value in the ^aREPLYTO: kludge is
  forced to be your FTN adress, even if a previous one exists. (I created this
  possibility because the news<->echo gate didn't accept netmail). 
  This compile option creates ^aREPLYTO and ^aREPLYADDR even if a database
  is used. So people which uses smart FTN programs can profit of ^aREPLYADDR
  kludge, others can still reply to my FTN adress and the database retrieves
  the email adress (but it is _far_ from fiable, it can be more than one
  "John Smith"... However, without that is even worst, people in ftn networks
  aren't used to reply otherwise than pressing th "R" key)

* a "secure mode", when email is gated only if the FTN adresse's node is
  listed on the nodelists.

* Telnet-Vmodem in and out connections.

* Read-only FTN areas can be defined as Moderated in rfc side; which is
  their equivalent. "TX" versions allow putting a correct "Approved:"
  line when gating, so the the moderatod in the FTN side doesn't have to
  worry with that. Just add the correct email address for the Approved line
  as 6th field (or 4th field if compiled without -DJE) prefixing it whith
  "fro:".
  See top of misc/Areas for an exemple.

* When a message arrives from FTN to a Usenet (Moderated) group it can be
  converted to email to the moderator, by putting its adress as 6th (4th if
  not -DJE) field of Areas file; prefixing it whith "umod:".
  For exemple "umod:comp-os-linux-announces@uunet.uu.net"

* Possibility to specify several Areas file, in the form of Areas.site
  (eg: Areas.f2219, Areas.p5.f23.n15.z45.somenet.ftn). The first match
  will be used, it searchs from more specific (5D address) to less specific
  (only node or point) defaults to Areas whith no extension.
  The Areas whith no extension is allways used for _incoming_ netmail.

Changelog
=========
Changes in 2.14-tx8.10
----------------------
- Changes whith tearlines
- corrected a little problem whith Reply-To: header
- switched ifcico code to ifcico-3.0.cm.alpha-4.0 entirely.

Changes in 2.14-tx8.9
---------------------
- corrected logfacility macro in ifcico/nlpatch.c (it should use CICOLOG
  not MAILLOG), thanks to Marco d'Itri.
- made some more headers "kludgerisable" depending on level value
- corrected a bug in 2.14-tx8.8 when more than one % was present in
  the Message-ID
- some FTN readers put Cc: lines in the body of FTN messages whith only
  names or addresses whithout any "@"; sendmail then added localhost
  at each time... now when an FTN messages has such a line it isn't
  considered as rfc header anymore.
- corrected a bug in yoohoo.c that caused a sigsev when domains weren't used.
- changed hydra code to the one from ifcico-3.0.cm.alpha-4.0 of
  Christof Meerwald <2:315/3.13@FidoNet>
- added several man pages from ifcico-3.0.cm.alpha-4.0
- in iflib/trap.c iBCS2 should be defined for intel compatible architectures
  only; added the proper #ifdef __i386__
- recognizes new iso-8859-15 charset

Changes in 2.14-tx8.8
---------------------
- added support for empty passwords (use "" (two double-quoutes) as password)
- added handling of utf-8 encoding of unicode. Same restrictions as for utf-7
  apply; that is only works well if the encoded char is of iso-8859-{1,5,6,7,8}
- Merged whith 2.14 code
- Messages in unicode (utf-7 encoding) are appearing in usenet due to
  the bogus Microsoft Outlook program, so I've added a basic utf-7 decoding
  support (it only converts to 8 bit, only works well for iso-8859-{1,5,6,7,8}).
  utf-7 decoding figured out thanks to the utf7.tar.gz package (it is
  a set of little programs to convert chinese between GB and unicode)
  from Ross Paterson <rap@doc.ic.ac.uk> and Guo Jin (guojin@iss.nus.sg) 
- make a little test to avoid segfaults whith MSGID like "MSGID: 12345ab"
  (that is, the char string field is missing !).
- added support for usenet headers like ".MSGID: ...", ".PID: ..." etc
  (yes, *another* one gateway program that reinvents the weel, still
  fidonet people don't realize that standardizing can be a good thingh,
  and people continue to create completly incompatible programs that will
  generate loops, dupes, *sigh*. If even this one was good enough, but no,
  it is not possible to easily retrieve all the info (PATH, SEEN-BY, Origin,
  Tearline are in the case), *re-sigh*
- added -DHAS_SIGNUM_H to OPTS = list. That allows compiling whith glibc
  on a Linux and still use -DNEED_TRAP 
- Corrected a typo in message.c, thanks to Urko Lusa.
- Ooops ! -lintl is not needed anymore whith glibc, if it is included the
  locale stuff don't work as it conflicts whith internal glibc one
- corrected a bug that makes SIGSEV when an Approved: header was present
  on a netmail
- the "," char is now encoded in email addresses; avoiding that an address
  like <Fuchs,.Chris@f875.n292.z2.fidonet.org> be parsed as two addresses
  "<Fuchs" and ".Chris@f875.n292.z2.fidonet.org>" by sendmail. Now it becomes
  <Fuchs\=2c.Chris@f875.n292.z2.fidonet.org>

Changes in 2.13-tx8.7
---------------------
- merged whith ifmail 2.13
- added support for ^aCODEPAGE: kludge recognition
- HYDRA support (added from ifmail-so, code from Vladimir Zarozhevsky)
- support for nodelist U,Txy flags (from ifmail-so, code of Boris Tobotras)
  the meaning of the flags is :

;S System open hours:
;S
;S            Txx       Availability flag for non-CM nodes indicating the
;S                      hours during which the node is available in addition
;S                      to ZMH. This must be in accordance with the recommen-
;S                      dations in FSC-0062 and the reference table reproduced
;S                      below.
;S
;S                      ATTENTION : All times must be UTC!
;S
;S  +------+----+  +------+----+  +------+----+  +------+----+  +------+----+
;S  |Letter|Time|  |Letter|Time|  |Letter|Time|  |Letter|Time|  |Letter|Time|
;S  +------+----+  +------+----+  +------+----+  +------+----+  +------+----+
;S  |   A  |0000|  |   F  |0500|  |   K  |1000|  |   P  |1500|  |   U  |2000|
;S  |   a  |0030|  |   f  |0530|  |   k  |1030|  |   p  |1530|  |   u  |2030|
;S  |   B  |0100|  |   G  |0600|  |   L  |1100|  |   Q  |1600|  |   V  |2100|
;S  |   b  |0130|  |   g  |0630|  |   l  |1130|  |   q  |1630|  |   v  |2130|
;S  |   C  |0200|  |   H  |0700|  |   M  |1200|  |   R  |1700|  |   W  |2200|
;S  |   c  |0230|  |   h  |0730|  |   m  |1230|  |   r  |1730|  |   w  |2230|
;S  |   D  |0300|  |   I  |0800|  |   N  |1300|  |   S  |1800|  |   X  |2300|
;S  |   d  |0330|  |   i  |0830|  |   n  |1330|  |   s  |1830|  |   x  |2330|
;S  |   E  |0400|  |   J  |0900|  |   O  |1400|  |   T  |1900|  |      |    |
;S  |   e  |0430|  |   j  |0930|  |   o  |1430|  |   t  |1930|  |      |    |
;S  +------+----+  +------+----+  +------+----+  +------+----+  +------+----+


- added support of ZMH (it is just a matter of translating it to a Txy flag
  and call the IsNodeCallable() function. I choose the Z[1-6]MH according
  to the following table in the Z2 nodelist :

;S            #01       Zone 5 mail hour (01:00 - 02:00 UTC)
;S            #02       Zone 2 mail hour (02:30 - 03:30 UTC)
;S            #08       Zone 4 mail hour (08:00 - 09:00 UTC)
;S            #09       Zone 1 mail hour (09:00 - 10:00 UTC)
;S            #18       Zone 3 mail hour (18:00 - 19:00 UTC)
;S            #20       Zone 6 mail hour (20:00 - 21:00 UTC)

- added a german language file (by Michael Holzt <kju@flummi.de>)
- added conversion of User-Agent: to ^aPID:
- Corrected a bug whith missing From:, I'm ashamed I introduced a so stupid
  bug; Thanks to Marco d'Itri for pointing me the problem.
- Corrected a bug whith generation of Notice-Requested-Upon-Delivery-To:
  header; the content must be the internet address of the recipient of 
  the message, not the sender address. Thanks to Marco d'Itri.
- Glibc patch from Yuri Kuzmenko (yuri@cracksoft.kiev.ua)
- changed MAX to NL_MAX in nodelist.h as MAX conflicts whith a macro
  definition in glibc
- added #define _REGEX_RE_COMP in respfreq.c otherwise the definitions
  of re_comp of <regex.h> aren't read when using glibc
- changed nlookup.c so it uses correctly the domtrans directives

Changes in 2.12-tx8.6
---------------------
- added function ref_store_msgid(), an easier to use interface to
  ref_store(), as the arguments don't need to be formatted. As the
  way Message-ID --> MSGID work has changed the refdb was broken,
  this fixes the problem.
- changed ref.c and ref_interface.h for ref_store_msgid() function.
- changed ifmail.c and mkftnhdr.c to use ref_store_msgid()
- corrected an old bug where keyword "defaultrfcchar" wrongly returned
  iso-8859-1 for any iso-8859-* charset (reported by Andrzej Jordanow)
- changed macro DBM_SUFFIX to IF_DBM_SUFFIX as DBM_SUFFIX is used in
  ndbm.h and caused some bugs as the macro could have different values...
- corrected a bug in falists.c that made Host adresses (eg 320/0) to be
  wrongly handled on SEEN-BY lines (this bug doesn't exist on plain ifmail,
  it has been introduced in tx
- merging whith 2.12, the format of Areas changed, now comments are lines
  beginning whith a blank. I made two conditional defines,
  -DAREAS_NUMERAL_COMMENTS which allows to keep also the old behaviour, and
  -DAREAS_NUMERAL_COMPATIBILITY which is the same as -DAREAS_NUMERAL_COMMENTS
  but prints a warning.
- added -DFSC_0048 for strict fsc-0048 behaviour when writting packets.
- Corrected a bug related to REPLY kludge

Changes in 2.11-tx8.5
---------------------
- Merged whith 2.11
- Added the ability to support echoarea names whith '#' on them, just
  put a '\' before it on the Area file, eg:
       TEST.\#2         test.n2
  idea from Erik Warmelink.
- improved rfcmsgid, now it will correctly handle some gigo MSGID and
  REPLY like "msgid__<message-id>" and "msgid__<message-id>_<another>"
- while the maptabs for CZ and SK where there in tx8.4 I forgot to add
  the proper code to charconv.c and charconv.h, sorry :-(
  this is corrected, thanks to Stanislav Meduna.
- a better way to handle support, now you have just to comment or uncomment
  a line in CONFIG file, no more manual Makefile editing.
- the NLS support now looks for LC_MESSAGE variable rather than LC_ALL, in
  case the user wants a different locale for the messages than the general
  locale.
- added Thai charset recognition (iso-8859-11)
- added chinese charsets (CN-GB, CN-Big5, zW, HZ, iso-2022-cn) recognition.
  and zW --> GB, HZ --> GB, GB --> HZ, zW --> HZ conversion functions.
- added toftnchar to force charset translation of outgoing pkt to a given 
  charset. see misc/config.
- added ftnmsgidstyle keyword from an idea of Andrzej Jordanow, it is of the 
  form "ftnmsgidstyle news.chanae.stben.be", then if the level (-l switch)
  is less than 1, and the Message-ID is of the form <*@news.chanae.stben.be>
  it wont be kept, but the FTN MSGID will be built from the best aka
  (eg "MSGID: 2:293/2219@fidonet 123456ab" instead of 
  "MSGID: news.chanae.stben.be cdef0123") note also that it won't do anything
  special for Message-IDs where the string after the "@" doesn't match exactly
  (case insensitive however). In other words you can make vanish your 
  Message-ID while still not touching those of other people.
  WARNING: Use this whith care !!! Only for your messages and if you are 
  absolutely sure that they aren't exported of your machine by other channels
  (eg uucp, nntp,...) which conserve the message-id. This feature is intended
  for convenience of end-leaf nodes, not to defeat the purpose of dupe 
  checking.

Changes in 2.10-tx8.4
---------------------
- Changed again the MACHIGAI code, now it is a single supplementary
  condition on an if. Idea from Erik Warmelink
- Added support for cp895 used in fidonet in Czechia and Slovakia,
  map tables from Stanislav Meduna <stano@trillian.eunet.sk>
- corriged an array overflow problem whith REPLYs (it seems gigo puts there
  the whole References: line, in some cases that overflow 128 bytes used.
  now it mallocs some space.
- Changed the charset conversion code so it uses *char instead of *FILE
  (as disc access is sloooooow); iftoss is 8 times faster than in previous
  "tx" versions, it is now only twice as slower as plain ifmail.
  For 8bit charsets only, japanese still uses temporary files.
- provided fnet.m4 and ifmail.mc for configuring sendmail. 
  read misc/sendmail/ifmail.mc.README, it's very easy.
  ** includes anti-spam rules **
- NLS support for help mesages (eg: ifmail -h). for that in CONFIG file add
  -DHAVE_LOCALE_H define to GEN_OPTS= and add -intl in the LIB= entry for 
  your OS. To install the nls files go to po/ subdirectory and type make
  then make install (will install in /usr/share/locale/<lang>/LC_MESSAGES/ )
- added support for Notice-Requested-Upon-Delivery-To: header for RRQ flag
  (sendmail doesn't use Return-Receipt-To: any more...)
- removed SWITCH_DATE code

Changes in 2.10-tx8.3
---------------------
- Corrected a bug when modtype=1
- imporved creation of X-FTN-Tearline: to avoid "X-FTN-Tearline: \n"
- changed message.c so a line ^aRFC-Approved is only created for modtype==1
- added -DALLOW_RETURNPATH define to allow the use of a given Return-Path
  address, so we can force it to be the real return address instead of the
  one of the last FTN node.
- added support of type 2.2 packets
- corrected a bug in rfcmsgid()
- added recognition of Gatebau Message-ID when gating rfc -> FTN
- added generation of Gatebau Message-ID when gating FTN -> rfc
  note that this will break the References: database, but anyway that
  database isn't needed anymore whith Gatebau style MSGID). You can
  select this whith -DGATEBAU_MSGID
- added generation of Gatebau MSGID when gating rfc -> FTN. You can select
  this whith -DGATEBAU_MSGID
- corrected problems whith the non conform ^aDOMAIN kludge generated 
  by fidogate
- improved References: code.
- added -DXGATEWAY_STRICT for strict compliance to X-Gateway header/kludge
  in case you need it.
- added -b option to ifmail/ifnews. It allows non-splitting of messages
  when writting to pkt.
- made a little change to the skconv() code that speed ups the ifmail/iftoss
  when both incode and outcode are known and are the same, a little more
  speedy too when default language is 8bit instead of 16bit for unknown
  charsets (autodetect).
- added MIK-CYR charset support (Pavel Pavlov)
- corrected bugs in base64 and MACHIGAI code (Pavel Pavlov)
- added config file keywords for default rfc and FTN charsets

Changes in 2.10-tx8.2
---------------------
- added TZUTC handling recognition and generation in EMSI (emsidat.c)
- made a function char *gmtoffset(time_t) that tells the difference whith GMT
  in the pattern ("%c%02d%02d",sign,hours,mins)
- merge whith 2.10 version
- -DNEW_MSGID has been dropped as the solution in 2.10 is far superior.

Changes in 2.9-tx8.1
--------------------
- Corrected ifgate/mkftnhdr.c so if the X-Comment-To: line has an address like
  "A.Ismael Olea Gonzalez" <"A.Ismael=20Olea=20Gonzalez"@p9.f108.n345.z2.fidonet.org>
  the quotes are stripped on the FTN echomail message header. (U.Lusa)
- Changes in ifcico/zmmisc.c to solve problems whith TBBS systems (T.Tanaka)
- Changes in iflib/cleanup_ref.c (M.Schaeffer)
- added Base64 decode support (in both headers and body)
- added escaping of chars [\]{} in outgoing EMSI packets.
- corrected a bug in de-escaping of incoming EMSI packets.
- added code to autodetect the linux kernel used (no more need to 
  define -DPRE_21_LINUX)
- corrected bugs in zmmisc.c mkrfcmsg.c and unpacker.c, M.Schaeffer.

Changes in 2.9-tx8.0
---------------------
- argh ! I forgot to include clean_ref.c on previous release !
- merging whith version 2.9
- added macintosh charset support

Changes in 2.8g-tx7.9
---------------------
- added chkftnmsgid() to iflib/ftn.c
- corrected ifgate/mkftnhdr.c so it doesn't keep FTN messag-id's in the ref_db
- corrected ifgate/ifdbm.c so long freename are registred only up to MAXNAME
  characters long
- cleanup_ref utility that cleans-up the reference database (by M.Schaeffer)
- iftoss now looks at ^aSPTH when writting the rfc-1036 Path: line
- new strcasestr.c (by M.Schaeffer)
- changed the moderator field in Areas file

Changes in 2.8g-tx7.8
---------------------
- included the several changes from 2.8f --> 2.8g
- corrected -DTERMAIL_HACK behaviour.
- (BTW, -DTERMINATE_HACK is done by -DBELEIVE_ZFIN=1 since 2.8f/2.8f-tx7.7)
- added patch from Yar Tikhiy <yar@comp.chem.msu.su> that makes ifpack handle
  lines beginning by "~" in *.?lo as already sent, when ifpack decides how
  to name new archives.
- added recognition of JAR archiver format (I'm not aware of any unjar for
  unix; however the code is there just in case...)
- added removereturnto to message.c, so Return-Receipt-To isn't rewrite when
  gating when not needed.
- rewrite the way ref database is used, now it is looked on in rfcmsgid()
  function when gating to RFC format. The code looks better and it can also
  be used on all MSGID-><Message-ID> lines (MSGID,REPLY,ACUPDATE,...)
- added several PGP recognition support when gating from rfc-->FTN.

Changes in 2.8f-tx7.7
---------------------
- The base against patches are done is now v 2.8f
- Changed FIDOMAZOVIA charset recognition to also understand "FIDOMAZ 2".
- added DEFAULT_ORIGIN from an idea of "Marco d'Itri" <md@linux.it>
- added recognition for Content-Type: multipart/signed messages and
  application/pgp as PGP signed messages (= no charset conversion).
- corrected a little security hole when requesting "../filename"
  (if you haven't files in the parent directory of the public one, then
  there wasn't any problem, but is better to solve it).
  Problem pointed out by Andrew Romanenko <andrew@cca.usart.ru>
- in ifgate/getmessage.c, if a kludge line begins whith RFC- then it can have
  \n and \t on it. (no badkludge defined). This is good for ^aRFC-Received
  lines which often are broken on several lines.
- added TEL6.1 patches of T.Tanaka (add telnet-Vmodem mode)
- FreeBSD specific hack by Igor Vinokurov <igor@cs.ibank.ru> in clibrary.h
- added -DTERMAIL_HACK which tries to correct a bug in TerMail 4 which 
  sometimes reports incorrect charsets (ie: puts "LATIN-1 2" while it is
  in fact "IBMPC 2". iftoss will recognise "^aPID: TerMail 4", hoping 
  that version 5 will repair it.
- Improved charset determination. Now ^aCHRS has priority on Content-Type:
  when gating from FTN --> usenet.
- made the LEVEL stuff a command line option. the -DLEVEL compile time
  option is still there to determine the default (1)
- corrected the behaviour when "dosoutbound" is used; now ifcico correctly
  convert the pathnames in the fly, see the files and send them.

Changes in 2.8e-tx7.6
---------------------
- I forgot hydra.h GRRRR !! (anyway hydra doesn't work, it is only the *.h)

Changes in 2.8e-tx7.5
---------------------
- replaced the "-p port" option by the "-a adress:port" of Eugene Crosser.
  changed the ifcico/openport.c with author's code.
- applyed the Eugene's patch for nodelist.c (that is replaced my bugfix in
  tx7.4 by the Eugene's one)
- added some CHRS_* macros (traditional and mainland iso-2022 chinese)
- I splitted iflib/kconv.c in two files: charconv.c (general stuff and eight
  bit charsets conversions) and charconv_jp.c (japanese conversions).
  charconv_cn.c (chinese) and charconv_kr.c (korean) will be added in the
  future.
- added the macro LANG_DEFAULT, used for autodetecting charsets (as now only
  LANG_JAPAN does something). Read README.charsets for more info.
- corrected the removereplyto code in ifgate/message.c.
- corrected MSGID retrieval in mkftnhdr.c for <MSGID_...@...> and <ftn_...@..>
  Message-IDs.
- Changed the way ifmail/ifnews get the local hostname (gethostname() instead
  of $HOSTNAME) and corrected a bug about that. It also checks Reply-To:
  line for localness (LEVEL < 1)
- Added a -DDIRTY_CHRS option; it is really dirty, but sometimes necessary.
  When compiled like that a "dirtychrs" keyword is recognized in config
  files, it tells the charset to assume for packets from a given address.
  This is to by-pass the problems of nodes doing savage charset translation,
  whitout knowing the original charset, and worst, not changing the ^aCHRS
  kludges :-(
  a "-c charset" command line option is added to ifmail/ifnews, so you can
  force a given charset for a given adress you route through if you know that
  it does savage translations.
- Added some #ifdef MIPS_* compile options for RISCos SVR4 (seems very bad to
  handle comms :) ).
  Contributed by Marc Schaeffer <schaefer@alphanet.ch>


Changes in 2.8e-tx7.4
---------------------
- improved support for PGP-signed messages (don't change "soft CR" to space
  nor break lines, if the message is PGP-signed). 
  It still lacks the same functionality when gating from usenet to FTN...
- corrected a bug when Organization: has only blanks, it caused a seg fault
  because after getting out all the leading blanks we finished with a null
  string, and strlen() on it is bad :)
  problem pointed by Evaldas Auryla <sabas@ibm.net>
- added mxlookup.c from Ruslan Belkin <rus@ua.net>
- applied SEEN-BY database building patch of Yar Tikhiy <yar@comp.chem.msu.su>
- added support for Message-IDs of the pattern: 
  <ftn_2.204.226$fidonet_1d17b3b3_Johan.Olofsson@magnus.ct.se> to be gated
  back to "MSGID: 2:204/226@fidonet 1d17b3b3".
- added references support from Marc SCHAEFER <schaefer@alphanet.ch>
  it stores in a database ftn Message-IDs (eg: 125876@some.where) and
  RFC ones (eg: aze$12.az@some.where) So when an FTN reply comes back the
  right original id can be restored in the References: line.
- -DMIPS_AREAS_HACKING allows you to define "Areas.fidosite" files which
  are scanned for a given fidosite. If the file doesn't exist, then it
  defaults to "Areas". code from Marc SCHAEFER <schaefer@alphanet.ch>
- -DFIDOIZE and -DMOREFIDOIZE are replaced by -DLEVEL=X option.
- done a timid incursion in implementing fsc-0047 ^aSPLIT kludges.
  Somebody can take a look and help me ?
- corrected a bug in ifcico/nodelist.c that caused sigsevs when no domain
  was specified in "address" lines of the config file. Thanks to Jerko
  Golubovic <Jerko.Golubovic@f112.n381.z2.fidonet.org> for pointing me
  this out.
- "magicname" (UUCP) is used in a different way. Now even if it is defined the
  messages are scanned for RFC lines, but if the FTN to header is different
  of magicname then the rfc "To: " line isn't used. This is useful for mailing
  lists for exemple, and all kind of messages where the address in To: line
  is different of the address of the addressee (the "enveloppe adress")

Changes in 2.8e-tx7.3
---------------------
- fixed some bugs in mkftnhdr()/DONT_REGATE code. Addresses like:
  X-FTN-Sender: . <.@domain> gave serious errors. (changes made by
  Wim Van Sebroeck (vsebro@medelec.uia.ac.be)).
- corrected a bug with "ACUPDATE: DELETE"
- added removesupersedes and function chkftnmsgid that checks if a rfc msgid
  can be entirely translated to an FTN MSGID.
- minor fixes to charset retrieval in ifmail.c
- added yet another field to Areas file so we can define an address for 
  Approved lines. So read-only FTN areas can be defined as Moderated in rfc
  side; which is their equivalent.
- added removesupersedes and removereplyto to ifgate/message.c so we don't
  Write Reply-To: when it is the same as From, and ^aRFC-Supersedes: when
  the message-id can be losselessly converted to a FTN MSGID.
- Rewrite the code that converts FTN 'to' fields. Now an FTN header which
  have '.' or '_' in it will generate an address whith "quoted" local part
  (ex: John A. Smith 1:2/3 --> "John A. Smith"@f3.n2.z1.fidonet.org)
  So the '.' and '_' chars can be retrieved when converting back to FTN.
  8bit chars, if outside a "local quoted part" are "backslashed" 
  (ex: Jorge Peña 2:3/4 --> Jorge.Pe\ña@f4.n3.z2.fidonet.org
   but Jorge P. Pérez 3:4/5 --> "Jorge P. Pérez"@f5.n4.z3.fidonet.org)
  '\' becomes \\ outside quotes but not changes inside of them.
  '"' allways become \" in any case. So complicated names like
  This is.a \complicated "name" 1:2/3 can be handled, the exemple becomes
  "This is.a \complicated \"name\""@f3.n2.z1.fidonet.org

  This _absolutely_ needs that sendmail doesn't strip off the ' " ' char
  (the double quote). So check in sendmail.cf that there is NOT an "s" flag
  for the ifmail definition (flags are those letters after F=....).
  The range 0x80 - 0xBF produces problems with sendmail, so they should
  be quoted, like in quoted-printable form.
- added domain support and 16 bit product code support in yoohoo code. 
- FTN \001REPLYTO can be used same way as an rfc Reply-To, so I modified
  mkrfcmsg.c so it creates a correct Reply-To line if itsn't one, nor a
  \001REPLYADDR, but there is \001REPLYTO. (it isn't just the same text,
  it has to be parsed and converted to rfc822 address)
- -DTERMINATE_HACK allows incomin calls from Terminate to pick their
  waiting mail, receive files, etc. (otherwise the connection hangs after
  we finish receiving, and nothing is sent).
  I don't know if my hack broke something other, so I made it available as -D

Changes in 2.8e-tx7.2
---------------------
- Secure mode option added for ifmail. (code written by Wim Van Sebroeck
  (vsebro@medelec.uia.ac.be)). This options checks wether or not a node 
  is in the nodelist before gating a message from rfc to FTN.
- fixed some bugs in mkftnhdr() code. Addresses like: From: <someone@domain>
  gave errors.
- Changed -DDONT_REGATE code so that it works with parserfcaddr().
- corrected restamp date code. Now it does only if newsmode is set.

Changes in 2.8e-tx7.1
---------------------
- I upgraded my kernel from an a.out linux kernel to an ELF format one, with
  this new format bugs that have no effect on my machine before became visible
  I think they are corrected now, sorry for the trouble m(__)m

Changes in 2.8e-tx7.0
---------------------
- Merged with 2.8e source tree

Changes in 2.8d-tx6
---------------------
- Modified respfreq.c for correctly handling file requests with paths, when
  the file is also a magic one.
- Corrected a little bug about charsets and JE-style Areas file and netmail.
- Now -DRESTAMP_OLD_POSTINGS tells the maximum number of days that can be
  tolerated for old messages (ex: -DRESTAMP_OLD_POSTINGS=25)
- Added support for LATIN1QP CHRS kludge (latin-1 quoted printable)
- Added -DHAS_PGP. When a message is PGP signed iftoss doesn't attempt any
  charset conversion, so signature isn't invalidated.
- Updated e-mail address of Tsuneo Tanaka.
- Corrected a problem about buffers too small

Changes in 2.8d-tx5
-------------------
- Corrected a bug with hdrconv(), sometimes in MIME headers are truncated, and
  there isn't a "?=" at the end (this specially arrives with gated inet 
  messages received trough FTN, as 'to' and 'from' FTN headers are only 35 char
  long). It now handles such cases without crashing.
- Corrected a bug that I introduced in ftn.c. Thanks to Thomas Quinot 
  <operator@melchior.cuivre.fdn.fr> for correcting it.
- The lib (utlib.a in ifmail/iflib) uses some functions defined in rfcmsg.c, so
  I moved that file to iflib/ directory to let the lib be independent, I move
  too the file batchrd.c, used by rfcmsg.c; and done the changes to reflect
  that in the Makefiles.
- added an improvement to tcpproto.c by Jean-Louis Noel <jln@habcnx.stben.be>
- added -DDONT_REGATE code; that keep first FTN gateway address. By Wim
  Van Sebroeck <vsebro@medelec.uia.ac.be>.
- corrected a problem with akas in emsidat.c
- added koi8-u (Ukranian)
- added support for domain#zone:net/node[.point] format of addresses
- added an option (-DRESTAMP_OLD_POSTINGS) to change the Date of old FTN
  messages. FTN networks are sometimes very slow in routing, when messages
  arrive, they are deleted by the news agent as they have more than 15 days.
  This one rewrites their date, and puts the old date in X-Origin-Date:
- When gating from inet --> FTN, if X-Origin-Date: exists, date is taken from
  there.
- Modified -DRESTAMP_FUTURE_POSTINGS so it uses X-Origin-Date to store the
  original date.
- Corrected a bug in X-PcBoard-From: handling
- Applied a bugfix from ifmail mailing list to emsidat.c

Changes in 2.8c-tx4 / 2.8d-tx4
------------------------------
- the base against which diffs are done is now v 2.8d
- added cp852 (MS-DOS codage used in Poland).
- corrected support for Polish thanks to fidomazovia<-->iso-8859-2 tables
  given by Krzysztof Halasa <khc@hq.pm.waw.pl>
- changed the way incode is found when gating from rfc to FTN. Now if there
  is a Content-Type line but the charset can't be retrieved (not text/plain
  or unknown charset) ifmail will look if there is any X-FTN-CHRS: line
- added MAZOVIA/FIDOMAZOVIA charset code.
- added -DRNEWSB; when compiled with it, the result of ifnews -N is an
  rnews readable file.
- I've had to change Makefile so ifunpack and ifpack are not linked with areas.o
  (that caused problems when compiling with -DJE). I don't understand why 
  areas.o was linked, there is no use of the functions of areas.c in if(un)pack
  For the reason why it caused problems at compilation, I know. iflib/utlib.a
  uses a function ( hdr() ) defined in ifgate/rfcmsg.c, it will be cleaner to
  move this to iflib directory, but I don't know yet all the consequencies of
  doing that, so I'll wait.
- corrected a little bug in dequote()
- added recognition of X-Apparently-To: generated by the french ftn->usenet
  gate (it contains th FTN "to" in echomails)
- keyword "maptabdir" now is used.
- modified iflib/kconv.c (after my alphabetical sorting of codes, errors
  were introduced, I repair that)
- CHRS_NEW replaced by CHRS_ISO_2202_JP
- readareas modified so it uses getcode() and readchrs() to get incode and
  outcode from Areas (#ifdef JE)
- if there isn't a "paketpassword" for an adress, the "password" is used.
- added other functions of JE version. Some of them have their own compile-time
  configurable parameter. See CONFIG file for -DIGNORE_SOFTCR, -DNEWDB,
  -DKEEP_TEARLINES_CLEAN, -DREPLACE_TEARLINES_WITH=, -DRESTAMP_FUTURE_POSTINGS
- Added support for JE version Areas file, and the ability of retrieving a
  default charset/CHRS for there (needs -DJE when compiling)
- added paketpassword keyword.
- Rewritten iflib/charset.c
- Added -DFIDOIZE option. If used gated messages to FTN are more "fido-like"
  X-Newsreader or X-Mailer are written to: ^aPID: kludges, Path: line is 
  skipped.
- added removemsgid and removeinreply to check if Message-ID or In-Reply-To:
  should or not be written as ^aRFC-...
- rewritten the code writting ^aREPLY: from References: , now it works also
  ok when the last <msgid> isn't separated from the previuos by an espace
  (ex: it is at a new line, so separated by "\n\t")

Changes in 2.8c-tx3
-------------------
- changed charset translation code. Now the ftncode is conserved in a
  X-FTN-ORIGCHRS: line, and when it is gated back to ftn, this codage is
  used in preference.
- corrected a bug with the code that puts "UUCP" in the ftn header when the
  adress is too long.
- Corrected problem with MSGID's, it should now be ok with even the
  strangiest MSGID's. If you still encounter problems let me know.
  Not only "^aMSGID: 1:23/45@domain 152ad589", but also 
  "^aMSGID: 1:23/45@@domain 152ad589", "^aMSGID: domain#1:23/45 152ad589"
  and even "^aMSGID: 1:23/45@ 152ad589" 
- added support to dequote MIME quoted printable messages. Code by T.Tanaka
- modified parsefnode to parse '"1:215/33@FIDO NET" 125ab158' found in some
  MSGID. It has yet to be improved, so parsefnode can recognize as well
  "username ftnadress" and "ftnadress username"
- added generation of correct MIME headers containing the charset value.
- support to decode MSGID from fidogate "Message-ID: <MSGID_....>"
  (the same for REPLY too). 
- little change to removemime() to work when there isn't a
  Content-Transfer-Encoding: header
- added default values for CHRS_... (customize them according to the
  charset used in your country/region).
- added hdrconv() which decodes mime encoded headers and then calls the
  charset translation routine.
- Changed the charset retrieval from message.c to ifmail.c, now putmessage() 
  and mkftnhdr() have incode and outcode as parameters, so all headers can be
  translated too.
  These changes are activated, according to the presence or not of
  -DFORCE_CHRS. Now all headers are charset-translation-able.

NOTE: base64 doesn't work yet, I've commented it out.

Changes in 2.8c-tx2
-------------------
- I add a lot of compile time configurable -D.... for the changes in tx1
- Added an option -DFORCE_CHRS  for charset support
- The gateway puddle.fidonet.org (1:102/45 I think), put the Usenet header
  lines in the text body when gating; but Newsgroups: line
  have ", " (comma, space) instead of "," (only comma) to separate different
  newsgroups. If you receive groups from there, -DPUDDLE_GATE will repair that.
- Note that all -D*_GATE are for people receiving newsgroups in FTN format,
  if you have a direct usenet feed, you probably don't nedd all that. I have
  defined it for me ( I haven't yet a direct link ), so the messages passing
  trough my system are all standardized in the output.
- Added -DFORCE_REPLYTO_LOCAL, to force the creation of ^aREPLYTO: and
  ^aREPLYADDR:, even if we use the database. And use the local address, even
  if there is already a ^aREPLYTO: (it is rewritten)

- There was too much comment lines, so I leave explicit

/* ### Modified by .... */
 .... code ....
/* ### */

  only for code that is not clean/beatiful/pretty/..., things that are ok
  (or I think that are ;-), I only told briefly at the beginning of the .c file
  and here.
- Added support for unrar (and there is a new keyword in config file: unrar).
  There is an improved algorithm to determine the compressing format, and a
  some others formats can be defined by just uncommenting the related lines in
  the source (in ifgate/unpacker.c, iflib/config.h and iflib/rdconfig.c)
- Modified ifmail so if we send an email message to a FTN->e-mail gateway,
  and the email adress is greater than 30 chars, "UUCP" is used instead in the
  FTN header. (And a "To: address@domain" is put in the body, but that was
  already done before). So people who, like me, hasn't yet an email
  connectivity other than by FTN<->email gateways can send mails whitout
  worrying
- Added charset conversion functions from JE version. (kconv.c)
- added some improvements to ifcico by TCP (code from Tsuneo Tanaka),
  particularly the ability to tell a port number in the command line.
- added ISO_8859_* and CP437 as codage identifiers.
- All write functions that handle text (body+subject+Originline) use strkconv
  function. It receive as parameters the string to convert, incode, outcode and
  "tofullsize" (some codage add some special caracters).
- Write a manpage for ifcico(8)
- cleaned bwrite.c and bread.c of old transcodage code (now it's done by
  kconv.c)
- modified kconv.c; if (rfccode == ftncode) noconv() is called
- Written all the stuff needed for charset recognition (in iflib/charset.c).
- Changed iflib/Makefile to create needed.h according to the value of ${NEEDED}
- Corrected ACUPDATE code in message.c, now an rfc message containing a header
  of "Supersedes: <msgid>" or "Control: cancel <msgid>" will generate a
  ^aACUPDATE: kludge (which is the FTN equivalent).
  That doesn't work very well if the original message has been splitted and/or
  copied to more than one FTN echoarea; as the FTN messages will have different
  MSGID than the one generated this way. But it will hopefully work for not
  splitted messages. You have to use -DALLOW_CONTROL for this to work.
- added "man" and "man.gz" (for storing man pages in gzipped form) to Makefiles.
  You can now install man pages by typing "make man" (or "make man.gz" if you
  want to save disk space). Chek if the user "man" and group "man" exists;
  if not, change them in CONFIG.
- modified the way ^aREPLYADDR and ftn 'to:' are created (I use the
  function parserfcaddr() ), so the address of the "Reply-To: " line (if
  exists) is used for ^aREPLYADDR and registration database.
- Added support for Hebrew (cp862 (PC), cp424 (EBCDIC), iso-8859-8)
- added recognition of X-Fsc- (generated by the gateway gnfido.fidonet.org)
- added recognition for "^aMSGID <localid@some.where.org> 0124587" created
  by fidogate.
- Added code to write CHRS: from identifiers (ftncode, rfccode)
- A new function : eight2eight to do 8bit -> 8bit
  transcodage. Copied  from transcodage in original 2.8c (using outtab/intab).
  This one receives the caracter map (that I called "maptab") as an argument;
  the same can serve for ftn->rfc and rfc->ftn.

Changes in 2.8c-tx1
-------------------
- I've included some changes taken from 2.8c-JE modified by Tsuneo Tanaka
  <tt@efnet.com>. [marked as (JE) in the list]
- And some of my own, mainly to include some strange kludges and/or headers
  generated by other gateway softwares.
- There is a Usenet-->PcBoard-->FTN gateway that puts in the FTN text body some
  usenet headers, but some are changed in their syntax :-(, so I modified
  ifgate/rfcmsg.c to force their acceptation:

@FROM   :   --->   X-PcBoard-FROM:
@SUBJECT:   --->   X-PcBoard-SUBJECT:
@PACKOUT:   --->   X-PcBoard-PACKOUT:

  Then, in ifgate/mkrfcmsg.c, added the lines to map

X-PcBoard-FROM:      --> From:
X-PcBoard-SUBJECT:   --> Subject:

  And also:

^aApparently-To: --> Apparently-To:
^aORIGID:  --> Message-ID:
^aORIGREF: --> References:
^aMessage-ID: --> Message-ID:
^aApproved: --> Approved: (JE)

- In ifgate/getmessage.c, added code to force create MSGID's when there isn't
  one (with compilation option -DFORCE_MSGID)  (JE)
- In ifgate/message.c, and ifgate/mkftnheader.c added recognition of X-FTN-To:
- This is the most important for me: in mkftnheader.c, changed the way that
  the FTN From: field is done, to put a real name rather than a userid (JE)
- Now ^aRFC-Newsgroups: is created if more than one ng
- I've tried to generate ^aACUPDATE: kludges from Supersedes: and
  Control: cancel but I have no luck :)
  The other way (ftn ---> usenet) works fine.

