@DataBase ReqChange.guide
@$VER: ReqChange.guide 3.13 (2.4.97)
@(C) Copyright © 1993-97 by Magnus Holmgren
@Author Magnus Holmgren
@Index INDEX

@Node Main "ReqChange.guide: User documentation for ReqChange"

This file describes @{b}ReqChange@{ub}, version 3.13, a program that replaces the
most common requesters with the ones @{b}ReqTools@{ub} (copyright © Nico François
and Magnus Holmgren) offers. @{b}ReqChange@{ub} is similar to @{b}RTPatch@{ub}, included in
the @{b}ReqTools@{ub} distribution, but offers a lot more.

	@{b}@{u}Introduction@{uu}@{ub}

	@{" Preface             " Link PREFACE}  Please read this first.
	@{" Introduction        " Link INTRODUCTION}  Why @{b}ReqChange@{ub}?
	@{" System requirements " Link SYSTEM_REQUIREMENTS}  What you need to run @{b}ReqChange@{ub}.

	@{b}@{u}Legal issues@{uu}@{ub}

	@{" License             " Link LICENSE}  What you may and may not do with @{b}ReqChange@{ub}.
	@{" No warranty         " Link NO_WARRANTY}  Use @{b}ReqChange@{ub} at your own risk.
	@{" Disclaimer          " Link DISCLAIMER}  Software disclaimer.

	@{" Shareware           " Link SHAREWARE}  Shareware information.

	@{b}@{u}Documentation for ReqChange@{uu}@{ub}

	@{" Installation        " Link INSTALLATION}  How to install @{b}ReqChange@{ub}.

	@{" Patched requesters  " Link PATCHED_REQUESTERS}  Which requesters @{b}ReqChange@{ub} can patch.

	@{" The AssignWedge     " Link ASSIGNWEDGE}  What is an AssignWedge?
	@{" ARexx messages      " Link AREXX_MESSAGES}  How to send @{b}ARexx@{ub} messages.
	@{" Excepted programs   " Link EXCEPTED_PROGRAMS}  Except programs from patching.

	@{" The prefs editor    " Link PREFS_EDITOR}  How the prefs editor works.
	@{" StartRC             " Link STARTRC}  The starter program.
	@{" ReqChangeCX         " Link REQCHANGECX}  The ReqChange commodity.

	@{" Known problems      " Link PROBLEMS}  A few problems still remain...

	@{b}@{u}Other related information@{uu}@{ub}

	@{" Acknowledgements    " Link ACKNOWLEDGEMENTS}  Who did what?
	@{" The future          " Link FUTURE}  Possible new features in @{b}ReqChange@{ub}.
	@{" Program history     " Link PROGRAM_HISTORY}  What have changed in @{b}ReqChange@{ub}.

	@{" Glossary            " Link GLOSSARY}  Explanation of some "strange" words.

	@{" Index               " Link INDEX}  Index of the various sections.

@EndNode


@Node PREFACE "ReqChange.guide/Preface"

@{b}@{u}Preface@{uu}@{ub}

@{b}ReqChange@{ub} is offered to you under the concept of @{i}Shareware.@{ui} You may use
@{b}ReqChange@{ub} for an evaluation period of up to 30 days without paying any fee.
If you are going to use @{b}ReqChange@{ub} after the evaluation period, you have to
register.

See @{"License" Link LICENSE} and @{"Shareware" Link SHAREWARE} for more information.

@EndNode


@Node INTRODUCTION "ReqChange.guide/Introduction"

@{b}@{u}Introduction@{uu}@{ub}

One of the many new features with @{b}Amiga@{ub} OS 2.0, is a new @{"library" Link GLOSSARY} called
@{b}Asl@{ub}, which contains a standard file and a font requester (in OS 2.1 or
higher there is also a screenmode requester). Before OS 2.0, there were no
standard requesters of this kind, which made several programmers write
their own version(s) of a file/font requester. Some programmers put them in
a library - often with other requesters and/or functions - so that other
programs could use them as well. Of these external requesters (or rahter,
libraries), there were basically two that became really popular, @{b}Arp@{ub} and
@{b}Req@{ub}.

@{b}Arp@{ub} was the first one, and that library also contains a number of useful
function that the @{b}Amiga@{ub} OS didn't have before version 2.0. @{b}Req@{ub} on the other
hand have a couple of extra requesters and requester-related functions, and
the combined file and font requester is rather powerful (although maybe not
the most beautiful one).

Anyway, the thought is that all programs should use the new standard @{b}Asl@{ub}
requesters, to provide a nice looking and uniform environment for the user.
However, I think these new requesters have a couple of drawbacks. For one
thing, the file requester is slow (although this is improved in OS 2.1),
and doesn't look that good (@{"IMHO" Link GLOSSARY}). The information requester (which also
is improved in OS 2.0) is glued to the upper left corner of the screen, and
can only be confirmed with the mouse, or some cryptic key-combination
(although there @{i}is @{ui}a thought behind that).

Another problem is that there are a lot of older programs that still use
@{b}Arp@{ub} and @{b}Req@{ub}. These requesters simply doesn't fit that well into the new
OS 2.0 environment. Something had to be done about this. But what?

One day I got a copy of @{b}ReqTools@{ub}, a library written by Nico François. This
library contains a set of requesters that looks good, and are generally
faster and better than the other possible alternatives (again, IMHO). When
I saw these requesters, I thought:

	"Why can't all programs use these requesters instead?"

So, I decided to do the best I could so that as many programs as possible
would use the @{b}ReqTools@{ub} requesters instead, regardless if they previously
had used @{b}Asl@{ub}, @{b}Arp@{ub} or @{b}Req@{ub}.

The result of this effort is this program, @{b}ReqChange@{ub}, which replaces most
requesters in @{b}Intuition@{ub}, @{b}Asl@{ub}, @{b}Arp@{ub} and @{b}Req@{ub} with the equivalents found in
@{b}ReqTools@{ub}. It also offers several extra features.

@{i}Note: @{ui}@{b}ReqChange@{ub} only replaces the @{i}requester functions @{ui}in a library, not the
entire library. You still need the library in question.

@EndNode


@Node SYSTEM_REQUIREMENTS "ReqChange.guide/System requirements"

@{b}@{u}System requirements@{uu}@{ub}

@{b}ReqChange@{ub} should work with any @{b}Amiga@{ub} that has at least OS 2.04 and 512
Kbyte of RAM.

@{b}ReqTools@{ub} is ofcourse required, but it is included in the @{b}ReqChange@{ub}
distribution, so this shouldn't cause any problems.

When active, @{b}ReqChange@{ub} uses about 22 Kbyte of memory, exluding the memory
used by @{b}ReqTools@{ub}, and the diskbased @{"libraries" Link GLOSSARY} @{b}ReqChange@{ub} may patch. Any so
called Rexx, deny or exception lists also takes some memory, ofcourse (see
@{"ARexx messages" Link AREXX_MESSAGES}, @{"The AssignWedge" Link ASSIGNWEDGE} and @{"Excepted programs" Link EXCEPTED_PROGRAMS}).

The libraries are only patched when the library in question is in use, a
feature that can save quite a bit of memory. This feature was first
implemented in @{b}RTPatch@{ub} by Nico Francois.

A program called @{b}SetMan@{ub} (Copyright (C) 1991,1992 by Nicola Salmoria) can
be nice to have installed, but it is by no means required. @{b}SetMan@{ub} is a
program that extends the way patches are handled within the system, and can
prevent system crashes with improperly written "patchers" (@{b}ReqChange@{ub} is not
"improperly written" :). @{b}SetMan@{ub} also provides a list over all patches in
the system, and which program that installed them, and a possibility to
disable (and re-enable) a patch.

@EndNode


@Node LICENSE "ReqChange.guide/License"

@{b}@{u}License@{uu}@{ub}

This license applies to the product called @{b}ReqChange@{ub}, a set of programs for
the Amiga computer, published by Magnus Holmgren under the concepts of
Shareware, and the accompanying documentation, example files and anything
else that comes with the original distribution. The terms "Programs" and
"@{b}ReqChange@{ub}" below, refer to this product. The licensee is
addressed as "you".

You may copy and distribute verbatim copies of the programs' executable
code and documentation as you receive it, in any medium, provided that you
conspicuously and appropriately publish only the original, unmodified
programs, with all copyright notices and disclaimers of warranty intact and
including all the accompanying documentation, example files and anything
else that came with the original.

You may not copy and/or distribute these programs without the accompanying
documentation and other additional files that came with the original. You
may not copy and/or distribute modified versions of these programs.

You may not copy, modify, sublicense, distribute or transfer the programs
except as expressly provided under this license. Any attempt otherwise to
copy, modify, sublicense, distribute or transfer the programs is void, and
will automatically terminate your rights to use the programs under this
license. However, parties who have received copies, or rights to use
copies, from you under this license will not have their licenses terminated
so long as such parties remain in full compliance.

By copying, distributing and/or using the programs you indicate your
acceptance of this license to do so, and all its terms and conditions.

Each time you redistribute the programs, the recipient automatically
receives a license from the original licensor to copy, distribute and/or
use the programs subject to these terms and conditions. You may not impose
any further restrictions on the recipients' exercise of the rights granted
herein.

You may not disassemble, decompile, re-source or otherwise reverse engineer
the programs.

You may use the programs for a period of up to 30 days for evaluation.
After that, you have to register.

If you wish to incorporate parts of the programs into other programs, write
to the author to ask for permission.

You agree to cease distributing the programs and data involved if requested
to do so by the author.

You may charge a fee to recover distribution costs. The fee for diskette
distribution may not be more than the cost to obtain a public domain
diskette from Fred Fish.

@EndNode


@Node NO_WARRANTY "ReqChange.guide/No warranty"

@{b}@{u}No warranty@{uu}@{ub}

@{b}There is no warranty for the programs, to the extent permitted by
applicable law. Except when otherwise stated in writing the copyright
holder and/or other parties provide the programs "as is" without warranty
of any kind, either expressed or implied, including, but not limited to,
the implied warranties of merchantability and fitness for a particular
purpose. The entire risk as to the quality and performance of the programs
is with you. Should the programs prove defective, you assume the cost of
all necessary servicing, repair or correction.@{ub}

@{b}In no event unless required by applicable law or agreed to in writing will
any copyright holder, or any other party who may redistribute the programs
as permitted above, be liable to you for damages, including any general,
special, incidental or consequential damages arising out of the use or
inability to use the programs (including but not limited to loss of data or
data being rendered inaccurate or losses sustained by you or third parties
or a failure of the programs to operate with any other programs), even if
such holder or other party has been advised of the possibility of such
damages.@{ub}

@EndNode


@Node DISCLAIMER "ReqChange.guide/Disclaimer"

@{b}@{u}Disclaimer@{uu}@{ub}

No warranty, either express or implied, is made with respect to the fitness
or merchantability of @{b}ReqChange@{ub}.

Magnus Holgren (referred to as "the author"), reserve the right to not
develop any future versions of @{b}ReqChange@{ub}.

The author will try to make a good faith attempt at correcting any problems
if any are discovered, but are in no way required, nor bound to correct
them.

The author neither assume nor accept any responsibility for the use or
misuse of these programs. He also will not be held liable for damages or
any compensation due to loss of profit or any other damages arising out of
the use, or inability to use these programs.

Magnus Holmgren will not be liable for any damage arising from the failure
of these programs to perform as described, or any destruction of other
programs or data residing on a system attempting to run the programs. While
I know of no damaging errors, the user of these programs uses it at his or
her own risk.

@EndNode


@Node SHAREWARE "ReqChange.guide/Shareware"

@{b}@{u}Shareware@{uu}@{ub}

@{b}ReqChange@{ub} is shareware. This means that if you use this program regularly,
you are required to send me, the author, a Shareware fee as payment for the
program. This fee is US$10 (or 70 SEK).

	@{" How to register        " Link REGISTER}

	@{" How to get the keyfile " Link KEYFILE}

	@{" How to get updates     " Link UPDATES}

@EndNode


@Node REGISTER "ReqChange.guide/Shareware/How to register"
@Toc SHAREWARE

@{b}@{u}How to register@{uu}@{ub}

To register @{b}ReqChange@{ub}, fill in the registration form (the file
@{"Registration.form" Link "Registration.form/Main"}), and send it to:

	Magnus Holmgren
	Kvarnbergsvägen 5
	S-444 47  Stenungsund
	SWEDEN

You can also e-mail me the registration form. In this case, send it to:

	"Magnus Holmgren", 2:203/512.10\@fidonet.org

Or if you prefer Internet:

	cmh\@lls.se

You also need to send me the shareware fee, US $10 (70 SEK). There are a
couple of accepted forms of payment:

Include the cash in the letter with the registration form (preferably wrap
the money with somethine (like the registration form), so that you can't
see that it contains cash). In this case you must either send me US$ or
Swedish crowns (kronor, SEK).

Use the so called "International money order" (make sure you get the right
thing!). Your locale post office should be able to help you with this. This
is the reccomended form of payment if you don't live in Sweden. The fees
are moderate, and I get the money in SEK.

Any other way you prefer, but remember to include @{i}enough money @{ui}to cover
any expenses to get the money in a @{i}usable @{ui}form! :) Feel free to contact me
for more information.

If you've written a shareware program yourself, we could "enchange"
registrations (assuming it is a program I'm interested in ofcourse! :).

@EndNode


@Node KEYFILE "ReqChange.guide/Shareware/How to get the keyfile"
@Toc SHAREWARE

@{b}@{u}How to get the keyfile@{uu}@{ub}

Earlier versions of @{b}ReqChange@{ub} were released as "true" shareware. Since I
didn't get that many registrations, I've decided to make this version
"crippled". This means that you need a so called key file to unlock certain
features.

But how do you get this keyfile? you ask. Well, the registration fee is
only for the program; not for the transfer of the keyfile to you. If I can
send you pgp-encrypted e-mail (via Internet or routed Fidonet), then all
you need to do is to send me your public @{"pgp-key" Link GLOSSARY}, and I'll send you your
keyfile in encrypted form, along with my public key. Note that it is
uncertain if routed fidonet messages works, as certain nodes dislike
encrypted mail.

If this isn't possible, then you'll need to send me an extra US$ 5 (or 20
SEK, if you live in Sweden), or you can include a @{"SASE" Link GLOSSARY} and a disk. I'll
then return the disk with the keyfile, together with the latest version of
@{b}ReqChange@{ub}.

If you already have registered @{b}ReqChange@{ub}, simply use any of the above
mentioned methods.

Please allow for up to eight (8) weeks for delivery of the keyfile. Usually
it won't take that long.

When you have the keyfile, either put it in @{b}L:@{ub} or the path specified in
the @{i}KEYPATH @{ui}environment variable (if it is defined, then @{b}L:@{ub} will not be
searched).

@{i}Important note: @{ui}A keyfile is strictly personal. You may only copy it for
backup purposes. Your name and other unique information is encoded in it,
so I can always identify a keyfile if needed.

@EndNode


@Node UPDATES "ReqChange.guide/Shareware/How to get updates"

@{b}@{u}How to get updates@{uu}@{ub}

If you want me to send you the latest/next version of @{b}ReqChange@{ub} when
finished, include an extra US$ 5 (20 SEK if you live in Sweden) for each
update. You can also send one @{"SASE" Link GLOSSARY} and disk per update. This is only if you
want me to send you the next update as soon as it is ready. Otherwise you
don't need to pay me anything to get an update, if you e.g. download it
from a local BBS.

I usually upload the latest version of @{b}ReqChange@{ub} to Aminet. You can also
find the latest version on my home page at "http://www.lls.se/~cmh/".

@EndNode


@Node INSTALLATION "ReqChange.guide/Installation"

@{b}@{u}Installation@{uu}@{ub}

@{b}ReqChange@{ub} is fairly easy to install. Simply use the supplied installer
script (which uses the Commodore @{b}Installer@{ub} utility). If you don't have the
@{b}Installer@{ub} (included in OS 2.1 or higher, and several commercial and
non-commercial programs. It is also available on most BBS:es), you need to
do it by hand. This isn't that hard to do, if you have some familiarity
with the Amiga.

First of all, copy @{b}Libs/reqchange.library@{ub} and @{b}Libs/reqtools.library@{ub} to
@{b}Libs:@{ub}. If you already have @{b}reqtools.library@{ub} installed, it is a good idea to
check the version already installed, and only copy the supplied version if
it is newer (use @{b}Version@{ub} to find out which version you have). The included
version is always the latest one at the time of the release.

@{"The prefs editor" Link PREFS_EDITOR} (@{b}Prefs/ReqChange@{ub}) should go to your @{b}Sys:Prefs@{ub} drawer, or
any other drawer you find convenient (preferably somewhere in your command
search path).

If you have @{b}AmigaGuide@{ub}® installed on your Amiga, you may want to be able to
use online-help in the prefs editor. Then you should copy @{b}ReqChange.guide@{ub}
(either the english or the swedish version; whichever you prefer :) to
either the same directory as the prefs editor, or to any directory in the
@{b}AmigaGuide@{ub}® search path (as set by the @{i}AmigaGuide/Path @{ui}environment
variable).

In order to start/stop @{b}ReqChange@{ub}, the small program @{b}StartRC@{ub} is needed.
Install it anywhere in your path where you find it convenient, or drop it
in your @{b}Sys:WBStartup@{ub} drawer, for automatic start every boot.

If you don't put @{b}StartRC@{ub} in @{b}Sys:WBStartup@{ub}, a line like this in your
@{b}S:User-Startup@{ub} file will start @{b}ReqChange@{ub} each boot:

	StartRC

If any errors occurs, you will be informed about it. See @{"StartRC" Link STARTRC} for more
information.

If you want to have a Commodity active, so that you can start the
preferences editor with a keypress (and some other features as well), you
may want to install the @{"ReqChangeCX" Link REQCHANGECX} commodity as well. Install it in the
same way as @{b}StartRC@{ub}.

Lastly, if you have OS 2.1 or higher, and would like to operate @{b}ReqChange@{ub}
in another language than english, you need to install at a couple of
@{"catalog" Link GLOSSARY} files. Copy the files in the drawer @{b}Catalogs/<language>@{ub} (were
"<language>" is the language is the language as set in the @{b}Locale@{ub}
preferences editor) to @{b}Locale:Catalogs/<language>@{ub}. There are four files for
each language, two for @{b}ReqChange@{ub} and two for @{b}ReqTools@{ub} (currently, there
aren't files for all languages).

@EndNode


@Node PATCHED_REQUESTERS "ReqChange.guide/Patched requesters"

@{b}@{u}Patched requesters@{uu}@{ub}

@{b}ReqChange@{ub} patches a number of different requester functions, found in a few
libraries. All these patches are optional, and will only be installed if
you have activated them, and the @{"library" Link GLOSSARY} in question actually is in memory.
In order to accomplish this, one (or rather, two ;) function in
@{b}exec.library@{ub} need to be patched. This patch have been written to be
completely transparant and shouldn't cause any problems.

These are the different libraries @{b}ReqChange@{ub} may patch:

	@{" Intuition " Link INTUITION}

	@{" Asl       " Link ASL}

	@{" Arp       " Link ARP}

	@{" Req       " Link REQ}

	@{" ReqTools  " Link REQTOOLS}

@EndNode


@Node INTUITION "ReqChange.guide/Patched requesters/Intuition"
@Toc PATCHED_REQUESTERS

@{b}@{u}Intuition@{uu}@{ub}

@{b}Intuition@{ub} has two requesters, called @{b}AutoRequest()@{ub} and @{b}EasyRequest()@{ub}. These
requesters are very similar to the user; they only differ in the way the
are called. These requesters are used for displaying information (e.g. an
about requester) or simple queries, where there are a few, predefined,
answers.

The requesters @{b}ReqChange@{ub} installs behaves almost like the old ones, but
with a little extra: It also contains an @{i}AssignWedge @{ui}(see @{"The AssignWedge" Link ASSIGNWEDGE}).
This AssignWedge can be turned off if you want (see
@{"The prefs editor/Main window" Link MAINWINDOW}).

Some programs (like @{b}DiskSalv@{ub} version 2) uses the @{b}AutoRequest()@{ub}er in a way
that @{b}ReqChange@{ub} can't emulate properly. When such requesters are used,
@{b}ReqChange@{ub} will use the original one instead. @{"ARexx messages" Link AREXX_MESSAGES} will still be
sent, but with a minor catch: There will be linefeeds here and there in the
body that normally shouldn't be there.

@{i}Note: @{ui}@{b}AutoRequest()@{ub} and @{b}EasyRequest()@{ub} also exist in asyncronous versions
(which allows the program to continue processing while the requester is
up). These functions can't be patched, since that calling interface can't
be emulated with the current version of @{b}ReqTools@{ub}.

@EndNode


@Node ASL "ReqChange.guide/Patched requesters/Asl"
@Toc PATCHED_REQUESTERS

@{b}@{u}Asl@{uu}@{ub}

@{b}Asl@{ub} currently contains three requesters. These are a file, a font and a
screen mode requester (only in OS 2.1 or higher). If the @{b}Asl@{ub} patches are
installed, then the font and the screen mode requester patches are optional.

Some of the features in the @{b}Asl@{ub} font and screen mode requesters doesn't
exist in the @{b}ReqTools@{ub} requesters ¹. When any of these features are used
the patch will automatically use the original requester instead. Thus, you
can have the "Asl font requester" and "Asl screen mode requester" patch
flags on without loosing any functionality (see
@{"The prefs editor/Main window" Link MAINWINDOW}).

Currently it isn't possible to select "no font" (i.e. clear the font name
gadget and select ok) in the font requester, as one can do in the
@{b}Asl@{ub} font requester. Because of this, a special font called " no
font" is included (the leading space is there to try to get the font at the
top of the list). It is a very small font, and if that one is selected,
@{b}ReqChange@{ub} will interpret it as if no font at all was selected. Maybe not
the most elegant solution, but it works! :) If a new version of @{b}ReqTools@{ub} is
released that supports the "no font" selection somehow, @{b}ReqChange@{ub} will be
updated to use this feature instead.


@{b}-- Footnotes --@{ub}

¹ The @{b}ReqTools@{ub} font requester doesn't allow you to select color(s) and draw
mode for the text, and the screen mode requester can't show a custom screen
mode list

@EndNode


@Node ARP "ReqChange.guide/Patched requesters/Arp"
@Toc PATCHED_REQUESTERS

@{b}@{u}Arp@{uu}@{ub}

There is only one requester in @{b}Arp@{ub}, and that is a file requester. Not all
features of this requester can be emulated, but since these features are
very seldom used (in my experience at least. I've heard of one program that
use any of these features), this patch will not fall back to the original
when needed. If this is a problem for you, you can always send me a note,
or use the @{"exception" Link EXCEPTED_PROGRAMS} list.

@{i}Note: @{ui}If you have a 68030 CPU (or better), there is a function in @{b}Arp@{ub} that
doesn't work that well, and that is @{b}ArpExit()@{ub}. It seems like earlier
versions of @{b}ReqChange@{ub} somehow managed to make @{b}ArpExit()@{ub} to work (at least
on my 68040 Amiga), if a patched requester was called just before
@{b}ArpExit()@{ub}. Since this isn't the case any more (and I haven't the foggiest
idea why! :) @{b}ReqChange@{ub} will replace the @{b}ArpExit()@{ub} function with one that
should work better ¹. This should also make programs like e.g. @{b}Move@{ub} (one of
the @{b}Arp@{ub} commands) to work better.


@{b}-- Footnotes --@{ub}

¹ Technical note: it is basically the original function with a call to
@{b}CacheClearU()@{ub} added at a suitable place.

@EndNode


@Node REQ "ReqChange.guide/Patched requesters/Req"
@Toc  PATCHED_REQUESTERS

@{b}@{u}Req@{uu}@{ub}

This is the big one. @{b}Req@{ub} contains most of the requester @{b}ReqTools@{ub} does.
Thus, rather many functions are patched. Here is a list of all requesters
patched:

	@{b}TextRequest()@{ub}
	This is a text requester, similar to @{b}AutoRequest()@{ub}/@{b}EasyRequest()@{ub} in
	@{b}Intuition@{ub} (see @{"Patched requesters/Intuition" Link INTUITION}). All features are
	supported, including the timeout and the waitmask.

	@{b}ReqFileRequest()@{ub}
	This is a combined file and font requester. There is only one thing
	one need to think about when using this one: The original requester
	have a (configurable) limit on the number of files one can
	multiselect (if this is enabled). @{b}ReqTools@{ub} doesn't have any such
	limitation, so you may select as many as you can/like. @{b}ReqChange@{ub}
	will then only use as many as the limitation says, and will ignore
	the rest of the files. This isn't really a problem, but it can
	useful to know.

	@{b}GetString()@{ub}
	A simple string requester.

	@{b}GetLong()@{ub}
	An integer requester.

	@{b}ColorRequester()@{ub}
	A palette requester.

@EndNode


@Node REQTOOLS "ReqChange.guide/Patched requesters/ReqTools"
@Toc  PATCHED_REQUESTERS

All requesters in @{b}ReqTools@{ub} are patched. The patches doesn't really do much,
they simply add the @{b}ReqChange@{ub} preferences settings and the @{"ARexx-messages" Link AREXX_MESSAGES}.

Anyway, here is a list over the functions patched, along some details (if
any) about them:

	@{b}rtEZRequest()@{ub}
	This is the text requester. In some cases the return code (or
	timeout) from @{b}ARexx@{ub}-messages will be ignored.

	@{b}rtFileRequest()@{ub}
	A file requester.

	@{b}rtFontRequest()@{ub}
	A font requester.

	@{b}rtScreenModeRequest()@{ub}
	A screen mode requester.

	@{b}rtGetLong()@{ub}
	An integer requester.

	@{b}rtGetString()@{ub}
	A string requester.

	@{b}rtPaletteRequest()@{ub}
	A palette requester.

@EndNode


@Node ASSIGNWEDGE "ReqChange.guide/The AssignWedge"

@{b}@{u}The AssignWedge@{uu}@{ub}

Some of you may have seen the program @{b}AssignWedge@{ub} (or maybe @{b}AssignX@{ub}, the
original program). This program improves the (in)famous "Please insert
volume" requester. What @{b}AssignWedge@{ub} does is to add a few gadgets to the
normal "Retry" and "Cancel" gadgets, so that you can do something about
it, without having to use a Shell or something like that. @{b}ReqChange@{ub} have an
AssignWedge like this builtin (but a somewhat better version).

The following gadgets are added to the "Please insert volume" requester:

	@{b}Mount@{ub}

	This gadget will try to mount the volume in question. This requires
	@{b}C:Mount@{ub} to be available. If there is no suitable entry in your
	@{b}Devs:MountList@{ub} file or in the drawer @{b}Sys:Storage/DosDrivers@{ub} ¹, this
	will ofcourse fail. Useful for seldom used units like @{b}Rad:@{ub} or @{b}Pc0:@{ub}.
	If the mount fails, the requester will re-appear.

	@{b}Assign...@{ub}
	This gadget shows a file requester, where you can select a drawer
	or a file that the volume name should be assigned to. If the assign
	fails (maybe you entered a file/drawer that doesn't exist), the
	requester will re-appear.
	@{i}Note: @{ui}In the requester there is a filename field. This is needed,
	since an assign @{u}can@{uu} refer to a file, not only a drawer.

	@{b}Deny@{ub}
	This will make @{b}ReqChange@{ub} remember the volume name on a list (the so
	called @{i}deny list@{ui}) and the next time a requester for this volume is
	about to appear, @{b}ReqChange@{ub} will automatically cancel the requester
	before it is shown. The name of the program is also recorded. Thus, by
	default other programs requesting this volume will not be denied
	(this feature requires a @{"keyfile" Link KEYFILE}).

The deny list can be edited and saved, using the @{"Edit window" Link EDITWINDOW} and the
@{"Deny window" Link DENYWINDOW} in @{"The prefs editor" Link PREFS_EDITOR}.


@{b}-- Footnotes --@{ub}

¹ This only applies if you have OS 2.1 or better.

@EndNode


@Node AREXX_MESSAGES "ReqChange.guide/ARexx messages"

@{b}@{u}ARexx messages@{uu}@{ub}

@{b}ReqChange@{ub} have one powerful feature, and it is the ability to send an @{b}ARexx@{ub}
message when a certain requester appears. This allows you to e.g. add sound
effects to your requesters, like @{b}ARQ@{ub} does. But you can add a lot more if
you like. One thing could be to start e.g @{b}DiskSalv@{ub} each time a requester
indicating a disk is corrupt is shown. Or it could be to try to reboot the
computer if a "Task held" requester appears. Anything that can be done via
@{b}ARexx@{ub}.

Earlier versions of @{b}ReqChange@{ub} could only send @{b}ARexx@{ub} messages like this for
the text requesters, much like @{b}ARQ@{ub} does. But as of @{b}ReqChange@{ub} 3.0, you can
send a message when any of the patched requesters appears.

To be able to send different messages from different requesters, you can
specify the following requester attributes:

	@{b}Requester type@{ub}
	The requester must be of this type for a match. You may also
	specify 'Any', which will match on all requesters.

	@{b}Title@{ub}
	The title of the requester (i.e. the window title) must contain a
	certain string. Case is ignored when checking. If not specified,
	the requester title is ignored.

	@{b}Body@{ub}
	This attribute is only used for the text requester and the
	string/number input requesters (or if you have set the requester
	type to 'Any'. Note that the string/integer requesters not always
	have a body). The body text must contain a certain string. Case is
	ignored when checking. If not specified, the body text is ignored.
	If the requester that is about to open doesn't have any body text,
	this string is ignored.

	@{b}Program@{ub}
	The calling program must have a certain name. Case is ignored when
	checking. If not specified, the program name is ignored.

These attributes, together with a name ¹, a message and a timeout (in
seconds), are stored in a @{i}Rexxnode. @{ui}All nodes are placed in the @{i}Rexx list, @{ui}
and you may edit the list and the nodes, using the @{"Edit window" Link EDITWINDOW} and the
@{"Rexx window" Link REXXWINDOW} in @{"The prefs editor" Link PREFS_EDITOR}.

The message is a so called @{"string file macro" Link GLOSSARY}. This means that the command
is executed like it was executed using a command line looking like:

	Rx "say 'This is a string file macro'"

I.e. the string after the @{b}Rx@{ub} command is the string file macro.

When a requester is about to appear, @{b}ReqChange@{ub} will search through the Rexx
list (from top to bottom), and as soon a node that matches the current
requester is found, the corresponding @{b}ARexx@{ub} message is sent. Thus, specific
nodes should be placed near the top of the list, and more general ones near
the bottom.

When the message returns, the return code from the message will be checked
(unless there was any error), and an automatic gadget selection may occur
for text requesters. The return value specifies which gadget to select:
'-1' equals the rightmost gadget (usually cancel), '1' equals the leftmost
gadget, '2' equals the next one, and so on. If the return doesn't match any
gadget, the requester will appear.

Example: Lets say we have a requester that contains the gadgets "Quit",
"Save, then quit" and "Cancel". That means that a return of 1 equals
"Quit", 2 equals "Save, then quit", and finally, -1 equals "Cancel".

@{i}A word of warning@{ui}: This auto gadget selection can cause a deadlock
situation (eating up a lot of CPU time) if you aren't careful. An example:
A "No disk present" requester is set to return 1. The OS tries to open a
requester telling you to insert a disk, while the message tells the OS to
retry, instead of opening the requester. The only way to get out of this
loop is to insert a disk.

If a timeout is specified (i.e., the value is non-zero), then the automatic
gadget selection will not prevent the requester from opening. Rather, the
selection will only be used if the timeout expires. This is useful for
unattended @{b}Amiga@{ub}s (such as BBS:es). If you are around, then you get a
chance to do something about the requester, but if you're not around to
respond to the requester in a reasonable time, then @{b}ReqChange@{ub} will handle
the selection for you. A @{"keyfile" Link KEYFILE} is required to use this feature.

The fact that @{b}ReqChange@{ub} waits until the message returns means you may need
to e.g. @{b}Run@{ub} a program you start, and that you should avoid doing things
that may take some time to complete. To make an @{b}ARexx@{ub} macro run
asyncronously, you'll need to write something like this in the command:

	ADDRESS COMMAND "Run Rx <Macro filename>"


@{b}-- Footnotes --@{ub}

¹ This name field is ignored by @{b}ReqChange@{ub}. It is included so that you can
enter something descriptive, to make it easy to see what a Rexxnode does.
This field is what you see in the list.

@EndNode


@Node EXCEPTED_PROGRAMS "ReqChange.guide/Excepted programs"

@{b}@{u}Excepted programs@{uu}@{ub}

In some cases there might be a problem with the patches @{b}ReqChange@{ub} installs.
If so, that program can be excepted from patching. In @{"The Prefs editor" Link PREFS_EDITOR},
such programs can be entered via the @{"Except window" Link EXCEPTWINDOW} (opened from the
@{"Edit window" Link EDITWINDOW}). @{b}ReqChange@{ub} will try to get a name for a given process, so that
it will be the same, regardless if it was started from the @{b}Workbench@{ub} or the
@{b}Shell@{ub}.

Hopefully, this feature won't be needed much. But if you do need it, please
tell me if you use it because of something you consider to be a problem
with @{b}ReqChange@{ub}, so that I can fix it.

@EndNode


@Node PREFS_EDITOR "ReqChange.guide/The prefs editor"

@{b}@{u}The prefs editor@{uu}@{ub}

The prefs editor allows you to customize the behaviour of the patches,
which @{"libraries" Link GLOSSARY} to patch, etc. You can also edit the lists that holds
information about what message to send from certain requesters (see
@{"ARexx messages" Link AREXX_MESSAGES}) and which volumes that always should be denied (see
@{"The AssignWedge" Link ASSIGNWEDGE}), and if some programs shouldn't use the patches (see
@{"Excepted programs" Link EXCEPTED_PROGRAMS}). You may also install, update or remove the patches (see
@{"Main window menus/Patches" Link MAINWINDOW_PATCHES}).

All changes you do have immidate effect, so you don't need to exit the
editor to try them.

	 @{" Arguments         " Link ARGUMENTS}  Command line arguments and tooltypes.
	 @{" Main window       " Link MAINWINDOW}  The gadgets in the main window.
	 @{" Main window menus " Link MAINWINDOW_MENUS}  The menus in the main window.
	 @{" Edit window       " Link EDITWINDOW}  The gadgets in the edit window.
	 @{" Edit window menus " Link EDITWINDOW_MENUS}  The menus in the edit window.
	 @{" Deny window       " Link DENYWINDOW}  The gadgets in the deny window.
	 @{" Rexx window       " Link REXXWINDOW}  The gadgets in the Rexx window.
	 @{" Except window     " Link EXCEPTWINDOW}  The gadgets in the except window.
	 @{" Program window    " Link TASKWINDOW}  The gadgets in the program window.

Pressing the @{i}HELP @{ui}key will open an @{b}AmigaGuide@{ub}® window with help (for the
currently active window), if you have @{b}AmigaGuide@{ub}® installed, and placed the
file @{b}ReqChange.guide@{ub} somewhere in the @{b}AmigaGuide@{ub}® search path (this is
either the same directory as you have the prefs editor, or any of the
drawers specified in the @{i}AmigaGuide/Path @{ui}environment variable). You can
also press @{i}HELP @{ui}when you're in a menu, to get help about the current menu.

The @{i}F1 @{ui}key will zip/unzip the window, and @{i}cursor left @{ui}and @{i}cursor right@{ui} will
activate the "previous" and "next" window, respectively.

As @{b}ReqChange@{ub} is implemented as a library, the program @{"ReqChangeCX" Link REQCHANGECX} need to
be started in order for @{b}ReqChange@{ub} to notice "external" changes to the
preferences file (e.g. a copy). If @{b}ReqChangeCX@{ub} isn't running, such a copy
will be ignored. In that case, use the prefs editor argument @{b}USE@{ub} in
combination with the @{b}FROM@{ub} argument do something like this (see @{"Arguments" Link ARGUMENTS}).

Any version of the prefs editor should work with any version of
@{b}reqchange.library@{ub} (and vice versa ofcourse. However, sometimes a new
version of the preference editor might require a new function in the
library). You maybe won't be able to edit all things, or all gadgets maybe
doesn't have any effect, but these should be the only problems. The
interface between the prefs editor and the library have been designed to
eliminate compatibility problems.

@EndNode


@Node ARGUMENTS "ReqChange.guide/The prefs editor/Arguments"
@Toc  PREFS_EDITOR

@{b}@{u}Arguments@{uu}@{ub}

The preferences editor have the following template. The arguments can be
specified on the command line, or as tooltypes in the icon:

	@{b}FROM/M,EDIT/S,USE/S,SAVE/S,PUBSCREEN/K@{ub}

	@{b}FROM@{ub}
	Here you can specify a preferences file to load into the
	preferences editor. Unlike the normal preferences editors, you can
	enter several files here (space separated). You can't use patterns
	though. @{b}ReqChange@{ub} will check what type of file it is ¹, and if it
	indeed is a valid @{b}ReqChange@{ub} preferences file, it will be loaded
	before any window is opened. If you enter several files of the same
	kind, only the last one will have any effect.

	@{b}EDIT@{ub}
	Normally, when either @{b}USE@{ub} or @{b}SAVE@{ub} (see below) have been used, the
	editor will not open its window. This switch will make it open the
	window anyway.

	@{b}SAVE@{ub}
	If this option is specified, the editor will save the current
	configuration to @{b}EnvArc:ReqChange@{ub}, just as if you had selected the
	"Save" gadget in the @{"Main window" Link MAINWINDOW}. The main window will @{i}not @{ui}be
	opened. If any @{b}FROM@{ub} files are specified, they will be read first.

	@{b}USE@{ub}
	If this option is specified, the editor will save the current
	configuration to @{b}Env:ReqChange@{ub}, just as if you had selected the
	"Use" gadget in the Main window. The main window will @{i}not @{ui}be
	opened. If any @{b}FROM@{ub} files are specified, they will be read first.

	@{b}PUBSCREEN@{ub}
	This argument lets you specify which public screen the windows
	should open on. If the screen couldn't be found, they will open on
	the default public screen (which also happens if you don't specify
	any name). Please note that this name is case sensitive om du har
	OS 2.04 eller 2.1.


@{b}-- Footnotes --@{ub}

¹ There are four different preferences files: The main configuration file
(@{b}ReqChange.prefs@{ub}), the denylist file (@{b}Deny.prefs@{ub}), the Rexxlist file
(@{b}Rexx.prefs@{ub}), and the exception file (@{b}Except.prefs@{ub}).

@EndNode


@Node MAINWINDOW "ReqChange.guide/The prefs editor/Main window"
@Toc  PREFS_EDITOR

@{b}@{u}Main window@{uu}@{ub}

This window contains general flags for the patches, and the settings for
the different requester types. The settings of the gadgets and menu items
are saved in a separate file (called the main preferences file). The
following gadgets exists:

	@{b}Asl font requester@{ub}
	If this gadget is checked, it means that the @{b}Asl@{ub} font requester
	will be patched. You don't need to clear the checkmark in this
	gadget in order to be able to select e.g. different colors in the
	@{b}Font@{ub} preferences program, since @{b}ReqChange@{ub} automatically will use
	the original font requester when needed.

	@{b}Asl screen mode requester@{ub}
	If this gadget is checked, it means that the @{b}Asl@{ub} screen mode
	requester will be patched. If an unsupported feature is used
	(currently the "custom screen mode list"), then @{b}ReqChange@{ub} will
	automatically use the original screenmode requester.

	@{b}AssignWedge@{ub}
	If this gadget is checked, it means that @{"The AssignWedge" Link ASSIGNWEDGE} is
	activated. This means that when a "Volume requester" is displayed,
	there will be three extra gadgets, allowing you to mount the
	volume, enter an assign, or deny this volume name.

	@{b}ARQ mode@{ub}
	If this gadget is checked, it means that all text requester patches
	(and the requesters the prefs editor opens) will use the text
	requester function in @{b}Intuition@{ub}. This way, another text requester
	patcher may be used instead (e.g. @{b}ARQ@{ub}), while still having the
	@{b}AssignWedge@{ub} feature available. If you use this feature, remember
	that the other patcher should be started @{i}before@{ui} @{b}ReqChange@{ub} is
	started.

	You can use the @{"ARexx messages" link AREXX_MESSAGES} for these requesters, even if this
	gadget is checked, but the timeout will be ignored. This is due to
	@{b}ARQ@{ub}, and there's nothing I can do about it at the moment.

	@{i}Note: @{ui}The @{b}Intuition@{ub} patches must be enabled for this to work.

	Also, not all text requesters will be "passed on" to the other
	patcher. If this happens, then it is due to things that the
	original @{b}Intuition@{ub} function can't handle.

	@{b}Keys@{ub}
	If this gadget is checked, you can use the keyboard to select the
	gadgets in the text requesters. Please refer to the
	@{b}ReqTools@{ub} documentation for more information about these keys.

	As of @{b}ReqChange@{ub} version 3.6, this gadget will also activate an
	automatic shortcut selector. Thus, you are not limited to only
	select the leftmost and the rightmost gadget. Each gadget that have
	an underlined char can be activated from the keyboard. Note that in
	some rare cases, all gadgets may not get a shortcut. This could
	perhaps be fixed for some of these rare cases, but at the cost of
	some extra code (and execution time), and I didn't consider it
	worth it.

	A @{"keyfile" Link KEYFILE} is needed for the automatic shortcut selector to work.

	@{b}Remove keys@{ub}
	If this gadget is checked, then the @{b}ReqTools@{ub} text requesters will
	not have any shortcuts at all, except for @{i}Esc @{ui}and maybe the
	function keys (if enabled in the @{b}ReqTools@{ub} preferences editor).
	This will ofcourse only happens if the @{b}ReqTools@{ub} patches are
	enabled.

	@{b}Center text@{ub}
	If this gadget is checked, the body text in the text requesters
	will be centered. This often makes the requester look better.
	Sometimes this centering will be disabled, if a requester have
	centering "by hand". The current algorithm for this is fairly
	simple: If a line starts with a space, then the centering is
	disabled! ;) Please remember that this doesn't fix all cases.
	Proportional fonts in the requester will also cause "troubles". Use
	a fixed-width font, and the requester should look good.

	@{b}Buffer@{ub}
	If this gadget is checked, @{b}ReqChange@{ub} will try to buffer the
	filelist in the different file requester patches. In some cases
	this isn't possible (the @{b}Arp@{ub} requester can't be buffered, while
	some of the @{b}Req@{ub} and @{b}Asl@{ub} file requesters' can be. It depends on the
	calling program), but when possible, it means that the requester
	remembers all shown files from the previous call. This uses a
	little memory, but removes the directory-reading time. This is
	especially useful when you are using floppies, and you don't use
	the new @{i}DirCache @{ui}filesystem that exist in OS 3.0 and higher.

	@{b}Requester type@{ub}
	This gadget specifies which requester type you currently are
	editing the settings for. All gadgets within the "double" border
	applies to the requester specific settings.

	@{b}Center mode@{ub}
	This gadget specifies the center mode to use for the current
	requester type. There are several possible center modes, but most
	of them should be rather obvious. A few comments are in place
	though:

		'Normal' makes the requester center as they normally would
		have done if the patch wasn't installed.

		'Default' causes @{b}ReqChange@{ub} to use the current default as
		set in the @{b}ReqTools@{ub} preferences editor.

	The other ones does what the name implies. However, window-relative
	options may not always behave like expected. In some cases,
	@{b}ReqTools@{ub} can't find any window to be relative to, and if so, the
	requester will be centered relative to the screen instead. Also,
	the window may not always be the one you expect. Thus the centering
	can be a bit odd sometimes. Mostly it should work fine though.

	@{b}Offset@{ub}
	For the 'Top left ...' centering modes you can also specify an
	offset, using the @{b}Offset@{ub} gadgets. The leftmost gadget holds the
	'Left' offset, and the rightmost holds the 'Top' offset.

	These gadgets can be disabled, depending on which center mode you
	are using.  Also, if the @{b}Default@{ub} gadget is checked, these gadgets
	will be disabled.

	@{b}Default@{ub}
	If this gadget is checked, the offset set in the @{b}ReqTools@{ub}
	preferences will be used. Ohterwise the offset in the @{b}Offset@{ub}
	gadgets will be used.

	This gadget can be disabled, depending on which center mode you are
	using.

	@{b}Default height@{ub}
	If this gadget is checked, the requesters that can be resized will
	have the default height, as set in the @{b}ReqTools@{ub} preferences.
	Otherwise they will have the height the calling program requested.

	@{b}Pop screen@{ub}
	If this gadget is checked, then @{b}ReqTools@{ub} will pop the screen a
	requester appears on. This is similar to the @{b}ReqTools@{ub} option, but
	here you can specify it on a requester type basis, instead of a
	single global option.

	@{b}Backfill@{ub}
	This gadget only applies to the string and integer requesters. If
	checked, the requester will have a background pattern, like the one
	used in the text requester. Otherwise the background will be blank
	(using the current background color).

	@{b}ARexx messages@{ub}
	If this gadget is checked, the @{"ARexx messages" Link AREXX_MESSAGES} for this requester
	type will be enabled. Otherwise no messages will be sent when a
	requester of this type appears.

	@{b}Font@{ub}
	This gadget opens up a font requester, that allows you to choose a
	font that will be used in the requesters. If no font is specified,
	the current screen font will be used.

	@{i}Note: @{ui}@{b}ReqChange@{ub} will not issue any warning if a font can't be
	opened during @{"library" Link GLOSSARY} init (i.e. when the library is loaded into
	memory, either by @{"StartRC" Link STARTRC} or @{"The prefs editor" Link PREFS_EDITOR}).

	@{b}Save@{ub}
	This gadget saves the main window settings for permanent use. The
	lists (in the @{"Edit window" Link EDITWINDOW}) will be restored if needed.

	@{b}Use@{ub}
	This gadget saves the main window settings. Any changes will be
	lost when you reboot or turn of your computer. The lists will be
	restored if needed.

	@{b}Cancel@{ub}
	This gadget undos any changes you have done to the main window
	settings, and exits. Any changes done to the lists are not
	affected. The lists will be restored if needed.

@EndNode


@Node MAINWINDOW_MENUS "ReqChange.guide/The prefs editor/Main window menus"
@Toc  PREFS_EDITOR

@{b}@{u}Main window menus@{uu}@{ub}

The main window have the following menus:

	@{" Project " Link MAINWINDOW_PROJECT}  File operations, etc.
	@{" Edit    " Link MAINWINDOW_EDIT}  Different edit functions.
	@{" Patches " Link MAINWINDOW_PATCHES}  Control the patches.
	@{" Options " Link MAINWINDOW_OPTIONS}  Options.

@EndNode


@Node MAINWINDOW_PROJECT "ReqChange.guide/The prefs editor/Main window menus/Project"
@Toc  MAINWINDOW_MENUS

@{b}@{u}Project@{uu}@{ub}

	@{b}Open...@{ub}
	This menu item allows you to select a previously saved main
	preferences file to use. You can only load a valid preferences file.

	@{b}Save as...@{ub}
	This menu item allows you to save the current main preferences to a
	file of your choise.

	@{b}About...@{ub}
	This menu item shows a requester with some information about the
	program and the patches. You can see if the patches are installed,
	how many of the patches that were active when you selected this
	menu item, and the number of allocated requesters.

	@{b}Quit@{ub}
	This menu item quits the preferences editor.  Works like the
	"Cancel" gadget in the @{"Main window" Link MAINWINDOW}.

@EndNode


@Node MAINWINDOW_EDIT "ReqChange.guide/The prefs editor/Main window menus/Edit"
@Toc  MAINWINDOW_MENUS

@{b}@{u}Edit@{uu}@{ub}

	@{b}Lists...@{ub}
	This menu item opens the list @{"editor window" Link EDITWINDOW}, where you can edit
	the deny, Rexx and exception list. If the window already is open,
	it will be unzoomed if needed, activated, and then brought to the
	front.

	@{b}Defaults@{ub}
	This menu item sets the main settings to the builtin defaults
	(note: these defaults are stored in the @{"library" Link GLOSSARY}, and not in the
	editor).

	@{b}Last saved@{ub}
	This menu item reloads the last saved main preferences file (saved
	with the "Save" gadget in the @{"main window" Link MAINWINDOW}).

	@{b}Restore@{ub}
	This menu item restores the main settings to the state they were in
	when the editor was started.

@EndNode


@Node MAINWINDOW_PATCHES "ReqChange.guide/The prefs editor/Main window menus/Patches"
@Toc  MAINWINDOW_MENUS

@{b}@{u}Patches@{uu}@{ub}

	@{b}Active@{ub}
	If this menu item is checked, then the patches are active. If not,
	the patches will remain installed, but in an inactive state. The
	state of this menu item can be changed with @{b}Commodities@{ub} @{b}Echange@{ub}, if
	the @{"ReqChangeCX" Link ReqChangeCX} program is running. Please note that changing the
	state of this menu item will not affect the state in @{b}ReqChangeCX@{ub}
	(or rather, @{b}Commodities@{ub} @{b}Exchage@{ub}).

	@{b}Intuition@{ub}
	If this menu item is checked, it means that the @{b}Intuition@{ub} patches
	are enabled. If you change the state of it, @{b}ReqChange@{ub} will try to
	install/remove the patches as needed. If it isn't possible to
	remove the patches, they will remain in a disabled state, so that
	you won't notice them. See @{"Patched requesters/Intuition" Link INTUITION}.

	@{b}Asl@{ub}
	If this menu item is checked, it means that the @{b}Asl@{ub} patches are
	enabled. If you change the state of it, @{b}ReqChange@{ub} will try to
	install/remove the patches as needed. If it isn't possible to
	remove the patches, they will remain in a disabled state, so that
	you won't notice them. See @{"Patched requesters/Asl" Link ASL}.

	Note however: If you install the patches, the currently running
	programs may or may not use the new @{b}ReqTools@{ub} requesters. This
	depends on the program (technical note: if they keep a requester
	structure allocated or not). If you want them to use @{b}ReqTools@{ub}
	directly, quit and restart the programs, and they should now use
	@{b}ReqTools@{ub}.

	So some of you says: "But can't the same thing happen when I try to
	remove the patches?" No, it can't, since @{b}ReqChange@{ub} have the ability
	to fall back to the original @{b}Asl@{ub} function when needed.

	@{b}Arp@{ub}
	If this menu item is checked, it means that the @{b}Arp@{ub} patches are
	enabled. If you change the state of it, @{b}ReqChange@{ub} will try to
	install/remove the patches as needed. If it isn't possible to
	remove the patches, they will remain in a disabled state, so that
	you won't notice them. See @{"Patched requesters/Arp" Link ARP}.

	@{b}Req@{ub}
	If this menu item is checked, it means that the @{b}Req@{ub} patches are
	enabled. If you change the state of it, @{b}ReqChange@{ub} will try to
	install/remove the patches as needed. If it isn't possible to
	remove the patches, they will remain in a disabled state, so that
	you won't notice them. See @{"Patched requesters/Req" Link REQ}.

	@{b}ReqTools@{ub}
	If this menu item is checked, it means that the @{b}ReqTools@{ub} patches
	are enabled. If you change the state of it, @{b}ReqChange@{ub} will try to
	install/remove the patches as needed. If it isn't possible to
	remove the patches, they will remain in a disabled state, so that
	you won't notice them. See @{"Patched requesters/ReqTools" Link REQTOOLS}.

	@{b}Update@{ub}
	This menu item will try to update the patches so that they reflect
	the current settings in this menu. What this means is that
	@{b}ReqChange@{ub} will try to install/remove any patches that need to be.

	Each time you alter the state of any of the patch checkmarks in
	this menu, such an update will be performed, so you'll probably not
	need this one that often.

	@{b}Install...@{ub}
	This menu item will install the patches. If the patches already are
	installed, you will be informed about it.

	@{b}Remove...@{ub}
	This menu item will try to remove all patches. If this isn't
	possible, you'll be asked if all patches should be disabled or not.
	If so, the @{b}Active@{ub} menu item above will be checked. See
	@{"StartRC" Link STARTRC} for more information about the problems in removing
	patches.

@EndNode


@Node MAINWINDOW_OPTIONS "ReqChange.guide/The prefs editor/Main window menus/Options"
@Toc  MAINWINDOW_MENUS

@{b}@{u}Options@{uu}@{ub}

	@{b}Create icons@{ub}
	If this menu item is checked, @{b}ReqChange@{ub} will write an icon together
	with all main preferences files that are saved using
	@{b}Project/Save as...@{ub} (see @{"Project" Link MAINWINDOW_PROJECT}).

@EndNode


@Node EDITWINDOW "ReqChange.guide/The prefs editor/Edit window"
@Toc  PREFS_EDITOR

@{b}@{u}Edit window@{uu}@{ub}

In this window you can edit the three different lists, the deny list, the
Rexx list and the except list. Each list is saved in a separate file. These
lists are not affected by anything you do in the @{"main window" Link MAINWINDOW} (except for
the gadgets that can exit the editor, which will close this window, and
restore the lists from @{b}Env:ReqChange@{ub}), and the main window is not affected
by anything you do here.

The following gadgets exists:

	@{b}List type@{ub}
	This gadget lets you choose which list to edit. There are currently
	three lists you can edit, the deny list, the Rexx list and the
	exception list.

	@{b}List contents@{ub}
	This gadget shows the contents of the current list. Use the arrow
	gadgets or the drag-bar to move around in the list. Select an entry
	(a @{i}node@{ui}) by clicking on it. A double-click will open a window that
	allows you to edit that node.  See @{"Deny window" Link DENYWINDOW}, @{"Rexx window" Link REXXWINDOW} and
	@{"Except window" Link EXCEPTWINDOW}.

	@{b}Add...@{ub}
	This gadget opens an empty node-edit window so that you can enter a
	new one.

	@{b}Delete...@{ub}
	This gadget deletes the currently selected node.

	@{b}Edit...@{ub}
	This gadget opens a node-edit window allowing you to edit the
	currently selected node.

	@{b}Sort@{ub}
	This gadget sorts the nodes in the current list in alfabetical
	order.

	@{b}Up@{ub}
	This gadget moves the current node up one step in the list.

	@{b}Down@{ub}
	This gadget moves the current node down one step in the list.

	@{b}Save@{ub}
	This gadget saves the lists for permanent use, and closes the edit
	window.

	@{b}Use@{ub}
	This gadget saves the lists, and closes the edit window. Any
	changes will be lost when you reboot or turn off your computer.

	@{b}Cancel@{ub}
	This gadget closes the window. @{b}ReqChange@{ub} will try to restore the
	lists (by reading from @{b}Env:ReqChange/@{ub}) to the way they were when
	you opened the edit window.

@EndNode


@Node EDITWINDOW_MENUS "ReqChange.guide/The prefs editor/Edit window menus"
@Toc  PREFS_EDITOR

@{b}@{u}Edit window menus@{uu}@{ub}

The edit window have the following menus:

	@{" Project " Link EDITWINDOW_PROJECT}  File operations, etc.
	@{" Edit    " Link EDITWINDOW_EDIT}  Different edit functions.
	@{" Options " Link EDITWINDOW_OPTIONS}  Options.

@EndNode


@Node EDITWINDOW_PROJECT "ReqChange.guide/The prefs editor/Edit window menus/Project"
@Toc  EDITWINDOW_MENUS

@{b}@{u}Project@{uu}@{ub}

	@{b}Open...@{ub}
	This menu item will allow you to select a list to load. The current
	list will be deleted, but only if the file is of suitable type. You
	must select a file of the same type as specified in list type
	gadget.

	@{b}Append...@{ub}
	This menu item allows you to select a list to load. The current
	list will @{i}not @{ui}be deleted. You must select a file of the same type
	as specified in the list type gadget. The new nodes are added to
	the end of the list, and no check for duplicates is done.

	@{b}Save as...@{ub}
	This menu item allows you to save the current list to a file of
	your choise. If you specify a name that already exists, no warning
	is issued, and the file will be deleted if there is an error during
	the saving.

	@{b}About...@{ub}
	This menu item opens the About requester, as in the main window
	menus. See @{"Main window menus/Project" Link MAINWINDOW_PROJECT}.

	@{b}Quit...@{ub}
	This menu item closes the edit window, like the "Cancel" gadget in
	the @{"Edit window" Link EDITWINDOW}.

@EndNode


@Node EDITWINDOW_EDIT "ReqChange.guide/The prefs editor/Edit window menus/Edit"
@Toc  EDITWINDOW_MENUS

@{b}@{u}Edit@{uu}@{ub}

	@{b}Clear list...@{ub}
	This menu item will delete the currently displayed list.

	@{b}Last saved@{ub}
	This menu item allows you to load the last saved list of the
	current type, saved using the "Save" gadget (see @{"Edit window" Link EDITWINDOW}). The
	old list will be replaced. Use "Append..." to append the last saved
	list (see @{"Project" Link EDITWINDOW_PROJECT}).

	@{b}Restore@{ub}
	This menu item will try to restore the currently selected list (by
	reading from @{b}Env:ReqChange/@{ub}) to the way they were when the editor
	window was opened.

@EndNode


@Node EDITWINDOW_OPTIONS "ReqChange.guide/The prefs editor/Edit window menus/Options"
@Toc  EDITWINDOW_MENUS

@{b}@{u}Options@{uu}@{ub}

	@{b}Create icons@{ub}
	If this menu item is checked, @{b}ReqChange@{ub} will write an icon together
	with all list files that are saved using @{b}Project/Save as...@{ub} (see
	@{"Project" Link EDITWINDOW_PROJECT}). This menu item does not affect the "Create icons" option
	in the @{"Main window menus" LINK MAINWINDOW_MENUS}.

@EndNode


@Node DENYWINDOW "ReqChange.guide/The prefs editor/Deny window"
@Toc  PREFS_EDITOR

@{b}@{u}Deny window@{uu}@{ub}

This window allows you to enter/edit a deny node. A deny node is a very
simple one. It simply contains the name of the volume to deny, and
optionally the name of the program for which program this volume is denied.
The volume name is shown in the listview gadget.

The following gadgets exists:

	@{b}Deny name@{ub}
	In this gadget you specify the name of the volume that should be
	denied. Do not enter any colon (':'). E.g., to deny the volume
	'DF9:' (which normally doesn't exist! :) you should thus enter
	'DF9'. You must enter something here. An empty string, or a string
	that only consists of spaces is not allowed.

	@{b}Program@{ub}
	This gadget allows you to enter the name of the program for which
	the volume should be denied. If the name doesn't match, the volume
	will not be disabled. If this gadget is empty, the no name check is
	done. If you press @{i}Shift-@{ui}down, then the @{"Program window" Link TASKWINDOW} will
	appear.

	The name can be up to 500 chars long.

	You need a @{"keyfile" Link KEYFILE} in order to be able to edit this field.

	@{b}Popup gadget@{ub}
	This gadget (which contains a small arrow-down image) opens the
	Program window. It containins a list of all the programs currently
	running, with the name as @{b}ReqChange@{ub} sees them. The program you
	select will be entered into the @{b}Program@{ub} gadget above.

	@{b}Ok@{ub}
	This gadget accepts the string as it is, and uses that name in the
	new/changed node.

	@{b}Cancel@{ub}
	This gadget closes the window, and the list/node is left unchanged.

@EndNode


@Node REXXWINDOW "ReqChange.guide/The prefs editor/Rexx window"
@Toc  PREFS_EDITOR

@{b}@{u}Rexx window@{uu}@{ub}

This window allows you to enter/edit a Rexxnode. A Rexxnode contains
several fields so that you can specify exactly which requesters that should
have a certain @{b}ARexx@{ub} message associated with them.

The following gadgets exists:

	@{b}Name@{ub}
	This gadget allows you to enter a name for the node. Since there
	isn't really any field that is suitable to use for identifying a
	node (and to place in the listview gadget), you have this one,
	where you can enter a name of your own choise for the node. You
	must enter something here. An empty string, or a string that only
	consists of spaces is not accepted. Since this field is for you
	only, why not enter something that makes it easier for you to see
	what kind of requester the node matches?

	The name can be up to 500 chars long.

	@{b}Requester type@{ub}
	This gadget allows you to select a requester type to match on. Only
	if the requester is of the specified type, a message can be sent
	for the requester. 'Any' matches any requester.

	@{b}Title@{ub}
	This gadget allows you to enter a string that the title must
	contain. If empty, the title of the requester is ignored.

	The string can be up to 500 chars long.

	@{b}Body@{ub}
	This gadget allows you to enter a string that the body must
	contain. If empty, the body of the requester is ignored. You can
	enter a string when the "Requester type" gadget is set to 'Any',
	'Text', 'String' or 'Integer', as these are the only cases when
	there is a body to compare with (although string and integer
	requesters doesn't have a body that often).

	The string can be up to 500 chars long.

	@{b}Program@{ub}
	This gadget allows you to enter the name of the program that called
	for the requester. If the name doesn't match, no message will be
	sent. If this gadget is empty, the no name check is done. If you
	press @{i}Shift@{ui}-down, then the @{"Program window" Link TASKWINDOW} will appear.

	The name can be up to 500 chars long.

	@{b}Popup gadget@{ub}
	This gadget (which contains a small arrow-down image) opens the
	Program window. It containins a list of all the programs currently
	running, with the name as @{b}ReqChange@{ub} sees them. The program you
	select will be entered into the @{b}Program@{ub} gadget above.

	@{b}Timeout@{ub}
	This gadget allows you to enter a timeout for the return code from
	the message that is sent to @{b}ARexx@{ub}. See @{"ARexx messages" Link AREXX_MESSAGES} for more
	information.

	You need a @{"keyfile" Link KEYFILE} in order to be able to edit this field.

	@{b}<@{ub}
	This gadget decreases the timeout by 5 (but it will not go below zero).

	@{b}>@{ub}
	This gadget increases the timeout by 5.

	@{b}Command@{ub}
	This gadget allows you to enter the command that should be sent to
	@{b}ARexx@{ub} if a requester matches this node. You must enter something.
	An empty string, or a string that only contains spaces isn't
	accepted. See @{"ARexx messages" Link AREXX_MESSAGES} for more information.

	The command can be up to 500 chars long.

	@{b}Ok@{ub}
	This gadget accepts the Rexxnode as it is, and places puts the
	new/changed node in the list.

	@{b}Cancel@{ub}
	This gadget cancels the window, and the node/list is left unchanged.

@EndNode


@Node EXCEPTWINDOW "ReqChange.guide/The prefs editor/Except window"
@Toc  PREFS_EDITOR

@{b}@{u}Except window@{uu}@{ub}

This window allows you to enter/edit an exceptnode. An exceptnode only
contains the name of the program that should be excepted from patching.

The following gadgets exists:

	@{b}Program@{ub}
	This gadget allows you to enter the name of the program to except.
	If you press @{i}Shift@{ui}-down, the @{"Program window" Link TASKWINDOW} will appear.
	The program name can be up to 500 chars long.

	@{b}Popup gadget@{ub}
	This gadget (which contains a small arrow-down image) opens the
	Program window. It containins a list of all the programs currently
	running, with the name as @{b}ReqChange@{ub} sees them. The program you
	select will be entered into the @{b}Program@{ub} gadget above.

	@{b}Ok@{ub}
	This gadget accepts the exceptnode as it is, and places puts the
	new/changed node in the list.

	@{b}Cancel@{ub}
	This gadget cancels the window, and the list/node is left unchanged.

@EndNode


@Node TASKWINDOW "ReqChange.guide/The prefs editor/Program window"
@Toc  PREFS_EDITOR

@{b}@{u}Program window@{uu}@{ub}

This window allows you to select a program, which name will be entered in
the @{b}Program@{ub} gadget in the @{"Deny window" Link DENYWINDOW}, in the @{"Rexx window" Link REXXWINDOW} or the
@{"Except window" Link EXCEPTWINDOW}.

The following gadgets exists:

	@{b}List contents@{ub}
	This shows the names of all programs that were running when the
	window opened. Use the arrow gadgets or the drag-bar to move around
	in the list. Select a program by clicking on it. A double-click
	will select the program, and close the Program window.

	@{i}Technical note: @{ui}@{b}ReqChange@{ub} tries to get the "real" name of the
	program, which not always match the name e.g. @{b}Exec@{ub} thinks it has.
	This is needed since the @{b}Exec@{ub} name usually depends on how the
	program was started, and this shouldn't make any difference in this
	list. And mostly it doesn't. I don't know if the method used here
	is perfect, but it seems to be rather good at least.. :)

	@{i}Note: @{ui}This list is normally sorted, but it might not be, if the
	sort function failed (due to out of memory).

	@{b}Ok@{ub}
	This gadget accepts the current program, closes the window, and
	enters the program name into the proper gadget (overwriting any old
	program name).

	@{b}Cancel@{ub}
	This gadget closes the window, but it leaves the gadget unchanged.

@EndNode


@Node STARTRC "ReqChange.guide/StartRC"

@{b}@{u}StartRC@{uu}@{ub}

@{b}StartRC@{ub} is a small program used to start or stop @{b}ReqChange@{ub}. It simply loads
@{b}reqchange.library@{ub} (if needed) and tells it to install or remove the patches
(see @{"The prefs editor/Main window menus/Patches" Link MAINWINDOW_PATCHES}).

If @{b}ReqChange@{ub} already is installed when @{b}StartRC@{ub} is started ( :), it will ask
you if the patches should be removed.

The patches can't always be removed. If some other program have "patched
over" @{b}ReqChange@{ub}'s patches (and a program like @{b}SetMan@{ub} isn't installed),
there is no way for @{b}ReqChange@{ub} to exit safely, and thus, it won't be done.
Also, if there are some allocated requesters around, @{b}ReqChange@{ub} can't be
removed either, since these requesters must be freed first, and the
original functions can't do that. And ofcourse, @{b}ReqChange@{ub} can't exit if
some patch is active (e.g. a requester window is open).

When the patches are removed, the @{"library" Link GLOSSARY} will be removed from memory
whenever the system needs the memory for other things (assuming no one else
is using @{b}reqchange.library@{ub}, like @{"The prefs editor" Link PREFS_EDITOR}).

@{i}Note: @{ui}Removing patches is never a completely safe operation. One can only
try to make it as safe as possible (well, there is a safe way, and that is
to never unload the patches from memory. But that isn't a good solution
either), and hope for the best. :) Normally, there shouldn't be any
problems though. Especially since ReqChange (normally) doesn't unload the
patches immediately, the risk of something going wrong here is very low
(especially since we mainly patch requester functions. Requesters usually
don't pop up "out of the blue", they are usually a result of an action from
the user).

@{b}StartRC@{ub} can be started from both the @{b}Workbench@{ub} and the @{b}Shell@{ub}.

Note for OS 2.1+ users: Since both The prefs editor, @{b}StartRC@{ub} and
@{"ReqChangeCX" Link REQCHANGECX} use the same @{"catalog" Link GLOSSARY} file, you will either need to have
several copies of @{b}reqchange.catalog@{ub}, or place one copy of it in
@{b}Locale:Catalogs/<language>@{ub} (where "<language>" is the language you have
selected in the @{b}Locale@{ub} preferences editor).

@EndNode


@Node REQCHANGECX "ReqChange.guide/ReqChangeCX"

@{b}@{u}ReqChangeCX@{uu}@{ub}

@{b}ReqChangeCX@{ub} is a commodity that offer the following features:

	An easy way to disable @{b}ReqChange@{ub}, without starting the
	preferences editor.

	A hotkey to start the @{"preferences editor" Link PREFS_EDITOR}.

	File notification of the preferences files, if possible. This means
	that @{b}ReqChange@{ub} will notice changes to the preferences file
	automatically. The prefs editor as such doesn't need this feature.

Note that the "Remove" button in @{b}Commodities@{ub} @{b}Exchange@{ub} will only stop the
commodity (and the prefereces editor, if active). The patches will not be
removed. Use the preferences editor or @{"StartRC" Link STARTRC} for this.

To configure @{b}ReqChangeCX@{ub}, the following tooltypes/arguments are available:

	CX_POPUP
		If "YES" (or "ON"), then the preferences editor will be
		started	when @{b}ReqChangeCX@{ub} is started. If "NO" (or "OFF"),
		then the preferences editor will not be started. Default is
		"ON".

	CX_POPKEY
		The input description string for the hotkey to start the
		preferences editor with. Default is "control lalt r".

	CX_PRIORITY
		The priority for the CX_POPKEY. Default is 0.

	PREFSPATH
		The full path to the preferences editor. Default is
		"Sys:Prefs/ReqChange". This tooltype is set during the
		installation. Thus, you should only need to alter this
		tooltype if you move or rename the preferences editor.

@EndNode


@Node PROBLEMS "ReqChange.guide/Known problems"

@{b}@{u}Known problems@{uu}@{ub}

Although I do what I can to get a bug-free program, there are bound to be
bugs left. Most of them are currently unknown though.. :) However, I have
got a few reports about things that I have been unable to reproduce,
perhaps due to lack of information. Anyway, here is a list over those
reported problems that I've been unable to do something about:

	@{b}ReqChange is slow@{ub}
	Never got any really useful information. Attempts to reproduce the
	problem failed.

	It should be noted that one of the new features in @{b}ReqChange@{ub} 3.6
	makes the @{"library" Link GLOSSARY} startup a bit slower. You'll probably only
	notice this on "slow" @{b}Amigas@{ub} (e.g. unaccelerated A500). This
	initial slowdown will on the other hand make the automatic shortcut
	selection faster.

	@{b}Programs that use the Arp requester crash when they exit@{ub}
	Not reproducable.

	@{b}MFR patches interfere with ReqChange@{ub}
	Not reproducable.

	Known workaround: Try the following tooltypes in @{b}MFR@{ub}:

	PATCHREQ=OFF
	PATCHASL=OFF
	PATCHREQTL=ON

	And perhaps these too, to make the requester look a little better:

	OVRDIM=ON
	DEFWIDTH=474
	DEFHEIGHT=212

If you experience any of these problems, please tell me. The more
information I get about the problem(s), the greater chance that I'll be
able to find (and fix) it.

It should be noted that I might have fixed some of these problems without
knowing it! :)

@{b}Flame mode on@{ub} ¹

If you have seen the program @{b}MultiCX@{ub}, you may have seen this text (I don't
know if it is still there in recent versions though):

	Do NOT use ReqChange, because every version has serious bugs and
	trashes several OS functions! Simply use RTPatch instead.

I would like to make a few comments regarding this.

First of all, when I asked the author of @{b}MultiCX@{ub} (Martin Berndt) what he
meant by this (he didn't care to tell @{i}me @{ui}about it!), he said that
@{b}ReqChange@{ub} sometimes used incorrect texts in gadgets for text requesters.
He didn't know exactly when this happened though. Since I hadn't heard
about this (or any details about it), nor noticed it myself, there wasn't
much I could do about it at the time.

However, a while later, a @{b}ReqChange@{ub} user reported a problem regarding
this. He informed me about the details about the bug, and even included a
source to reproduce the problem. It turned out that the gadget texts only
was incorrect (but usually not "trash") for certain (nowdays relatively
seldom used) requesters, when the @{b}ARQ mode@{ub} flag was set.

With this information, it was a fairly quick matter of finding the bug and
fixing it. The only problem Martin Berndt was able to actually mention have
been fixed. Thus, the statement in the @{b}MultiCX@{ub} manual isn't valid any
more. (Btw, was it ever? I mean, "serious bugs", "trashes several OS
functions"? Come on, only incorrect gadget texts in @{u}some@{uu} cases, when using
the @{b}ARQ@{ub} mode!)

Secondly, it seems like the Martin Berndt dislikes patches, and similar
"hack" programs, as several such programs are on his "dislike list". But
this doesn't make sense. His program is very similar. It patches several
functions. Or does he imply that the other programs are buggy, while his is
not? I don't know...

Third, @{b}ReqChange@{ub} offers many more features than @{b}RTPatch@{ub}. Thus, it maybe
isn't that odd that @{b}ReqChange@{ub} have a few more problems. Its a lot more code
that can contain bugs. ;) Btw, before the 2.3 release of @{b}ReqTools@{ub},
@{b}ReqChange@{ub} was better than @{b}RTPatch@{ub} for users of graphics cards. Certain
functions replaced by the graphics card used more stack space, causing
@{b}RTPatch@{ub}/@{b}ReqTools@{ub} to crash. As @{b}ReqChange@{ub} always makes sure the stack is
"large enough" (larger than what @{b}ReqTools@{ub} used to do), the problem was
actually "fixed" by @{b}ReqChange@{ub}! ;)

Well, enough of this now.

@{b}Flame mode off@{ub}

@{b}-- Footnotes --@{ub}

¹ If you wonder about the term "flame", it basically means that this text
is largely a matter of personal opinions, and is coloured by the authors
feelings. It shouldn't be taken as hard facts (well, at least not here ;).

@EndNode


@Node ACKNOWLEDGEMENTS "ReqChange.guide/Acknowledgements"

@{b}@{u}Acknowledgements@{uu}@{ub}

Thanks go to the following persons, for helping me with @{b}ReqChange@{ub} in one
way or another:

	@{b}Nico Francois@{ub}
	For his great @{b}reqtools.library@{ub}, the programming help, and the ideas
	"borrowed" from @{b}RTPatch@{ub}.

	@{b}Fredrik Orinius@{ub}
	For being the first one to send me a donation for @{b}ReqChange@{ub}! And
	this was @{i}before @{ui}@{b}ReqChange@{ub} became Shareware.

	@{b}Nicola Salmiora@{ub}
	For his @{b}SetPatch()@{ub} function and the help with the "expunge
	problem".

	@{b}Stefan Boberg@{ub}
	For the debugging help in some of the earlier versions.

	@{b}Michael Berg@{ub}
	For the BOOPSI "getalt" gadget (i.e. the arrow down image).

	@{b}Martin Huttenloher@{ub}
	For the nice @{b}MagicWB@{ub}-icons in this archive.

	@{b}Martin Taillefer@{ub}
	For the @{b}FixAG@{ub} program (and for @{b}TurboText@{ub}, which was used
	during the development).

	@{b}The beta-testers@{ub} (in random order)
	Roger Andersson, Johan Billing, Michael Berg, Stefan Johannesdal,
	Stefan Zeiger, Per-Anders Josefsson, Markus Aalto, Lieven Lema,
	Stu Churchill, Roger Nordin, Nikolai Waldman, Mathias Karlsson,
	Dennis Björklund.

	@{b}The translators@{ub} (also in random order)
	Michael Berg (Dansk); Stefan Zeiger (German);
	Markus Aalto (Soumi); Andrea Suatoni (Italiano);
	Mike Rooze and Marco Niese (Nederlands);
	Georges Goncalves (Français).

	All of you who have sent me some sort of feedback on @{b}ReqChange@{ub}.

	Legal information largely stolen from the documentation to @{b}TrapDoor@{ub}
	(the swedish translation of the legal information was largely
	stolen from the swedish translation of the documentation to @{b}Spot@{ub}).

	Icon inspiration from the icon to the @{b}ReqTools@{ub} preferences program.

	Spelling errors etc. in this manual by myself (hey, english is only
	my second language! I'm doing as good as I can! :)

Persons mentioned here by name doesn't need to send any shareware fee for
using this program (contact me for details about how to get the keyfile).
They have done enough already! :)

@EndNode


@Node FUTURE "ReqChange.guide/The future"
@Toc  Main

@{b}@{u}The future@{uu}@{ub}

Although I've implemented most things I found important in @{b}ReqChange@{ub}, there
are still things that might be implemented at some future date. And maybe
you have some idea on how to improve this program? If so, please send me a
letter, and I'll consider it. To give you some inspiration, here are some
of the ideas that popped up during the development of this program, or has
been sent to me:

	A user specified width for the @{b}req.library@{ub}/@{b}GetString()@{ub} patch
	(user request actually). But were should I place this in the prefs
	editor? :)

	Formating codes in the @{b}ARexx@{ub} commands, so that e.g. the current
	title, requester type and body, can be inserted (could useful for
	the automatic gadget selection).

	A possbility to use special prefs (some or all) for selected
	requesters (similar to the @{b}ARexx@{ub}-message selection).

	A possiblity to change the programs priority when showing a
	requester, to get better response. To achieve something like this,
	you can install the shareware program @{b}Executive@{ub} (by Petri
	Nordlund).

	Allow @{b}ARexx@{ub} to check the gadgets in a text requester.

	Delay the execution of an @{b}ARexx@{ub} command until after the requester
	has been shown.

As I'm also the programmer for @{b}ReqTools@{ub} nowdays, it is not impossible that
I'll merge @{b}ReqChange@{ub} and @{b}RTPatch@{ub} into one program.

@EndNode


@Node PROGRAM_HISTORY "ReqChange.guide/Program history"
@Toc  Main

@{b}@{u}Program history@{uu}@{ub}

	@{" Version 1.00-2.03 " Link ANCIENT_VERSIONS}
	@{" Version 3.0       " Link VERSION_3_0}
	@{" Version 3.1       " Link VERSION_3_1}
	@{" Version 3.2       " Link VERSION_3_2}
	@{" Version 3.3       " Link VERSION_3_3}
	@{" Version 3.4       " Link VERSION_3_4}
	@{" Version 3.5       " Link VERSION_3_5}
	@{" Version 3.6       " Link VERSION_3_6}
	@{" Version 3.7       " Link VERSION_3_7}
	@{" Version 3.8       " Link VERSION_3_8}
	@{" Version 3.9       " Link VERSION_3_9}
	@{" Version 3.10      " Link VERSION_3_10}
	@{" Version 3.11      " Link VERSION_3_11}
	@{" Version 3.12      " Link VERSION_3_12}
	@{" Version 3.13      " Link VERSION_3_13}

@EndNode


@Node ANCIENT_VERSIONS "ReqChange.guide/Program history/Version 1.00-2.03"
@Toc  PROGRAM_HISTORY

@{b}@{u}Version 1.00-2.03@{uu}@{ub}

Ancient history.

@EndNode


@Node VERSION_3_0 "ReqChange.guide/Program history/Version 3.0"
@Toc  PROGRAM_HISTORY

@{b}@{u}Version 3.0@{uu}@{ub}

This version is a complete rewrite from scratch!

All resident code is written in efficient assembler, and stored in a
@{"library" Link GLOSSARY}.

Patch installation/removal code a lot smaller and a bit smarter. @{b}SetMan@{ub} is
no longer treated as a special case. Thanks to Nicola Salmiora for his
@{b}SetPatch()@{ub} function, which was used as a base when I rewrote the patch
related code.

Stack swapper redesigned. Now uses @{b}exec.library@{ub}/@{b}SwapStack()@{ub}.

@{b}ARexx@{ub} messages can now be sent from any requester, based on requester type
and title (and/or body, for the text requester). These messages can be
disabled for certain requester types, for maximum efficiency.

Centering modes, offsets, fonts etc. can be selected for each requester
type.

Two new centering modes: 'Default' and 'Normal'. 'Default' will make
@{b}ReqChange@{ub} use whatever set in the @{b}ReqTools@{ub} preferences editor,
while 'Normal' will make the requesters appear where they normally would
have if @{b}ReqChange@{ub} wasn't installed (although the @{b}Asl@{ub} patches won't
remember their position between calls).

Prefs editor that allows you to modify the behaviour of @{b}ReqChange@{ub} with a
nice user interface, complete with keyboard shortcuts and online help. You
can also edit the deny and Rexx list!

Complete support for @{b}Asl@{ub} V38 (as complete as it can be, I hope). This
includes the accept/reject patterns, the "dirpattern", all hooks & tags etc.

The @{b}Asl@{ub} patches can now fall back to the original requester if the patches
have been disabled or an unsupported feature is used. The code for this is
fairly small, thanks to a new approach of handling tags.

Improved localization. Will now automatically adjust to any new language
selected.

The @{b}AutoRequest()@{ub}/@{b}EasyRequest()@{ub} patch can now (optionally ofcource) call
the original function after the AssignWedge. I suspect some @{b}ARQ@{ub} users will
like this. ;)

Documentation completely rewritten in @{b}AmigaGuide@{ub}® format.

Requires OS 2.0, and is OS 3.0 aware.

No longer a Commodity.

Patterns will only be converted if necessary (i.e. the WILDSTAR bit in
@{b}dos.library@{ub} is cleared).

Tested with @{b}Enforcer@{ub} & @{b}MungWall@{ub} (earlier versions were only @{b}MungWall@{ub}
tested).

Uses memory pools whereever possible. This reduces memory fragmentation.

Should handle text requesters with "manual" centering better.

@{b}Asl@{ub} font requester patch is now optional.

@{b}Asl@{ub} screenmode requester patch added (optional).

@EndNode


@Node VERSION_3_1 "ReqChange.guide/Program history/Version 3.1"
@Toc  PROGRAM_HISTORY

@{b}@{u}Version 3.1@{uu}@{ub}

Minor bugfix: Prefs files would have the wrong protection bits when saved.
This update only reflects @{b}reqchange.library@{ub}.

Made a few corrections to the manual (there were some references to
non-existant sections).

@EndNode


@Node VERSION_3_2 "ReqChange.guide/Program history/Version 3.2"
@Toc  PROGRAM_HISTORY

@{b}@{u}Version 3.2@{uu}@{ub}

Fixed incorrect fido-address in this manual.

The @{b}ARexx@{ub}-messages should now work without enforcer hits etc.

The @{b}ARexx@{ub}-messages were not always sent when they should have been. Now
this should work! :)

@{b}ARexx@{ub}-messages may now be sent when an @{b}Asl@{ub} patch calls the original
requester.

Translations for French, Italian and Dutch added.

In the @{b}AssignWedge@{ub}, the gadget "Assign..." will now default to the same
drawer as the program resides in, if this is defined. Otherwise @{b}Ram:@{ub} will
be used as before.

Leftoffset and topoffset should be properly saved now. Also improved some
other "related" code, to ensure no problems with newer OS versions (if
there will be any :( ).

Fixed a bug in the @{"library" Link GLOSSARY} startup code. Also changed a message to be
nonlocalized to make things a little simpler. If this message is to be
shown, it isn't likely the @{"catalog" Link GLOSSARY} will load anyway! :)

Included a small JPeg (8 Kb), so you can see what I look like! :) Use e.g.
PPShow (V4.0+), FastJPEG or ViewTek to view it.

Bug in the @{b}Asl@{ub} screenmode requester fallback fixed (usually led to
crashes. But not always).

Version 2.2b of @{b}ReqTools@{ub} included.

@EndNode


@Node VERSION_3_3 "ReqChange.guide/Program history/Version 3.3"
@Toc  PROGRAM_HISTORY

@{b}@{u}Version 3.3@{uu}@{ub}

The initial value of the height gadget in the @{b}Asl@{ub} screenmode requester was
not correct.

The prefs editor will now close the @{b}workbench.library@{ub} before exiting.

The prefs editor will now unlock its lock on the @{b}Workbench@{ub} screen properly
(it makes the lock to see if the prefs editor is on the @{b}Workbench@{ub} screen,
and if so, activates the AppWindow support).

Various bugs/(layout) quirks in the prefs editor GUI code fixed, code
optimized a bit, etc.

Enforcer hit in the prefs editor during @{b}Workbench@{ub} start and the icon
didn't have any tooltypes removed.

In the "Assign..." requester, any assigns relative to a programs home
directory (i.e. when the requester opens in the home directory) was
incorrectly made.

The @{b}Req@{ub}/@{b}GetLong()@{ub} patch didn't fall back properly.

Programs requesting pen selection in the @{b}Asl@{ub} font requester would never
get a requester on OS 3.1+. A few default values weren't properly set,
causing the requester to fail.

A couple of other defaults weren't properly set, causing e.g. @{b}WSpeed@{ub} to
crash, when showing an @{b}Asl@{ub} screenmode requester. Was this caused by a
@{b}ReqTools@{ub} bug as well? :)

Exception list added. A program in this list will always use the original
functions.

Program name field added to the Rexxnode. Don't worry, old prefs files can
still be read.

Automatic gadget selection added (for text requesters only). Done via the
return code from @{"ARexx messages" Link AREXX_MESSAGES}.

In string gadgets in the prefs editor, shortcuts can now be selected by
pressing right amiga together the key in question. Because of that (and
some persons - including me - have @{b}StringClip@{ub} installed), the shortcut for
cancel was changed from c to a (in the english translation ofcourse).

A few minor improvements/bug fixes in the library.

The prefs editor now handles larger than normal window gadgets (if
@{b}SysIHack@{ub} is installed, this may be the case. If you are interested in how
this is done, check the file called @{b}Source/BottomBorder.c@{ub} in the
distribution archive).

The install script now automatically installs @{b}MagicWB@{ub}-icons if @{b}MagicWB@{ub}
version 2.0 or higher is installed.

The prefs editor now checks for the icon @{b}def_PREF.info@{ub} (instead of
@{b}def_PREFS.info@{ub}) in the drawers @{b}Env:ReqChange@{ub} and @{b}Env:Sys@{ub} when saving
preferences files. This way, e.g. the @{b}MagicWB@{ub} preset icon will be used, if
present.

@EndNode


@Node VERSION_3_4 "ReqChange.guide/Program history/Version 3.4"
@Toc  PROGRAM_HISTORY

@{b}@{u}Version 3.4@{uu}@{ub}

The "Only AssignWedge" option didn't work too well. Incorrect
@{b}ARexx@{ub}-messages were sent (possibly causing @{b}Enforcer@{ub} hits), and the
AssignWedge wasn't activated at all.

Changed behaviour of @{b}StartRC@{ub} a little. If started when @{b}ReqChange@{ub} is
installed, and all patches are inactive, then the patches will be activated
again (instead of a requester popping up asking if you would like to remove
the patches).

Did some minor changes to the prefs load/save routines, to prevent any
problems with virtual memory systems (such as @{b}VMM@{ub}).

The AssignWedge code trashed the current process' window pointer
(@{b}pr_WindowPtr@{ub}). I discovered the problem while looking at the code, so I
never experienced any problems.. Strange.. :)

The flag "Only AssignWedge" have been renamed into "ARQ mode". If enabled,
all text requesters opened by @{b}ReqChange@{ub} will use the requester in
@{b}Intuition@{ub} instead, if possible (so that e.g. @{b}ARQ@{ub} can be used instead).
@{b}ARexx@{ub}-messages will work for these requesters as well (Note to all
translators: I have changed the string for MSG_ONLYASSIGN_GAD to "ARQ".
Please send me any modification for this, if needed).

Did some other minor changes in the prefs editor.

Programs in the program list that have "high ASCII" in their names could
get the wrong name.

@EndNode


@Node VERSION_3_5 "ReqChange.guide/Program history/Version 3.5"
@Toc  PROGRAM_HISTORY

@{b}@{u}Version 3.5@{uu}@{ub}  (Library version: 4.2)

@{b}reqchange.library@{ub} crashed when trying to read a main preferences that
didn't exist (didn't try the new "VM-compatible" code that much.. :)

If you managed to doubleclick an item twice in the listwindow, the edit
window in question would be opened twice.

A few @{b}Enforcer@{ub} hits (that didn't always occur) when the prefs editor was
started have been removed.

Sending an @{b}ARexx@{ub}-message for a text requester with only one gadget caused
the requester to be cancelled (by the auto gadget selection).

Pressing Left Amiga + <key>, where <key> doesn't correspond to a shortcut
will not inactivate the string gadget any more.

The windows will now backfill with the current background color, rather
than color 0 (although these usually are the same :).

Removed a couple of @{b}Enforcer@{ub} hits in the program window.

Forgot to mention one thing about version 3.4: @{b}ReqTools@{ub} 2.2c included.

Corrected various incorrections in this file.

Made a Swedish translation of this doc file.

The "task name copier" didn't quite work when @{b}MungWall@{ub} was installed (and
possibly at some other times as well). This meant that @{b}ARexx@{ub}-messages
weren't sent when they should be.

@EndNode


@Node VERSION_3_6 "ReqChange.guide/Program history/Version 3.6"
@Toc  PROGRAM_HISTORY

@{b}@{u}Version 3.6@{uu}@{ub}  (Library version: 5.0)

The "virtual memory support" introduced in version 3.4 wasn't quite
complete.. :)

The @{i}Help @{ui}key didn't work in string/integer gadgets.

The @{b}Asl@{ub} patches used to put its parent window to sleep incorrectly. I.e.,
sometimes it was done when it shouldn't happen, and vice versa.

The screenmode requester (in @{b}Asl@{ub}) didn't show all modes (most notably, no
HAM modes were visible). However, it was a sort of fortunate bug, since the
current version of @{b}ReqTools@{ub} doesn't handle the depth gadget for HAM modes
that well. In some cases it can even crash.

The program list now removes any duplicate names. Thus, it doesn't show the
number of active programs (but to find out you had to count them yourself
anyway! :).

The @{b}Arp@{ub} patch called the hook when it shouldn't, and vice versa.

The @{b}Asl@{ub} patch didn't always call the file hook when it should (technical
note: this could only happen for the "old" hook).

A few minor internal bug fixes and improvements (e.g. for better library
<-> prefs compatibility. I finally noticed that it wasn't quite as complete
as I had hoped.. :).

If the "AssignWedge" was off, and "ARQ-mode" was on, then sometimes when a
text requester was about to be appear, a requester asking for the volume
"Any:" would appear instead.

The "popup" gadget (arrow down) got wrong dimensions on most screens (i.e.
those not similar to "my" screen.. :)

Added automatic wordwrapping for this documentation, if you have OS 3.0 or
higher. The document is automatically converted if you install it with the
@{b}Installer@{ub}. See the program @{b}ReqChange/C/FixAG@{ub} in the distribution archive
for details on how to do this by hand.

Automatic shortcut selection for text requesters added. Only active if the
"Keyboard shortcuts" flag is set.

Timeout field for the Rexxnodes added. If a timeout is specified, then the
requester will close when the timeout expires. If the return code from the
@{b}ARexx@{ub}-message refers to a gadget, then that selection will be used,
otherwise cancel (the rightmost gadget) is used. If the user confirms the
requester before the timeout expires, then the message return code is
ignored.

@{b}ReqTools@{ub} patch added. Adds most preferences settings (although they may
be overridden by the caller) and the @{b}ARexx@{ub}-messages. Note that the timeout
and automatic gadget selection will not always be used for the text
requester (technical note: if the RT_ReqHandler tag is used, then the
return code/timeout is ignored).

Added program name field for deny nodes.

Keyfile added. Most new features in this version need a keyfile to be
activated (bugfixes are always "free"). See @{"Shareware" Link SHAREWARE} for information on
how to obtain a copy of the keyfile if you alread are a registered user.

@EndNode


@Node VERSION_3_7 "ReqChange.guide/Program history/Version 3.7"
@Toc  PROGRAM_HISTORY

@{b}@{u}Version 3.7@{uu}@{ub}  (Library version: 6.0)

Fixed a typo in the preferences editor, so that if @{b}reqchange.library@{ub}
failed to open, the preferences editor will now report the correct required
version.

@{b}ARexx@{ub} messages usually caused the (text) requester to be cancelled. I
wonder why I didn't notice this during testing.. ;)

The automatic shortcut selector didn't ignore the case of characters
properly.

Made some cleanups in the preferences editor.

Removed the window previews (upon request), to reduce the archive size.

Wrote a commodity (@{b}ReqChangeCX@{ub}), that has the prefs editor as its user
interface. It also offers prefs file notification. Note that @{b}StartRC@{ub} is
still needed.

There is now a global active flag for the patches. This means that if
@{b}StartRC@{ub} (or @{b}ReqChangeCX@{ub}) disables the patches, the different flags in the
patches menu aren't affected.

Changed the format of the preferences files, to make future updates easier
There is a prefs conversion utility included, since I decided to drop the
support for all old formats (especially the "list preferences files" have
changed quite a bit). If you have any problems converting the prefs, please
contact @{"me" Link REGISTER}.

When doing the preferences conversion, I noticed that the deny prefs file
was saved in the old format, although the new format was indicated. This
meant that files in the new (now old ;) format were read incorrectly. See the file
@{i}ConvertRCPrefs.readme@{ui} for details.

Updated finnish translation included.

Certain error messages (related to the preferences files) were incorrect in
the prefs editor.

The @{b}Asl@{ub} file requester patch will now allow buffering of the file list for
the file requesters opened by the @{b}WBPattern@{ub} preferences editor. However,
although I'm sure @{b}ReqChange@{ub} does everything as it should, the buffering
doesn't seem to work. I'm not sure why yet.

Oops. The @{b}ReqTools@{ub} patches didn't handle fallback to the original function
properly (i.e. when patches are made inactive, but couldn't be removed).

Cleaned up library init/open. Threw out all alerts and made it safer.

Changed @{b}Asl@{ub} screen mode requester patch to use @{b}ReqTools@{ub} for requesters
with HAM-modes, since the new @{b}ReqTools@{ub} 2.3 supports this better. This also
means that @{b}ReqChange@{ub} now requires @{b}ReqTools@{ub} 2.3 or better.

@EndNode


@Node VERSION_3_8 "ReqChange.guide/Program history/Version 3.8"
@Toc  PROGRAM_HISTORY

@{b}@{u}Version 3.8@{uu}@{ub}  (Library version: 6.1)

The @{"ARexx" Link AREXX_MESSAGES} list wasn't correctly saved, making the read list look a bit odd.
The problem only affected the requester type and the timeout.

Oops. Forgot to update the swedish library catalog. Removed some old
strings from the other catalogs as well.

@EndNode


@Node VERSION_3_9 "ReqChange.guide/Program history/Version 3.9"
@Toc  PROGRAM_HISTORY

@{b}@{u}Version 3.9@{uu}@{ub}  (Library version: 6.2)

The center mode settings wasn't correctly updated.

The @{b}ConvertRCPrefs@{ub} program included in @{b}ReqChange@{ub} 3.9 wasn't the right
version, which caused some problems.

@EndNode


@Node VERSION_3_10 "ReqChange.guide/Program history/Version 3.10"
@Toc  PROGRAM_HISTORY

@{b}@{u}Version 3.10@{uu}@{ub}  (Library version: 6.3)

Fixed the bug that caused startup problems on 68000- and 68010-based
Amigas. This probably caused problems for the font requester as well.

Some minor size tweekings...

@EndNode


@Node VERSION_3_11 "ReqChange.guide/Program history/Version 3.11"
@Toc  PROGRAM_HISTORY

@{b}@{u}Version 3.11@{uu}@{ub}  (Library version: 6.3)

Fixed some minor problems in @{b}ReqChangeCX@{ub}. It was some error handling that
didn't quite work on some system configurations.

Fixed the version string in @{b}ReqChangeCX@{ub}. There shouldn't be any more
problems installing it now. ;)

Updated the @{"registration" Link REGISTER} information. Postal giro payment is no longer
possible.

@{b}ReqTools@{ub} 2.8 included.

Removed the Swedish translation of this guide from the release archive, to
reduce the size. Let me know if anyone wants it back.

@EndNode


@Node VERSION_3_12 "ReqChange.guide/Program history/Version 3.12"
@Toc  PROGRAM_HISTORY

@{b}@{u}Version 3.12@{uu}@{ub}  (Library version: 6.4)

A minor (and silly) bug in the text requester patches found. Sometimes it
would generate @{b}Enforcer@{ub} hits, but it seems no other problems occured.

Patch removal wouldn't always report an error when it really failed. Sorry,
hadn't tested @{b}ReqChange@{ub} without @{b}SetMan@{ub} running in a very long time. ;)

Fixed a couple of minor quirks in @{b}StartRC@{ub}.

When patch removal failed, a requester asking for the volume "Any" could
appear. This should not happen any more.

The @{b}Asl@{ub} screen mode requester patch would first free some memory, and then
read data from that memory. Worked most of the time, if Mungwall wasn't
running.

If the patches were installed, and the menu item "Patches/Active" was not
active, a requester asking for the volume "Any" would appear. It should be
noted that installing the patches (during boot, by @{b}StartRC@{ub}) when they are
inactive is rather pointless to do. ;)

The @{b}Asl@{ub} file requester patch will now always make sure the directory name
is terminated by a ':' or '/' char, since some programs expect it (like
@{b}Klondike III@{ub} ;).

@{b}ReqTools@{ub} 2.9 included.

Preferences program bumped to version 3.12.

@EndNode


@Node VERSION_3_13 "ReqChange.guide/Program history/Version 3.13"
@Toc  PROGRAM_HISTORY

@{b}@{u}Version 3.13@{uu}@{ub}  (Library version: 6.5)

Should have examined the @{b}Asl@{ub} behaviour on "directory name termination" a
bit better. @{b}Asl@{ub} (40.6) doesn't add any '/' char on the end of directory
names. However, if a drawer with '/' at the end is used as input, then @{b}Asl@{ub}
won't strip it (like @{b}ReqTools@{ub} does). In an attempt to improve the
compatibility, I tried making @{b}ReqChange@{ub} only add a '/' if one was present
in the input string, but it didn't turn out that well either. So, I removed
the code again. If only all programs used @{b}AddPart()@{ub}, then this problem
wouldn't exist... :/

Preferences program bumped to version 3.13.

Norwegian translation included.

@EndNode


@Node GLOSSARY "ReqChange.guide/Glossary"

@{b}@{u}Glossary@{uu}@{ub}

	@{b}Catalog@{ub}
	A file that contains all text a program uses that needs to be
	translated. By loading this file (and with the help of a few OS
	routines) a program can operate in several different languages with
	relatively small amount of work by the programmer.

	@{b}IMHO@{ub}
	Acronym for @{u}i@{uu}n @{u}m@{uu}y @{u}h@{uu}umble @{u}o@{uu}pinion.

	@{b}Library@{ub}
	A module containing a set of functions which other programs may
	use. These modules can be stored on disk and loaded when needed.

	@{b}pgp-key@{ub}
	PGP is an acronym for @{u}P@{uu}retty @{u}G@{uu}ood @{u}P@{uu}rivacy. PGP is an encryption
	program written and (c) Copyright 1990-1992 by Philip Zimmermann.
	It uses so called public key encryption, which means that the
	sender encrypts the data with a "private" key and the recivers
	"public" key. Only the receiver of a message will be able to
	decrypt the message, using his own private key and the senders
	public key.

	@{b}SASE@{ub}
	Acronym for @{u}s@{uu}elf @{u}a@{uu}ddressed @{u}s@{uu}tamped @{u}e@{uu}nvelope.

	@{b}String file macro@{ub}
	A special type of an @{b}ARexx@{ub} macro. Instead of having the macro in a
	file (which is the usual form), it is simply a string that contains
	all the @{b}ARexx@{ub} commands (separated with semi-colons) that should be
	executed.

@EndNode


@Node INDEX "ReqChange.guide/Index"

@{b}@{u}Index@{uu}@{ub}

	@{" Acknowledgements             " Link ACKNOWLEDGEMENTS}
	@{" ARexx messages               " Link AREXX_MESSAGES}
	@{" Arguments                    " Link ARGUMENTS}
	@{" Arp                          " Link ARP}
	@{" Asl                          " Link ASL}
	@{" Asl font requester           " Link MAINWINDOW}
	@{" Asl screen mode requester    " Link MAINWINDOW}
	@{" AssignWedge                  " Link MAINWINDOW}
	@{" Author address               " Link REGISTER}

	@{" Catalog                      " Link GLOSSARY}

	@{" Disclaimer                   " Link DISCLAIMER}
	@{" Deny list                    " Link ASSIGNWEDGE}
	@{" Deny window                  " Link DENYWINDOW}

	@{" Edit window                  " Link EDITWINDOW}
	@{" Edit window menus            " Link EDITWINDOW_MENUS}
	@{" Except window                " Link EXCEPTWINDOW}
	@{" Excepted programs            " Link EXCEPTED_PROGRAMS}

	@{" Home page address            " Link UPDATES}

	@{" IMHO                         " Link GLOSSARY}
	@{" Installation                 " Link INSTALLATION}
	@{" Introduction                 " Link INTRODUCTION}
	@{" Intuition                    " Link INTUITION}

	@{" Key file                     " Link SHAREWARE}

	@{" Library                      " Link GLOSSARY}
	@{" License                      " Link LICENSE}

	@{" Main window                  " Link MAINWINDOW}
	@{" Main window menus            " Link MAINWINDOW_MENUS}
	@{" Memory usage                 " Link SYSTEM_REQUIREMENTS}

	@{" No warranty                  " Link NO_WARRANTY}

	@{" Patched requesters           " Link PATCHED_REQUESTERS}
	@{" Patched requesters/Arp       " Link ARP}
	@{" Patched requesters/Asl       " Link ASL}
	@{" Patched requesters/Intuition " Link INTUITION}
	@{" Patched requesters/Req       " Link REQ}
	@{" Patched requesters/ReqTools  " Link REQTOOLS}
	@{" Patches                      " Link MAINWINDOW_PATCHES}
	@{" Preface                      " Link PREFACE}
	@{" Program history              " Link PROGRAM_HISTORY}
	@{" Program window               " Link TASKWINDOW}

	@{" Registration                 " Link REGISTER}
	@{" Req                          " Link REQ}
	@{" ReqTools                     " Link REQTOOLS}
	@{" Requester type               " Link MAINWINDOW}
	@{" Rexx list                    " Link AREXX_MESSAGES}
	@{" Rexx messages                " Link MAINWINDOW}
	@{" Rexx window                  " Link REXXWINDOW}
	@{" Rexxnode                     " Link AREXX_MESSAGES}

	@{" SASE                         " Link GLOSSARY}
	@{" SetMan                       " Link SYSTEM_REQUIREMENTS}
	@{" Shareware                    " Link SHAREWARE}
	@{" StartRC                      " Link STARTRC}
	@{" String file macro            " Link GLOSSARY}
	@{" System requirements          " Link SYSTEM_REQUIREMENTS}

	@{" The AssignWedge              " Link ASSIGNWEDGE}
	@{" The future                   " Link FUTURE}
	@{" The prefs editor             " Link PREFS_EDITOR}

	@{" Updates                      " Link UPDATES}

	@{" Why ReqChange?               " Link INTRODUCTION}

@EndNode
