home *** CD-ROM | disk | FTP | other *** search
/ Otherware / Otherware_1_SB_Development.iso / amiga / utility / misc / reqchang.run / ReqChange / ReqChange.Man < prev    next >
Encoding:
Text File  |  1992-09-04  |  62.9 KB  |  1,562 lines

  1.  
  2.  
  3.     ReqChange V1.14             User manual              ReqChange V1.14
  4.  
  5.  
  6.              ReqChange V1.14  ⌐ Copyright 1992 Magnus Holmgren
  7.              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  8.                       Replace some common requesters.
  9.                           Release date: 04 Sep 92
  10.  
  11.  
  12.                                 Legal stuff
  13.                                 ~~~~~~~~~~~
  14.  
  15.        This program  is  FREEWARE,  which  means  you may spread and use
  16.     this  program  freely,  as  long  as  the following restrictions are
  17.     followed: 
  18.  
  19.        1) All  files  are  copied  in an unmodified state. If additional
  20.     information  is  needed,  place  it  in  a separate file. Preferably
  21.     redistribute in the original archive form (*.run).  
  22.  
  23.        2) The  copying  is done on a non-commercial and non-profit basis
  24.     only.  A  copy  fee  to  replace  media  costs,  postage etc. may be
  25.     charged,  and  mustn't exceed the fee to obtain an AmigaLibDisk from
  26.     Fred Fish.  
  27.  
  28.        3) The  copier/spreader  is  not claiming the Copyright ⌐ of this
  29.     program.  
  30.  
  31.        Any exceptions   from   these   restrictions   requires   written
  32.     permission from the author, Magnus Holmgren.  
  33.  
  34.  
  35.  
  36.                                 DISCLAIMER:
  37.                                 ~~~~~~~~~~~
  38.  
  39.        This program  is  supplied 'as is'. No warranty is given that the
  40.     program  will work exactly as documented. I assume no responsibility
  41.     for  the  consequences  of  using this program. That is: Any loss of
  42.     data,  malfunction  etc.  caused  by this program can't be blamed on
  43.     me. If you use this program it's on your own risk.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.                                    Page 1
  61.  
  62.  
  63.     ReqChange V1.14             User manual              ReqChange V1.14
  64.  
  65.  
  66.                              What is ReqChange?
  67.                              ~~~~~~~~~~~~~~~~~~
  68.  
  69.        Every now  and  then, the programs you use needs to inform you of
  70.     some  important  thing,  or  perhaps  it needs the name of a file to
  71.     operate  on. When that happens, the programs often shows a requester
  72.     of  some  kind, allowing you to easily select between a few options,
  73.     or  enter  a  filename. Before OS 2.0, every program had to fix such
  74.     things  itself  -  except for information requesters with one or two
  75.     answers  -  perhaps by using some shared library which contained the
  76.     code (req.library is a good old one).  
  77.  
  78.        With OS  2.0,  such  requesters  was  included. How nice! Now all
  79.     programs  will  use  the same requester, because everyone who has OS
  80.     2.0,  will  also have these requesters, and there is no need for the
  81.     user to install some special library in the LIBS: directory.  
  82.  
  83.        There was  just  a few small problems with these requesters: They
  84.     weren't  that  good. For one thing, the information requesters where
  85.     glued  to  the  upper  left corner of the screen, you had to use the
  86.     mouse   to  confirm  them  -  or  some  more  or  less  cryptic  key
  87.     combination.  The  file  requester  was  generally  ugly, and it was
  88.     unbelievably slow, at least on a standard Amiga 500.  
  89.  
  90.        There seemed  to  be  no  good  solution  to  this problem. But I
  91.     wasn't  the  only  one  who thought like this! Nico Franτois was one
  92.     who  though  a  bit  like  me  here.  So  he  made this new library:
  93.     ReqTools,  which  is ⌐ Copyright Nico Franτois. And yes, I know; Yet
  94.     another  library.  But  this  is  a good one! It contains a bunch of
  95.     requesters  which  are  powerful  to the user, yet very easy to use.
  96.     They  looked good, and were generally fast and efficient. First time
  97.     I  saw  them I thought: "Why can't all programs use these instead?".
  98.     So  I  decided to do the best I could to allow all programs use this
  99.     great  library,  and  ReqChange is a program which fixes this as far
  100.     as  possible,  and  on the way, adds some extra features. I had some
  101.     experience  in writing patches (e.g.  NewRequest, which modified the
  102.     OS  1.3 AutoRequest to be much easier to use), so I knew what had to
  103.     be done to get a safe program.  
  104.  
  105.        What ReqChange  will  do  is to change the system requesters, and
  106.     some  other  requesters in common libraries to use the ones found in
  107.     ReqTools.  
  108.  
  109.        The earlier  versions  of ReqChange only worked on OS 2.04. As of
  110.     version  1.06  ReqChange works on 1.3 systems too (when I say 1.3, I
  111.     really  mean  1.2  and  1.3).  You need arp.library (v39), and a 1.3
  112.     version of reqtools.library (included) for this though.  
  113.  
  114.        As of  ReqChange 1.14, the libraries will only be changed if they
  115.     are  actually  open.  This  has  the  benefit of allowing the unused
  116.     libraries  to  be flushed out of memory, if this is needed. Also, if
  117.     you  don't  have  one of the libraries, it will never be opened, and
  118.  
  119.  
  120.                                    Page 2
  121.  
  122.  
  123.     ReqChange V1.14             User manual              ReqChange V1.14
  124.  
  125.  
  126.     thus  never  changed  (thanks  to Nico Franτois for this great idea,
  127.     which   he   first   implemented  in  his  similar  program,  called
  128.     RTPatch).   This  is  fixed  by  changing the routines that open and
  129.     close   the   libraries   (OpenLibrary()   and   CloseLibrary()   in
  130.     exec.library).  These  changes  should be completely transparent, so
  131.     you shouldn't need to worry about it.  
  132.  
  133.        There is  also a program called RTPatch (included in the ReqTools
  134.     distribution  archive),  that  does  similar things as ReqChange. To
  135.     make  it  easier  for you to decide which program you prefer, I will
  136.     here  make  a quick rundown on the most important differences in the
  137.     two  programs  (see  below  for  more information about the features
  138.     ReqChange has).  
  139.  
  140.        Things in favour for RTPatch: 
  141.  
  142.        o It  uses  much  less  memory (~20-25 Kb), and thus, offers less
  143.     extra features.  
  144.        o It has a patch that makes all/some screens have a 3D look.  
  145.        o Understands some of the new ASL V38 options.  
  146.  
  147.        Things in favour for ReqChange: 
  148.  
  149.        o The  REQ  patches  are  more  complete  (timeout and abourtmask
  150.     fully supported).  
  151.        o Has  a  builtin  "AssignX" clone, that works on OS 1.3/2.0, and
  152.     understands translated requesters.  
  153.        o Many  options,  all  controllable  from a nice window interface
  154.     (on OS 2.0).  Changes take place immediately.  
  155.        o Sound effects in "information" requesters (ala ARQ), via UPD.  
  156.        o Pathces  the  ASL  font  requester. Sice ReqTools lacks some of
  157.     the  features  in  this  requester,  some (especially those who have
  158.     Workbench 2.1) may regard this as a drawback.  
  159.        o Buffers the ASL file and font requester.  
  160.        o Doesn't  require  all  libraries  to  be un-used at the time of
  161.     installation.  
  162.        o Can   be   temporarily  disabled  (via  the  Exchange  program,
  163.     available  on  OS  2.0). Also, you can remove/add the patches to any
  164.     of the libraries from the window interface.  
  165.  
  166.  
  167.  
  168.        The requesters  that  are  currently  changed  by  ReqChange  are
  169.     these: 
  170.  
  171.                          AutoRequest & EasyRequest
  172.  
  173.        These are  two  very  similar requesters, which the OS uses a lot
  174.     (to  the user, they are very similar; The difference is the way they
  175.     are  called  and  what  features  they  have).  They  are  used  for
  176.     information, and simple questions/confirmations.  
  177.  
  178.  
  179.  
  180.                                    Page 3
  181.  
  182.  
  183.     ReqChange V1.14             User manual              ReqChange V1.14
  184.  
  185.  
  186.        EasyRequest is  a  new  function  in OS 2.04, so it's only if you
  187.     have OS 2.04 this function will be changed.  
  188.  
  189.  
  190.                                 FileRequest
  191.  
  192.        The filerequester  in arp.library (ARP for short). Once, this was
  193.     more  or less "the" standard filerequester, but it is a bit old, and
  194.     doesn't look good at all under OS 2.04.  
  195.  
  196.  
  197.  
  198.                           RequestFile & AslRequest
  199.  
  200.        These are  the  new file and font requesters in OS 2.04. The code
  201.     for these is located in asl.library (ASL for short).  
  202.  
  203.  
  204.                                 TextRequest
  205.  
  206.        This REQ  function is similar to AutoRequest and EasyRequest, but
  207.     it  is  a  bit  more  powerful.  The  features  of  REQ V2 are fully
  208.     supported (timeout and abortmask).  
  209.  
  210.  
  211.                           GetString & NewGetString
  212.  
  213.        These routines  are  in req.library (REQ for short), and provides
  214.     a  string requester (only difference between the two is the way they
  215.     are called).  
  216.  
  217.  
  218.                                   GetLong
  219.  
  220.        Another REQ  function.  This  is  a requester very similar to the
  221.     GetString  requester, but you can only enter numbers in this one. It
  222.     also  shows  the  max  and min values you can enter (REQ V2 has this
  223.     feature).  
  224.  
  225.  
  226.                   ColorRequester & ExtendedColorRequester
  227.  
  228.        These are  the palette requesters in REQ (they only differ in the
  229.     way they are called).  
  230.  
  231.  
  232.                                FileRequester
  233.  
  234.        This is the file and font requester in REQ.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.                                    Page 4
  241.  
  242.  
  243.     ReqChange V1.14             User manual              ReqChange V1.14
  244.  
  245.  
  246.                                Compatibility
  247.                                ~~~~~~~~~~~~~
  248.  
  249.        Some of  the  features  that  exists  in  ARP  are not supported.
  250.     Currently,  no "callback hooks" are supported. I could add the "file
  251.     callback  hook",  but  very few programs use this feature. The other
  252.     features  cannot  be  supported,  due  to  "limitations" in ReqTools
  253.     (nope,  I'm  not  complaining.  I  don't need those features (and it
  254.     seems  like  no  programs  uses  them)! :). This "ignorance" will at
  255.     most  cause  a  bit  of inconvenience to you; a missing gadget which
  256.     "should"  be  there,  a few files are shown that really shouldn't be
  257.     shown etc. This will probably not happen very often.  
  258.  
  259.        ReqTools lacks  some features in ASL, but I guess you only rarely
  260.     will  notice that. The one you may notice is the lack of possibility
  261.     to choose colors and drawmodes in the font requester.  
  262.  
  263.        REQ's filerequester  has  a limit on the number of files the user
  264.     may  multiselect.  As  ReqTools  doesn't have such a thing, it means
  265.     that  some of the files you multiselect might not be returned to the
  266.     calling  program  (this  could  also  happen  if  you're very low on
  267.     memory).  This  is  not  a  real problem, but you should be aware of
  268.     it.  
  269.  
  270.  
  271.                                   Problems
  272.                                   ~~~~~~~~
  273.  
  274.        If a  program  uses the pattern matching feature in ASL, there is
  275.     a  small  problem, because ReqTools handles .info files (i.e. icons)
  276.     differently.  Now,  e.g. IconEdit's "Project/Open..." menu selection
  277.     open  up  a  file  requester for the user to choose an icon to load.
  278.     Since  the  user  obviously  only  should  choose  an icon file, the
  279.     pattern  used  here  is "#?.info", which would show all files ending
  280.     with  .info.  But  ReqTools doesn't count the .info file as a "real"
  281.     file.   Each   .info   file   is  attached  to  its  "parent"  (e.g.
  282.     ReqChange.info is attached to ReqChange), if such is available.  
  283.  
  284.        If the  pattern  says  that a parent shouldn't be shown, then the
  285.     corresponding  .info  file  will  not be shown either, regardless of
  286.     the  state  of  the  ".info"  gadget.  If the gadget is highlighted,
  287.     .icon  files  which  has  a  visible parent is shown (if there is no
  288.     parent,  the  .info file will be shown anyway), otherwise not. Since
  289.     all  parents  fail  because of the #?.info pattern, no files will be
  290.     visible.  
  291.  
  292.        To solve  this  problem,  ReqChange  checks to see if the pattern
  293.     contains  the  string  ".info",  and  if this is the case, ReqChange
  294.     will  not  use  any  pattern  in the requester (the pattern is still
  295.     placed  in  the  FileRequester  structure  anyway).  Also,  when any
  296.     pattern  is  used,  ReqChange  will  always  tell ReqTools to show a
  297.     pattern gadget.  
  298.  
  299.  
  300.                                    Page 5
  301.  
  302.  
  303.     ReqChange V1.14             User manual              ReqChange V1.14
  304.  
  305.  
  306.  
  307.        If you  have  a  multiselect  requester,  the  requester  will be
  308.     "canceled"  if you left the filename gadget empty and clicked ok (if
  309.     the  requester  isn't  in  multiselect  mode  then  it  will  not be
  310.     canceled), and didn't select any files.  
  311.  
  312.        Apart from  these  problems,  the ASL patches should work ok. But
  313.     these  patches  might  cause  problems  with  programs that requires
  314.     newer  versions  of  ASL  than  V37.27. Although I don't see this as
  315.     likely,  there  is  still  a  potential  danger  (and  since I can't
  316.     predict the future, I don't know what to do to eliminate this :).  
  317.  
  318.        The REQ  patches  are  as compatible as possible. There should be
  319.     no  problems  with req.library V2 or lower, but newer versions might
  320.     cause  some problems.  This is because ReqChange uses some fields in
  321.     the  filerequester structure that are reserved for future use to get
  322.     directory-buffering.  As  long  as  these  are  not put into use, it
  323.     should work ok.  
  324.  
  325.        The number-requester  in REQ (GetLong) patch doesn't quite behave
  326.     like  the  original. Sometimes, there will be no default value, when
  327.     it  normally  should  be. I do not know how REQ determines how to do
  328.     it,  but  it  seems  to involve some sort of magic. ;) I've followed
  329.     the manual, that's all I can say.  
  330.  
  331.        There is  one more slight problem: ReqChange will try to lock its
  332.     home  directory.  Thus,  you  may  have  problems  in  deleting  the
  333.     directory  in  which ReqChange is/was located. Quit ReqChange to fix
  334.     this  problem. It does not show up if you started ReqChange from CLI
  335.     on OS 1.3.  
  336.  
  337.  
  338.                                 Installation
  339.                                 ~~~~~~~~~~~~
  340.  
  341.        ReqChange is  very  easy  to install. Simply run it. But remember
  342.     that  the  file reqtools.library (of appropriate version) must be in
  343.     your  LIBS:  drawer.  The  install script places this file there for
  344.     you.  ReqChange  autodetaches nicely, which means you do not need to
  345.     "Run"  it,  if  you  start  it from a CLI. If anything goes wrong, a
  346.     requester  will  pop  up,  informing you about it, possibly allowing
  347.     you  to take different actions. If you have started the program from
  348.     a CLI, some of the messages will appear in that CLI-window.  
  349.  
  350.        For a  more  permanent installation, simply drag ReqChange to the
  351.     WBStartup  drawer  (if you have OS 2.0 that is), or enter a suitable
  352.     line in your S:User-Startup, S:Startup-Sequence or similar.  
  353.  
  354.        If no message appears ReqChange should have installed ok.  
  355.  
  356.        MFR (⌐  1992  by  Stefan Stuntz) users who wants to use ReqChange
  357.     for  everything  but  the  filerequesters  (for which they use MFR),
  358.  
  359.  
  360.                                    Page 6
  361.  
  362.  
  363.     ReqChange V1.14             User manual              ReqChange V1.14
  364.  
  365.  
  366.     should  do  this:  First run ReqChange, and after that, MFR (if both
  367.     MFR  and ReqChange are in WBStartup, set the STARTPRI in ReqChange's
  368.     tooltypes  to  at least 1 higher than the corresponding value in MFR
  369.     (if  no  such  value  can  be found, it will default to zero)). I've
  370.     tried  this,  and  it  works fine, as long as you make sure that the
  371.     tooltype  DONOTWAIT doesn't exist in ReqChange's icon (by default it
  372.     doesn't).  
  373.  
  374.        Although you  have  installed  ReqChange, there might be programs
  375.     running,  which  allocated  some  ASL  buffers  before ReqChange got
  376.     active.  If  this  is  the  case,  ReqChange  will  not  change that
  377.     particular request (i.e. you'll see the old ASL-requester).  
  378.  
  379.  
  380.        If you  did  specify  an  idfile  (see  below),  and  ARexx (i.e.
  381.     rexxsyslib.library)  wasn't  available, you will be presented with a
  382.     requester informing you about the fact. It also has three gadgets: 
  383.  
  384.        "Retry"  -  Try  to open the library again. Now you have a chance
  385.     to install the library in question before proceeding.  
  386.  
  387.        "Ignore" -  Don't  care about it. This also means that the idfile
  388.     will be ignored.  
  389.  
  390.        "Quit"   - Simply quits ReqChange.  
  391.  
  392.        If reqtools.library,  icon.library  or  commodities.library won't
  393.     open,  you  will be presented with a similar requester, but that one
  394.     lacks   the  "Ignore"  gadget.   ReqChange  will  not  try  to  open
  395.     commodities.library if you have OS 1.3.  
  396.  
  397.  
  398.                              Removing ReqChange
  399.                              ~~~~~~~~~~~~~~~~~~
  400.  
  401.        You can remove ReqChange in four ways: 
  402.  
  403.        1) Use  the  Exchange  program. Select ReqChange in the list, and
  404.     click on "Kill". This feature requires OS 2.04.  
  405.  
  406.        2) Run  ReqChange again. The screen will flash to indicate that a
  407.     termination  message  was sent to the installed ReqChange. This only
  408.     works  on  1.3  systems.  If  you  do  this  on  OS 2.0 systems, the
  409.     settings window will pop up.  
  410.  
  411.        3) Send  ReqChange  a  break  signal  (to  do  this  you  can use
  412.     SignalRC  or  e.g.   Xoper). ReqChange will quit on the break signal
  413.     C.  If you send it an F, the window will pop up (on OS 2.0). See the
  414.     "Break  signals"  below for further information about break signals,
  415.     and how they affect ReqChange.  
  416.  
  417.        4) In  the  settings window (which only is available on OS 2.0)),
  418.  
  419.  
  420.                                    Page 7
  421.  
  422.  
  423.     ReqChange V1.14             User manual              ReqChange V1.14
  424.  
  425.  
  426.     use either the "Quit" menu or gadget.  
  427.  
  428.        Although you  tell  ReqChange  to  quit, this doesn't necessarily
  429.     mean  that  the  program  will terminate. If some other program have
  430.     changed  any  requester after ReqChange installed itself (e.g. MFR),
  431.     there  are  some allocated buffers around, or a requester is active,
  432.     then  ReqChange  can't be removed.  If this is the case, a requester
  433.     will pop up, telling you about the specific problem.  
  434.  
  435.        I've done  what's  possible  (to  my  knowledge  :)  to make this
  436.     removing  as  safe  as  possible, but I can't make it 100% safe. But
  437.     the  chance  that ReqChange will cause a guru (sooner or later) when
  438.     it  removes  itself is *very* small. The following explanation needs
  439.     some knowledge about the Amiga and programming to understood fully: 
  440.  
  441.        There might  be  a  call  to  a  function   - that ReqChange have
  442.     changed  - that didn't have time to be noticed in a global variable,
  443.     before  a task switch occurred that switched in ReqChange, which was
  444.     just  about  to  remove  itself  from  the  system. Since the global
  445.     variable  says  that  no  requesters are active, ReqChange starts to
  446.     remove  itself  from  the  system.  What about that pending call you
  447.     ask??   Well,   that   will  continue  to  execute  as  nothing  had
  448.     happened... Guess what happens...  
  449.  
  450.        I don't  know  if  this ever can happen in practice (the critical
  451.     time-interval  is  very small, it's about 200-300 clock-cycles or so
  452.     on a 68000 CPU), but in theory, this may happen! 
  453.  
  454.  
  455.                                   Options
  456.                                   ~~~~~~~
  457.  
  458.        There are  a  few  (?)  options  you  can  use, to make ReqChange
  459.     behave  the  way  you  want. These options can be used either in the
  460.     CLI  or  via  the  ToolTypes fields in the icon. Here follows a list
  461.     over  all  options.  All  options  should  be followed by additional
  462.     information,  separated  by  a  "="  (when  running  from  the  CLI,
  463.     whitespace  is  also  possible  if  you  have OS 2.04, and mandatory
  464.     (i.e.  "="  doesn't  work)  if  you  have  OS  1.3).  If  you invoke
  465.     ReqChange  from  the CLI, some options have a shortcut. They are the
  466.     one  in  front  of  the "=" char in the keyword in question (e.g. to
  467.     set  the minheight to 200, use either "MIH 200" or "MINHEIGHT 200").
  468.     If  you  enter  an invalid option somewhere, ReqChange will normally
  469.     inform you about it, and fall back to the default value.  
  470.  
  471.        The options are: 
  472.  
  473.  
  474.                                MIH=MINHEIGHT
  475.  
  476.        This option should be followed by a numeric argument.  
  477.  
  478.  
  479.  
  480.                                    Page 8
  481.  
  482.  
  483.     ReqChange V1.14             User manual              ReqChange V1.14
  484.  
  485.  
  486.        This option  specifies  the  minimum  height  (in  pixels) of the
  487.     filerequester  window.  Any  height requests lower than this will be
  488.     ignored  (and  the  requester  will  be  MINHEIGHT  pixels high). To
  489.     disable this feature, use the height 0.  Default value is 0.  
  490.  
  491.        If the  requester  is  about  to appear on a screen which visible
  492.     height is more than 400 pixels, this value will be doubled.  
  493.  
  494.  
  495.                                MAH=MAXHEIGHT
  496.  
  497.        This option should be followed by a numeric argument.  
  498.  
  499.        This option  specifies  the  maximum  height  (in  pixels) of the
  500.     filerequester  window.  Any height requests higher that this will be
  501.     ignored  (and  the  requester  will  be  MAXHEIGHT  pixels high). To
  502.     disable  this  feature,  use  the height -1 (which in fact will turn
  503.     into 4 294 967 295 :). Default height is -1.  
  504.  
  505.        If the  requester  is  about  to appear on a screen which visible
  506.     height  is  more than 400 pixels, this value will be doubled (oh, if
  507.     you use -1, it will turn into 4 294 967 294... ;).  
  508.  
  509.  
  510.                                 TO=TOPOFFSET
  511.  
  512.        This option should be followed by a numeric argument.  
  513.  
  514.        This option  specifies  the  vertical offset (in pixels) from the
  515.     center  of  the  window/screen  or  the  top-left  position  of  the
  516.     window/screen  that the requester should show up at. This offset has
  517.     no effect on the POINTER centering. Default is 0.  
  518.  
  519.  
  520.                                LO=LEFTOFFSET
  521.  
  522.        This option should be followed by a numeric argument.  
  523.  
  524.        This option  specifies the horizontal offset (in pixels) from the
  525.     center  of  the  window/screen  or  the  top-left  position  of  the
  526.     window/screen  that the requester should show up at. This offset has
  527.     no effect on the POINTER centering. Default is 0.  
  528.  
  529.  
  530.                                   C=CENTER
  531.  
  532.        This option  specifies  the  centering to be used for information
  533.     requesters.   Can  be  any of WINDOW, SCREEN, TOPLEFTWIN, TOPLEFTSCR
  534.     or  POINTER. Default value is POINTER (actually, anything that isn't
  535.     WINDOW,  SCREEN,  TOPLEFTWIN  or  TOPLEFTSCR  is  considered  to  be
  536.     POINTER).  
  537.  
  538.  
  539.  
  540.                                    Page 9
  541.  
  542.  
  543.     ReqChange V1.14             User manual              ReqChange V1.14
  544.  
  545.  
  546.        See below on the "Centering" section for further information.  
  547.  
  548.  
  549.                                 FRC=FRCENTER
  550.  
  551.        This option  specifies  the  centering  to  be used for the file,
  552.     font   and   palette  requesters,  as  well  as  ReqChange's  window
  553.     interface.  Can  be any of WINDOW, SCREEN, TOPLEFTWIN, TOPLEFTSCR or
  554.     POINTER.  Default  value  is  POINTER (actually, anything that isn't
  555.     WINDOW,  SCREEN,  TOPLEFTWIN  or  TOPLEFTSCR  is  considered  to  be
  556.     POINTER).  
  557.  
  558.        See below on the "Centering" section for further information.  
  559.  
  560.  
  561.                                CT=CENTERTEXT
  562.  
  563.        This option  should be followed by either YES or NO. NO turns the
  564.     option  off,  while  YES (or anything that isn't NO or OFF) says the
  565.     option should be on.  
  566.  
  567.        Although the  name  is  similar to some other switches above, the
  568.     difference   in   action  is  large.  If  this  switch  is  on,  all
  569.     information  requesters'  text  will be centered. That is, each line
  570.     of  the text in the requester is centered within the requester. This
  571.     will  definitively  look  bad  if the text was centered "by hand" by
  572.     the  programmer,  but on the other hand, this is not common. Default
  573.     is YES.  
  574.  
  575.  
  576.                                  PS=POPSCR
  577.  
  578.        This option  should be followed by either YES or NO. NO turns the
  579.     option  off,  while  YES (or anything that isn't NO or OFF) says the
  580.     option should be on.  
  581.  
  582.        If this  switch  is on, ReqTools will pull the screen a requester
  583.     appears  on  to  the  front, just after the requester is opened. The
  584.     screen  that  was in front when the requester opened will be brought
  585.     back  (if  it  still  exists)  when the requester closes later on. I
  586.     wouldn't  be  surprised  if some users finds this a bit annoying, so
  587.     here you can disable this feature in ReqTools. Default is YES.  
  588.  
  589.  
  590.                                 BF=BACKFILL
  591.  
  592.        This option  should be followed by either YES or NO. NO turns the
  593.     option  off,  while  YES (or anything that isn't NO or OFF) says the
  594.     option should be on.  
  595.  
  596.        If this  switch  is  on,  ReqTools have a backfill pattern in the
  597.     GetLong()  and  GetString() changes in REQ. At the moment, these two
  598.  
  599.  
  600.                                   Page 10
  601.  
  602.  
  603.     ReqChange V1.14             User manual              ReqChange V1.14
  604.  
  605.  
  606.     requesters  are  the  only  two  in  ReqTools  which  supports this.
  607.     Default is YES.  
  608.  
  609.  
  610.                                   A=ASSIGN
  611.  
  612.        This option  should be followed by either YES or NO. NO turns the
  613.     option  off,  while  YES (or anything that isn't NO or OFF) says the
  614.     option should be on.  
  615.  
  616.        When this  switch  is on, ReqChange will check for "Please insert
  617.     volume..."  requesters.  When  such a requester pops up, you will be
  618.     presented  with  a  requester  that allows you to make an assign for
  619.     this  volume  on  the  fly,  or  maybe try to mount it, or you could
  620.     disable this volume name. Default is YES.  
  621.  
  622.        See below  in  the  "Make  assigns"  sections  below  for further
  623.     information.  
  624.  
  625.  
  626.                                     KEYS
  627.  
  628.        This option  should be followed by either YES or NO. NO turns the
  629.     option  off,  while  YES (or anything that isn't NO or OFF) says the
  630.     option should be on.  
  631.  
  632.        If this  switch  is  off,  it  will  disable most of the keyboard
  633.     shortcuts  in  the  information  requesters, except for a few. These
  634.     are:  Left  Amiga  'V',  Left  Amiga  'B' and ESC. Left Amiga 'V' is
  635.     equivalent  with  the  leftmost gadget. Left Amiga 'B' is equivalent
  636.     with the rightmost gadget, as is the ESC key. Default is YES.  
  637.  
  638.  
  639.                                     ASL
  640.  
  641.        This option  should be followed by either YES or NO. NO turns the
  642.     option  off,  while  YES (or anything that isn't NO or OFF) says the
  643.     option should be on.  
  644.  
  645.        If the  option is on, ReqChange will change the file requester in
  646.     ASL,  otherwise  not.  If this switch is off, ReqChange will make no
  647.     attempt to open ASL. Default is YES.  
  648.  
  649.        This option is always NO on OS 1.3.  
  650.  
  651.  
  652.                                     ARP
  653.  
  654.        This option  should be followed by either YES or NO. NO turns the
  655.     option  off,  while  YES (or anything that isn't NO or OFF) says the
  656.     option should be on.  
  657.  
  658.  
  659.  
  660.                                   Page 11
  661.  
  662.  
  663.     ReqChange V1.14             User manual              ReqChange V1.14
  664.  
  665.  
  666.        If the  option is on, ReqChange will change the file requester in
  667.     ARP,  otherwise  not.  If this switch is off, ReqChange will make no
  668.     attempt  to open ARP. Thus, you don't need arp.library to be able to
  669.     run ReqChange.  
  670.  
  671.     NOTE: 
  672.        If  you  are  running  OS 1.3, you need ARP. The ARP switch is
  673.        still useable though, to control the filerequester change.  
  674.  
  675.        Default is YES.  
  676.  
  677.  
  678.                                     REQ
  679.  
  680.        This option  should be followed by either YES or NO. NO turns the
  681.     option  off,  while  YES (or anything that isn't NO or OFF) says the
  682.     option should be on.  
  683.  
  684.        If the  option is on, ReqChange will change the file requester in
  685.     REQ,  otherwise  not.  If this switch is off, ReqChange will make no
  686.     attempt  to  open  REQ.  Thus,  you don't need REQ to be able to run
  687.     ReqChange. Default is YES.  
  688.  
  689.  
  690.                                FIB=FILEBUFFER
  691.  
  692.        This option  should be followed by either YES or NO. NO turns the
  693.     option  off,  while  YES (or anything that isn't NO or OFF) says the
  694.     option should be on.  
  695.  
  696.        This switch  lets  you  (de)active  the filename buffering on the
  697.     filerequesters.   The  ARP filerequester is never buffered. Some REQ
  698.     filerequesters  may  not be buffered even if you specify YES, but if
  699.     you  say  NO,  no  REQ  filerequesters  will be buffered. Default is
  700.     YES.  
  701.  
  702.  
  703.                                FOB=FONTBUFFER
  704.  
  705.        This option  should be followed by either YES or NO. NO turns the
  706.     option  off,  while  YES (or anything that isn't NO or OFF) says the
  707.     option should be on.  
  708.  
  709.        This switch  lets  you  (de)active  the filename buffering on the
  710.     fontrequesters.   If  you  have  e.g.  FontCacheX  (by Steve Tibbet)
  711.     running,  there  is  no  need  to  buffer  the fontrequester (double
  712.     buffering  wastes  memory),  since  FontCacheX  makes the reading of
  713.     FONTS:  so  fast  anyway  (apart  from  first  the  read).  Some REQ
  714.     fontrequesters  may  not be buffered even if you specify YES, but if
  715.     you say NO, no fontrequesters will be buffered. Default is YES.  
  716.  
  717.  
  718.  
  719.  
  720.                                   Page 12
  721.  
  722.  
  723.     ReqChange V1.14             User manual              ReqChange V1.14
  724.  
  725.  
  726.                                  ID=IDFILE
  727.  
  728.        This option  should  be  followed  by  the  name of a plain ASCII
  729.     file. No typechecking is done.  
  730.  
  731.        This option  allows  you to get information requesters with sound
  732.     effects.  See below in the "Idfile format" section below for further
  733.     information. This feature needs ARexx.  
  734.  
  735.        Default is  no  name  at  all  (which  means  you  get  no  sound
  736.     effects).  
  737.  
  738.  
  739.                                  CX_POPKEY
  740.  
  741.        This option should be followed by an input description string.  
  742.  
  743.        This option  lets  you  specify which (hot)key combination to pop
  744.     up  the  settings window. If you enter an empty string (""), you can
  745.     disable  this  feature.  You  can  always  open the window by either
  746.     starting ReqChange again, or by using the Exchange program.  
  747.  
  748.        The string  will automatically be truncated if its length exceeds
  749.     100 chars.  
  750.  
  751.        For more  information about input description strings, please see
  752.     below  (section  "Input description strings"), or have a look in the
  753.     manual for OS 2.0.  
  754.  
  755.        This option  is  always  disabled  on OS 1.3. Default is "control
  756.     lalt r" 
  757.  
  758.  
  759.                                   CX_POPUP
  760.  
  761.        This option  should be followed by either YES or NO. If you enter
  762.     NO,  it  means  that the settings window will not open upon startup.
  763.     If  you  enter  YES (or anything that isn't NO or OFF), the settings
  764.     window  will  pop  up  when  you start ReqChange. This option has no
  765.     effect on OS 1.3. Default is YES.  
  766.  
  767.  
  768.                                 CX_PRIORITY
  769.  
  770.        This option  should be followed by a number, in the range of -128
  771.     to  127.  It  specifies  the priority for the CX_POPKEY argument. If
  772.     you  have  other  programs  that  uses  the very same (hot)key, this
  773.     priority  number  decides  which  program  that  actually  gets  the
  774.     keypress-report  (the  one with the highest number gets the report).
  775.     This option has no effect on OS 1.3. Default is 0.  
  776.  
  777.  
  778.  
  779.  
  780.                                   Page 13
  781.  
  782.  
  783.     ReqChange V1.14             User manual              ReqChange V1.14
  784.  
  785.  
  786.                                  Centering
  787.                                  ~~~~~~~~~
  788.  
  789.        ReqTools supports  a  number of different centering types for all
  790.     requesters.   ReqChange  allows you to select which centering method
  791.     to  be  used  on  all requesters ReqChange changes. You may have one
  792.     centering  types  for  information  requesters,  and one for all the
  793.     other  requesters  (file,  font,  palette etc.).  The following list
  794.     contains  all  centering  types, and these are the possible keywords
  795.     that the CENTER and FRCENTER keywords accept: 
  796.  
  797.        WINDOW -  makes  the  requesters centered in the "parent" window,
  798.     if  the  caller supplied such a window. Otherwise the requester will
  799.     be centered in the screen.  
  800.  
  801.        SCREEN - makes the requesters centered on the screen.  
  802.  
  803.        TOPLEFTWIN -  makes  the  requesters  centered  in the upper left
  804.     corner  of  the  "parent"  window,  if  the  caller  supplied such a
  805.     window.  Otherwise  the  requester  will be placed in the upper left
  806.     corner of the screen.  
  807.  
  808.        TOPLEFTSCR -  makes  the  requesters  placed  in  the  upper left
  809.     corner of the screen.  
  810.  
  811.        POINTER -  makes  the  requesters (or rather the rightmost gadget
  812.     in the requester) centered under the mouse.  
  813.  
  814.        If ReqTools   couldn't   place   the   requester   exactly  where
  815.     requested, it will be placed as close as possible.  
  816.  
  817.        If you  want,  you  could  add  offsets to these centering types,
  818.     with  the TOPOFFSET and LEFTOFFSET keywords (see above). They do not
  819.     affect the POINTER centering mode.  
  820.  
  821.  
  822.                                 Make assigns
  823.                                 ~~~~~~~~~~~~
  824.  
  825.        Quite often,  an Amiga user sees a requester asking for a certain
  826.     volume  ("Please  insert volume..."). Often, it is an assign that is
  827.     missing,  so  you  have  to  find a CLI, and make that assign there.
  828.     Steve  Tibbet  found  this  a bit cumbersome. So he made a program -
  829.     AssignX  -  that  allowed  the  user  to make the assign on the fly,
  830.     directly  from  the  requester.  No  CLI  needed. This was fine, but
  831.     AssignX  didn't  work  that well with earlier versions (1.0-1.12) of
  832.     ReqChange,  since  earlier  versions  of  ReqTools  (before V2.0 (or
  833.     V38))  didn't  allow  the  filename field to be empty, while ASL did
  834.     that.  AssignX used this so you could assign both files and drawers.
  835.     This made it impossible to make assigns.  
  836.  
  837.        Because of  this,  I wrote my own AssignX version, and built that
  838.  
  839.  
  840.                                   Page 14
  841.  
  842.  
  843.     ReqChange V1.14             User manual              ReqChange V1.14
  844.  
  845.  
  846.     one  into  ReqChange.  This  version couldn't make assigns to files,
  847.     but  that  was  a  minor problem (at least for me). Later on I added
  848.     all  the  features AssignX had (mount and deny), and as of ReqChange
  849.     1.13, you can also make assign to files.  
  850.  
  851.        It should  also  be noted that the "ReqChange version" of AssignX
  852.     is  better  coded  that  the  original.  Or  that is at least what I
  853.     think!  :)  E.g.  the  Deny  feature  (see below) uses somewhat less
  854.     memory,  and  doesn't fragment the memory that much either. The deny
  855.     part  is  safer  too  (some  potential  problems  removed).   And my
  856.     AssignX  version  works  on  OS  1.3!  So  there  is  no need to use
  857.     AssignX, even if that would work.  
  858.  
  859.        During startup,  ReqChange  will try to find out what the "Please
  860.     insert  volume"  string is translated to (by locale.library or SRT).
  861.     This  is  done  by trying to Lock() (i.e. get a simple reference for
  862.     it.  Can  also  be  used  to  check  if  a certain name refers to an
  863.     existing  volume/drawer/file)  a  volume  named  "__▀⌐«⌐«▀__:" (This
  864.     might  fail, if you have a volume/assign with that name. But I don't
  865.     take  that  as likely... :) Even if you do have a volume/assign with
  866.     that  name,  ReqChange will still be able to find the default string
  867.     ("Please  insert  volume")).  The  "assign"  code will then copy the
  868.     first  line  in  the requester that is generated (but not seen), and
  869.     it  will  use  that  text  to  search for. As this translation might
  870.     change,  you  have  the possibility to update this. This can be done
  871.     in two ways: 
  872.  
  873.        1) Send  ReqChange  a  break  e  signal  (via  SignalRC  or  e.g.
  874.     Xoper).  
  875.  
  876.        2) Use  the  menu-entry  named "Update assign" (you have a better
  877.     name?? Then send me a letter! :).  
  878.  
  879.        When a  "Please  insert..."  requester  is detected, five gadgets
  880.     will  show up instead of the normal two. The three extra gadgets are
  881.     these: 
  882.  
  883.        "Mount" -  This  gadget will try to mount the volume in question.
  884.     This  function  requires Mount to be available in C:, and a suitable
  885.     entry in the DEVS:MountList file to succeed.  
  886.  
  887.        "Assign..." -  This  gadget  lets you enter an assignment, with a
  888.     ReqTools  file  requester. You can enter a file or a directory here.
  889.     To select a directory, simply leave the filename gadget empty.  
  890.  
  891.        "Deny" -   This   gadget  will  cancel  the  requester,  and  any
  892.     requesters  in the future (until you reboot or quit ReqChange) which
  893.     requests for the current volume name.  
  894.  
  895.        Currently you cannot translate these gadgets.  
  896.  
  897.  
  898.  
  899.  
  900.                                   Page 15
  901.  
  902.  
  903.     ReqChange V1.14             User manual              ReqChange V1.14
  904.  
  905.  
  906.                                Idfile format
  907.                                ~~~~~~~~~~~~~
  908.  
  909.        This feature  needs  ARexx  to  work.  This  means that ReqChange
  910.     needs  rexxsyslib.library. If you didn't enter any IDFILE, ReqChange
  911.     will  still try to open ARexx, but in case that failed, you will not
  912.     be  informed  about it (which you ofcourse will, if you did enter an
  913.     id  file).  If the "Read" gadget in the window interface (see below)
  914.     is  disabled,  it  means  that  ARexx  wasn't  available at the time
  915.     ReqChange was started.  
  916.  
  917.        There is  a  program  called  Arq  (Copyright ⌐ 1990,91 by Martin
  918.     Laubach  and  Peter Wlcek), that changes EasyRequest and AutoRequest
  919.     to  use  real  fancy requesters, with different animations and sound
  920.     effects,  based  on  the  text in the requester. Those sound effects
  921.     were  achieved  by  having  a  "player deamon", i.e.  a program that
  922.     waits  in  the background for someone to send it a request to play a
  923.     sample.  This  player deamon is called Upd (⌐ 1991 Jonas Petersson &
  924.     Absolut  Software (aka Sirius Soft)). Some persons really liked this
  925.     feature,  and  they  would  like  to  see  it in ReqChange too. So I
  926.     implemented  it  (unfortunately,  I've  forgot who asked for this...
  927.     :).  
  928.  
  929.        The basic  idea  is  simple.  Whenever  an  information requester
  930.     contains  some  certain text, an id is sent to Upd (or rather, to an
  931.     ARexx  port  named  "PLAY").   Based  on  this  id, Upd then plays a
  932.     (user-definable)  sample. The idfile contains information about what
  933.     text  to  search  for, and which id to send for each text.  For more
  934.     information  about  these  ids  and  Upd in general, please read the
  935.     documentation   to   Upd,   found   in   the   Upd  drawer  of  this
  936.     distribution.  
  937.  
  938.        The format  of  the  idfile  is very free. Anywhere in this file,
  939.     you  can  have  a  comment.  They  are  denoted by first having some
  940.     whitespace  (i.e. spaces, tabs or linefeeds), followed by a '#'-char
  941.     (what  is  that char called?? :). You can also have a comment in the
  942.     very   beginning   of  the  file.  These  comments  are  ignored  by
  943.     ReqChange, and they are terminated by a linefeed.  
  944.  
  945.        But now  over  to  the  actual  file  format.  First  of all, you
  946.     specify  an  id.  After  that, you specify the text to search for in
  947.     the  requester.  Every id must have one matching text. These ids and
  948.     texts  can  be arranged any way you like them to be, as long as they
  949.     are  all separated from each other by whitespace. If an id or a text
  950.     contains  whitespace,  quote the string (you may quote it even if it
  951.     doesn't  contain  whitespace).  It  is advised that you avoid spaces
  952.     and other "strange" characters in the id though.  
  953.  
  954.        If you  need to have linefeeds or quotes within a string, do like
  955.     this: 
  956.  
  957.        To get  a  quote, enter '\"'. A linefeed can either be entered by
  958.  
  959.  
  960.                                   Page 16
  961.  
  962.  
  963.     ReqChange V1.14             User manual              ReqChange V1.14
  964.  
  965.  
  966.     having  a  linefeed right within the quoted text (it must be quoted,
  967.     or  else  it will be treated as whitespace), or by entering '\n'. To
  968.     enter a '\' char, enter '\\'.  
  969.  
  970.     NOTE: 
  971.        It's  strictly speaking not an error to not terminate a quote,
  972.        as  a  quote  can  span  several  lines.  But  this  generally
  973.        indicates  an  error  in  the  file, so you will get a warning
  974.        about this if it should happen.  
  975.  
  976.        There is  one  special text string, and that is '*', which always
  977.     will  match.   Useful  to  get a default sound. Currently, you can't
  978.     search  for  a single '*' char in a requester (it may very well be a
  979.     part  of a search string), but I don't see this as a problem (if you
  980.     do, tell me!).  
  981.  
  982.        When an  information  requester  then  shows  up,  ReqChange will
  983.     search  through  all  texts  in  the order as they were found in the
  984.     idfile,  and  as  soon  a  text  is  found within the requester, the
  985.     corresponding  id  is  sent  to  Upd. Thus, you should have specific
  986.     texts  to  match  in  the beginning, and more general ones later on.
  987.     This  search  is case insensitive. The process needs some memory, so
  988.     it  might  fail  if  you  are very low on memory. It may also take a
  989.     little  while  (not  long though, but you may notice a small delay),
  990.     especially  if the requester contains a large amount of text, and/or
  991.     you  have  a  lot  of ids in your file. The search isn't the fastest
  992.     one around... :) 
  993.  
  994.        I've included  an  example  file,  called 'IdFile.Example', which
  995.     (hopefully)  mimics  the behaviour of Arq (at least when it comes to
  996.     sound  effects). There is also an example file for Upd, suitable for
  997.     use   with   IdFile.Example,   called   Upd.IDs.   Just  change  the
  998.     sample-names to what you have and find suitable.  
  999.  
  1000.        If you  run  out  of memory during the read of the id file, parts
  1001.     of  it  might  not have been read. Note that the entire file is read
  1002.     into  one  allocated  buffer,  which  is as large as the file. After
  1003.     that,  the  content  is  analyzed.  This  buffer  is  freed when the
  1004.     neccessary information have been copied.  
  1005.  
  1006.        As it  is  quite likely that one id is used for several texts (as
  1007.     in  the  example file mentioned above), ReqChange will only store an
  1008.     ID  string  once,  to  save memory. All other references to the same
  1009.     string   simply  points  to  this  single  copy.  The  case  is  not
  1010.     significant  when  checking  for  id  duplicates. Also, this process
  1011.     isn't  that fast either. If you have a real *huge* file, it may take
  1012.     a  few  minutes to read the file (I tested once with this manual! No
  1013.     complaints from ReqChange, but it took quite a long time... :).  
  1014.  
  1015.        Make sure  you  don't  place  any null-bytes in the file, as this
  1016.     will  cause  ReqChange  to  believe that the file is shorter than it
  1017.     really is.  
  1018.  
  1019.  
  1020.                                   Page 17
  1021.  
  1022.  
  1023.     ReqChange V1.14             User manual              ReqChange V1.14
  1024.  
  1025.  
  1026.  
  1027.        The name  of  this  file  may not be more than 100 characters. It
  1028.     will  automatically  be  truncated   if  it is longer than this. You
  1029.     should avoid using names relative to the current directory.  
  1030.  
  1031.  
  1032.                          Input description strings
  1033.                          ~~~~~~~~~~~~~~~~~~~~~~~~~
  1034.  
  1035.        The template  for  an  input  description  string  is  (thanks to
  1036.     Stefan  Sticht  for this explanation. It is a slightly modified part
  1037.     from the docs to one of his commodities): 
  1038.  
  1039.        [class] (([-]qual)|syn)* [[-]upstroke] [high|ansi] 
  1040.  
  1041.        (* means  zero  or  more  occurances  of the of the expression in
  1042.     brackets) 
  1043.  
  1044.        'class' is   one   of   the  strings:  RAWKEY,  RAWMOUSE,  EVENT,
  1045.     POINTERPOS,  TIMER,  NEWPREFS,  DISKREMOVED,  DISKINSERTED.  If  not
  1046.     specified, the class is taken to be "RAWKEY".  
  1047.  
  1048.        'qual' is  one of the strings: LSHIFT, RSHIFT, CAPSLOCK, CONTROL,
  1049.     LALT,  RALT,  LCOMMAND,  RCOMMAND,  NUMERICPAD,  REPEAT,  MIDBUTTON,
  1050.     RBUTTON,  LEFTBUTTON,  RELATIVEMOUSE. A preceding '-' means that the
  1051.     value   of   the   corresponding   qualifier  is  to  be  considered
  1052.     irrelevant.  
  1053.  
  1054.        'syn' (synonym)  is  one  of  the  strings: SHIFT (means "left or
  1055.     right  shift"), CAPS (means "shift or capslock"), ALT (means "either
  1056.     alt key").  
  1057.  
  1058.        'upstroke' (literally  "upstroke"). If this token is absent, only
  1059.     downstrokes  are  considered  for RAWMOUSE (mousebuttons) and RAWKEY
  1060.     events.  If  it  is  present  alone,  only upstrokes count. If it is
  1061.     preceded  by  a  '-',  it  means  that  both up and down strokes are
  1062.     included.  
  1063.  
  1064.        'high' is  one  of  the  strings:  COMMA,  SPACE, BACKSPACE, TAB,
  1065.     ENTER,  RETURN,  ESC,  DEL, UP, DOWN, RIGHT, LEFT, HELP, F1, F2, F3,
  1066.     F4,  F5, F6, F7, F8, F9, F10, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, (, ), /,
  1067.     *, -, +.  
  1068.  
  1069.        'ansi' a  single  character  token  is interpreted as a character
  1070.     code, which is looked up in the system default keymap.  
  1071.  
  1072.        Except for  the  ansi character, the case is not considered to be
  1073.     important in all these strings.  
  1074.  
  1075.  
  1076.  
  1077.  
  1078.  
  1079.  
  1080.                                   Page 18
  1081.  
  1082.  
  1083.     ReqChange V1.14             User manual              ReqChange V1.14
  1084.  
  1085.  
  1086.                               Window interface
  1087.                               ~~~~~~~~~~~~~~~~
  1088.  
  1089.        This interface  is only available on OS 2.0 systems! To open this
  1090.     window,  use  either  the  hotkey (CX_POPKEY), the Exchange program,
  1091.     start  ReqChange  a  second  time,  or  send  a  break  F  signal to
  1092.     ReqChange (e.g by using SignalRC).  
  1093.  
  1094.        It will  use  the screen font, if that one isn't proportional, in
  1095.     which  case the system default font will be used. If either the font
  1096.     is  too  large  for  the window to fit, Topaz 80 will be used. These
  1097.     routines  aren't  perfect,  but  work quite well (consider they only
  1098.     added  500  bytes  to  the program!). The major problem is that some
  1099.     gadgets  in  GadTools  have a fixed dimension, and ReqChange doesn't
  1100.     take  that  in  account...  :)  Also, sometimes the scaling routines
  1101.     (I'm   scaling  all  coordinates,  which  are  based  on  Topaz  80,
  1102.     according   to   the   new   font  size)  might  be  a  pixel  wrong
  1103.     sometimes...  
  1104.  
  1105.        Note that  if  you have a *very* large screen font or a small (?)
  1106.     Workbench  screen,  all  gadgets might not be visible (even if Topaz
  1107.     80 is used).  
  1108.  
  1109.        From here,  you can modify most of the parameters in ReqChange at
  1110.     run  time  (the  CX_#?  parameters cannot be changed from here). You
  1111.     can  save  the  settings  (to  the  icon,  if there is any), or quit
  1112.     reqchange.  Really,  there  isn't  that  much to say about it. It is
  1113.     quite straight-forward. But ok, a few words: 
  1114.  
  1115.        There are  7  sections  in the window. The centering section lets
  1116.     you   change   the   centering   method  used  for  the  information
  1117.     requesters,  and  the other requesters.  Simply click in the gadgets
  1118.     until  the  desired centering type shows up. If you shift-click, the
  1119.     previous alternative will show up.  
  1120.  
  1121.        All the  small,  square  boxes are for the keywords that take YES
  1122.     or  NO  as  argument. If the box is checked, it means the same as if
  1123.     the  corresponding  keyword  was YES. There should be no problems to
  1124.     understand which gadget that corresponds to which keyword.  
  1125.  
  1126.        In the  'Changes' section, you select which libraries that should
  1127.     be  changed.   If  you  turn  off the changes for a certain library,
  1128.     ReqChange  will  try  to  remove  these changes immediately. If this
  1129.     wasn't  possible, ReqChange will try to make the changes behave like
  1130.     they  were  the  original. This will work just fine, except for ASL,
  1131.     if  you  have  ASL V38+, in which case some features won't be there.
  1132.     Each  time you click a gadget in this section, ReqChange will try to
  1133.     remove/add the changes that need to be removed/added.  
  1134.  
  1135.        In the  'Id  file' section there are three gadgets. The one named
  1136.     "Name"  allows  you  to  select an idfile with a filerequester. Note
  1137.     that  if  the  full  path  name  is  longer  than 100 chars, it will
  1138.  
  1139.  
  1140.                                   Page 19
  1141.  
  1142.  
  1143.     ReqChange V1.14             User manual              ReqChange V1.14
  1144.  
  1145.  
  1146.     automatically  be  truncated.  The  string gadget allows you to read
  1147.     and/or  edit  the  name. The "Read" gadget will read that particular
  1148.     idfile,  replacing  any  old  one  in  memory.  This gadget might be
  1149.     disabled.  If  so,  it  means  that  ARexx (i.e. rexxsyslib.library)
  1150.     wasn't available during startup.  
  1151.  
  1152.        If you  want  to  delete  the  idfile  in  memory, clear the name
  1153.     field,  and select "Read". This is because ReqChange will remove the
  1154.     old  id file from memory, before trying to read the new file - which
  1155.     might fail. An empty filename means that no file should be read.  
  1156.  
  1157.        The "Save"  gadget  might  be  disabled.  If this is the case, it
  1158.     means  that  ReqChange  couldn't  get its name and/or home directory
  1159.     during  startup.  When you select this gadget, ReqChange will try to
  1160.     access  its  icon.  If  there  is  no  icon, nothing will happen. If
  1161.     found,  the  settings  will  be  saved here. Note that any tooltypes
  1162.     that  isn't mentioned in the "Options" section above will be erased!
  1163.     There  is one exception though. ReqChange will remember the STARTPRI
  1164.     tooltype.   If  no  one was found during startup, STARTPRI=1 will be
  1165.     written.  
  1166.  
  1167.        All gadgets  and  menues  have  keyboard equivalents. The key you
  1168.     should  press  have a litte 'underscore' line. "What about the three
  1169.     gadgets  at the bottom??" you ask. Well, as these are equivalents to
  1170.     the  menues,  you simply use the shortcut for the menu instead! This
  1171.     way, it's also a bit harder to select e.g.  quit by mistake.  
  1172.  
  1173.        In the  centering  section,  you  can  still  the  shift  key  in
  1174.     combination  with  the  appropriate  key  to scroll backwards in the
  1175.     list (as with the mouse).  
  1176.  
  1177.        To activate  the string gadget next to the "Name" gadget, use the
  1178.     "g" key (sorry, no better key available (g as in gadget... :)).  
  1179.  
  1180.        In order  to  make  sure  that  ReqChange  gets to know about all
  1181.     changes  in  string  gadgets, make sure that you always terminate an
  1182.     input with a RETURN or TAB keypress.  
  1183.  
  1184.        Well, I  guess  this  is  about  all  there  is  to say about the
  1185.     window.  Oh, one more thing. The close gadget does the same thing as
  1186.     the  "Hide"  gadget  (or  menu.   "Hide"  simply  closes the window,
  1187.     ReqChange will still be in memory).  
  1188.  
  1189.  
  1190.                                Break signals
  1191.                                ~~~~~~~~~~~~~
  1192.  
  1193.        In this  document,  I  mention  break signals now and then. These
  1194.     are  the  signals that are sent to a normal CLI-based program if you
  1195.     press  CTRL-C,  CTRL-D,  CTRL-E or CTRL-F. Usually CTRL-C breaks the
  1196.     program  (hence  the name "Break signals"), while the other ones can
  1197.     do  other  things,  depending  on  the  program.  Although ReqChange
  1198.  
  1199.  
  1200.                                   Page 20
  1201.  
  1202.  
  1203.     ReqChange V1.14             User manual              ReqChange V1.14
  1204.  
  1205.  
  1206.     detaches  from  the  CLI (and thus is no CLI-based program), you can
  1207.     still  send  these  kind  of signals to ReqChange. But this can be a
  1208.     bit  cumbersome.  A  programmer  (or  similar) could surely do this,
  1209.     provided  he  had  the  right  software (e.g. Xoper), but the normal
  1210.     user  might  find this difficult. To solve this problem, I've made a
  1211.     program  called  SignalRC, which is able to send these break signals
  1212.     to  ReqChange.  Please  refer  to  the  Extra/SignalRC.Man  file for
  1213.     further information on how to use this program.  
  1214.  
  1215.        Anyway, ReqChange listens to the following signals: 
  1216.  
  1217.        C -  Tell  ReqChange  to quit. On OS 1.3, ReqChange will do this,
  1218.     if ReqChange already was running when you started it.  
  1219.  
  1220.        E -  Update  the  text to search for to identify a "Please insert
  1221.     volume" requester.  
  1222.  
  1223.        F -  Open  the  settings window. Since this only works on OS 2.0,
  1224.     nothing  will  happen if you do this on OS 1.3. On OS 2.0, ReqChange
  1225.     will  do  this,  if  ReqChange  already was running when you started
  1226.     it.  
  1227.  
  1228.  
  1229.                                 ReqChange.NF
  1230.                                 ~~~~~~~~~~~~
  1231.  
  1232.        Since ReqChange  lately  has  started  to  grow quite a bit, I've
  1233.     also  included  a  stripped  down version, called ReqChange.NF (NF =
  1234.     NoFancy),  which excludes the following features (see above for more
  1235.     information about them): 
  1236.  
  1237.        o Window interface. Break F signals are ignored.  
  1238.        o Sound requesters (IDFILE argument).  
  1239.        o Commodities  interface.  You cannot use the Exchange program to
  1240.     terminate ReqChange.  
  1241.  
  1242.        As of  this,  these  keywords have been removed from the stripped
  1243.     down version: 
  1244.  
  1245.        o IDFILE 
  1246.        o CX_PRIORITY 
  1247.        o CX_POPKEY 
  1248.        o CX_POPUP 
  1249.        o STARTPRI (only needed because of the window interface).  
  1250.  
  1251.        All these changes removed about 8 Kb of code from the program.  
  1252.  
  1253.  
  1254.                                About the code
  1255.                                ~~~~~~~~~~~~~~
  1256.  
  1257.        ReqChange is  written  mostly  in  C,  with  some small assembler
  1258.  
  1259.  
  1260.                                   Page 21
  1261.  
  1262.  
  1263.     ReqChange V1.14             User manual              ReqChange V1.14
  1264.  
  1265.  
  1266.     routines  and  stubs. The program is about 25 Kb big (source is ~230
  1267.     Kb,  including  all  assembler  routines).  I  compiled it with DICE
  1268.     (assembler  part was assembled with the Devpac assembler), which can
  1269.     generate quite small code.  
  1270.  
  1271.        The assembler  part  takes care of pushing the register arguments
  1272.     (if  so  needed)  on the stack and then call the C code (some of the
  1273.     patches  are  written entirely i asm though), stack switching, other
  1274.     kinds of glue, and handles the auto-detaching.  
  1275.  
  1276.        Each patch  allocates  and switches in a new stack on 4 Kb, if so
  1277.     needed,  to  ensure  enough space for the requester functions. If no
  1278.     memory  was  available  for  a  new  stack, or the patch runs out of
  1279.     memory,   the   function  in  question  will  return  failure.  Upon
  1280.     returning,  the stack will be freed (if allocated), and the original
  1281.     will be restored.  
  1282.  
  1283.  
  1284.                             Future improvements
  1285.                             ~~~~~~~~~~~~~~~~~~~
  1286.  
  1287.        I have  some  ideas  of  future  improvements. These might not be
  1288.     more  than  ideas,  but  who  knows?  :) Anyway, here is a list over
  1289.     them: 
  1290.  
  1291.        Rexx interface  to  access  different  requesters  (this could be
  1292.     really  useful.  It  would  be  better  with a .library though (e.g.
  1293.     similar  to  rexxarp.library),  or  a  Rexx hook built into ReqTools
  1294.     directly).  
  1295.  
  1296.        Localize ReqChange  for  other  languages. It would be quite easy
  1297.     to  fix  (only  problem could be the size of the settings window and
  1298.     the  place/size  of the gadgets therein). If anyone feels like doing
  1299.     such  a translation, feel free to contact me. We could probably work
  1300.     something  out.  If  there  is  any interest, I could make a Swedish
  1301.     version  of  ReqChange  myself  (but do *not* expect me to translate
  1302.     the  manual!  Writing  this  manual is ok, but translate it and keep
  1303.     both  versions  updated,  no  way!  I know what I'm talking about. I
  1304.     have  some  experience  of  this  from  MemClock). (No, I don't know
  1305.     anything  about  locale.library, except that it can be used for this
  1306.     in some way).  
  1307.  
  1308.        Rewrite more  code into assembler, to get a smaller program (this
  1309.     is more or less a constant process!).  
  1310.  
  1311.        Change the  information  requester  in ReqTools (!!), so that one
  1312.     also can send IDs to UPD (hey, its only a thought! :).  
  1313.  
  1314.        A possibility  to view the contets of the currently loaded idfile
  1315.     from  the  window  interface  (I'm not sure how to do this though...
  1316.     :).  
  1317.  
  1318.  
  1319.  
  1320.                                   Page 22
  1321.  
  1322.  
  1323.     ReqChange V1.14             User manual              ReqChange V1.14
  1324.  
  1325.  
  1326.        I'm thinking  of  placing  the  code that handles all the changes
  1327.     into  a  separate  handler,  while  keeping  most  of the other code
  1328.     (window  interface,  reading  of idfile, saving of settings etc.) in
  1329.     another  program,  to  reduce  memory  usage.   This  handler  would
  1330.     probably be about as large as the NoFancy version of ReqChange.  
  1331.  
  1332.        A way  to  delete (and maybe view too) the deny list (or parts of
  1333.     it).  
  1334.  
  1335.        If you  would  like to see some of these improvements, please let
  1336.     me  know! That would increase the chance of them getting implemented
  1337.     a *lot*.  
  1338.  
  1339.        Also, if  anyone  has  an icon for ReqChange (or the docs) he/she
  1340.     thinks  look  better  than the ones I made, I sure won't mind if you
  1341.     send  it  to  me,  and  I  might  use  that  one  instead. I'm not a
  1342.     painter... :) 
  1343.  
  1344.        And ofcourse, any bugs will be removed.  
  1345.  
  1346.  
  1347.                                Author contact
  1348.                                ~~~~~~~~~~~~~~
  1349.  
  1350.        If you   have   some   comments  about  this  program,  regarding
  1351.     problems,  ideas  of  improvements etc., feel free to send me a note
  1352.     (and  I will certainly not refuse donations of any kind, since I'm a
  1353.     poor student! :) to this address: 
  1354.  
  1355.                               Magnus Holmgren
  1356.                             RydsvΣgen 254  A:14
  1357.                             S-582 51  Link÷ping
  1358.                                    SWEDEN
  1359.  
  1360.  
  1361.        If you  don't  like  snail  mail,  you  can  send  me  e-mail via
  1362.     Internet or FidoNet. Via Internet, use any of these addresses: 
  1363.  
  1364.        cmh@augs.se
  1365.        magnus_holmgren@augs.se
  1366.        cmh@lysator.liu.se
  1367.        d91magho@und.ida.liu.se
  1368.  
  1369.        FidoNet mail should go to my point:
  1370.        "Magnus Holmgren" @ 2:204/404.6
  1371.        or to AUGS BBS in Link÷ping, Sweden:
  1372.        "Magnus Holmgren" @ 2:204/404
  1373.  
  1374.  
  1375.        The latest  version  of ReqChange is also available for anonymous
  1376.     ftp at lysator.liu.se. Check the pub/amiga/ReqChange directory.  
  1377.  
  1378.  
  1379.  
  1380.                                   Page 23
  1381.  
  1382.  
  1383.     ReqChange V1.14             User manual              ReqChange V1.14
  1384.  
  1385.  
  1386.  
  1387.                               Acknowledgments
  1388.                               ~~~~~~~~~~~~~~~
  1389.  
  1390.        There are  a  few  persons I feel I must thank, because they have
  1391.     in some way helped me with this program: 
  1392.  
  1393.        Matt Dillon  - For the great DICE compiler (and for answering all
  1394.     my (more or less silly) questions about C and DICE).  
  1395.  
  1396.        Nico Franτois   -  For  reqtools.library  (and  many  other  nice
  1397.     programs for the Amiga). This library started this little program.  
  1398.  
  1399.        Stefan Boberg  -  For  helping me to debug ReqChange now and then
  1400.     (and one should not forget LhA! :).  
  1401.  
  1402.        Stefan Becker   -   For  providing  an  example  (the  source  to
  1403.     ToolManager) on how to add a broker to Commodities.  
  1404.  
  1405.        Eddy Carrol  - For his Res function (and to Olaf `Olsen' Barthel,
  1406.     because  this  function was included in term, and the source to that
  1407.     program  was  included  :),  which  enabled  me  to  make  ReqChange
  1408.     autodetach.  I  did  some  changes in the function though, so now it
  1409.     should be 100% safe and reliable (I hope).  
  1410.  
  1411.        Jonas Petersson  -  For  Upd (and letting me include it here), to
  1412.     enable ReqChange to have sounding requesters.  
  1413.  
  1414.        A Mattias  Johansson  -  For some beta-testing, and for doing all
  1415.     the stuff with my computer equipment (hardware fixes/improvements)! 
  1416.  
  1417.  
  1418.                               Revision history
  1419.                               ~~~~~~~~~~~~~~~~
  1420.  
  1421.        Please read the History.Doc file for a revision history! 
  1422.  
  1423.  
  1424.  
  1425.                          May the Amiga be with you!
  1426.  
  1427.  
  1428.  
  1429.  
  1430.  
  1431.  
  1432.  
  1433.  
  1434.  
  1435.  
  1436.  
  1437.  
  1438.  
  1439.  
  1440.                                   Page 24
  1441.  
  1442.  
  1443.     ReqChange V1.14             User manual              ReqChange V1.14
  1444.  
  1445.  
  1446.  
  1447.  
  1448.                              Table of contents
  1449.                              ~~~~~~~~~~~~~~~~~
  1450.     Legal stuff...................................................    1
  1451.     Disclaimer....................................................    1
  1452.     What is ReqChange?............................................    1
  1453.        AutoRequest & EasyRequest..................................    3
  1454.        FileRequest................................................    4
  1455.        RequestFile & AslRequest...................................    4
  1456.        TextRequest................................................    4
  1457.        GetString & NewGetString...................................    4
  1458.        GetLong....................................................    4
  1459.        ColorRequester & ExtendedColorRequester....................    4
  1460.        FileRequester..............................................    4
  1461.     Compatibility.................................................    4
  1462.     Problems......................................................    5
  1463.     Installation..................................................    6
  1464.     Removing ReqChange............................................    7
  1465.     Options.......................................................    8
  1466.        MINHEIGHT..................................................    8
  1467.        MAXHEIGHT..................................................    9
  1468.        TOPOFFSET..................................................    9
  1469.        LEFTOFFSET.................................................    9
  1470.        CENTER.....................................................    9
  1471.        FRCENTER...................................................   10
  1472.        CENTERTEXT.................................................   10
  1473.        POPSCR.....................................................   10
  1474.        BACKFILL...................................................   10
  1475.        ASSIGN.....................................................   11
  1476.        KEYS.......................................................   11
  1477.        ASL........................................................   11
  1478.        ARP........................................................   11
  1479.        REQ........................................................   12
  1480.        FILEBUFFER.................................................   12
  1481.        FONTBUFFER.................................................   12
  1482.        IDFILE.....................................................   12
  1483.        CX_POPKEY..................................................   13
  1484.        CX_POPUP...................................................   13
  1485.        CX_PRIORITY................................................   13
  1486.     Centering.....................................................   13
  1487.     Make assigns..................................................   14
  1488.     Idfile format.................................................   15
  1489.     Input description strings.....................................   18
  1490.     Window interface..............................................   18
  1491.     Break signals.................................................   20
  1492.     ReqChange.NF..................................................   21
  1493.     About the code................................................   21
  1494.     Future improvements...........................................   22
  1495.     Author contact................................................   23
  1496.        Snail mail address.........................................   23
  1497.        E-mail addresses...........................................   23
  1498.  
  1499.  
  1500.                                   Page 25
  1501.  
  1502.  
  1503.     ReqChange V1.14             User manual              ReqChange V1.14
  1504.  
  1505.  
  1506.     Acknowledgements..............................................   24
  1507.     Revision history..............................................   24
  1508.     Table of contents.............................................   25
  1509.  
  1510.  
  1511.  
  1512.  
  1513.  
  1514.  
  1515.  
  1516.  
  1517.  
  1518.  
  1519.  
  1520.  
  1521.  
  1522.  
  1523.  
  1524.  
  1525.  
  1526.  
  1527.  
  1528.  
  1529.  
  1530.  
  1531.  
  1532.  
  1533.  
  1534.  
  1535.  
  1536.  
  1537.  
  1538.  
  1539.  
  1540.  
  1541.  
  1542.  
  1543.  
  1544.  
  1545.  
  1546.  
  1547.  
  1548.  
  1549.  
  1550.  
  1551.  
  1552.  
  1553.  
  1554.  
  1555.  
  1556.  
  1557.  
  1558.  
  1559.  
  1560.                                   Page 26
  1561.  
  1562.