|
|
To develop a set of implementation standards for OS/2 based IRC clients regarding REXX procedure scripts such that a reasonable level of portability of scripts may be achieved between the various clients.
Changes to this draft by this revision include amendments to or addition of item numbers 101/003 102/004 110/005 112 115/006 117/007
This is a working document for establishing a standard feature set for REXX procedure scripts in OS/2 based IRC clients. Once all items have reached some resolution, this document (after some reformatting) will be regarded as the official standards. The primary purpose of this document at this time is to maintain some type of order to our proceedings and to keep everyone updated as to where we stand on each item.
Each item for discussion and resolution is described below and contains an identifying item number. Please use the item number when discussing and item. Each item open to general discussion is marked as open. Items marked as closed have been resolved and are considered a future standard.
In addition, each item is marked as "Required" or "Optional". Required items are those features which must be implemented for a client to claim it meets these standards. Optional features do not have to be implemented at all, but if that feature is implemented it must be implemented in the specified manner to claim compliance with the standard.
Discussion is open to anyone who subscribes to the ircrexx (at) invlogic.com mailing list. Addition of new items and resolution of pending items is limited to voting members. The current voting members are:
Stephen Berg sberg (at) southwind.com
Mike McLagan mmclagan (at) invlogic.com
Benny Ormson ormson (at) ionet.net
Scott Palmer scottp (at) intergate.bc.ca
Kim Rasmussen kr (at) belle.dk
Parameter information shall be provided to the various scripts in the form of preset variables with standard names. The method of implementation to set these variables is left to the individual client. In order to be in compliance, the client must provide the preset variables shown below. The client may provide other preset variables in addition to these.
Notes:
Input parameters for standalone REXX scripts shall be as derfined in item number 001.
Return values for standalone REXX scripts are ignored.
Input parameters for the inbound message script shall be as defined in item number 001.
Return values for the inbound message script shall be as follows:
"" The message is to be ignored by the client.
"OK" The message should be processed by the client.
Input parameters for the output command script shall be as defined in item number 001.
Return values for the output command script shall be as follows:
"" The command is to be ignored by the client.
"OK" The command should be procesed by the client.
IrcRexxWildCard(<pattern&glt;,<string>>[,<options>>])
This function is used to determine if a string of text matches a wild card mask.
<pattern> The wild card pattern. e.g. *!user@*
<string> The string to be tested.
<options> Use of this parameter is optional. Specifying an option of "CASE" enables case sensitivity.
Returns:
"MATCH" The pattern was matched.
"NOMATCH" The pattern was not matched.
A predefined script which recieves various event notifications.
The following preset variables will be available when this script is called:
Return values be as follows:
"" The message is to be ignored by the client.
"OK" The message should be processed by the client.
Error return values shall be provided from all IrcRexxFuunctions() by setting a predefined REXX variable with the name IrcError prior to returning control to the script. Valid values for the IrcError variable are indicated below:
"OK" No Error
"ERROR" An Error has occured.
"ERROR,errorinfo" An Error has occured and is further described in the "errorinfo" text.
IrcRexxCommand(<command>,<win>)
This string <command> is executed as if it were user input from <win> window. Normally done by sending the text through the command parser. Command processing may call the REXX command script.
<command> Normally a /command but may be text to a window.
<win> The window handle of the window where the command output will be displayed.
Returns: Not defined.
IrcRexxDisplay(<text>,<win>)
This string <text> is displayed in the window specified by <win>.
<text> Any text to be displayed.
<win> The window handle of the window where the text is to be displayed.
Returns: Not defined.
IrcRexxFunction(<win>,<name>;&;lt;argsgt;)
I am not clear on what this function does.
<win> The window handle.
<name> The string to be tested.
<args> The string to be tested.
Returns:
IrcRexxIsOp(<channel>,<nick>,<win>)
This function is used to determine if a nickname is a channel operator on the specified channel. It can also be used to determine if a nickname is joined to the specified channel.
If <channel>, is "*" then the current channel is assumed. <channel>, must be a channel to which this client is joined.
<win> is the window handle for the server window.
Returns:
"YES" <nick> is a channel operator on.
"NO" <nick> is onbut is not a channel operator.
"ERROR" <nick> is either not joined toor cannot be found.
IrcRexxSend( This string <win> The server level window for the desired server. Clients
which do not support multiple server connections may
ignore this parameter but should permit it's presence
for compatability.
Returns: Not defined.
IrcRexxTargetWindow( This function is used to determine the best window handle to use for
the specified target.
Returns:
The window handle in integer form for the specified target. If no
window is found the window handle for the server window of IrcRexxVariable(<win>,<name>[,<value>])
This function is used to set or retrieve a IRC variable.
<win> The window associated with the variable. Normally this is
the server window. Variables which are window specific
may be accessed by using the appropriate window handle here.
<name> The name of the $variable. Variable names normally begin
with $. All uppercase names are by definition, system
level variables. Users are encouraged to use variable names
which are either all lower case or mixed case for future
compatibility.
<value> If specified, the variable <name> is set to this value
provided it is a variable which may be altered by the
user. If this parameter is not specified the call is
considered a query for the variables current value.
Note: If <value> is specified and the variable <name> does
not exist it is created.
Returns: The current value of the variable or "" if an error occurs.
The following variable names are standardized:
Some method of setting a timer in a script to have a script
executed after "n" seconds. Perhaps with options to have it
executed "n" seconds of inactivity, or not, and whether it
is a one time or recurring event. If recurring, we also need
a way to kill it.
IrcRexxAddMenu(<unknown>)
Permits a script to add menu choices onto some or all menus.
IrcRexxAddTool(<unknown>)
Permits a script to add items to toolbars.
A method which permits the script to identify what optional features
are supported for any given client and version of that client.
A number of ideas and research into this are currently underway.
This item defines the values for the IrcEvent type variable as
passed to the event script defined in item 006.
Provide the option to preload REXX scripts in order to improve
performance. Also an option should be provided to enable the
script to be reloaded or unloaded. The method by which this
feature is implemented is left to the individual client.
Provide method of redirection of I/O for REXX functions such as
PULL, SAY and error message output. The precise method of
implementation is left to the client.
Provide an exit to supress return values not accounted for by the
script so they do not get passed to the environment for processing.
This addresses the overhead and associated problems dealing with
needless output passed to the client as a result from the script
not specifying a variable to receive returned output.
Item 108 Required Open
Item 109 Required Open
Item 111 Optional Open
Item 113 Optional Open
Item 114 Optional Open
Iftem 116 ???????? Open
Item 118 Optional Open
IDLE <time>
TIMER <whatever>
FLOOD <various info>
INIT
Item 119 Optional Open
Item 120 Optional Open
Item 121 Optional Open
![]()
Report any access issues to our
webmaster.
![]()
Last modified: 05-Feb-2003 05:06PM.
Material copyright ©1996-1997, Innovative Logic Corp.
Design copyright ©1996-1997,
Innovative Web Creations.
All rights reserved.