@database MM_PowerFix.guide
@author "Jacob Laursen"
@wordwrap
@$VER: MM_PowerFix.guide 0.30ß (21.4.98)

@node Main "PowerFix Documentation"

                    @{b}MM_PowerFix v0.30ß for MailManager@{ub}

                  Copyright © 1997-1999 by Jacob Laursen
                           All rights reserved.

 @{"Introduction                " link Introduction}   About PowerFix
 @{"Disclaimer                  " link Disclaimer}   Legal information
 @{"Features                    " link Features}   Quick list of features
 @{"Installation                " link Installation}   Installing PowerFix
 @{"Configuration               " link Configuration}   How to customize PowerFix
 @{"Supported commands          " link Commands}   AreaFix and Raid commands
 @{"Starting PowerFix           " link Start}   Starting the program

 @{"History                     " link History}   What's new, fixed and changed
 @{"Future                      " link Future}   Future plans
 @{"Author                      " link Author}   Mail bugreports to me
 @{"Acknowledgements            " link Acknowledgements}   Thanks to...

                     This guide is under contruction!
               Please direct questions/suggestions to @{" me " link "Author"}.

@endnode

@node Introduction

@{b}Introduction@{ub}

MM_PowerFix is a brand new AreaFix for MailManager with advanced configuration facilities. All messages generated by PowerFix can be designed just the way you like it - even the wide range of different lists are 99% configurable. Examples are included that shows how you can easily masqurade MM_PowerFix as MM_AreaFix+ or MM_AreaManager.

@endnode

@node Disclaimer

MM_PowerFix is @{b}FREEWARE@{ub}, which means that you can freely use it as much as you like without any limitations at all! But, you may not:

- Distribute the program without any of the files from the
  @{"original distribution archive" link Distribution}.

- Copy/distribute modified versions of the program.

- Make money by selling any of the archive components!

If you use MM_PowerFix, please send me an e-mail - it's always nice to hear from people who appreciates my work. ;-)

@endnode

@node Distribution

@{b}MM_PowerFix distribution@{ub}

The latest release-version of MM_PowerFix can always be downloaded from Aminet as comm/mmgr/MM_PowerFix.lha! The latest beta-version should always be available at http://www.but.auc.dk/~32laur/amiga/powerfix and available for file request at 2:238/188.0@fidonet as magic name POWERFIX.

@endnode

@node Features

 @{b}@{i}MM_PowerFix is able to:@{ui}@{ub}

 - Be fully localized and customized
 - Rescan all netmails that has already been sent (%RESCANMATRIX)
 - Rescan only selected messages (%GETMATRIX)
 - List available netmails for a specific node (%LISTMATRIX)
 - Exclude specific mail areas from being processed
 - Activate and inactivate all areas for each node
 - Recognize AmigaDOS-wildcards with many commands (including %LIST)
 - Change the archiver a node is using (%COMPRESS)
 - Change AreaFix or Raid password (%PWD)
 - Change packet/address dimension (%PKTTYPE and %ADDRTYPE)
 - Rescan echomail (by days and forced rescan)
 - Connect/disconnect areas, including rescan with switches
 - Send policies for echo and tick areas
 - Change language or layout for each node (%LANGUAGE)
 - Send node setup information (%INFO)
 - Delete already processed mails
 - List available/linked/unlinked echomail or tick areas
 - Forward area requests to uplink
 - Support MM_ExportPlus

@endnode

@node Commands

 @{u}Supported commands:@{uu}

 %-ALL                            Both
 %+ALL                            Both
 %COMPRESS <archiver>             Both
 %COMPRESS ?                      Both
 %PAUSE                           Both
 %RESUME                          Both
 %PWD                             Both
 %PKTTYPE <dim>                   AreaFix
 %PKTTYPE ?                       AreaFix
 %ADDRTYPE <dim>                  AreaFix
 %ADDRTYPE ?                      AreaFix
 %LIST [<pattern>]                Both
 %UNLINKED [<pattern>]            Both
 %QUERY [<pattern>]               Both
 %AVAIL                           AreaFix
 %LISTMATRIX                      AreaFix
 %GETMATRIX <number>              AreaFix
 %POLICY <area>                   Both
 %NOTE <message>                  Both
 %RESCAN [<area>]                 AreaFix
 %RESCANDAYS <area> <days>        AreaFix
 %FORCERESCAN [<area>]            AreaFix
 %FORCERESCANDAYS <area> <days>   AreaFix
 %HELP                            Both
 %INFO                            Both
 %LANGUAGE <index>                Both
 %LANGUAGE ?                      Both
 [+]<area|pattern>                Both
 +<area 1> <area 2> ... <area n>  Both
 -<area|pattern>                  Both

@endnode

@node Start

 Usage: [rx] MM_PowerFix[.rexx] MSG <MailArea> <MsgNum>
                                MUI or GUI
                                SCAN [UPDATE]

 Switches:                      NOEXPORT
                                QUIET

 If you start MM_PowerFix with no arguments, all your netmail areas will be scanned for new messages.

 MSG:  Process single message.
       <MailArea>: Matrix area containing the message
       <MsgNum>:   Message number

 MUI:  Start PowerFix in MUI mode if MailManager is running

 SCAN: Check for areas with no links or no uplink and link/unlink them
       according to the @{"forward request configuration" link "MM_Uplink"}.

       UPDATE: Forward requests to all uplinks, linking/unlinking all areas
               to update current state.

 QUIET:        Don't show which area is being processed.

 NOEXPORT:     Override #AUTOEXPORT on config file - don't export any
               mails!

@endnode

@node Installation

@{u}@{i}Installing MM_PowerFix:@{ui}@{uu}

Extract the archive to your MM: assign. The structure should look like this (some of the paths can be changed, however, but let's get back to that later):

 MM:Config/MM_PowerFix.CFG
          /MM_PowerFix/Arealists          *
                      /Language           *
                      /Misc               *
                      /Passive/AreaFix    *
                              /Raid       *
                      /Policy/AreaFix
                             /Raid
                      /Text/Danish
                           /English

   Docs/MM_PowerFix.guide
   Extra/xTractPolicies.rexx
        /xTractPolicies.txt
   Rexx/MM_PowerFix.rexx

(* means that the directories will be created if they don't exist)
Next, put MM_PowerFix into your import script like this:

 rx MM:Rexx/MM_StarTrack
 rx MM:Rexx/MM_PowerFix

Or if you are using MM_ImportPlus:

 #NETMAILCMD   rx MM:Rexx/MM_StarTrack
 #NETMAILCMD   rx MM:Rexx/MM_PowerFix

If you want to be able to process a selected message (i.e. after a crash), put this line into your MailManager.CFG:

 #BROWSEMENU     "PowerFix"      "rx MM:Rexx/MM_PowerFix MSG %a %n"        ""

And this line to use the local MUI-version:

 #AREASMENU      "Local PowerFix"        "rx MM:Rexx/MM_PowerFix MUI"    ""

Remember to enable 'Two pass Import' for the netmail areas you want MM_PowerFix to process. If you want to use the netmail rescan commands, you should also flag 'Keep matrix' on.

@next Configuration
@endnode

@node Configuration

 @{b}Select topic:@{ub}

 @{" Main configuration file " link "MM_PowerFix.CFG"}
 @{" Forward requests        " link "MM_Uplink"}
 @{" Text files              " link "Text files"}
 @{" Misc. strings           " link "Strings"}
 @{" Global keywords         " link "Keywords"}

@endnode

@node "Text files"

 @{i}The following text files must be placed in 'MM:Config/MM_PowerFix/Text' and/or the configured language drawers:@{ui}

 @{"AddrDimChanged.txt    " link "Dimension"}
 @{"AddrDimNotChanged.txt " link "Dimension"}
 @{"AddrDimUnknown.txt    " link "Dimension"}
 AddDimList.txt
 GetMatrix.txt
 GetMatrixOld.txt
 HelpAreaFix.txt
 HelpRaid.txt
 @{"Information.txt       " link "Information.txt"}
 @{"LanguageList.txt      " link "LanguageList.txt"}
 @{"ListAll.txt           " link "List(All|Linked|Unlinked).txt"}
 @{"ListAvail.txt         " link "ListAvail.txt"}
 @{"ListLinked.txt        " link "List(All|Linked|Unlinked).txt"}
 @{"ListMatrix.txt        " link "ListMatrix.txt"}
 @{"ListUnlinked.txt      " link "List(All|Linked|Unlinked).txt"}
 MatrixNoAccess.txt
 @{"PackerChanged.txt     " link "Packer(Changed|NotChanged|Unknown).txt"}
 @{"PackerList.txt        " link "PackerList.txt"}
 @{"PackerNotChanged.txt  " link "Packer(Changed|NotChanged|Unknown).txt"}
 @{"PackerUnknown.txt     " link "Packer(Changed|NotChanged|Unknown).txt"}
 @{"PktDimChanged.txt     " link "Dimension"}
 @{"PktDimNotChanged.txt  " link "Dimension"}
 @{"PktDimUnknown.txt     " link "Dimension"}
 PktDimList.txt
 RescanMatrix.txt
 @{"StatusReport.txt      " link "StatusReport.txt"}
 UnknownCommand.txt
 UnknownNode.txt
 WrongPassword.txt

 Each of these files may contain @{"keywords" link "Keywords"}, which will be replaced with different information, such as names, addresses, etc. The keywords may occur anywhere in the file, as many times as you like.

@endnode

@node "Strings"

 @{b}Configuration parameters for MM:Config/MM_PowerFix/Text/<Language/>.Strings.cfg@{ub}

 @{"#LINECHAR     " link "#LINECHAR"}
 @{"#LINKCHAR     " link "#LINKCHAR"}
 @{"#LISTNOACC    " link "#LISTNOACC"}
 @{"#LISTREAD     " link "#LISTREAD"}
 @{"#LISTWRITE    " link "#LISTWRITE"}
 @{"#LISTPOLICY   " link "#LISTPOLICY"}
 @{"#LISTINACTIVE " link "#LISTINACTIVE"}
 #LISTHARD

#AREAFIXFROM	%AFIX

 Default: %AFIX

#RAIDFROM	%RAID

 Default: %RAID

#SUBJECT	DEFAULT			AreaFix report
#SUBJECT	UNKNOWNNODE		Who are you?
#SUBJECT	WRONGPASSWORD		Wrong password
#SUBJECT	UNKNOWNCOMMAND		Unknown command
#SUBJECT        AVAILLIST               Your requested list
#SUBJECT	AREALIST		Your requested list
#SUBJECT	POLICY			Your requested policy
#SUBJECT	HELP			Your requested help
#SUBJECT	INFO			Your requested info
#SUBJECT	MATRIXLIST		Your requested matrix list

#STATUS		ERROR			Unknown error, inform %SYSOP
#STATUS		NODESCRIPTION		<No description>
#STATUS		LINKED			Area connected
#STATUS		CONNECTNOMATCH		No matching areas available
#STATUS		UNLINKED		Area disconnected
#STATUS		DISCONNECTNOMATCH	No matching areas connected
#STATUS		YETLINKED		Area already connected
#STATUS		RESCANNED		Area rescanned
#STATUS		CONNECTRESCAN		Area connected and rescanned
#STATUS		PASSTHROUGHRESCAN	Passthrough area, can't rescan
#STATUS		UNKNOWN			Unknown area
#STATUS		OTHERNETWORK		Area belongs to another network
#STATUS		INACTIVE		Area inactivated
#STATUS		YETINACTIVE		Area already inactive
#STATUS		ACTIVE			Area activated
#STATUS		NOINACTIVE		No inactive areas
#STATUS		NOTLINKED		You are not linked to this area
#STATUS		NOACCESS		You can't connect this area
#STATUS		NOTECHO			This is not an echo area
#STATUS		NOPOLICY		No policy available
#STATUS		SENTPOLICY		Policy sent
#STATUS		LANGUAGECHANGED		Language changed to %NEWLANGUAGE
#STATUS		LANGUAGENOTCHANGED	Language already used
#STATUS		LANGUAGEUNKNOWN		Unknown language index

@endnode

@node "Keywords"

 @{b}Syntax:@{ub}

 %<keyword>[_<width>][_<char>][_]

 @{b}Description:@{ub}

 Recognized keywords will be replaced. You can set a fixed width, select a fill
char and choose to add a space before the first fill char. _<char> is not valid
without _<width> and _ is not valid without _<char>.

 @{b}Examples:@{ub}

 %AFIX       -> 'AreaFix'
 %AFIX_15    -> 'AreaFix        '
 %AFIX_15_.  -> 'AreaFix........'
 %AFIX_15_._ -> 'AreaFix .......'

 @{i}Global keywords in the text files:@{ui}

 %AFIX            Primary AreaFix name (first #AREAFIXNAME in config)
 %RAID            Primary Raid name (first #RAIDNAME in config)
 %SYSOP           Sysop's full name
 %SYSOP_FIRST     Sysop's first name
 %NAME            Requesting node's full name
 %FIRST           Requesting node's first name
 %FROMADDR
 %TOADDR
 %SYSTEM          System name
 %COMMAND
 %ARGS
 %PASSWORD
 %MSGDATE
 %NOWDATE
 %NOWTIME
 %LINKED
 %HEADER          Text contained in Header.txt
 %FOOTER          Text contained in Footer.txt
 %ORIGINAL        The original AreaFix request message
 @{"%UNDERLINE     " link "%UNDERLINE"} Underline

@endnode

@node MM_PowerFix.CFG

 First, let's take a look at the main configuration file @{"MM:Config/MM_PowerFix.CFG" link "MM:Config/MM_PowerFix.CFG/main"} (this file @{b}must@{ub} exist for MM_PowerFix to work). The following keywords are valid within the configuration:

 @{"#AREAFIXNAME  " link "#AREAFIXNAME"}
 @{"#RAIDNAME     " link "#RAIDNAME"}
 @{"#EXCLUDEMAIL  " link "#EXCLUDEMAIL"}
 @{"#DELETEMAIL   " link "#DELETEMAIL"}
 @{"#POLICYPATH   " link "#POLICYPATH"}
 @{"#AVAILPOLICY  " link "#AVAILPOLICY"}
 @{"#AUTOPOLICY   " link "#AUTOPOLICY"}
 @{"#ARCHIVER     " link "#ARCHIVER"}
 @{"#AUTOEXPORT   " link "#AUTOEXPORT"}
 @{"#FORWARDNODE  " link "#FORWARDNODE"}
 @{"#LANGUAGE     " link "#LANGUAGE"}

@endnode

@node Author

@{i}Contact me by snailmail:@{ui}

 Jacob Laursen
 Østre Alle 54, 1.
 9000 Aalborg
 DENMARK

@{i}Or electronically:@{ui}

 E-Mail:   laursen@myself.com
 WWW:      http://www.image.dk/~jlaur/amiga/
 BBS:      Remote Panic, (+45)-9813-8563
 Fax:      +45-9813-8563
 Voice:    +45-9813-6473

 2:238/188.0@fidonet
 39:140/146.0@amiganet
 45:1/1.0@scenenet

@{i}My public PGP-key:@{ui}

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: 2.6.2

mQCNAzTuwUAAAAEEAMEpAgVDAShSlf6rKj+U7yOdyFX2m0SnRYJ14q21Nj0GMX7D
UsxkpDZwSaDEMeaQ90YtPcIms5kjbB7C5NM9eFBoVjMdyV6diAlT0dxPuAmJrsuG
p4sEocFfkJRTz46qVL1veoZaxOT12Cgug+aHoKhfVboA2mRhKLkW5VgPTIcxAAUR
tCJKYWNvYiBMYXVyc2VuIDxsYXVyc2VuQG15c2VsZi5jb20+
=7kZn
-----END PGP PUBLIC KEY BLOCK-----

@endnode

@node "MM_Uplink"

If you know MM_Uplink by Anders Wegge Jakobsen, you know how to configure MM_PowerFix to forward area requests. Each area must have an uplink configured in the userflags for this function to work. The UserFlags must have this structure:

 (#<keyword>[=value]);

The following keywords are used by MM_PowerFix:

 UPLINK  Required to request this area from uplink (5D)
 SNOOP   Link/unlink area, even if it is not passthrough
 SKIP    Do nothing

The disadvantage of this method is that you have to create all requestable areas in your MM configuration, instead of just listing them in a textfile. The advantage is that it works with non-passthrough areas and you don't have to create special textfiles selecting default configurations for each area.

Example userflags:

 (#UPLINK=2:238/258.0@fidonet);(#SNOOP);

@endnode

@node "%AVAIL"

The lists containing areas available at uplink must be formatted like this:

<areas> [<description>]

All the lists must reside in MM:Config/MM_PowerFix/Arealists/
Each list must be named after the scheme "zone.region.node.point.net".
Example: 2.238.188.0.fidonet (2:238/188.0@fidonet)

Hint: Replace ':', '/' and '@' with '.' in the uplink's address. ;-)

The uplinks must be configured with @{"#FORWARDNODE" link "#FORWARDNODE"}.

The returned list will be formatted as configured in @{"ListAvail.txt" link "ListAvail.txt"}. Subject for the mail will be taken from #SUBJECT AVAILLIST <subject> in .Strings.cfg. If no areas/uplinks are available, the list NoListAvail.txt will be returned.

IMPORTANT NOTE: Forward requests are not implemented yet! The %AVAIL command only reflects the areas contained in the text files, not areas that will actually be linked at uplink on request.

@endnode

@node "#AREAFIXNAME"

 @{b}Syntax:@{ub}

#AREAFIXNAME <name>

 @{b}Description:@{ub}

Defines the AreaFix names to be used. The first name is the primary name which is used for responding messages, etc. (default is 'AreaFix').

 @{b}Example:@{ub}

#AREAFIXNAME AreaFix
#AREAFIXNAME PowerFix
#AREAFIXNAME XAreaFix

@endnode

@node "#RAIDNAME"

 @{b}Syntax:@{ub}

#RAIDNAME <name>

 @{b}Description:@{ub}

Defines the Raid names to be used. The first name is the primary name which is used for responding messages, etc. (default is 'Raid').

 @{b}Example:@{ub}

#RAIDNAME Raid
#RAIDNAME PowerRaid
#RAIDNAME FileFix

@endnode

@node "#EXCLUDEMAIL"

 @{b}Syntax:@{ub}

#EXCLUDEMAIL <mailarea>

 @{b}Description:@{ub}

Defines the areas that should not be processed.

 @{b}Example:@{ub}

#EXCLUDEMAIL BAD_NETMAIL
#EXCLUDEMAIL PRIVATE_NETMAIL

@endnode

@node "#DELETEMAIL"

 @{b}Syntax:@{ub}

#DELETEMAIL <ON|OFF>     (Default: OFF)

 @{b}Description:@{ub}

Set this to 'ON' if you don't want to keep the messages to AreaFix, after they have been processed.

 @{b}Example:@{ub}

#DELETEMAIL ON

@endnode

@node "#POLICYPATH"

 @{b}Syntax:@{ub}

#POLICYPATH <path>

 @{b}Description:@{ub}

Select the path to your policies here. In this directory these two directories should exist: AreaFix and Raid.

 @{b}Example:@{ub}

#POLICYPATH MM:Config/MM_PowerFix/Policy

 (And then you should save your echomail policies as:
  MM:Config/MM_PowerFix/Policy/AreaFix/[...] and your Raid policies as:
  MM:Config/MM_PowerFix/Policy/Raid/[...])

@endnode

@node "#AVAILPOLICY"

 @{b}Syntax:@{ub}

#AVAILPOLICY <ON|OFF>     (Default: ON)

 @{b}Description:@{ub}

If 'OFF' is selected, no policies will be available (with %POLICY or indicated in the area lists). Defaults to 'OFF' if @{"#POLICYPATH" link "#POLICYPATH"} is not set.

 @{b}Example:@{ub}

#AVAILPOLICY OFF

@endnode

@node "#AUTOPOLICY"

 @{b}Syntax:@{ub}

#AUTOPOLICY <ON|OFF>     (Default: OFF)

 @{b}Description:@{ub}

If 'ON' is selected, policies are automatically sent when connecting new areas.

 @{b}Example:@{ub}

#AUTOPOLICY ON

@endnode

@node "#ARCHIVER"

 @{b}Syntax:@{ub}

#ARCHIVER <archiver1> [<archiver2>] [<archiver3>] (...)

 @{b}Description:@{ub}

Defines available archivers. It is not possible to get this information from MailManager, so you have to config them here as well.

 @{b}Example:@{ub}

#ARCHIVER NONE ARC LHA LZH LZX ZIP ZOO

@endnode

@node "#AUTOEXPORT"

 @{b}Syntax:@{ub}

#AUTOEXPORT <ALL|NEW|NONE>     (Default: NONE)

 @{b}Description:@{ub}

If 'ALL' is selected, PowerFix will automatically export all netmail areas after processing them (excluding the ones defined in the @{"#EXCLUDEMAIL" link "#EXCLUDEMAIL"} statement).
If 'NEW' is selected, only those areas in which PowerFix has written messages, will be exported.
If 'NONE' is selected, no areas will be exported, but the areas will be passed on to MM_ExportPlus.

 @{b}Example:@{ub}

#AUTOEXPORT ALL

@endnode

@node "#FORWARDNODE"

 @{b}Syntax:@{ub}

#FORWARDNODE <node> <areafix name> [<password>]

 @{b}Description:@{ub}

@{"Configure" link "MM_Uplink"} all your uplinks here, and PowerFix will use these informations when forwarding area requests. If they are not submitted, the AreaFix password from the MM-config will be used and the AreaFix name will default to 'AreaFix'. Note: %AVAIL will only work if the uplinks are configured here!

 @{b}Example:@{ub}

#FORWARDNODE 2:238/258.0@fidonet SqaFix notforyou

@endnode

@node "#LANGUAGE"

 @{b}Syntax:@{ub}

#LANGUAGE <index> <description> <path>

 @{b}Description:@{ub}

Defines available languages. The first #LANGUAGE-line defines the default language. <index> is the keyword to use when changing language, <description> is the name/description and <path> is the complete path to the language text files. The #LANGUAGE-keyword can also be used to define different AreaFix-designs.

 @{b}Example:@{ub}

#LANGUAGE ENG English MM:Config/MM_PowerFix/Text/English
#LANGUAGE DEN Dansk   MM:Config/MM_PowerFix/Text/Danish
#LANGUAGE GER Deutch  MM:Config/MM_PowerFix/Text/German

@endnode

@node "#LINECHAR"

 @{b}Syntax:@{ub}

#LINECHAR <char>     (Default: ~)

 @{b}Description:@{ub}

Defines the char to be repeated when underlining text (see @{"%UNDERLINE" link "%UNDERLINE"}).

 @{b}Example:@{ub}

#LINECHAR -

@endnode

@node "#LINKCHAR"

 @{b}Syntax:@{ub}

#LINKCHAR <char>     (Default: *)

 @{b}Description:@{ub}

Defines the char that indicates connected areas, chosen archiver/language, etc. (See @{"%LINKED" link "%LINKED"})

 @{b}Example:@{ub}

#LINKCHAR +

@endnode

@node "#LISTNOACC"

 @{b}Syntax:@{ub}

#LISTNOACC <char>    (Default: -)

 @{b}Description:@{ub}

The char that indicates not accessible areas. NOT IMPLEMENTED YET!

 @{b}Example:@{ub}

#LISTNOACC -

@endnode

@node "#LISTREAD"

 @{b}Syntax:@{ub}

#LISTREAD <true> [<false>]     (Default: R and "")

 @{b}Description:@{ub}

Defines the string that indicates read status in the three lists %LIST, %QUERY and %UNLINKED. The <false>-string is submitted, if the node has no read access. Surround the expression with ""'s if you want to use spaces or tabs.

 @{b}Examples:@{ub}

#LISTREAD r -

 (Result: "r" if read access and "-" if not)

#LISTREAD R " "

 (Result: "R" if read access and " " if not)

@endnode

@node "#LISTWRITE"

 @{b}Syntax:@{ub}

#LISTWRITE <true> [<false>]    (Default: W and "")

 @{b}Description:@{ub}

Defines the string that indicates write status in the three lists %LIST, %QUERY and %UNLINKED. The <false>-string is submitted, if the node has no write access. Surround the expression with ""'s if you want to use spaces or tabs.

 @{b}Examples:@{ub}

#LISTWRITE w -

 (Result: "w" if write access and "-" if not)

#LISTWRITE /W " "

 (Result: "/W" if write access and " " if not)

#LISTWRITE W

 (Result: "W" if write access and "" if not)

@endnode

@node "#LISTPOLICY"

 @{b}Syntax:@{ub}

#LISTPOLICY <true> [<false>]    (Default: P and "")

 @{b}Description:@{ub}

Defines the string that indicates if there is an available policy in the three lists %LIST, %QUERY and %UNLINKED. The <false>-string is submitted, if there is no policy available. Surround the expression with ""'s if you want to use spaces or tabs.

 @{b}Examples:@{ub}

#LISTPOLICY p -

 (Result: "p" if policy available and "-" if not)

#LISTPOLICY /P " "

 (Result: "/P" if policy available and " " if not)

#LISTPOLICY P

 (Result: "P" if policy available and "" if not)

@endnode

@node "#LISTINACTIVE"

 @{b}Syntax:@{ub}

#LISTINACTIVE <true> [<false>]    (Default: I and "")

 @{b}Description:@{ub}

Defines the string that indicates if the area is inactive in the three lists %LIST, %QUERY and %UNLINKED. The <false>-string is submitted, if the area is inactive. Surround the expression with ""'s if you want to use spaces or tabs.

 @{b}Examples:@{ub}

#LISTINACTIVE i -

 (Result: "i" if area inactive and "-" if not)

#LISTINACTIVE /I " "

 (Result: "/I" if area inactive and " " if not)

#LISTINACTIVE I

 (Result: "I" if area inactive and "" if not)

@endnode

@node "%UNDERLINE"

 @{b}Syntax:@{ub}

%UNDERLINE[_<width>]

 @{b}Description:@{ub}

This will intuitively underline the line above with the configured line char (see @{"%LINECHAR" link "%LINECHAR"}). Try it out yourself. ;-)

 @{b}Example 1@{ub} (assuming #LINECHAR is '~'):

                                My header:
                                %UNDERLINE

 @{i}Result:@{ui}
                                My header:
                                ~~~~~~~~~~

 @{b}Example 2:@{ub}

                             My weird header:
%UNDERLINE

 @{i}Result:@{ui}
                             My weird header:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 @{b}Example 3:@{ub}

My crazy header:
    %UNDERLINE

 @{i}Result:@{ui}

My crazy header:
    ~~~~~~~~~~~~

 @{b}Example 4:@{ub}

                          I want a fixed length!
%UNDERLINE_74

 @{i}Result:@{ui}

                          I want a fixed length!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

@endnode

@node "ListMatrix.txt"

 @{i}The following keywords are valid within %LISTSTART and %LISTSTOP:@{ui}

 %NUM         Message number, requestable with command %GETMATRIX <num>
 %FROMNAME    From name (originator)
 %FROMADDR    From address (originator)
 %TONAME      To name - would normally be the requesting node's address,
              but could have slight variations (i.e. mis-spelling of name).
 %TOADDR      To address (requesting node's address)
 %SUBJECT     Subject for the netmail
 %DATE        Date of the netmail

@endnode

@node "Information.txt"

 @{i}The following keywords are valid:@{ui}

 %ADDRDIM     Seenby/Path dimension
 %PACKDIM     PKT dimension
 %ECHOFLAVOR  Echo flavour
 %TICKFLAVOR  Tick flavour
 %PKTPW       Packet password
 %AREAFIXPW   AreaFix password
 %TICKPW      Tick password
 %SESSIONPW   Session password
 %ARCHIVER    Archiver
 %LANGINDEX   Language index
 %LANGDESC    Language description

@endnode

@node "Dimension"

 @{i}The following keywords are valid:@{ui}

 %OLDDIM          Old dimension
 %NEWDIM          New dimension (if changed)

@endnode

@node "ListAvail.txt"

 @{i}The following keywords are valid:@{ui}

 %TOTALAVAIL      Total available areas

 @{i}Keywords valid within %AREASTART and %AREASTOP:@{ui}

 %AREATAG         Area tag
 %AREADESC        Area description

@endnode

@node "List(All|Linked|Unlinked).txt"

 @{i}The following keywords are valid:@{ui}

 %LINKED          Linkchar (for example '*')
 %TOTALAVAIL      Total available areas
 %TOTALCONNECTED  Total connected areas
 %TOTALUNLINKED   Total unlinked areas
 %TOTALINACTIVE   Total inactive areas
 %GROUPCOUNT      Number of available groups
 %GROUPSTART      Defines start of group
 %GROUPSTOP       End of group definition

 @{i}Keywords valid within %GROUPSTART and %GROUPSTOP:@{ui}

 %GROUPNAME       Name of the group
 %GROUPLEVEL      Required access level
 %GROUPAVAIL      Available areas in group
 %GROUPCONNECTED  Linked areas in group
 %GROUPUNLINKED   Unlinked areas in group
 %GROUPINACTIVE   Inactive areas in group
 %AREASTART       Defines start of area
 %AREASTOP        End of area definition

 @{i}Keywords valid within %AREASTART and %AREASTOP:@{ui}

 %LINKED          Linkchar (space if unlinked)
 %AREAMSGS        Number of messages in area
 %AREALEVEL       Required access level
 %AREATAG         Area tag
 %AREANAME        Area name
 %AREADESC        Area description
 %AREAREAD        (No) Read access
 %AREAWRITE       (No) Write access
 %AREAPOLICY      (No) Policy available
 %AREAINACTIVE    Area (not) inactive

 @{b}WARNING:@{ub} It is possible to have multiple lines between %AREASTART and %AREASTOP, but it is not advised for systems with many areas!

@endnode

@node "LanguageList.txt"

 @{i}The following keywords are valid within %LISTSTART and %LISTSTOP:@{ui}

 %LINKED          Linkchar (space if not selected)
 %LANGINDEX       Language index
 %LANGDESC        Language description

 Outside these, the linkchar replaces %LINKED.

@endnode

@node "Packer(Changed|NotChanged|Unknown).txt"

 @{i}The following keywords are valid:@{ui}

 %OLDPACKER       Old packer
 %NEWPACKER       New packer

@endnode

@node "PackerList.txt"

 @{i}The following keywords are valid within %LISTSTART and %LISTSTOP:@{ui}

 %LINKED          Linkchar (space if not selected)
 %ARCHIVER        Archiver

 Outside these, the linkchar replaces %LINKED.

@endnode

@node "StatusReport.txt"

 @{i}The following keywords are valid within %LISTSTART and %LISTSTOP:@{ui}

 %COMMAND     Requested command or area
 %STATUS      Status text

@endnode

@node History

 Version 0.25ß   -   First public beta.

 Version 0.26ß   -   Added %ADDRTYPE and %PKTTYPE commands.
                     Added NOEXPORT command line argument.
                     Added keyword replace in subject.
                     Added keyword %SYSTEM for all texts
                     Fixed link/unlink bug when using wildcards in Raid mode.
                     Rescan is now more informative in the log.
                     Implemented internal handling of interrupts (CTRL-C etc.)
                     Restructured much of the code!

 Version 0.27ß   -   BUG: Forward requests were written in wrong
                          matrix area - fixed!

                     BUG: GUI mode was broken in v0.26ß due to
                          the code rearrangements - fixed!

                     NEW: #AREAFIXFROM and #RAIDFROM in .Strings.cfg
                          are now set to the default names, if they
                          are not configured.

 Version 0.28ß   -   BUG: %COMMAND string in text files
                          wasn't replaced - fixed!

                     BUG: %LIST, %QUERY and %UNLINKED had a problem when
                          a group only contained matrix areas. Thanks to
                          Craig Hutchison for reporting this!

                     BUG: Changed %AFIX to %MODE in Text/PasswordWrong.txt

                     NEW: Added archiver change to GUI.

 Version 0.29ß   -   BUG:  'Inactive node'-procedure didn't work anymore.
                           Fixed!

                     NEW:  Added keyword %ORIGINAL (in text files), which
                           is replaced with the whole request message.

                     NEW:  Added keywords %HEADER and %FOOTER, which is
                           replaced with the text contained in 'Header.txt'
                           and 'Footer.txt'

                     INFO: Removed MM_AreaMgr text files from distribution,
                           as they haven't been updated recently.

 Version 0.30ß   -   BUG:  %OLDPACKER and %NEWPACKER were global, they
                           are now only valid in:
                           @{"Packer(NotChanged|Changed|Unknown).txt" link "Packer(NotChanged|Changed|Unknown).txt"}

                     NEW:  Added command %AVAIL (or %A or %REQUESTABLE).
                           This returns a list containing all available
                           areas at uplink. Read more about it @{"here" link "%AVAIL"}

                     NEW:  Added packer 'NONE' to default configuration.
                           Added %AVAIL example to default configuration.
                           Added new features to default HelpAreaFix.txt

                     NEW:  If a #SUBJECT line is missing, the #SUBJECT
                           DEFAULT line will be used instead.

                     NEW:  Added to GUI: %AVAIL
                                         %HELP
                                         %INFO
                                         Area linking/unlinking
                           And sorted the order of GUI routines.

                     INFO: Signing up more than one area per line now only
                           works if the line starts with '+'. This is done
                           to avoid mistakes, i.e. replying to a %LIST
                           request.

@endnode

@node Future

 @{b}Things originally planned:@{ub}

 - %GETMATRIX <interval>
 - %RESCANMATRIX <number of messages>
 - More informative %INFO command
 - %PASSIVE/%ACTIVE wildcard support
 - More CLI-arguments
 - Group wilcards (area connect/disconnect etc.)
 - More MUI interface options
 - Split messages (x kB)
 - Hardlinks & areas with no access

 However, I haven't worked on MM_PowerFix for almost a year now, and it's uncertain if I continue development at all. FidoNet just ain't what it used to be, so let it rest in piece.

@endnode

@node Acknowledgements

 @{b}Thanks to:@{ub}

 - Tommy Jensen, my first beta-tester. ;-)
 - My points for hard, unvoluntary testing.

@endnode
