Short: Asl/Arp/Req/Intuition/RT requester to RT/Asl patcher Author: Thore Böckelmann Uploader: Thore Böckelmann Type: util/misc Version: 39.13 Architecture: m68k-amigaos >= 3.0.0 TITLE AslToRT VERSION 39.13 AUTHOR Thore Böckelmann 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