Short: ARexx interface development tool V1.12 Uploader: balzer heike informatik uni-dortmund de Type: dev/misc Architecture: m68k-amigaos ARexxBox - ARexx Interface Design Tool FREEWARE, (C) 1992 Michael Balzer ARexxBox (inspired by the GadToolsBox) is a tool for designing ARexx interfaces for your programs, with the special goal to greatly simplify this procedure while coming as close as possible to the suggestions and ideas stated in the User Interface Style Guide's ARexx section. ARexxBox is for ARexx, what GadToolsBox is for the GUI. FEATURES: - Syntax and results of the ARexx commands follow exactly the conventions suggested by the Style Guide, e.g. command arguments are parsed using the AmigaDOS ReadArgs function, and the keywords VAR and STEM are supported automatically. - Each command may have an unlimited number of arguments and results. - All ReadArgs template options are allowed for arguments and are supported automatically. For results, the switches /N and /M are supported. - Graphical user interface (designed using GadToolsBox :-). - Generates ANSI C or Oberon-2 source. - ARexxBox can generate source for CommandShells, shells in which the user may enter ARexx commands directly and view their output. - CommandShells can be used to execute external macros. - A program may open as many ARexx ports and CommandShells as the system memory will allow. - ARexx commands can use an extended error return feature using a secondary return code. - I already entered all standard commands suggested by the Style Guide. Example code for some of them is also included. REQUIREMENTS: ARexxBox and the generated code will only run on AmigaOS 2.04 (or better). The Box (but not the generated source) needs reqtools.library by Nico Francois. HISTORY SINCE LAST RELEASE: V1.12 FIXED: The HELP command produced Enforcer hits (strlen(0)). (Report: Klaas Hermanns) ENHANCED: Introduced tag #2 for commands: External status flag, "New" state of this flag will only be reset by external programs, e.g. documentation aids like ARB2TeXinfo by Albert Weinert. (Suggestion: Albert Weinert) FIXED: The command list was generated not alphabetically but numerically sorted (by their IDs). (Report: Klaas Hermanns) ENHANCED: Instead of the binary search algorithm, the Box now generates a real finite state machine for searching of commands (FindRXCommand). The binary search method had a big design flaw with abbreviations on the alphabetically sorted list of commands. (ATT: This has been implemented for C only up to now!) (Report: Klaas Hermanns) FIXED: For SAS C, toupper() will be #undefined. Also there is now the real function cast in the list of commands. (Report: Klaas Hermanns) FIXED: The MIN and MAX results of Misc.arb/GETATTR have to be numbers, of course. (Report: Klaas Hermanns) FIXED: "Merge" trashed the command list when merging in existing commands. CHANGED: Now declares the external library bases with their appropriate types (C). (Wunsch: Klaas Hermanns) CHANGED: In arb/advanced.arb, commands REQUESTNUMBER and REQUESTSTRING, I changed the argument called "DEFAULT" to "DEFAULTNUM" resp. "DEFAULTSTR" to avoid conflicts with the 'default' keyword in C. (Report: Klaas Hermanns) ENHANCED: There's now another parameter for all interface functions called "struct RexxMsg *rexxmsg", which will contain the address of the message from REXX if called by ARexx. If called from a command shell, it will contain NULL, so you can also use it to determine the caller. This is to support GetRexxVar(), which needs this pointer. (Report: Klaas Hermanns) FIXED: I now define toupper() as a function for GCC. The macro caused problems by evaluating the parameter more than once. FIXED: The command shell parameter parsing had a bug (the ReadArgs buffer wasn't cleared). Michael Balzer -- Michael Balzer, Wildermuthstr.18, W-5828 Ennepetal, Germany At work: balzer@heike.informatik.uni-dortmund.de // Pure At home: bilbo@bagsend.aworld.de +49 2333 80908 \X/ Amiga