@DataBase ReqChange.guide
@$VER: ReqChange.guide 3.4 (28.08.94)
@(C) Copyright © 1993-94  Magnus Holmgren
@Author Magnus Holmgren
@Index "INDEX"

@Rem $Id: ReqChange.guide,v 1.3 1994/08/20 20:51:38 cmh Exp cmh $


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

  This file describes @{b}ReqChange@{ub}, version 3.4, a program that replaces the
most common requesters with the ones @{b}ReqTools@{ub} (copyright © Nico François)
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.

 @{" 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"
@Next "INTRODUCTION"
@Prev "Main"
@Toc "Main"

@{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
charge. 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"
@Next "SYSTEM_REQUIREMENTS"
@Prev "PREFACE"
@Toc "Main"

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

  One of the many new features with @{b}Amiga@{ub} OS 2.0, is a new @{"library" Link "GLOSSARY" 8} 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 lead several programmers to 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, 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" 6}). 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 a couple of 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"
@Next "LICENSE"
@Prev "INTRODUCTION"
@Toc "Main"

@{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 16 Kbyte of memory, exluding the memory
used by @{b}ReqTools@{ub}, and the diskbased @{"libraries" Link "GLOSSARY" 8} @{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"
@Next "NO_WARRANTY"
@Prev "SYSTEM_REQUIREMENTS"
@Toc "MAIN"

@{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"
@Next "DISCLAIMER"
@Prev "LICENSE"
@Toc "MAIN"

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

  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.

  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.

@EndNode


@Node "DISCLAIMER" "ReqChange.guide/Disclaimer"
@Next "SHAREWARE"
@Prev "NO_WARRANTY"
@Toc "MAIN"

@{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"
@Next "INSTALLATION"
@Prev "DISCLAIMER"
@Toc "Main"

@{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 (70 SKR). Fill in the registration form (the
file @{b}Registration.form@{ub}), and send it with the money to:

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

  Or send the money to the postal giro account 921 71 60-2 (in Sweden).
Please, only send SKR, as the exchange fee is rather high. A recommended
way to send the money is via the so called "International money order".
Your local post office should be able to help you with this.

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

  "Magnus Holmgren", 2:204/404.6@fidonet.org

  or, if you prefer Internet:

  cmh@augs.se

  If you send me $15 (90 SKR) or include a disk + return postage (e.g. one
international reply cupon), I'll send you the next version when it is
finished. Additional updates costs $5 (20 SKR) each (you can also send me a
disk, SAE + return postage, and I'll do it for free! :). 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.

  Since this program is released as "true" Shareware (i.e. the program
isn't crippled in any way) you might think you won't gain any by
registering this program. In a way that is true, since you won't get any
new features by registering (instead you can @{i}really @{ui}test the program to see
if you think it is worth registering). Instead you encourage me to continue
to improve this program, and add new features you would like to see. Also,
if you have an e-mail address (fidonet or Internet) I'll mail you update
information shortly before an update is released. New features requests
from registered users will ofcourse have a much higher priority than those
from others! :)

  I've put many hours into this program to make it as good as I only could.
I would sure appreciate to get something for all this work. Please support
Shareware!

  @{i}Note: @{ui}The alternative to "true" Shareware would be to add keyfile
protection, so that all features can't be used from the start. It would
also increase the Shareware fee, to cover the extra costs (to send out the
keyfiles). You don't want that, do you? If your anser is "no", then send me
the Shareware fee right away! (Assuming you use this program ofcourse :)

@EndNode


@Node "INSTALLATION" "ReqChange.guide/Installation"
@Next "PATCHED_REQUESTERS"
@Prev "SHAREWARE"
@Toc "Main"

@{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}
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.

  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} (there aren't files
for all languages though).

@EndNode


@Node "PATCHED_REQUESTERS" "ReqChange.guide/Patched requesters"
@Next "INTUITION"
@Prev "INSTALLATION"
@Toc "Main"

@{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" 8} 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"}

@EndNode


@Node "INTUITION" "ReqChange.guide/Patched requesters/Intuition"
@Next "ASL"
@Prev "PATCHED_REQUESTERS"
@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"} 49).

  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"
@Next "ARP"
@Prev "INTUITION"
@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" 8}).

  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"
@Next "REQ"
@Prev "ASL"
@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" } feature.

  @{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"
@Next "ASSIGNWEDGE"
@Prev "ARP"
@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 "ASSIGNWEDGE" "ReqChange.guide/The AssignWedge"
@Next "AREXX_MESSAGES"
@Prev "REQ"
@Toc "Main"

@{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} (if you have OS
2.1 or better) file 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.

  This 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"}.

@EndNode


@Node "AREXX_MESSAGES" "ReqChange.guide/ARexx messages"
@Next "EXCEPTED_PROGRAMS"
@Prev "ASSIGNWEDGE"
@Toc "Main"

@{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 only applies to the text requester (or if you have set the requester
type to 'Any'). 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 ¹ and a message is 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 and the Rexx window (see 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" 8}. 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 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.

  @{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.

  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"
@Next "PREFS_EDITOR"
@Prev "AREXX_MESSAGES"
@Toc "Main"

@{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 stared 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"
@Next "ARGUMENTS"
@Prev "AREXX_MESSAGES"
@Toc "Main"

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

 @{" 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.

  The prefs editor allows you to customize the behaviour of the patches,
which @{"libraries" Link "GLOSSARY" 8} 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.

  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 and doesn't have any @{b}IPrefs@{ub}-
like program (that would wait for any changes to the preferences files), a
simply copy of a preferenes file to @{b}Env:ReqChange/@{ub} will not be noticed. 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"
@Next "MAINWINDOW"
@Prev "PREFS_EDITOR"
@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" 142}. 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" Link "MAINWINDOW" 146}. 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.


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

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

@EndNode


@Node "MAINWINDOW" "ReqChange.guide/The prefs editor/Main window"
@Next "MAINWINDOW_MENUS"
@Prev "ARGUMENTS"
@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.

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

  @{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.

  @{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.

  @{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,
while 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" 8} 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}

  Saves the main window settings for permanent use.

  @{b}Use@{ub}

  Saves the main window settings. Any changes will be lost when you reboot
or turn of your computer.

  @{b}Cancel@{ub}

  Undos any changes you have done to the main window settings, and exits.
Any changes done to the lists are not affected.

@EndNode


@Node "MAINWINDOW_MENUS" "ReqChange.guide/The prefs editor/Main window menus"
@Next "MAINWINDOW_PROJECT"
@Prev "MAINWINDOW"
@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"
@Next "MAINWINDOW_EDIT"
@Prev "MAINWINDOW_MENUS"
@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 enabled, 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 (see @{"Main window" Link "MAINWINDOW"}).

@EndNode


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

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

  @{b}Lists...@{ub}

  This menu item opens the list editor window, where you can edit the deny
list and the Rexx list. If the window already is open, it will be unzoomed
if needed, and then brought to the front.

  @{b}Defaults@{ub}

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

  @{b}Last saved@{ub}

  This menu item reloads the last saved (using the "Save" gadget in the main
window) main preferences file (see @{"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"
@Next "MAINWINDOW_OPTIONS"
@Prev "MAINWINDOW_EDIT"
@Toc "MAINWINDOW_MENUS"

@{b}@{u}Patches@{uu}@{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 that 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}Update@{ub}

  This menu item will try to update the patches so that they reflect the
current settings of the 'Patches' 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 the
'Patches' 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. Disabling all
patches is equivalent to clearing all checkmarks in the 'Patches' menu.

  There are a couple of things that can make it impossible to remove the
patches.  There could be some allocated requesters around (these must be
freed before the patches can be removed), or someone else have "patched
over" some of the patches @{b}ReqChange@{ub} have done.

  If both the active patches count and the number of allocated requesters
are zero, it is very likely that @{b}ReqChange@{ub} is "overpatched", i.e. some other
program have patched a function @{b}ReqChange@{ub} already have patched. @{b}ReqChange@{ub}
can then only be removed if the other program is removed first. If you have
a "@{b}SetMan@{ub}-like" program installed, this shouldn't happen.

@EndNode


@Node "MAINWINDOW_OPTIONS" "ReqChange.guide/The prefs editor/Main window menus/Options"
@Next "EDITWINDOW"
@Prev "MAINWINDOW_PATCHES"
@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"
@Next "EDITWINDOW_MENUS"
@Prev "MAINWINDOW_OPTIONS"
@Toc "PREFS_EDITOR"

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

  In this window you can edit the two different lists, the deny list and the
Rexx list. Each list is saved in a separate file. These lists are not
affected by anything you do in the main window (except for the gadgets that
can exit the editor, which will close this window), and the main window is
not affected by anything you do here.

  The window contains the following gadgets:

  @{b}List type@{ub}

  This gadget lets you choose which list to edit. There are currently two
lists you can edit, the deny list and the Rexx 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 node) by
clicking on it. A double-click will open a window that allows you to edit
that node.  See @{"Deny window" Link "DENYWINDOW"} and @{"Rexx window" Link "REXXWINDOW"}

  @{b}Add...@{ub}

  This gadget opens an empty node-edit window so that you can enter a new
one.  See @{"Deny window" Link "DENYWINDOW"} and @{"Rexx window" Link "REXXWINDOW"}

  @{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 current
node. You can also double-click on that node in the listview gadget to do
the same thing. See @{"Deny window" Link "DENYWINDOW"} and @{"Rexx window" Link "REXXWINDOW"}

  @{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 current list, 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"
@Next "EDITWINDOW_PROJECT"
@Prev "EDITWINDOW"
@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"
@Next "EDITWINDOW_EDIT"
@Prev "EDITWINDOW_MENUS"
@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"
@Next "EDITWINDOW_OPTIONS"
@Prev "EDITWINDOW_PROJECT"
@Toc "EDITWINDOW_MENUS"

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

  @{b}Clear list...@{ub}

  This menu item will delete the current 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"
@Next "DENYWINDOW"
@Prev "EDITWINDOW_EDIT"
@Toc "EDITWINDOW_MENUS"

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

  @{b}Create icons@{ub}

  If this menu item is checked, icons will be saved with the list files you
save. 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"
@Next "REXXWINDOW"
@Prev "EDITWINDOW_OPTIONS"
@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. This is also
the name shown in the listview gadget.

  The following gadgets exist in the window:

  @{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}Ok@{ub}

  This gadget accepts the string as it is, and uses that name in the
new/changed node.

  @{b}Cancel@{ub}

  This gadget cancels the requester, and the list is left unchanged.

@EndNode


@Node "REXXWINDOW" "ReqChange.guide/The prefs editor/Rexx window"
@Next "EXCEPTWINDOW"
@Prev "DENYWINDOW"
@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}-command assiciated with them.

  The Rexx window contains the following gadgets:

  @{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 only enter a string if
the "Requester type" gadget is set to 'Any' or 'Text' (as these are the only
cases when there is a body to compare with).

  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 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" Link "TASKWINDOW"}. It containins a list of all the programs currently running,
with the name as @{b}ReqChange@{ub} sees them,  (see @{"Program window" Link "TASKWINDOW"}). The program
you select will be entered into the @{b}Program@{ub} gadget above.

  @{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.

  You should avoid sending commands that take a long time to execute, since
the requester won't appear until this command have returned. If you only
start a program, a simple "Run" in front of the program will do. Otherwise,
a good idea could be to place the macro in a normal file, and use a command
like:

  ADDRESS COMMAND "Run Rx <Filename>"

  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 list is left unchanged.

@EndNode


@Node "EXCEPTWINDOW" "ReqChange.guide/The prefs editor/Except window"
@Next "TASKWINDOW"
@Prev "REXXWINDOW"
@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 except window contains the following gadgets:

  @{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" Link "TASKWINDOW"}. It containins a list of all the programs currently running,
with the name as @{b}ReqChange@{ub} sees them,  (see @{"Program window" Link "TASKWINDOW"}). 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 is left unchanged.

@EndNode


@Node "TASKWINDOW" "ReqChange.guide/The prefs editor/Program window"
@Next "STARTRC"
@Prev "EXCEPTWINDOW"
@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 @{"Except window" Link "EXCEPTWINDOW"} or the @{b}Program@{ub} gadget in the
@{"Rexx window" Link "REXXWINDOW"}.

  The except window contains the following gadgets:

  @{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 Task 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 for some reason (this should normally not happen).

  @{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"
@Next "ACKNOWLEDGEMENTS"
@Prev "REXXWINDOW"
@Toc "Main"

@{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 handle 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" 8} 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.

  @{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" Link "PREFS_EDITOR"} and @{b}StartRC@{ub} use the
same catalog file, you will either need to have two copies of
@{b}reqchange.catalog@{ub}, or place it in @{b}Locale:Catalogs/<language>@{ub} (where
"<language>" is the language you have selected in the @{b}Locale@{ub} preferences
editor).

@EndNode


@Node "ACKNOWLEDGEMENTS" "ReqChange.guide/Acknowledgements"
@Next "FUTURE"
@Prev "STARTRC"
@Toc "Main"

@{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.

  The beta-testers (in random order): Roger Andersson, Johan Billing,
Michael Berg, Stefan Johannesdal, Stefan Zeiger, Per-Anders Josefsson,
Markus Aalto, Lieven Lema, Stu Churchill, Roger Nordin and Dennis Björklund.

  The translators (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}.

  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. They have done enough already! :)

@EndNode


@Node "FUTURE" "ReqChange.guide/The future"
@Next "PROGRAM_HISTORY"
@Prev "ACKNOWLEDGEMENTS"
@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:

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

  · A @{b}ReqTools@{ub}-patch (!). :) This patch would add the ARexx-messages to all
@{b}ReqTools@{ub} requesters, and probably add some of the @{b}ReqChange@{ub} prefs settings
too.

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

  · A @{b}RCPrefs@{ub} program (similar to @{b}IPrefs@{ub}) that would automatically re-load
the config files if they are changed "externally" (i.e. not by the prefs
editor). I certainly don't need such a program, but some persons maybe does?

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

  · Function keys to select one of the gadgets (ala @{b}Arq@{ub}) in the text
requesters. Should be in @{b}ReqTools@{ub}.. :)

@EndNode


@Node "PROGRAM_HISTORY" "ReqChange.guide/Program history"
@Next "ANCIENT_VERSIONS"
@Prev "FUTURE"
@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"}

@EndNode


@Node "ANCIENT_VERSIONS" "ReqChange.guide/Program history/Ancient versions"
@Next "VERSION_3_0"
@Prev "PROGRAM_HISTORY"
@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"
@Prev "ANCIENT_VERSIONS"
@Next "VERSION_3_1"
@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" 8}.

  · 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"
@Prev "VERSION_3_0"
@Next "VERSION_3_2"
@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"
@Prev "VERSION_3_1"
@Next "VERSION_3_3"
@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
directory 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" 8} 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 ReqTools included.

@EndNode


@Node "VERSION_3_3" "ReqChange.guide/Program history/Version 3.3"
@Prev "VERSION_3_2"
@Next "VERSION_3_4"
@Toc "PROGRAM_HISTORY"

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

  Bug fixes:

  · 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. Was this caused by a @{b}ReqTools@{ub} bug as well? :)


  Improvements:

  · 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"
@Prev "VERSION_3_3"
@Next "GLOSSARY"
@Toc "PROGRAM_HISTORY"

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

  · The "Only AssignWedge" option didn't work too well. Incorrect @{b}ARexx@{ub}-
messages was 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
agian (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_ONLY_ASSIGNWEDGE 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 "GLOSSARY" "ReqChange.guide/Glossary"
@Prev "VERSION_3_4"
@Next "INDEX"
@Toc  "Main"

@{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}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"
@Prev "GLOSSARY"
@Toc  "Main"

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

 @{" Acknowledgements             " Link "ACKNOWLEDGEMENTS"}
 @{" ARexx messages               " Link "AREXX_MESSAGES"}
 @{" Arguments                    " Link "ARGUMENTS"}
 @{" Arp                          " Link "ARP"}
 @{" Asl                          " Link "ASL"}
 @{" AssignWedge                  " Link "MAINWINDOW"}
 @{" Asl font requester           " Link "MAINWINDOW"}
 @{" Asl screen mode requester    " Link "MAINWINDOW"}
 @{" Author address               " Link "SHAREWARE"}
 @{" 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"}
 @{" IMHO                         " Link "GLOSSARY" 6}
 @{" Installation                 " Link "INSTALLATION"}
 @{" Introduction                 " Link "INTRODUCTION"}
 @{" Intuition                    " Link "INTUITION"}
 @{" Library                      " Link "GLOSSARY" 8}
 @{" 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/Intuition " Link "INTUITION"}
 @{" Patched requesters/Asl       " Link "ASL"}
 @{" Patched requesters/Arp       " Link "ARP"}
 @{" Patched requesters/Req       " Link "REQ"}
 @{" Patches                      " Link "MAINWINDOW_PATCHES"}
 @{" Preface                      " Link "PREFACE"}
 @{" Program history              " Link "PROGRAM_HISTORY"}
 @{" Program window               " Link "TASKWINDOW"}
 @{" Req                          " Link "REQ"}
 @{" Requester type               " Link "MAINWINDOW"}
 @{" Rexx list                    " Link "AREXX_MESSAGES"}
 @{" Rexx messages                " Link "MAINWINDOW"}
 @{" Rexx window                  " Link "REXXWINDOW"}
 @{" Rexxnode                     " Link "AREXX_MESSAGES"}
 @{" SetMan                       " Link "SYSTEM_REQUIREMENTS"}
 @{" Shareware                    " Link "SHAREWARE"}
 @{" StartRC                      " Link "STARTRC"}
 @{" String file macro            " Link "GLOSSARY" 11}
 @{" System requirements          " Link "SYSTEM_REQUIREMENTS"}
 @{" The AssignWedge              " Link "ASSIGNWEDGE"}
 @{" The future                   " Link "FUTURE"}
 @{" The prefs editor             " Link "PREFS_EDITOR"}
 @{" Why ReqChange?               " Link "INTRODUCTION"}

@EndNode
