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