TITLE
AslToRT
VERSION
39.13
AUTHOR
Thore Böckelmann <tboeckel at gmx dot de>
REQUIREMENTS
Any Amiga® (compatible) computer with at least OS3.0 and 68020+ cpu.
DESCRIPTION
AslToRT is a utility that is meant to replace RTPatch by Nico François, the
original author of the ReqTools package. RTPatch has several bugs when
running under OS3.x. It uses a very tricky mechanism to patch the desired
libraries only when they are opened. This causes a very annoying behavior
with asl.library. Under OS2.x this library kept its open counter equal to
zero, which is no longer the fact for OS3.x. As a result the library's name
is changed from "asl.library" to "asl.§ibrary", where the "§" stands for an
unprintable character. The effect is, that asl.library will be loaded again
and again, because it is no longer in memory with the correct name. This is
very bad in the way Amiga shared libraries are intended to work. So you have
no longer one copy of the library in memory, but several identical copies, of
which each eats up your machines memory.
AslToRT does all the things that RTPatch does, but in a (hopefully) much
better way. Additionally you can choose very exactly which libraries and
which functions should be patched to use the apropriate ReqTools function.
From version 39.2 on AslToRT can behave like a fictious program called
"RTToAsl", that means it can redirect all of reqtools' requesters to the
equivalent asl requesters. The desired work mode is selected by the new
PATCHMODE option.
USAGE
You can start AslToRT from either Workbench or Shell with the following
options:
ASLFILE/S,ASLFONT/S,ASLSCREEN/S,ASLALL/S,INTUIAUTOREQ/S,INTUIEASYREQ/S,
INTUIALL/S,REQFILE/S,REQFONT/S,REQLONG/S,REQSTRING/S,REQTEXT/S,REQCOLOR/S,
REQALL/S,ARPFILE/S,ARPALL/S,REQTOOLSFILE/S,REQTOOLSFONT/S,REQTOOLSSCREEN/S,
REQTOOLSALL/S,ALL/S,PATCHMODE,IGNOREHEIGHT/S,CENTERTEXT/S,OVERRIDE/S,
ASLAVOIDTASKS/K,REQTOOLSAVOIDTASKS/K,REQAVOIDTASKS/K,ARPAVOIDTASKS/K,
INTUIAVOIDTASKS/K
ASLFILE/S: patch asl.library's file requesters
ASLFONT/S: patch asl.library's font requesters
ASLSCREEN/S: patch asl.library's screenmode requesters
ASLALL/S: patch all of asl.library's requesters
INTUIAUTOREQ/S: patch intuition.library/AutoRequest()
INTUIEASYREQ/S: patch intuition.library/EasyRequest()
INTUIALL/S: patch all of intuition.library's requesters
REQFILE/S: patch req.library's file requesters
REQFONT/S: patch req.library's font requesters
REQLONG/S: patch req.library/GetLong()
REQSTRING/S: patch req.library/GetString()
REQTEXT/S: patch req.library/TextRequest()
REQCOLOR/S: patch req.library/ColorRequest()
REQALL/S: patch all of req.library's requesters
ARPFILE/S: patch arp.library's file requesters
ARPALL/S: patch all of arp.library's requesters
REQTOOLSFILE/S: patch reqtools.library's file requesters
REQTOOLSFONT/S: patch reqtools.library's font requesters
REQTOOLSSCREEN/S: patch reqtools.library's screenmode requesters
REQTOOLSALL/S: patch all of reqtools.library's requesters
ALL/S: patch all requesters of every library (asl/arp/req/intuition/reqtools)
PATCHMODE: either ASL or REQTOOLS (default: REQTOOLS)
IGNOREHEIGHT/S: ignore the height of file/font/screenmode requesters and use
ReqTools' preferred window height
CENTERTEXT/S: center the body text of AutoRequest()/EasyRequest()ers
OVERRIDE/S: override fallback to asl.library for some unsupported features
and use ReqTools requesters nevertheless
ASLAVOIDTASKS/K: case sensitive pattern for tasks that should not be patched
REQTOOLSAVOIDTASKS/K: case sensitive pattern for tasks that should not be
patched
REQAVOIDTASKS/K: case sensitive pattern for tasks that should not be patched
ARPAVOIDTASKS/K: case sensitive pattern for tasks that should not be patched
INTUIAVOIDTASKS/K: case sensitive pattern for tasks that should not be
patched
You must specify at least one of these options, else AslToRT will exit
immediately without patching anything.
You can start and quit AslToRT at any time. Only requesters allocated after
running AslToRT will be redirected to ReqTools. To quit AslToRT simply start
it again.
INSTALLATION
Copy AslToRT where ever you want, but SYS:WBStartup is a very good place
KNOWN BUGS
reqtools.library is not able to emulate all details of asl.library.
Especially the very new functionality introduced with asl.library V44 (OS3.9)
cannot be done with reqtools.
Some requesters by intuition/AutoRequest() cannot be patched to
reqtools.library because they use some tricky mechanisms to place the text
within the window, which reqtools.library cannot do (i.e. the device info
requester of DiskSalv V2+).
Most of Workbench's and dos.library's message requesters can be redirected to
reqtools.library, but some cannot. These are the requesters that are build by
intuition/BuildSysRequest() and intuition/BuildEasyRequest() and are
displayed asynchronously. Although reqtools.library itself can do the same
thing it is not possible to emulate intuiton.library's way by
reqtools.library (i.e. Workbench's Version/Copyright requester).
Since version 39.2 you can redirect reqtools' requesters to asl, but the
asychronous requesters of reqtools cannot be emulated by asl, therefore these
requesters will not be redirected. But as it is very hard to find programs
using reqtools.library directly these days I assume this is not a very big
drawback.
For those who are interested, AslToRT patches the following functions (if
enabled via options):
asl.library:
AllocAslRequest()
FreeAslRequest()
AslRequest()
intuition.library:
AutoRequest()
EasyRequestArgs()
req.library:
FileRequester()
GetLong()
GetString()
NewGetString()
TextRequest()
ColorRequester()
ExtendedColorRequester()
arp.library:
FileRequest()
reqtools.library:
rtAllocRequest()
rtFreeRequest()
rtFreeFileList()
rtChangeReqAttr()
rtFileRequest()
rtFontRequest()
rtScreenModeRequest()
RECENT HISTORY
39.13 (24.01.2006):
- MCP illegaly passes a NULL filename to rtFileRequest() when opening its
AssignWedge drawer-only requester to query a directory to set the assign
to. The Autodocs state that the filename parameter MUST be a valid
pointer, although it doesn't state this explicitly if no filename can be
obtained. The latter is the case for drawer-only requesters and very
likely for volume requesters, too. Again, thanks to Luca Longone for the
report.
- ASL and ReqTools have oppositional ideas of when to share the IDCMP port
of a parent window. ReqTools normally never shares this port, while ASL
will always do that. That lead to many obscure crashes when applications
tried to open a requester on their own screen. Thanks to Luca Longone for
all his testing.
COPYRIGHT AND DISCLAIMER
AslToRT is copyrighted 2001-2006 by Thore Böckelmann.
All rights reserved. This program is freeware, so no financial donations
required. Redistribution allowed if the package is left unchanged. The author
is not responsible for any damage caused by the use or misuse of this
documentation and/or the program(s) it describes.
AslToRT uses the SmartReadArgs package by Thomas Aglassinger.
SEE ALSO
ReqTools 2.9 User package
|