! - Bug fixed # - Added feature or changes 1.00.b1 03-06-98 * First version was born. 1.01.b1 04-06-98 ! Trap if letter only contains binary header. 05-06-98 ! Losing lines Via, if body contains only one enter and kludges are absent. # Speed up directory scanning with big number of scanned messages. 1.01.b2 08-06-98 # Added @MsgBody macro - body of message 1.02.b1 09-06-98 # Added Action: Ignore # Added Action: Display # Written Read.me 1.03.b1 10-06-98 # Added Action: Route # Added command line parameter Repack # Added keyword Outbound: # Added keyword TempMail: # Added keyword TrafficLog: 1.04.b1 10-06-98 # % can now be shown as a parameter in Action: Route ! Fixed error with adding Via to letters not containing Via at all. !!! Fixed serious error with packing/unpacking. Previous version was practically nonfunctional! 1.05.b1 16-06-98 # Added Action: Flag "File" # Added Action: WriteFile "Template" "File" 1.06.b1 17-06-98 ! Didn't support point configuration. # Greatle increased speed of processing letters if config was big. 1.06.b2 18-06-98 ! Action: Route Normal packed into bundle .NUT Now pack to .OUT 1.07.b1 22-06-98 # Added Action: Call 1.07.b2 25-06-98 ! In Action: Call you needed to indicate full path to file being executed. Now if it isn't defined we look into Path... ! When executing Repack processed some extra outbounds. ! Flags in mask, like "+f+f+f" and "f-f-f" were perceived as "any of these flags". Now it's "all these flags". ! Incorrectly processed kludges, if they were ending not with <0D>, but with <0D><0A>. 1.08.b1 03-07-98 # You can now use symbol "!" in Name and Subj of a mask. Example: Mask: "!Fyodor Ustinov" * "!~Moderator" * * * 1.08.b2 16-07-98 # Now you don't have to indicate nodelist. But mask # won't work. # If kludge INTL is absent, we try to extract address From from kludge MSGID: and address To from kludge REPLY: # Working a little bit faster. ! Fixed error that caused trap during routing of letters if more than 1500 letters were routed at the same time (number of letters depended from size of a memory) ! If couldn't find nodelist, FTrack tried to continue work. Tried, but not anymore :) 1.08.b3 27-07-98 ! If full name of nodelist was indicated, and extention of the file wasn't a number, FTrack couldn't find it. ! If defined several nodelists, then only the last one was compiled 1.09.b1 28-07-98 # Now in configuration file, everywhere where you define a line of symbols as parameters, you can use environment variables Example: Nodelist: "%NODELISTS%\nodelist.*" Action: NewMsg "%BADTOTPL%" "%OUT%" "%SYSOP%" .... # Added keyword Include: "file" # Added keyword Aka: # Added address modifier '@' # Added flag 'e' - emply body message (kludges are not counted) # Added configuration work NodelistPath: "Dir" If it's defined, then all following commands Nodelist: will use this directory as root. Except the occasion when full path is defined in Nodelist: NodelistPath: "o:\nodelist" Nodelist: "nodelist.*" \ EQU "o:\nodelist\nodelist.*" Nodelist: "c:\addlist.*" \ EQU "c:\addlist.*" # Added keyword IndexFile: "File" It defines file which will contain compiled nodelist. If it's undefined then the name of file will be ftrack.ndl and it will be created in current directory. 1.09.b2 29-07-98 ! When executing Repack tried to unpack _all_ files with extentions ".?ut". Now only ".cut", ".dut", ".out", ".hut". ! When compiled nodelist error #87 might have occured. # You can now indicate address like 2:5020/79.& in address mask. This means "Node, its points, its hublinks (if it's a hub) or host links (if it's host)" 1.09.b3 10-08-98 ! When generating MSGID starting with certain date FTrack halted with memory protection error. This date already occured. ! When indicated "nodelist.*" some extra nodelists (containing not only numbers as extentions) were processed. ! If you try to give FTrack incomplete nodelist, it halted. 1.10.b1 18-08-98 # Added macro @Subject - subject of outgoing message. 1.10.b2 27-08-98 ! Additional checking for validity of nodelist. 1.10.b3 31-08-98 # Added keyword MaxAge: Number # Added macro @MsgDate - Date of letter origination. # Added macro @MsgAge - Age of a letter in days. # Added macro @MaxAge - MaxAge: parameter. # Added flag 'g': - Check age of a letter. # +g - more, then indicated in MaxAge: # -g - less or equal to MaxAge: 1.10.b4 10-09-98 # Fixed error when determining date working with flag 'g' # If couldn't find correct date, then considering that letter was written today. 1.11.b1 28-10-98 # Added keyword AddToNullPkt. Enables to pack files ?UT of zero length. By default FTrack will swear on these letters. ! If file ?UT was of zero length then we packed this message with _error_. As the result the packet was bad. # Address 2:50/0.& in mask now means "all nodes of region 50" But if a node is not in nodelist it won't match the mask. # Changed format ftrack.ndl. # Added keyword NoLogIgnore. Disables screen or log output of information while processing Action: Ignore. By default this output to the screen and log is enabled. 1.11.b2 29-10-98 ! Disabled processing of @REPLY. 1.11.b3 11-11-98 ! Fixed error (started in 1.11.b1) which occured when processing masks like 2:5020/4.& 1.12.b1 14-01-99 ! In Via and ftrack.trf year now written in full format instead of just last two numbers. # BadMessages: : Skip - skip "bad" letter. : Delete - delete "bad" letter. : Move "Dir" - move "bad" leter to defined directory. : Exit - finish work. By default - Exit. # Three new flags. t, j & x. t - Truncate File Send j - Kill File Send x - Attach Exist. +x - letter has flag 'a' and all listed files exist -x - letter has flag 'a' and one or more files are missing. # FileInbound: "Dir" - indicates directory, in which attached files will be searched, if full path is missing. If this parameter is commented out then files will be searched in current directory. # Action: DeleteAttach - Deletes attaches. Letter itself is left untouched. # Action: ChangePath "Dir" - Change path in the subject. Files themselves are not moved. The existance of this directory isn't checked. If you indicate "", as directory, then path will simply be deleted. If sum of new long is greater than 71 symbols (maximum length of subj), then letter is sent without changes. If letter doesn't contain flag FileAttach, then this command is ignored. # Action: MoveAttach "Dir" - move attached file. # Action: Route now can route files. Repack also works. 1.12.b2 18-01-99 ! Understand a lot more flags in ^aFLAGS. ! Fixed one memory leak bug ! Who said that MAX_PATH - 256 ? It's 260. But structure FindData was 256... As result FTrack sometimes halted. BTW, I don't know why this bug didn't appear in previous verions. 1.12.b3 19-01-99 ! Mask: and Action: without ScanDir: caused FTrack to crash ! You can now use only configuration keywords in config. Meaning that "2 2 + . CR" in config now won't work. ! Flags -x and +x was processed on _all_ letters, instead of only letters with flag a. # Password: "Passwd" # BodyMask: "Body" # Action: Split 1.12.b4 21-01-99 ! Flags -x and +x tried to find attached files with undefined path in current directory, even if command FileInbound was used. # SkipHiddenFiles - when checking presence of attaches consider files with Hidden attribute as nonexistant. 1.12.b5 22-01-99 ! If body of a letter ended with , and letter didn't contain Via, then when executing Action: Route didn't add empty line before Via. ToDo: break Elkin's hands. ! Trap when executing, if directory with nodelist contained "extra" files matching the mask. 1.12.b6 22-01-99 #!#!#! Starting with this version if ftrack crashed, file ftrack.err will be created. For more details read report.err in distribution. # Added macro @NodeLists - list of used nodelists 1.12.b7 25-01-99 ! Starting with v 1.12.b3 Action: WriteFile could crash ftrack when parsing config. 1.12.b8 27-01-99 # Action: Route Crash %.0 - works as % with exception of points. All points are routed via boss. # If error was found in config file, then the name of file and line number are now indicated. 1.12.b9 05-02-99 ! If there was extra symbol 0D in kludges, then we ate body 2.00.b1 12-03-99 # FTrack is fully rewritten on ‘++. Compiler - Watcom C/C++ 11.0 # Now there are two executables: ftrack2.exe - version for OS/2 ftrack.exe - version for Win32 # Added macro @Date - Current date. # Added macro @MsgAttr - Letter Attributes. # When executing WriteFile, NewMsg now invalidates tearline and origin. # Configuration keyword UTC. Defines difference (in hours) between UTC and local time. # Keyword "Repack" now substitutes with keyword -u # New keyword Origin: - defines origin of all messages created with NewMsg. # LogLevel: 0 - Only messages about errors and Action: Display # LogLevel: 1 - Also other messages # LogLevel: 2 - All messages # LogLevel: 5 - Debug information. Log starts to grow with speed of light. # Extended work with masks FromName, ToName, Subject. More details are in documentation. # Action: AppendToFile "tpl" "File" Similar to WriteFile, if file already exists then append to the end of file. # In command ScanDir: you can indicate additional parameter Renumber 2.00.b2 13-03-99 ! While rewriting I forgot to include "Include:" :( # Flag 'E' - letter is an echomail message 2.00.b3 14-03-99 # If couldn't parse line like %..% as environment variable trying to parse it as hex number. For Instance: "%22%" would be symbol '"'. # FTrack got FTSC Product Code - 0CFF. 2.00.b4 15-03-99 # In mask symbol '#' is a metasymbol, meaning "any number" # In command ScanDir: you can indicate time. # Added command line parameter -t 2.00.b5 17-03-99 ! Usage of mask % in address when creating a new letter or overwriting the existing one caused error 2.00 18-03-99 # Release 2.01 19-03-99 # New flag 'n' added. 2.01.b1 22-03-99 # Squish format is now supported # New flag 'v'. 2.01.b2 22-03-99 ! If the body of a letter was empty then Ftrack crashed while using Bodymask. ! Crashed if kludges like "@ some @" or "@" existed in a letter 2.01.b3 22-03-99 ! A mistake appeared in 2.01.b2- kludges weren't processed # Added macros @MsgTearline # Added macros @MsgOrigin # Added macros @MsgNTearline # Added macros @MsgNOrigin # Added macros @Tearline # Added macros @Origin # Added command Action: AddNote # Action: NewMsg doesn't add tearline and origin anymore. Use macros. 2.01.b4 23-03-99 # ScanDir: ... Unpack # Logfile is now opened just as Ftrack encountered LogFile: keyword in the config-file. # Keyword CreateMissingBase 2.01.b5 24-03-99 ! Forgot to describe new word TearLine in documentation ! If the body of a letter was empty it didn't coincide with BodyMask: * * * ! If a letter was "from future" then considered that it had a missed date. 2.01.b6 24-03-99 ! Crashed if Mask: or BodyMask: were in config without ScanDir: # MaxAge can now be shown locally for one ScanDir. 2.01.b7 25-03-99 ! A mistake appeared in 2.01.b2- loops weren't catched. # Added macros - @MsgLoops # Ftrack now supports *.PKT bases. 2.01.b8 31-03-99 # 27-03-99 is an anniversary- a year has passed from the moment I began this project. # Added *Mask: and *BodyMask:. They differ from Mask: and BodyMask: by the fact that if a letter coincided with the mask then after execution of all Action: it will also be compared with the following masks Example: *Mask: * * * * * +d Action: Rewrite * * * * * -d Mask: * 2:5020/1 * * * * Action: Route Crash 2:5020/0 # APktDir: "DirName" - more details are in documentation. # ScanDir: ... Daily 23:00-01:00 is now operationable. ! During oubound unpacking Ftrack forgot to delete attached files from according ?LOs. ! During outbound unpacking Ftrack didn't delete VIA of current system if a message contained only kludges without body. 2.01.b9 01-04-99 ! A tearline like "---" (without any text) didn't consider to be a tearline. ! During creation of messages by NewMsg while using @Origin macros in template Ftrack used address of sender of the _old_ letter instead of address of sender of the _new_ letter. 2.01.bA 03-04-99 ! While using AddNote carriage return was 0a, not 0d. 2.01.bB 05-04-99 ! During work on a machine with correctly shown TZ (e.g. OS changes summer/winter time itself) Ftrack added to time of creation of a letter 1 hour during every rewriting. 2.01.bC 05-04-99 # LoopStr can now be shown locallu for one ScanDir # ScanDir: ... Flag "o:\flags\flag" 2.02 05-04-99 # Release. 2.02.b1 08-04-99 # JAM Base support. # In mask symbol '$' is a metasymbol, meaning "any character" 2.02.b2 11-04-99 ! An error occured while writing to JAM-base a message with empty body. # It is not necessary to show LogFile anymore. In this case modifiers Daily and Weekly for Scandir won't function. 2.02.b3 12-04-99 # Size of body of a message is now written to ftrack.trf # Action: DelFile "FileName" # ScanDir ... File "#c:\flags\file" - delete selected file after scandir. 2.02.b4 13-04-99 # Action: Poll # MaxAttachSize: # Flag in Mask: "-A" # @MaxAttachSize # @MsgAttachSize 2.02.b5 20-04-99 ! Didn't catch situation when APKT and Outbound pointed to the same directory. 2.02.b6 28-04-99 # @MsgAreaName # KillRoutedMessage: 2.03 29-04-99 # Release 2.03.b1 30-04-99 ! Origin without address parsed incorrectly. ! In some cases crashed while using @MsgTearline macros. 2.03.b2 05-05-99 ! If a message was empty then crashed during AddNote 2.03.b4 07-05-99 # Action: CopyAttach 2.03.b5 12-05-99 # KludgeMask # *KludgeMask 2.03.b6 13-05-99 ! Now Ftrack handles more accurately with already existing in a letter MSGID. ! In 2.03.b2 situation with AddNote and empty letter was underworked 2.03.b7 13-05-99 ! Overdone fixing in 2.03.b6 :) 2.03.b8 16-05-99 ! Ftrack didn't understand Stone-Age PKT-2 packets. ! String about renumbering of MSG-bases displayed twice. 2.04 26-05-99 # Release. 2.04.b1 15-06-99 ! When Ftrack changed Source Address of a message it did't replace MSGID to a new one. 2.04.b2 08-07-99 # MaxNodelistAge: ! If Ftrack encountered an unknown format of PKT (or bad PKT-file), it stopped scanning the directory for other PKTs. 2.04.b3 08-09-99 ! During writing a message to JAM base name of receiver was converted to lowercase. ! If more than 12 (depends on other parameters and OS type) bases in SQUISH format were shown in the config, Ftrack began to swear, saying "Invalid message base" ! If Ftrack deleted (or moved) a message from SQUISH base then it skipped the next message (thanks to Daniel Hahler (2:2432/337) for hint how to solve the problem) ! Ftrack crashed during writing a message to JAM base if kludges Via, PID:, MSGID: etc. were without any parameter. ! Ftrack incorrectly parsed ToAddress in JAM base if domain-name was presented in address. 2.04.b4 15-09-99 !!! Engine that works with Squish/JAM bases is totally !!! replaced. Please, be _very_ careful. Remember, that !!! this is a beta-version. Of course, I've checked it. !!! But it's clear that I wasn't able to find _all_ the !!! mistakes. 2.04.b5 23-09-99 # Added 'L' flag - (LOCK in fsc-0053) # Added 'S' flag - (A/S ¢ fsc-0053) # Added @MsgSize macros. # Added @MsgLines macros. ! If Ftrack encountered an unknown macros (e.g. something like '@lalala') then it inserted in the resulting message 'lalala', but cut '@' ! If in the body of a message lines were ended by 0D0A or 0A0D then while using @MsgBody macros these combinations were converted to 0D0D ? There are still some problems with JAM bases. Waiting for fixed version of SMAPI. 2.04.b6 24-09-99 ! Fixed one of bugs in SMAPI connected with JAM bases (when Ftrack try to work with echobase like with netmailbase, it crashed) # ScanDir: @BeforeRoute|@AfterRoute # @MsgRoutedVia 2.04.b7 04-10-99 ! Added a carriage return to body of a letter while writing the letter to Squish or JAM base. ! Another fix in SMAPI about JAM bases. 2.04.b8 06-10-99 ! SMAPI and JAM... Soon I'll see these two words in nightmares. 2.04.b9 07-10-99 ! Incorrectly read date of creation of a message (could differ in several hours, depending on TZ) during it's reading from SQUISH and JAM bases. Incorrectly wrote it there. 2.05 08-10-99 ! Release 2.05.b1 24-10-99 # NewVia # SetViaAlways # Nodelist: "Nodelistname" [Zone] # SoftCheckInNodelist # CheckPoints: Never|Soft|Hard ! Ftrack crashed during writing a message containing only kludges to JAM base 2.05.b2 25-10-99 ! Sometimes FastEcho didn't see new messages created by Ftrack in JAM base. 2.05.b3 28-10-99 ! Sometimes Ftrack crashed during routing of messages without VIA 2.05.b4 02-11-99 ! Packets were generated using FSC-0048. Now Ftrack use FSC-0039. ! It was impossible to create a message without subject. ! Ftrack didn't keep in compiled nodelist information about points of a node, if the node was Hub, Pvt, Hold or Down. ! In macros @MsgKludges and @MsgVias Ftrack didn't invalidate kludge "SEEN-BY:". 3.00.a1 01-02-00 # First version with public sources. 3.00.a2 07-02-00 # some bugfixing... # SMAPI should be from 4 Feb 2000 or later. 3.00.a3 08-02-00 ! Fixed wrong order of parsing Aka and Passwd ! Password field in 'Password:' was lost. ! Fixed crash if passwords length in PKT is equal to 8 characters ! Ftrack was unable to add message to existing outgoing bundle in 'Action: Route' ! PKTBase is broken in 3.00.a1,a2 3.00.b1 21-02-00 ! Now not only gcc++ 2.95.2 may compile sources. ! Fixed crash if field DateTime in PKT header overrun. ! Not always caught Action without Mask. ! Fixed File Name comparing... # First Beta. 3.00.b2 24-02-00 ! Fixed File Name comparing... Again and again... 3.00.b3 04-04-00 # Added AIX support # Added makefile for Watcom-W32 ! Some bugs fixed. 3.00.b4 05-04-00 ! Fixed ignore .bsy files in outbound (under *nix, and (may be) any other versons compiled by gcc) 3.00.b5 10-04-00 ! Fixed bug with execution external program. 3.00.b6 11-04-00 # Sources tree reorganised ! Fixed bug in "Action: Rewrite" in @BeforeRoute|@AfterRoute 3.00.b7 13-04-00 ! Now support russian characters in attached files in Win32. ! Create .bsy files in OS/2 with R/O attributes... Fixed. 3.00.b8 18-04-00 ! Binaries for Win32 & OS/2 compiled with new smapi. 3.00.b9 21-04-00 ! Additional debug information in work with nodelist. ! Not caught error in "FromAddr" and "ToAddr" in "Action: NewMsg..." 3.00 24-04-00 # Release 3.01.b1 26-04-00 ! Now correct parse TAB ('\t') character in config file. # New masks: '+Mask:', '+BodyMask:' and '+KludgeMask' # New action: "Action: Recode "Recode.tbl" 3.01.b2 03-05-00 ! not public internal version 3.01.b3 10-05-00 ! Config parser rewrited from scratch. !!! WARNING!!! Time format in "ScanDir:" changed! Support of times like '00:00-' removed. # TimeStampFile: "Fname" # Peoridecally event like: 'p.00:15' # Nodelists parser say number of wrong line in error. # '[Time]' after 'Action:' ! Fixed bug with unpack outbound. ! Fixed bug with '+' masks. 3.01.b4 11-05-00 ! Fixed bug (again) with masks. 3.01.b5 11-05-00 ! Fixed bug with mask '%.0' in Action: Route 3.01.b6 21-05-00 ! Now use AKA for properly work without INTL kludge in message. ! When executing Unpack processed some extra outbounds. ! Not always caught Action without Mask. # Field "Text" in action 'Display' and field "Subject" in actions 'Rewrite' and 'NewMsg' may contain template macros # Semaphore: Time "File" # 'FileInbound:' may be defined local for each ScanDir. # '@MsgID' macros in templates. # TrafficLogTemplate: "File" 3.01.b7 06-06-00 # '@MsgReply' macros in templates ! Fixed bug with 8 characters password in config file. 3.01.b8 23-06-00 # Field "Prg" in action "Call" may contain template macros. ! If exists MSGID kludge and this kludge contain valid FTN address, use zone from this address for TO address. 3.01.b9 26-06-00 # ASO outbound support. "UseASO" configuration word. 3.01 27-06-00 # Release. 3.02.b1 29-06-00 ! Kludge parser rewrited from scratch. 3.02.b2 30-06-00 ! Some sources fixing... ! Fixed error in work with PKTbase. 3.02 13-03-01 # IgnoreBSY # if LogLevel set to 0 _only_ error messages will be stored in logfile. # New macros in templates: @Version @FromZone @FromNet @FromNode @FromPoint @ToZone @ToNet @ToNode @ToPoint ! Some bugfix in Recode (thnx to Dmitry Sergienko, 2:464/910.1) ! Fixed bug in comapre with mask with loopcount. (thnx to Victor Paszkiewicz, 2:451/30.13) ! Parts of splitted messages have equal MSGID. ! Crash with new SMAPI in Linux... Why not crash in Win32 ? Why not crash with old SMAPI? Fixed. ! Some fixes for work with (_WRONG_!) pkt's from IfMail. and other trash. 3.0.3 08-04-02 # Change version enumeration # 'H', 'P', 'D', 'U' masks ! Address in Origin line not changed. Fixed. 3.0.5 26-04-02 ! Fixed bug in compare with 'H', 'P', 'D', 'U' masks. 3.0.6 06-05-02 ! New MSGID and INTL in messages may contain address like ?:5020/79. Fixed. 3.1 31-05-02 # Release