:::::::::::::: ! :::::::::::::: Usage: ![<history number>|<history match>] The ! command is used to recall previous commands in your command history for re-execution. The ! command is unique in that when it is used, it leaves the matching history entry in the input line for re-editing. You can specify a history entry either by its number in the history list, or by a match with a given wildcard expression. For example: !10 will put entry 10 in the history list into the input line. The following: !/MSG will search the history list for a line beginning with /MSG and put it in the input line (an * is implied at the end of /MSG). When using ! command with a wildcard expression, subsequent uses of the ! command continue their search in the history list from where they left off. This is reset to the end of the list when a command is executed that adds an entry to the history list. Also, if a wildcard expression is used once, subseqent uses of ! with no expression will use the previous wild card expression. For example, the following: !/MSG ! The first call returns the first match of /MSG in the history list, and the second returns the next match, and so on. This is useful in the following key binding: BIND ^R PARSE_COMMAND /!$"Search: " With this, you can hit ^R and you will be prompted for a search string in the history list. If you want to then repeat the search you simply have to hit ^R and hit return, since it will use the previous search by default. Lastly, ! may be used in command aliases as well. When it is embedded in an alias it simply executes the matching history entry without first putting it in the input line for re-editing. See Also: HISTORY :::::::::::::: # :::::::::::::: See COMMENT for more information about #. :::::::::::::: : :::::::::::::: See COMMENT for more information about :. :::::::::::::: ADMIN :::::::::::::: Usage: ADMIN [<server>|<nickname>] Displays the administrative details about the given server. If no server is specified, the server you are connected to is used. If a nickname is supplied then it gives the administrative information for that person's current server. :::::::::::::: ALIAS/ALIAS :::::::::::::: Usage: ALIAS [[-]<alias> [<commands>]] Creates a command alias for <commands>. Commands do not need to be prefixed with a command character, in fact they shouldn't! If you want an alias to type something to the channel or query use SEND or SAY. You can use ';' to put multiple commands in a row. Special character sequences, usually ircII variables, are prefixed with '$'. There are certain $ sequences built in to IRCII for getting such information as your nickname and current channel, plus you can expand your own variables and system variables using the $ format. You can also expand functions, substituting their return values. See ASSIGN for more on this. Here are some simple alias examples: ALIAS HELLO MSG $0 Hello, $0! $1- This alias can be used by typing: HELLO BigCheese How are you? This would act as though you had typed: MSG BigCheese Hello, BigCheese! How are you? ALIAS with just the <alias> argument shows the current alias for that word. ALIAS with no argument shows all current aliases. To remove an alias, use ALIAS -<alias>. To use more than one command in an alias, separate them by ';'. When using ALIAS in a script it is frequently useful to surround the contents of your alias with { }s when you want to put more than one commands in an alias. E.g: ALIAS loadcommon { LOAD netsplit LOAD troy } is the same as ALIAS loadcommon LOAD netsplit;LOAD troy but lacks the ; and it much easier to read in a script or the .ircrc file. For more specific information about the $ uses and more examples, see the specific help files listed below. See Also: SET INPUT_ALIASES SEND SAY ircII programming ASSIGN expressions (note also Special Cases at the end) :::::::::::::: ALIAS/functions :::::::::::::: IRCII Functions IRCII functions are substituted with the format $FUNCTION(arguments). A function is an ALIAS which assigns a value to FUNCTION_RETURN. For example: ALIAS DOUBLE assign FUNCTION_RETURN ${[$0]+[$0]} which is the same as: ALIAS DOUBLE @ function_return = [$0] * 2 used with: ALIAS SHOWDOUBLE echo $DOUBLE($0) will cause SHOWDOUBLE 7 to display "14". The following built-in functions already exist and cannot be overriden: LEFT(COUNT STRING) Returns the COUNT leftmost bytes from the STRING. RIGHT(COUNT STRING) Returns the COUNT rightmost bytes from the STRING. MID(INDEX COUNT STRING) Returns COUNT bytes starting at position INDEX in STRING. INDEX(CHARLIST STRING) Returns the index to the first character in STRING which appears in CHARLIST. RINDEX(CHARLIST STRING) Returns the index to the last character in STRING which appears in CHARLIST. TIME() Returns the current system time as a long integer STIME(TIMEVAL) Returns the date and time in English that corresponds to the long integer TIMEVAL. TDIFF(TIME_INTERVAL) Takes a TIME_INTERVAL in seconds and returns it in the format.. dd days hh hours mm minutes ss seconds Any fields with 00 are omitted. RAND(LIMIT) Returns a random number x such that 0<=x<LIMIT SRAND(SEED) Seeds the random number generator and returns nothing. The seed may be a long integer, although only the low integer is used. USERHOST() Returns the user@host value under which the current message was sent if you are on a 2.7 server or better. MATCH(PATTERN WORDS) Returns an index into the list of WORDS of the first match for the given PATTERN. Returns 1 if it matches the first word, 0 if it matches none. RMATCH(WORD PATTERNS) Returns an index into the list of PATTERNS of the pattern which best matches the given WORD. Returns 1 for the first pattern, 0 for none. WORD(INDEX WORDS) Returns the single word in the list of WORDS pointed to by INDEX. STRIP(CHARLIST STRING) Returns the STRING with all occurrences of characters listed in CHARLIST removed. CONNECT(HOST PORT) Returns the file descriptor for the connection. A NULL fd means host could not be resolved. Negative fd means some error occurred in the attempt. Communication through the connection is done with DCC RAW and ON DCC_RAW. (See DCC RAW and ON DCC_RAW) LISTEN(PORT) Creates a listening socket on the specified port. If the port # is not specified then it returns the number of the port it chose arbitrarily. It cannot open a port# < 1025 ISCHANNEL(word) Returns 1 if word is a valid channel name. ISCHANOP(nick channel) Returns 1 if nick is a chanop on the given channel. WINNUM() Returns the current window number. This is always the window which is indicated by STATUS_WINDOW. WINNAM() Returns the current window name. This is always the window which is indicated by STATUS_WINDOW. If the window has no name, it returns nothing. ENCODE(input text) Convert input text to an encoded string suitable for use as an ircII variable or alias name. Any special including spaces can be encoded into the string. DECODE(encoded text) Decode a single STRING of text produced by ENCODE() into it's original characters. Note that these are case sensitive. TOUPPER(string) Convert string to upper case. TOLOWER(string) Convert string to lower case. CURPOS() Returns the postition from the start of the input line to where the cursor is now. MYCHANNELS(refnum) Returns a string with a list of channels on that windows server. (defaults to current window) MYSERVERS() Returns a string of the names of the servers you are connected to. Note: The argument separator for functions is the space character, not the comma. :::::::::::::: ALIAS/quote :::::::::::::: ALIAS MODIFIER: This is a special quoting modifier. Use of this modifier tells IRCII that you wish certain characters in the converted text to be quoted using the \ character. The form of this modifier is: $^c<sequence> where c is the character to be quoted, and <sequence> is one of the special sequences. For example, you may wish to do the following: alias foo eval echo $^$* and you do foo This is a $Test Since $ expressions are parsed first, the $^$* is the first thing parsed. The ^$ part tells IRCII to quote all $ in the resultant string. So, the $^$* is expanded just like $* and becomes: This is a $Test and the ^$ causes it to quote all $, which becomes: This is a \$Test This is then replaced in the original alias for parsing, so /foo becomes: eval echo This is a \$test When eval goes through the line and reparses it the $ is protected by the new \, and thus the final output will be "This is a $Test". If $ was not quoted, eval would try to expand any $'s into the contents of the associated variable. Eg. one$two would try to expand the variable $two The ^ modifier must be first after the initial $. You may specify more than one character to be quoted simply be adding more ^c to the expression: $^$^\B will quote all occurences of $ and \ in the body of the last message you received. Remember, you can use both forms of modifiers, but they must be in the correct order. All ^ modifiers must be first, followed by any [] modifier. For example: $^.[-10]S This will right justify your server name and quote any . in the server name with \. See Also: ALIAS WIDTH EVAL :::::::::::::: ALIAS/special :::::::::::::: Special character sequences for ALIAS: All special character sequences begin with a $. In their simpliest form, the following have special meaning in aliases: $* Expands to the rest of the arguments on the command line. $n Where n is a non-negative number, expands to the nth arg. $n-m Where n and m are non-negative numbers, expands to the nth thru mth arguments inclusive. $n- Where n is a non-negative number, expands from the nth argument to the end of the argument list. $-m Where m is a non-negative number, expands from the beginning of the argument list to the mth argument. This is the same as $0-m. $~ Expands to the last word on a line. $, Expands to the nickname of the last person who send you a /MSG $. Expands to the nickname of the last person to whom you sent a /MSG $variable Expands to the value of one of the following: 1) Matching ASSIGN'd variable 2) Matching IRCII SET variable 3) Matching environment variable 4) Nothing It checks in the order shown. Thus, if 1 doesn't match, 2 is tried. If 2 doesn't match, 3 is tried, etc. See ASSIGN for more details. $[number]variable Expands the variable and shows only 'number' of characters. e.g. $blue == "nonsense" $[3]blue == "non" and $[20]blue == "nonsense " In the second case note it is left justified in the space. $[-number]variable Expands as above but it is right justified when the 'number' is bigger than the number of chars in variable. $[20]blue == " nonsense" $#variable Expands to the number of words in the variable. $@variable Expands to the number of letters in the variable. $"Prompt" Will prompt you (using the text between the double quotes) for input which will be replaced in the alias. ***WARNING*** This is no longer supported. use the INPUT command instead. $(sub-alias) This expands out the sub-aliases, then uses that result in place of the (sub-alias) expression. For example $($0) will first expand $0... suppose it expands to S. Then it replaces that in the original text, giving you $S, which is then expanded to the name of your current server. $!history! This expands to a matching entry in your command history. The text between the ! may contain wildcards. $: Expands to the nickname of the last person to join your channel $; Expands to the nickname of the last person to send a public message to your channel $A Expands to the text of your AWAY message $B Expands to the body of the last MSG you sent. $C Expands to your current channel $D Expands to the nickname of the person whose sign-on was last detected by the NOTIFY mechanism $H Expands to the current numeric being processed $I Expands to the name of the channel to which you were last INVITED $K Expands to the current value of CMDCHAR. Useful to have aliases work even when you change CMDCHAR. $L Expands to the current contents of the input line $N Expands to your nickname $O Expands to the value of STATUS_OPER if you are currently an operator $P Expands to "@" if you are a chanop on the current channel $Q Expands to the nickname of the person you are QUERYing. $S Expands to the name of your server $T Expands to the 'target' of your input (either a QUERY nick or a current channel) $U Expands to the last thing cut from the command line. e.g. ^U to clear line will put the line in the variable $U $V Expands to the internal ircII release date $W Expands to the current working directory $Z Expands to the time of day $$ Expands to $ Argument to aliases will automatically be appended to the expanded alias unless you use one of the following forms in the alias: $* $n $n-m $-m $n- $(sub-alias) If one of these forms is used in the alias arguments are not appended. For example: ALIAS M /MSG will be treated as: ALIAS M /MSG $* However, ALIAS M /MSG $0 $1- will not have the arguments appended. If you have an alias and you wish to prevent arguments from being appended, add $() to the alias. The $() with nothing between the parenthesis expands to nothing and prevents arguments from being appended. Any alias may be surrounded by {}s so that it can be imbedded within another string. For example: a${N}a will expand to (assuming your nickname is BigCheese): aBigCheesea Aliases are automatically delimited by certain characters. For example: "$N" expands to: "BigCheese" :::::::::::::: ALIAS/width :::::::::::::: ALIAS MODIFIER: This modifier is a width specifier for any of the forms of alias. This is done by placing [<width>] after the $ (and after and ^c expressions). For example: $[10]C This expand to your current channel, but it will truncate any characters beyond 10 in the channel name. If the channel is less than 10 characters, it will be padded on the right with blanks. Specifying a negative width will justify the field on the right and pad on the left with blanks. A width of 0 is treated as though no width specifier was used. If you get real tricky, you can do things like this: $([$CHANNEL_NAME_WIDTH]C) The value of the IRCII variable CHANNEL_NAME_WIDTH will be expanded in the $() expression. If CHANNEL_NAME_WIDTH is 10, this will result in $[10]C which will then expand as described above. Remember, you can use both forms of modifiers, but they must be in the correct order. All ^ modifiers must be first, followed by any [] modifier. For example: $^.[-10]S This will right justify your server name and quote any . in the server name with \. See Also: ALIAS QUOTE :::::::::::::: ASSIGN :::::::::::::: Usage: ASSIGN [[-]<user-variable> [<whatever>]] ASSIGN lets you create user variables which are automatically expanded by ircII in aliases using the $variable-name format. For example, if you had defined: ASSIGN me The Big Cheese Then, in an alias, $me would expand to "The Big Cheese". These are straight textual substitutions. You can use these kind of variables as counters and indexes into lists as well. For example: ASSIGN index 0 ASSIGN index ${index+1} The first line sets "index" to 0, the seconds increments index by 1. Note that the second will always be expanded if used in another alias (where $ are normally expanded). If you want it to be expanded if typed at the input line, you must first set INPUT_ALIASES to ON. Note: In the above example, the mathematical expression must be enclosed by {}'s otherwise the + would be treated as an alias delimiter and the addition not performed. (See @ as well) Suppose now you wanted to use index to get a single word in a list, you could do: ALIAS WORD ECHO $($index) Then doing: WORD This is a test would display the index'th word in the list. The $($index) format does the following: it parses the text between the () as a sub-alias. The "$index" is thus evaluated and returns it's value. This value is then replaced for the () expression and evaluated. So, if you had: ASSIGN index 1 Then, the following would be evaluated: $index becomes 1 which given $(1) which becomes simply $1 Thus the $1 argument is used. This functionality can be nested. This the following: ASSIGN A Hey You! ASSIGN B A ASSIGN C B ALIAS NESTING echo $($($C)) will cause NESTING to display "Hey You!" The following format are also legal: $#name evaluates to the number of words in name $@name evaluates to the number of characters in name You can use these with the mathematical expressions as well, for example: ASSIGN foo Testing One Two ECHO $#foo $@foo ASSIGN junk ${#foo + @foo} The ECHO line will display 3 15 and the variable junk have the value 18. Additionally, values assigned to FUNCTION_RETURN are taken to be the return value of a function. IMPORTANT NOTE: There is a special version of this command called '@' for use in aliases and scripts. It is well suited to mathematical operations. Its use over ASSIGN is highly recommended. See Also: @ ALIAS IF SET INPUT_ALIASES ALIAS functions :::::::::::::: AWAY :::::::::::::: Usage: AWAY [<flags>] [<away message>] Marks you as "away". Whenever someone sends you a MSG or a does a WHOIS on you, they automatically see whatever message you set. While you are away, all messages you receive will be timestamped and you will optionally get beeped (see SET BEEP_WHEN_AWAY) for each message. Using AWAY with no parameters marks you as no longer being away. Available Flags: -one Send away message to only the server in the current window. -all (default) send away message to all servers you may be on. See Also: SET BEEP_WHEN_AWAY SET SHOW_AWAY_ONCE :::::::::::::: BIND/BACKSPACE :::::::::::::: Usage: BIND <key> BACKSPACE The BACKSPACE function deletes the character to the left of the cursor and moves the cursor one space to the left. If the cursor is at the first position in the input line, BACKSPACE has no effect. :::::::::::::: BIND/BACKWARD_CHARACTER :::::::::::::: Usage: BIND <key> BACKWARD_CHARACTER The BACKWARD_CHARACTER function moves the cursor one space to the left. If the cursor is at the first character in the input buffer, this function has no effect. :::::::::::::: BIND/BACKWARD_HISTORY :::::::::::::: Usage: BIND <key> BACKWARD_HISTORY Replaces the contents of the input buffer with the previous command in the command history buffer. The command history buffer is a circular buffer that wraps at the end. :::::::::::::: BIND/BACKWARD_WORD :::::::::::::: Usage: BIND <key> BACKWARD_WORD Moves the cursor to the first character of the previous word. If the cursor is in the middle of a word, the cursor is moved to the first character of the same word. If the cursor is on the first character of a word or on whitespace, the cursor is moved to the first character of the previous word. :::::::::::::: BIND/BEGINNING_OF_LINE :::::::::::::: Usage: BIND <key> BEGINNING_OF_LINE Moves the cursor to the first character in the input buffer. This need not be the first character visible on the screen, since the input buffer wraps when the line gets too long. This is always the first characters in the input buffer. :::::::::::::: BIND/BIND :::::::::::::: Usage: BIND <key> <function> [<string>] Binds a keystroke sequence to an IRC function. The QUOTE_CHARACTER key (by default ^Q) may be used to override any key binding and have IRC insert the actual value of the key in the input line. See Also: BIND KEYS for information on allowable [key] parameters BIND EXAMPLES for some examples. BIND <function> for help on individual key binding functions PARSEKEY :::::::::::::: BIND/CLEAR_SCREEN :::::::::::::: Usage: BIND <key> CLEAR_SCREEN This function will clear the display and restart a screen that has been stopped by HOLD_MODE or by the TOGGLE_STOP_SCREEN function. :::::::::::::: BIND/COMMAND_COMPLETION :::::::::::::: Usage: BIND <key> COMMAND_COMPLETION The COMMAND_COMPLETION function will cause IRCII to attempt to complete the command you have typed in the input line. If a match is found, it is expanded to its full length in the input line. If multiple matches are found, the complete list of matching commands is displayed. If no match is found, the input line is left unchanged. :::::::::::::: BIND/DELETE_CHARACTER :::::::::::::: Usage: BIND <key> DELETE_CHARACTER Deletes the character under the cursor. The cursor is not moved by this operation. If the cursor is at the end of the input buffer, this function has no effect. :::::::::::::: BIND/DELETE_NEXT_WORD :::::::::::::: Usage: BIND <key> DELETE_NEXT_WORD Deletes from the cursor position to the end of the next word. If the cursor is in the middle of a word, all characters from the cursor position to the end of the word are deleted. If the cursor is on whitespace, all following whitespace up through the end of the next word is deleted. :::::::::::::: BIND/DELETE_PREVIOUS_WORD :::::::::::::: Usage: BIND <key> DELETE_PREVIOUS_WORD Deletes to the beginning of the previous word. If the cursor is in the middle of a word, all characters from the left of the cursor to the beginning of the word. If the cursor is on whitespace, all whitespace through to the beginning of the previous word are deleted. :::::::::::::: BIND/END_OF_LINE :::::::::::::: Usage: BIND <key> END_OF_LINE Moves the cursor to the last character of the input buffer. :::::::::::::: BIND/ENTER_DIGRAPH :::::::::::::: Usage: BIND <key> ENTER_DIGRAPH The ENTER_DIGRAPH function allows you to enter digraphs or compose letters not normally available on your keyboard. If you have not made any changes to the internal digraph table (using DIGRAPH), you could for example enter a German sharp "s"; enter the key to activate the ENTER_DIGRAPH function, followed by two "s". Note that, in order to display this character on your screen, your terminal must be capable of doing so. If you, for instance, have an American 7-bit ASCII terminal, and have informed ircII of this (by entering the command "SET TRANSLATION ASCII"), only a normal "s" will displayed, eventhough it will be treated as a German sharp "s" internally. To view the available digraphs, enter the "DIGRAPH" command with no arguments. By default, ircII uses the same sequences as available on Digital VT320/VT420 terminals as well as in the editor Elvis. See Also: DIGRAPH SET TRANSLATION :::::::::::::: BIND/ENTER_MENU :::::::::::::: Usage: BIND <key> ENTER_MENU Enters the menu what was loaded by MLOAD and set into MENU. See Also: MENUS SET MENU MLOAD :::::::::::::: BIND/ERASE_LINE :::::::::::::: Usage: BIND <key> ERASE_LINE Erases the contents of the input buffer, leaving it very empty. :::::::::::::: BIND/ERASE_TO_BEG_OF_LINE :::::::::::::: Usage: BIND <key> ERASE_TO_BEG_OF_LINE Erases from the cursor position to the beginning of the input line. :::::::::::::: BIND/ERASE_TO_END_OF_LINE :::::::::::::: Usage: BIND <key> ERASE_TO_END_OF_LINE Erases from the cursor position to the end of the input buffer. :::::::::::::: BIND/FORWARD_CHARACTER :::::::::::::: Usage: BIND <key> FORWARD_CHARACTER Moves the cursor to the right one position. If the cursor is at the end of the input buffer, this function has no effect. :::::::::::::: BIND/FORWARD_HISTORY :::::::::::::: Usage: BIND <key> FORWARD_HISTORY Replaces the contents of the input buffer with the next entry in the command history buffer. The command history buffer is circular and wraps at the end. :::::::::::::: BIND/FORWARD_WORD :::::::::::::: Usage: BIND <key> FORWARD_WORD Moves the cursor to the end of the next word. If the cursor is in the middle of a word, it is moved to the end of that word. If the cursor is already at the end of a word or on whitespace, it is moved to the end of the next word. :::::::::::::: BIND/HELP_CHARACTER :::::::::::::: Usage: BIND <key> HELP_CHARACTER This shows help on the current input buffer without disturbing the contents of the buffer. It is as though you had typed HELP followed by whatever is in the input buffer. :::::::::::::: BIND/META1_CHARACTER :::::::::::::: Usage: BIND <key> META1_CHARACTER This function switches to an "alternate" keymap. That is, after this character is hit, the next key hit can have a new definition. This is how the Escape sequences are done. In fact, the escape key's default binding is META1_CHARACTER. For example: BIND ^X META1_CHARACTER binds this function to ^X. You may then bind meta key sequences with either of the two following formats: BIND ^X? HELP_CHARACTER or BIND META1-? HELP_CHARACTER :::::::::::::: BIND/META2_CHARACTER :::::::::::::: Usage: BIND <key> META2_CHARACTER This function switches to an "alternate" keymap. That is, after this character is hit, the next key hit can have a new definition. This is how the Escape sequences are done. In fact, the escape key's default binding is META1_CHARACTER. For example: BIND ^X META2_CHARACTER binds this function to ^X. You may then bind meta key sequences with either of the two following formats: BIND ^X? HELP_CHARACTER or BIND META2-? HELP_CHARACTER :::::::::::::: BIND/META3_CHARACTER :::::::::::::: Usage: BIND <key> META3_CHARACTER This function switches to another "alternate" keymap. That is, after this character is hit, the next key hit can have a new definition. This is how the Escape sequences are done. In fact, the escape key's default binding is META1_CHARACTER. For example: BIND meta1-[ META3_CHARACTER binds this function to ^[[. You may then bind meta key sequences with either of the two following formats: BIND ^[[A BACKWARD_HISTORY or BIND META3-A BACKWARD_HISTORY Works just like the META1_CHARACTER and the META2_CHARACTER but the default binding is meta1-[ which is very useful for binding arrow keys and other escape sequences. :::::::::::::: BIND/META4_CHARACTER :::::::::::::: Usage: BIND <key> META4_CHARACTER The META4_CHARACTER is just like the other meta keys except that it is now sticky. That is, Meta4-C-D-E-F-G invokes the meta4 versions of C, D, E, F and G. This effect lasts until meta4 is invoked again. Additionally, the Meta4 characters ^h, SPACE, h, i, j, k, x, H, I, J, K, L and X have been bound in such a way that BIND ^[ META4_CHARACTER now gives a vi editing mode. It will stay 'stuck' until it is unstuck with any key bindings that happen to activate the META4_CHARACTER. :::::::::::::: BIND/NEXT_WINDOW :::::::::::::: Usage: BIND <key> NEXT_WINDOW Switches the "current window" to be the next window in the window list. This is the window "below" the current window on the screen. At the bottom of the screen, this will jump to the top most window on the screen. :::::::::::::: BIND/NOTHING :::::::::::::: Usage: BIND <key> NOTHING The NOTHING function does nothing. Effectively, it disables the key it is bound to (to which it is bound for you grammatical types). :::::::::::::: BIND/PARSE_COMMAND :::::::::::::: Usage: BIND <key> PARSE_COMMAND <string> The PARSE_COMMAND function cause the supplied string to be executed as an ircII command (or alias). It doesn't need to be prefixed by the command character. This function does not disturb the contents of the input line and is not added to the command history. You may also include any of the special $ sequences available in ALIAS and they will be expanded before the line is parsed. The sequences that deal with command line arguments ($*, $n, $-n) are expanded as though there were no command line arguments. See Also: ALIAS ircII programming :::::::::::::: BIND/PREVIOUS_WINDOW :::::::::::::: Usage: BIND <key> PREVIOUS_WINDOW Switches the "current window" to be the previous window in the window list. This is the window "above" the current window on the screen. At the top of the screen, this will jump to the bottom most window on the screen. :::::::::::::: BIND/QUIT_IRC :::::::::::::: Usage: BIND <key> QUIT_IRC Exit irc and return to whatever excuse for a shell you're using. Sorry. Didn't mean that. :::::::::::::: BIND/QUOTE_CHARACTER :::::::::::::: Usage: BIND <key> QUOTE_CHARACTER This function "quotes" the next key hit. What this really means is that it overrides the key binding for the next key and forces it to insert itself into the input buffer. For example, if you have Control D bound to delete character, and you hit the quote character (defaults to Control Q) then Control D, it will insert a Control D (shows up as an inverse video D) and does not delete the character. Got it? :::::::::::::: BIND/REFRESH_INPUTLINE :::::::::::::: Usage: BIND <key> REFRESH_SCREEN Amazingly, this refreshes the input line, in case some other nasty program has munged it up. :::::::::::::: BIND/REFRESH_SCREEN :::::::::::::: Usage: BIND <key> REFRESH_SCREEN This redraws the screen, in case some other nasty program has munged it up. :::::::::::::: BIND/SCROLL_BACKWARD :::::::::::::: Usage: BIND <key> SCROLL_BACKWARD When SCROLL is set on, this will allow you to scroll back through your lastlog entries 1/2 page at a time. The default binding for this is meta1-p. A key must be bound to SCROLL_END to exit this (default meta1-e). It is suggested that you have HOLD_MODE set on or otherwise when you get out of the history all your new messages will flash by. See Also: BIND SCROLL_FORWARD BIND SCROLL_END BIND SCROLL_START :::::::::::::: BIND/SCROLL_END :::::::::::::: Usage: BIND <key> SCROLL_END This binding is absolutely necessary if you plan to use the features found with SCROLL_BACKWARD and SCROLL_FORWARD. It allows you to exit from the viewing of the lastlog. It is the counterpart of SCROLL_START. Default binding is meta1-e. See Also: BIND SCROLL_START BIND SCROLL_FORWARD BIND SCROLL_BACKWARD :::::::::::::: BIND/SCROLL_FORWARD :::::::::::::: Usage: BIND <key> SCROLL_FORWARD When SCROLL is set on, this will allow you to move forward through your lastlog entries 1/2 page at a time. This is after you have entered the lastlog viewing mode with SCROLL_BACKWARD. The default binding for this is meta1-n a key must be bound to SCROLL_END to exit this (default meta1-e). A good way to use this is to use SCROLL_START and then SCROLL_FORWARD to the end of the lastlog. It is suggested that you have HOLD_MODE set on or otherwise when you get out of the history all your new messages will flash by. See Also: BIND SCROLL_BACKWARD BIND SCROLL_END BIND SCROLL_START :::::::::::::: BIND/SCROLL_START :::::::::::::: Usage: BIND <key> SCROLL_START This binding allows you to go to the start of the lastlog buffer immediately, rather than using SCROLL_BACKWARD a heap of times. It is the opposite of SCROLL_END. Default binding is meta1-<. See Also: BIND SCROLL_END BIND SCROLL_FORWARD BIND SCROLL_BACKWARD :::::::::::::: BIND/SELF_INSERT :::::::::::::: Usage: BIND <key> SELF_INSERT Causes the key it is bound to to insert itself into the input buffer. This is the default binding for the alphabet keys, numbers, etc. If this is bound to a meta sequence, it will only insert the last key hit in the meta sequence. Note: This is how you "unbind" a key. :::::::::::::: BIND/SEND_LINE :::::::::::::: Usage: BIND <key> SEND_LINE This "sends" the input buffer to the server. Well, really it first expands aliases, etc... but you get the idea. It is normally bound to the return key or enter key... or both. See Also: SENDLINE :::::::::::::: BIND/STOP_IRC :::::::::::::: Usage: BIND <key> STOP_IRC Sends a Stop signal to IRC II, returning you to the shell. Normally, you can then return to IRC II by typing fg. Please read about your shell to find out about this. The default binding for stop_irc is meta2-^Z or for most people ^X^Z :::::::::::::: BIND/SWITCH_CHANNELS :::::::::::::: Usage: BIND <key> SWITCH_CHANNELS Changes the current channel for the current window. This will only switch to a channel not currently directed to another window. That is, if you are on three channels, #Foo, #Bar, and #Cheese, and #Foo and #Bar are currently directed to two windows but #Cheese isn't, then SWITCH_CHANNELS will only toggle between #Cheese and either #Foo or #Bar (depending upon which window this is done in) :::::::::::::: BIND/TOGGLE_INSERT_MODE :::::::::::::: Usage: BIND <key> TOGGLE_INSERT_MODE Toggles the INSERT_MODE variable. This function is equivalent to doing: SET INSERT_MODE TOGGLE :::::::::::::: BIND/TOGGLE_STOP_SCREEN :::::::::::::: Usage: BIND <key> TOGGLE_STOP_SCREEN Stops and starts the screen display if it is scrolling madly out of your control. The display is also restarted after the SEND_LINE function is executed. :::::::::::::: BIND/TRANSPOSE_CHARACTERS :::::::::::::: Usage: BIND <key> TRANSPOSE_CHARACTERS Swaps the two characters before the cursor. Thats all. :::::::::::::: BIND/TYPE_TEXT :::::::::::::: Usage: BIND <key> TYPE_TEXT <string> Causes the given string to be typed into the input buffer using the current setting of the INSERT_MODE variable. :::::::::::::: BIND/UNSTOP_ALL_WINDOWS :::::::::::::: Usage: BIND <key> UNSTOP_ALL_WINDOWS When activated, all currently stopped windows will be restarted. :::::::::::::: BIND/YANK_FROM_CUTBUFFER :::::::::::::: Usage: BIND <key> YANK_FROM_CUTBUFFER Restores the last deleted thing. The following functions store what they deleted to the cutbuffer: DELETE_NEXT_WORD DELETE_PREVIOUS_WORD ERASE_LINE ERASE_TO_END_OF_LINE :::::::::::::: BIND/examples :::::::::::::: Examples of the BIND function: BIND ^X META2_CHARACTER Makes control X a meta key. BIND ^Xl parse LIST Binds the meta sequence control X followed by l to perform a LIST. This binding is only valid if ^X was previously bound to a meta function (as was done in the first example). BIND META1-u BACKWARD_HISTORY by default, the escape key is bound to META1_CHARACTER, so this binding makes the escape u key sequence show the last command history entry. Note that more than one key may be bound to *any* function. BIND ! type Bang! This binds the ! (exclamation mark) to type the word "Bang!" into the input line whenever it is hit. BIND META1-[ meta2 BIND meta2-A BACKWARD_HISTORY BIND meta2-B FORWARD_HISTORY BIND meta2-D BACKWARD_CHARACTER BIND meta2-C FORWARD_CHARACTER This sequence would bind your arrow keys to the functions listed. :::::::::::::: BIND/keys :::::::::::::: Allowable key sequences for use with the BIND function: c where c is any key (case sensitive) ^c where c is one of A thru Z or one of the following quoted set '?[]\^@' (^? == delete key) METAn-c where n is 1, 2, 3 or 4 and c is the same as the first form above METAn-^c where n is 1, 2, 3 or 4 and c is the same as the second form above mc where m has been previously bound to META1_CHARACTER, META2_CHARACTER, META3_CHARACTER, or META4_CHARACTER and c is the same as the first form above. m may be either of the first two forms above (m or ^m). m^c where m has been previously bound to META1_CHARACTER META2_CHARACTER, META3_CHARACTER, or META4_CHARACTER and c is the same as the second form above. m may be either of the first two forms above (m or ^m). :::::::::::::: BYE :::::::::::::: See QUIT for more information about BYE. :::::::::::::: CHANNEL :::::::::::::: See JOIN for more information about CHANNEL. :::::::::::::: CLEAR :::::::::::::: Usage: CLEAR [-ALL] Clears the current window. If the -ALL flag is used, clears all visible windows. :::::::::::::: COMMENT :::::::::::::: Usage: COMMENT [<anything you want>] This is a comment, it does nothing. Useful in .ircrc files. COMMENT, : and # are identical in operation. :::::::::::::: CTCP/ACTION :::::::::::::: Usage: CTCP <nick> ACTION <action description> This command can be used to send a description of what you are doing or how you are feeling or just about anything concerning you, to the current channel or query. It's just the low-level version of ME and DESCRIBE. See Also: ME DESCRIBE :::::::::::::: CTCP/CLIENTINFO :::::::::::::: Usage: CTCP <nick> CLIENTINFO [<ctcpcommand>] CLIENTINFO returns the known CTCP commands from another client in a list. You can inspect commands further by calling 'CLIENTINFO VERSION' for example. You will (or should) be given a one-line explanation of what this command is supposed to do. To find out about your own client services, execute a CLIENTINFO on yourself: CTCP mynick CLIENTINFO Warning: Some CTCP commands are not supposed to be sent by hand, in particular ERRMSG, DCC, and SED. :::::::::::::: CTCP/CTCP :::::::::::::: Usage: CTCP <nick> <command> [<args>] CTCP allows you access to the client-to-client protocol used to perform certain client specific actions between different clients on the network. The CTCP mechanism works by sending a specially coded message to another user whose client is supposed to reply with a reply message of the type, or with an error message, unless you sent it to a channel. For example, if you do: CTCP BigCheese VERSION you will receive: *** CTCP REPLY VERSION from BigCheese: ircII 2.2.2 *IX. The <command> field may be of several types, new ones are introduced all the time, but there is a mechanism for you to find out what you can use: see CLIENTINFO. If the nickname is "*" the output is sent to the current channel. See Also: CTCP CLIENTINFO ON CTCP ON CTCP_REPLY :::::::::::::: CTCP/ECHO :::::::::::::: Usage: CTCP ECHO <nick> <text> Simply asks the remote client to return whatever <text> you send to it. :::::::::::::: CTCP/FINGER :::::::::::::: Usage: CTCP <nick> FINGER FINGER will attempt to show the real name and idle time for the specified nickname. :::::::::::::: CTCP/PING :::::::::::::: Usage: CTCP PING <nick> <current time> Current time is the same as what the function $TIME() returns and represents the number of seconds since Jan 1, 1970. Other ircII clients will take a CTCP ping and bounce the time back to you. This CTCP function is used by the PING command. See Also: PING :::::::::::::: CTCP/TIME :::::::::::::: Usage: CTCP <nick> TIME TIME will return the current time for the nickname specified. This differs from the /TIME command in that it asks the user's client for the time instead of the user's server, which can be a long distance away. :::::::::::::: CTCP/USERINFO :::::::::::::: Usage: CTCP <nick> USERINFO USERINFO returns whatever information a person choses to put in their USER_INFORMATION variable. See Also: SET USER_INFORMATION :::::::::::::: CTCP/UTC :::::::::::::: Usage: CTCP <nick> UTC <system time> This is primarily for robots to send date and time information to users and have it displayed in local time. The format of the UTC CTCP is: UTC number where number is the ASCII representation of the 32 bit integer representing the time as is used on UNIX machines. When IRCII receives this CTCP, it replaces the text of the local time expressed in the local language back into the original message. Thus if you send the following: NOTICE nick The time is ^AUTC 702777074^A The user might see: -yournick- The time is Thu Apr 9 09:51:14 1992 (if their timezone is Australian Eastern Standard Time). Obviously you can use the $TIME() function here effectively. :::::::::::::: CTCP/VERSION :::::::::::::: Usage: CTCP <nick> VERSION VERSION will show you the version of the client that a particular person is using. Note: SL0 means Script Level 0 :::::::::::::: DATE :::::::::::::: Usage: DATE [<server>|<nickname>] Shows the current time of day and date. If a server is specified, the time of day and date are reported from that server. If a nickname is specified it shows you the above information for that person's current server. DATE and TIME are identical. :::::::::::::: DCC/CHAT :::::::::::::: Usage: DCC CHAT NICK DCC CHAT initiates a direct client connection chat to the given nick, who must respond with DCC CHAT. This is the most secure form of communication available on IRC. Messages sent via a DCC CHAT connection are not sent through IRC, but are sent by a direct connection between your client and the remote client. Messages are sent over a DCC CHAT connection with /MSG =nick See Also: MSG :::::::::::::: DCC/CLOSE :::::::::::::: Usage: DCC CLOSE <type> <nick> [<arguments>] DCC CLOSE closes an unwanted DCC connection or offer. The type, nick and arguments are the same as those shown by DCC LIST. If the arguments are not specified, the oldest connection of the specified type is closed. See Also: DCC LIST DCC RENAME :::::::::::::: DCC/DCC :::::::::::::: Usage: DCC [<function> [<arguments>]] DCC handles direct connections to remote clients. The behaviour of DCC is determined by the FUNCTION specified. DCC called with no function is the same as DCC LIST See Also: DMSG ALIAS functions ($connect() and $listen()) :::::::::::::: DCC/GET :::::::::::::: Usage: DCC GET <nick> <filename> DCC GET accepts a file transfer by direct client connection. If the filename is not supplied then it defaults to the first file offered by that nickname. The sender must first have offered the file with DCC SEND. See Also: DCC RENAME DCC SEND :::::::::::::: DCC/LIST :::::::::::::: Usage: DCC LIST DCC LIST lists all the current DCC connections showing the type of connection, the nick of the person on the other end of the connection, the current state of that connection and any other information associated with that connection. See Also: DCC CLOSE :::::::::::::: DCC/RENAME :::::::::::::: Usage: DCC RENAME <nick> [<filename1> [<filename2> ...]] DCC RENAME renames a file prior to a DCC GET from filename1 to filename2. If filename1 is not specified, the oldest file connection to the given nick is renamed. See Also: DCC GET DCC LIST :::::::::::::: DCC/SEND :::::::::::::: Usage: DCC SEND <nick> <filename> DCC SEND initiates a file transfer by direct client connection. The recipient must accept your offer of a file transfer with DCC GET. See Also: DCC GET :::::::::::::: DESCRIBE :::::::::::::: Usage: DESCRIBE <nickname>|<channel> <action description> This command can be used to send a description of what you are doing or how you are feeling or just about anything concerning you, to the person or channel you pass as first argument. DESCRIBE BigCheese takes a flask of whisky out of the fridge. is supposed to produce a line on BigCheese's screen stating: * Lynx takes a flask of whisky out of the fridge. This command makes use of CTCP and is not understood by all clients. If you get an error message, your description has not arrived properly. See Also: ME LOAD ACTION LOAD MUDLIKE CTCP CTCP ACTION CTCP CLIENTINFO :::::::::::::: DIGRAPH :::::::::::::: Usage: DIGRAPH [-<flag> [<arg0> <arg1> ...]] A command for maintaining the internal digraph table. See BIND ENTER_DIGRAPH for information on entering digraphs. Use the DIGRAPH command without any arguments to display the current digraph table. Note that if you are using a map other than Latin-1, (your TRANSLATION variable is set to something else than LATIN-1), many characters might be converted on the screen to something that your terminal is capable of displaying. Available flags: -ADD <arg0> <arg1> <arg2> Adds a digraph to the table, where <arg0> and <arg1> are the two characters that should result in the digraph represented by the character <arg2>. The arguments can be given in several formats. DIGRAPH -ADD a b c will result in a digraph entry for the letter "c", that will be given by composing the letters "a" and "b". DIGRAPH -ADD a b !c would result in a digraph entry for the letter represented by an "a" with a tilde above, which is the same as "c" with MSB (bit 8) set in the ISO 8859/1 map. The very same result is achieved with DIGRAPH -ADD 61 62 227 thus giving the values in directly in decimal. All modes can be combined. -REMOVE <arg0> <arg1> Removes a digraph entry in the table, in a similar fashion as DIGRAPH -ADD. -CLEAR Removes ALL digraph entries from the table. Use this command only if you know what you are doing. It's primary use is when loading the .ircrc file. If you do any changes in the digraph table, using -ADD, -REMOVE or -CLEAR flags, they will be recorded in your .ircrc file if you chose to save it. See Also: BIND ENTER_DIGRAPH SET TRANSLATION :::::::::::::: DMSG :::::::::::::: Usage: DMSG <nickname> <text> DMSG is an alias for MSG =<nickname>, and as such sends a message across a DCC CHAT connection. If you don't install the 'script' directory then this command will not work. See Also: MSG DCC CHAT :::::::::::::: DQUERY :::::::::::::: Usage: DQUERY [<nickname>] DQUERY is an alias for QUERY =<nickname>, thus allowing you to QUERY a DCC CHAT connection. See Also: DCC CHAT MSG QUERY :::::::::::::: ECHO :::::::::::::: Usage: ECHO [<anything you want>] This simply displays all of it's arguments. However, it's not that simple. ECHO will work even if DISPLAY is set to OFF, making it useful in your .ircrc file. Also, ECHO will work in the action portion of an ON command in all modes. This can be used to redefine the way messages appear. See Also: ON SET DISPLAY XECHO :::::::::::::: ENCRYPT :::::::::::::: Usage: ENCRYPT [<nickname>|<channel> [<key>]] ENCRYPT allows you to hold an encrypted conversations with a person or a whole channel. Once a nickname/channel and key is specified, all messages you send to that nickname/channel will automatically be encrypted using the given key. Likewise, any messages from that nickname/channel will automatically be decrypted. ircII is smart enough to know if the incoming message isn't encrypted and will not attempt to decrypt it. If you received an encrypted message from someone for whom you haven't specified a key, it will be displayed as [ENCRYPTED MESSAGE]. The <key> can be any text which is to be used an they key for encryption/decryption of the conversation. It is up to you and the people you wish to talk to about how to agree upon a key and how to communicate it to one another. For example, if user CheeseDog wishes to talk encryptedly with user DogCheese, they must first agree on an encryption key (case sensitive), say foo. Then user CheeseDog must issue a ENCRYPT DogCheese foo and user DogCheese must issue a ENCRYPT CheeseDog foo Thereafter, all messages sent between CheeseDog and DogCheese will be encrypted and decrypted automatically. If ENCRYPT is given with a nickname but no key, then encrypted conversation is ended with that user. If ENCRYPT is given with no arguments, the list of encrypted user and keys are displayed. IrcII uses a built in encryption method that isn't terribly secure. You can use another if you so choose, see SEE ENCRYPT_PROGRAM for information about this. If you are sending encrypted messages to a user or channel, you can toggle it off and on in a message line by inserting the control-E character in the input line. This is usually done by hitting control-Q then control-E. An inverse video E will appear in the input line. Note: Control-q is bound (see BIND) to quote_character by default. It is frequently necessary to change this to some other char. See Also: SET ENCRYPT_PROGRAM :::::::::::::: EVAL :::::::::::::: Usage: EVAL <commands> EVAL passes the commands through the inline parser and executes them. This means that variables are expanded, and ;'s are honored. Note: You HAVE to use EVAL in a script if you want it to expand aliases and vars while it loads. The value of INPUT_ALIASES is ignored when loading scripts. See Also: LOAD SET INPUT_ALIASES :::::::::::::: EXIT :::::::::::::: See QUIT for more information about EXIT. :::::::::::::: FLUSH :::::::::::::: Usage: FLUSH Flushes all pending output from the server. This has the effect of stopping long lists from the server, such as a LINKS command which can get quite lengthy. It also flushed any output pending from the client itself. It is useful for wiping away anything pending when you have HOLD_MODE set. :::::::::::::: FOREACH :::::::::::::: Usage: FOREACH <structure> <variable> { <commands> } This causes <commands> to be executed once for each element in the structure. The aliases inside the {} are not expanded until execution unless the leading { is quoted like \{ Here are a couple examples of basic foreach commands. assign blue.1 one assign blue.2 two assign blue.3 three foreach blue ii { echo $ii $blue[$ii] } will return 1 one 2 two 3 three FOREACH can also be imbedded such as in the following example. assign blue.1.1 one one assign blue.1.2 one two assign blue.2.1 two one assign blue.2.2 two two alias showblue { foreach blue ii { foreach blue.$ii jj { echo $ii $jj $blue[$ii][$jj] } } } And /showblue returns.. 1 1 one one 1 2 one two 2 1 two one 2 2 two two Note: When using this format the {} in the foreach must be on separate lines by themselves. This is true for IF and WHILE as well. Notice that variable names 'ii' and 'jj' were used. Any name can be used for the index but keep in mind that single letter vars can interfere with the built in single char vars. See ALIAS special See Also: expressions ALIAS special :::::::::::::: HELP :::::::::::::: Usage: HELP [<command> [<subcommands>]] Shows help on the given command. The help documentation is set up in a hierarchical fashion. That means that certain help topics have sub-topics under them. For example, doing HELP ADMIN gives help on the admin command, while: HELP SET gives help on the set command and also displays a list of sub-topics for SET. If you are using a help service, like help_US or help_AU, then to get help on the subtopics, you would do: HELP SET <subtopic> where <subtopic> is one of the subtopics. If you are using the built in help, then you need only type the subtopic name. The input prompt will indicate what help level you are on. Hitting return will move you up one level. At any time, you can specify a ? to get a list of subtopics without the associated help file, for example: HELP ? gives a list of all main help topics. The following: HELP BIND ? gives the list of all BIND subtopics. If you use a ? with a topic that has no subtopics, you will simply get the standard help file for that topic. Note: Case is unimportant even when viewing the lower case filenames such as 'newuser' or 'intro'. See Also: intro :::::::::::::: HISTORY :::::::::::::: Usage: HISTORY [<number>] Displays the command history to the screen. You can specify the number of history entries you wish to view as well. See Also: SET HISTORY :::::::::::::: HOOK :::::::::::::: Usage: HOOK <anything you want> This command sends <anything you want> in such a way that it can be caught by ON HOOK "anything you want" or any regular ON syntax. E.g. if you have ON HOOK * echo one $* three and you send HOOK two it will display "one two three" as the ON is activated. This is useful if you want to put a special hook in a script or alias that you can act upon with an ON HOOK or ignore at will. See Also: ON ON HOOK :::::::::::::: IF :::::::::::::: Usage: IF (<variable-expression>) {<true-command/s>} [{<false-command/s>}] IF tests the value of the variable expression for truth. An expression is true if it is either a non empty string or a non zero number. If the expression is true, the true-commands are executed. If it is false, and the false-commands are given, they are executed. Usually the expressions will be formed by using combinations of the following: ( exp ) ( exp1 ^^ exp2 ) ( exp1 == exp2 ) ( exp1 >= exp2 ) ( exp1 != exp2 ) ( exp1 <= exp2 ) ( exp1 > exp2 ) ( exp1 || exp2 ) ( exp1 < exp2 ) ( exp1 && exp2 ) Here exp is evaluated as though it were in ${} which means that if (blah) expands the contents of $blah. Numbers are treated as constants and thus to expand $0 it must be passed to the regular parser with []. eg. IF ([$0]) ... IF (!exp) is also possible which will negate a number or a string. In the other expressions, if both exp1 and exp2 expand to numbers, then the following cause true-command to be executed: == if exp1 is equal to exp2 != if exp1 is not equal to exp2 > if exp1 is greater than exp2 < if exp1 is less than exp2 >= if exp1 is greater than or equal to exp2 <= if exp1 is less than or equal to exp2 ^^ Logical XOR of exp1 and exp2 (1 ^^ 1) == 0 (1 ^^ 0) or (0 ^^ 1) == 1 || Logical OR of exp1 and exp2 && Logical AND or exp1 and exp2 Otherwise, false-command (if present) is executed. If both exp1 and exp2 are non-numeric, then the above operations are string value comparisons. And for the logical operations A NULL string is treated as 0 with the possible exception of the ^^ operator. To put a string in an expression it must be passed to the regular parser with []. eg IF ([string1] == [string2]) .. All string comparisons are case-insensitive: so ([Hello]==[HELLO]) is true. Examples: IF (C) { set input_prompt $C } { set -input_prompt } IF (C!=0) { set input_prompt $C } { set -input_prompt } Both of the above evaluate the same way, since $C will either expand to your current channel or 0 if none. Notice the (C) format which means that it will expand exactly like ${C}. $ expansion is always performed on the contents of an the true-commands and false commands, regardless of the setting of the INPUT_ALIASES variable. IF (USER==[ms5n]) { echo Hello Mike! } { echo Who the hell are you? } This example will look for an ASSIGN'd variable named USER, and if found replace it and compare to ms5n. If no ASSIGN'd variable exists, it will check the environment variables for USER and return that. IF (index > max*2) { echo Limit reached } This checks the ASSIGN'd variable against the ASSIGN'd variable max times 2 and displays "Limit reached" if the first is greater than the second. It does nothing if this is not true. IF's can now be imbedded within each other. It is inconvient to write it out on a single line, so I will show the format needed in a script file. if (time() - lasttime > 600) { if (thud == [gone home]) { echo Bill went home over ten minutes ago echo $stime($time()) } { echo Bill is still here. } } This will first expand the function time() and the ASSIGN'd var 'lasttime' to their current values, subtract (seconds) and see if its more than 600 seconds, (10 minutes). If that is true, then it checks to see if the ASSIGN'd var 'thud' equals the string "gone home". If that is ALSO true then it will echo "Bill went home over ten minutes ago" and the current date and time. If the second IF is not true then it will display "Bill is still here.". Note there is no 'false' clause for the first IF. See Also: @ FOREACH WHILE expressions :::::::::::::: IGNORE :::::::::::::: Usage: IGNORE [<nick>] [-|+|^][<message type>] IGNORE [<user@host>] [-][<message type>] The standard form of IGNORE allows you to specify which type of messages you wish to ignore from a user. The message type parameter can be one of the following: MSGS All MSGs received NOTICES All NOTICEs received PUBLIC All normal channel conversation INVITES All INVITEs received WALLOPS All WALLOPS received NOTES All NOTEs received CTCP All CTCPs received CRAP Anything else ALL All of the above message types NONE No message types You can ignore by nickname or by specifying a userid@hostname format. Wildcards may be used in all formats. You can specify multiple types of messages to ignore on the command line. Preceeding a type with a - indicates removal of ignoring of that type of message. For example: IGNORE BigCheese MSGS INVITES ignores MSGs and INVITES from BigCheese. IGNORE *@*.cmu.edu ALL -NOTES ignores all types of messages except NOTES from anyone from CMU. You may also specify a + before any message type to cause messages of that type from that user to be displayed with the nickname highlighted. (See SET HIGHLIGHT_CHAR) For example: IGNORE *Cheese* +MSGS will cause all MSGs from anyone with Cheese in their nickname to appear with their nickname highlighted. IGNORE * +PUBLIC +NOTES will highlight all PUBLIC messages and NOTES received. The + has no effect with the user@host name format. If you specify a ^ before a message type, then messages from the matching nicknames will be displayed no matter what. This allows you to exclude certain nicknames from larger matching lists. For example: IGNORE * MSG IGNORE BigCheese ^MSG This will ignore private messages from everyone except BigCheese. All forms of IGNORE use the - to remove ignore attributes, and the type NONE will remove the user from the list completely. All forms of IGNORE will match against the nickname with the most true matching characters. What this means is if you have: IGNORE BigCheese MSGS IGNORE * +ALL Then MSG's from BigCheese will be ignored, and all other types of messages from BigCheese will be unaffected. All messages of all types from any other user will be highlighted. See Also: SET HIGHLIGHT_CHAR :::::::::::::: INFO :::::::::::::: Usage: INFO [<server>] Shows information about the IRC creators, debuggers, slaves and a lot of other people who no longer have much to do with irc. :::::::::::::: INPUT :::::::::::::: Usage: INPUT "<prompt>" <command> <args> Where it displays "prompt" and then calls command, with args, and with the line prompted for as $*. The use of this is strongly encouraged over the use of variable $"..". Similar problems that occur in /wait. E.g: ALIAS ex INPUT "Enter shell command >" exec $$* :::::::::::::: INVITE :::::::::::::: Usage: INVITE <nickname> [<channel>] Invites another user to a channel. If no channel is specified, your current channel is used. To go to the last channel to which you were INVITEd, use JOIN -invite See Also: JOIN :::::::::::::: JOIN :::::::::::::: Usage: JOIN [-INVITE|<channel_list> [<key>]] Changes your current channel to the channel specified. If no parameters are given, your current channel is displayed. Channel names begin with a # or & and may contain any character except space, carriage return, null and line feed. For example, #My_Channel, # or #!@$%^&* are valid channel names. Channel names beginning with the character '&' are local to your server. If the specified channel does not already exist, it will be created. Otherwise, if MODE +k <key> is enabled on the channel, you will have to supply the <key> to complete join. Available flags: -INVITE If the -INVITE switch is used, you will join the channel that you were last INVITED to. Or, if we wish to be grammatically correct, you will join the channel to which you were last invited. Note: Joining a channel does not cause you to leave your previous channel unless NOVICE is set to ON. See SET NOVICE If you have NOVICE off, it is possible to join several channels at the same time.. with JOIN #channel1,#channel2,#channel3 You must use commas and no spaces to separate the channel names. CHANNEL and JOIN are identical. See Also: SET NOVICE MODE for information about changing channel characteristics. :::::::::::::: KICK :::::::::::::: Usage: KICK *|<channel> <user> [<comment>] Kicks specified user off a given channel. Only channel operators are privileged to use this command. Channel operator privileges can be given to other users of channel using: MODE <channel> +o <user> and taken away with: MODE <channel> -o <user> KICK * <user> is just like the first usage but it always specifies the current channel. So KICK * idiot will kick 'idiot' off your current active channel. KICK can be very effective if used in a combination with MODE #channel +i and possibly MODE #channel +b. First line of defense should be IGNORE and KICK then then the channel can be made invite only, and if all else fails a person can be banned from the channel. The <comment> is to supply some reason for the kick to the user affected as well as to other people on your channel. IMPORTANT NOTE: Be careful with your use of KICK and MODE #channel -o as they can throw the network permanently out of sync. This generally occurs when two people are bickering about channel op status and de-op each other. This generates 'Fake MODE' notices which are an indication that something is wrong. The best way to avoid this is to not use ON and MODE together. See Also: MODE IGNORE :::::::::::::: LASTLOG :::::::::::::: Usage: LASTLOG [<flag>] [[<pattern>]|[<number of entries> [<from entry>]]] Displays the contents of the lastlog. This is a list of the most recent messages that have appeared on the screen. LASTLOG is useful to redisplay the screen if you inadvertantly do a CLEAR or miss messages for other reasons. If no arguments are given, the entire lastlog is displayed. If the first argument is a number, it determines how many log entries to show. Otherwise it is searched for in every lastlog entry. The second argument determines how many lines back to start display from. Thus LASTLOG 4 8 Shows 4 lines of the lastlog, starting at line 8... lines 8, 9, 10, 11 are displayed. Furthermore: LASTLOG bigcheese displays only those lastlog entries that contain the word "bigcheese". Available flags: You can further limit the display of the lastlog by specifying one of the following flags: -PUBLIC Normal channel messages -MSG Private messages -NOTICE Notices -NOTE Notes -WALL Walls -WALLOP Wallops -CRAP Anything not included in the other categories The lastlog will only display messages of the type specified by the flag. See Also: SET LASTLOG SET LASTLOG_LEVEL :::::::::::::: LEAVE :::::::::::::: Usage: LEAVE <channel> Leave a channel. This is used to leave a single channel. It no channel is specified your current active channel is assumed. LEAVE * also assumes your current channel. PART and LEAVE are identical. See Also: JOIN SET NOVICE :::::::::::::: LINKS :::::::::::::: Usage: LINKS [[<server>] <wildcard>] Shows all of the servers currently connected to the IRC network. If <wildcard> is specified, LINKS shows any servers that match the given expression. If a <server> is specified, it's asked for the relevant information. LINKS *.au coombs* will query whatever server is calling itself *.au for a list of servers matching coombs*, then send the information back to you. :::::::::::::: LIST :::::::::::::: Usage: LIST [<flag> [<arg>]] [<channel>] LIST gives you a listing of channels which includes channel name, number of users, and a topic (if one is set). If no channel is specified, all channels are shown, otherwise only channels that match are displayed (the channel may contain wildcards) If the channel given is the character "*" LIST only returns the information for the current channel. The displayed list may also be limited by using one or more of the following flags: -MIN n When n the minimum number of user. Channels with less than n users are not shown. -MAX n When n the maximum number of user. Channels with more than n users are not shown. -PUBLIC Only shows Public channels -PRIVATE Only shows Private (*) channels -ALL Overrides previous -PUBLIC and/or -PRIVATE -TOPIC Show channels with topic set -WIDE Shows channel names and sizes in as little space as possible. Listing can be sorted using: -NAME Sort by name of the channel -USERS Sort by number of users in the channel :::::::::::::: LOAD :::::::::::::: Usage: LOAD [-args] <filename> [<arg0> <arg1> ...] Loads the given file into irc, treating each line as an irc command, just as if it were typed into the command line, but it expects commands to not have leading command characters, for compatibility it is however allowed. LOAD is the command used automatically at irc startup to load the .ircrc file. In a LOAD script it is allowed to have leading spaces and tabs before the commands. A long line, like a long alias definition, can be split over multiple lines by putting { and } around it like this: alias follow { say sorry folks, got invited away join -i;bow say here i am especially for you grin } This format _MUST_ be used, you cannot put the { in the next line and you cannot put the } elsewhere than by itself. It is also not allowed to use { { } } constructs. If the -args flag is specified, then each line of the loaded file is alias expanded before it is executed, just as if you had INPUT_ALIASES set to ON. The optional arguments, arg0 arg1 etc, are then used to expand the argument expandos ($*, $1, $2, etc) for each line. The -args switch takes precedent over any changes of the setting of INPUT_ALIASES in the loaded file. If you only want to expand certain lines and not others, use EVAL to evaluate the given line expanding variables. The default value for INPUT_ALIASES is now OFF when loading a script. Note also that the default value for DISPLAY is OFF as well. Commands separated by ';' are not recognized by LOAD, that syntax is for ALIAS, BIND and ON only. The location of scripts should be shown in your LOAD_PATH variable which can be changed to point to your own scripts if needed. See Also: SET INPUT_ALIASES SET LOAD_PATH CD :::::::::::::: LUSERS :::::::::::::: Usage: LUSERS [<wildcard> [<server>]] Gives a brief listing of the number of visible users, the number of invisible users (marked UMODE +i), servers and the number of operators. Given a wildcard mask such as LUSERS *.edu it will count up the number of servers and users that match. If you add a <server>, it'll be asked for the above information. :::::::::::::: ME :::::::::::::: Usage: ME <action description> or <your_nickname> <action description> This command can be used to send a description of what you are doing or how you are feeling or just about anything concerning you, to the current channel or query. When I type: ME opens up the fridge is supposed to produce a line on my talking partners'screens stating: * Lynx opens up the fridge. You can also use your own nickname as command, that is you can type the line with a leading slash, like this: lynx reaches out for the orange juice Hopefully resulting into: Lynx reaches out for the orange juice. This command makes use of CTCP and is not understood by all IRC programs. If you get an error message, your description has not arrived properly. See Also: DESCRIBE LOAD ACTION LOAD MUDLIKE CTCP CTCP ACTION :::::::::::::: MLOAD :::::::::::::: Usage: MLOAD <menu file> MLOAD simply loads a menu file. See menus for more details. See Also: SET MENU MLOAD :::::::::::::: MODE :::::::::::::: Usage: MODE *|<channel> [+|-]<modechars> [<parameters>] MODE *|<channel> [+|-]b [<nick>[!<user>[@<host>]]] MODE <nick> [+|-]<umodechars> Mode command is quite complicated and it allows channel operators to change channel mode, or any user to change their personal mode. For a channel mode, <modechars> is one of the following: i - channel is invite only k <key> - Adds join key <key> to the channel. Keys can added or removed (MODE <channel> -k <key>), but not changed. l <number> - channel is limited, where <number> is the maximum number of users allowed m - channel is moderated (only channel operators talk) n - No MSGs to the channel are allowed from someone outside the channel. o <nick> - Makes <nick> a channel operator p - channel is private s - channel is secret Note: On 2.8 servers you cannot set both +p and +s modes t - topic limits, only the channel operators may change it v <nick> - Gives someone a voice to talk on a moderated channel. A + or - sign determines whether the specified mode should be added or deleted. If you supply * as channel name, modes will apply to your current channel. The second form of the MODE command allows you to ban somebody from a channel. This is done by specifying a sting of the form nick!user@host. For example: MODE #MyChannel +b *!*@gus.* bans everybody from the channel who is on IRC from any machine whose name is gus. MODE #MyChannel +b netw1z bans anybody using the nickname netw1z. MODE #MyChannel +b *!merklin@* bans anybody whose user name is merklin. MODE #MyChannel +b jerk!tug@boat.edu bans the user tug@boat.edu from the channel whenever he is using the nickname "jerk". If you are channel operator, you can list the bans in effect on a channel: MODE #MyCHannel b The third form of the MODE command allows you to modify your personal parameters. You can precede any combination of the following with + or - (+to switch that mode on, - to switch it off). o - IRC operator status. You may not turn this on with mode. To assert operator status, you must use OPER w - Receive WALLOPS (messages directed at all operators. see WALLOPS. s - Receive server notices. This includes KILL notices and notices about what is happening with links to the local server. i - Render yourself invisible. This prevents you from being seen in WHO and WHOIS information, unless somebody specifies your exact nickname with WHOIS. Note: Attempting to avoid a ban placed on you may result in forcible removal from IRC or being banned from your server. :::::::::::::: MOTD :::::::::::::: Usage: MOTD [<server>|<nickname>] Gives the message-of-the-day for the named server. If no server is given, your server is used. If a nickname is given it queries the server that that person is currently using. You should be sure to check the MOTD regularly. Ignorance of the law is not a defense in any court in the land. :::::::::::::: MSG :::::::::::::: Usage: MSG <nicknames>|<channel>|%<pid>|=<nick>|@<user>|<n>|<command> <text> Sends a private message to the nicknames or list of nicknames specified. A list of nicknames should by separated by commas (no spaces). Three special case nicknames are defined. If the nickname is "," (a comma), the message is sent to the last person who sent you a MSG. If the nickname is "." (a period), the message is sent to the last person to whom you sent a message. If the nickname is "*" the message is send to the current channel. The second form allows you to specify a channel name to which to send the message. The message will go to everyone on that channel. The third form specifies an EXEC process id to send output to. The fourth form allows you to specify a DCC CHAT connection over which to send the message. The nick specifies the nickname under which the connection was established. The fifth form allows you to specify a DCC TALK connection over which to send the message. The user specifies the user part of the user@host used to establish the DCC TALK connection. The sixth form lets you specify a process number to which the message will go, where n is the process number. This works just like the EXEC -IN command. For example: MSG %1 Homina homina homina will send the text to process 1. Process 1 must be running already using a previous call to EXEC. The last form allows messages of the type MSG COMMAND <message> which allows you to send a message to some command. Try MSG /ECHO blue This is meant to be used with QUERY primarily. * There is also a use of wildcards for operators. * MSG $*.edu * will address all users having .edu in their serverinfo. * MSG #*.edu * will address all users having .edu at the end of their host name. See Also: SET BEEP_ON_MSG EXEC :::::::::::::: NAMES :::::::::::::: Usage: NAMES [<flag> [<arg>]] [<channel>] Shows the nicknames of all users on all visible channels. If no channel is specified, all channels are shown, otherwise only matching channels are shown (the channel may contain wildcards). If the channel specified is "*" then it will show only information only about your current channel. The displayed list may also be limited by using one or more of the following flags: -MIN n When n the minimum number of user. Channels with less than n users are not shown. -MAX n When n the maximum number of user. Channels with more than n users are not shown. -PUBLIC Only shows Public channels -PRIVATE Only shows Private (*) channels -ALL Overrides previous -PUBLIC and/or -PRIVATE :::::::::::::: NICK :::::::::::::: Usage: NICK <nickname> Changes your nickname to whatever you like. The nickname may be at most 9 characters. If you specify a nickname that is already in use, you will be prompted to enter a new nickname. :::::::::::::: NOTICE :::::::::::::: Usage: NOTICE <nickname>|<channel> <text of message> Sends a private message to the nicknames or list of nicknames specified. Unlike MSG, no automated response messages (such as generated by IGNORE or an automaton) will be sent in response to a NOTICE. Other than that, it's just like a MSG. See Also: MSG for a description of parameters and switches. :::::::::::::: NOTIFY :::::::::::::: Usage: NOTIFY [[-]<nickname> [[-]<nickname> ...]] Use of this command lets you mark certain nicknames such that you will be warned when they signon or off of IRC. When someone on your notify-list signs on, you will see a message *** Signon by <nickname> detected Likewise, when they signoff, you will see *** Signoff by <nickname> detected Someone will be shown as signed off if they change nicknames as well, so keep this in mind. You can modify how the signon and signoff messages are displayed using the ON NOTIFY_SIGNON and ON NOTIFY_SIGNOFF commands. Specifying a - before a nickname will remove notification checking for that nickname. If no parameters are specified, the current status of each user on your notify list is displayed. If you specify a + without any additional parameters: NOTIFY + you will be shown a list of only those people on your notification list who are currently on irc. :::::::::::::: ON/ACTION :::::::::::::: Usage: ON [#|+|-|^|&|@]ACTION [-|^]<paramters> <action> This is activated whenever you receive an ACTION from someone. The parameters for the action are as follows: $0 nickname of person who sent the ACTION $1 to whom (nickname or channel) the ACTION was sent $2- The message :::::::::::::: ON/CHANNEL_NICK :::::::::::::: Usage: ON [#|+|-|^|&|@]CHANNEL_NICK [-|^]"<channel> [<nick>]" [action] This is activated whenever someone on a channel you are on changes their nickname. The parameters for this function are: $0 The channel from which that person has changed nick $1 Original nickname for that person $2 New nickname for that person :::::::::::::: ON/CHANNEL_SIGNOFF :::::::::::::: Usage: ON [#|+|-|^|&|@]CHANNEL_SIGNOFF [-|^]"<channel> [<nick>]" [action] This is activated whenever someone on a channel you are on leaves irc. Normally, the display would show: *** Signoff: <nickname> but, of course, you can change this. If <nick> is your own nickname, then the action will be taken when you exit from irc. The parameters are as follows: $0 The channel from which the person signed off $1 Nickname of person who left irc $2- Text of Signoff message. :::::::::::::: ON/CONNECT :::::::::::::: Usage: ON [#|+|-|^|&|@]CONNECT [-|^]<server> [action] This is activated whenever you receive a connect to a server. The parameters for the action are as follows: $0 The name of the server you connected to. :::::::::::::: ON/CTCP :::::::::::::: Usage: ON [#|+|-|^|&|@]CTCP [-|^]<parameters> [action] This event is activated whenever someone sends a client-to-client protocol (CTCP) request. Certain CTCP types are have predefined actions that you can't override with the ^, but you can use the to create your own CTCP protocols. The parameters are: $0 nick of person who send CTCP $1 who the ctcp was to (either your nick or a channel) $2 The CTCP command word $3- Any additional arguments For example, if you want to set up a new ctcp function called CHEESE, you would do: ON -CTCP "* * CHEESE" CTCP $0 $2 Say Cheese! Using the /CTCP in an ON CTCP automatically sends the proper reply format. If someone no send you a: CTCP <yournick> CHEESE you will see: *** CTCP CHEESE from <theirnick>: and they will see: *** CTCP REPLY CHEESE from <yournick>: Say Cheese! See Also: CTCP ON CTCP_REPLY :::::::::::::: ON/CTCP_REPLY :::::::::::::: Usage: ON [#|+|-|^|&|@]CTCP_REPLY [-|^]<parameters> [action] This event is activated when you receive a reply from a CTCP request that you made (with the CTCP command). For example, if you did: CTCP BigCheese VERSION you would receive a: *** CTCP REPLY VERSION from BigCheese: IRCII 2.1beta2 Unix from BigCheese. However, if you had: ON ^CTCP_REPLY "* VERSION" /echo $0 is using $2- and did the CTCP show above, you would get something like: BigCheese is using IRCII 2.1beta2 Unix The parameters are: $0 nick of person who sent the reply $1 The CTCP command being replied to $2- The reply itself (depends on $1) Note: You may NOT use the CTCP command in an ON CTCP_REPLY. It simply will report an error message to you and not work. It is illegal to do this and it is not supported. :::::::::::::: ON/DCC_CHAT :::::::::::::: Usage: ON [#|+|-|^|&|@]DCC_CHAT [-|^]<paramters> [action] This is activated whenever you receive a DMSG from someone. The parameters for the action are as follows: $0 nickname of person who sent the DMSG $1- The message Warning: As DMSG is outside the IRC protocol, it allows you to send a DMSG from an ON DCC_CHAT. This has the potential to create loops. If you intend to send a DMSG from DCC_CHAT you are responsible for ensuring that it will not create a loop. :::::::::::::: ON/DCC_RAW :::::::::::::: Usage: ON [#|+|-|^|&|@]DCC_RAW [-|^]<paramters> [action] This is activated whenever you receive a raw message from a tcp connection established with $CONNECT(). The parameters for the action are as follows: $0 file descriptor for the connection. $1 host name in connection $2 code as listed below $3- data or port number depending on code. Incoming messages can be intercepted with ON DCC_RAW, which has the following formats: fd host D data fd host C fd host N port fd host E port The D message indicated incoming data. The C message indicates that the socket has been closed. The N message indicates that a socket listening on the specified port has accepted a connection. fd in this case is the file descriptor for the new connection. The E message is generated when a CONNECT() results in a successful connection. Conventions to be used for the socket access: Scripts using sockets should never use the serial number 0 in their hooks. As their first act before using the DCC_RAW hooks, they should set: ON ^DCC_RAW * # To ensure that all raw DCC sockets produce no output. A new set of hooks should be created for each active socket at a chosen serial number. One must always exist to detect the close message, and as its last act must remove all the hooks for that file descriptor. See Also: DCC RAW ALIAS FUNCTIONS :::::::::::::: ON/DISCONNECT :::::::::::::: Usage: ON [#|+|-|^|&|@]DISCONNECT [-|^]<parameters> [action] This is activated whenever you are disconnected from an irc server and IRCII's automatic reconnection techniques can't get you reconnected. This would be any situation which you would see *** Use /SERVER to connect to a server Parameters: $0 Last server you were connected to :::::::::::::: ON/EXEC :::::::::::::: Usage: ON [#|+|-|^|&|@]EXEC [-|^]<paramters> [action] This is activate whenever an EXEC'd process produces output to its standard output channel. The process number is the number assigned by EXEC to the process (see HELP EXEC). The parameters to this function are: $0 The process number that activated the ON If the EXEC was called with EXEC -name <process name> then $0 matches this name instead. This is very useful for keeping the processes separated out. $1- The line of output to stdout :::::::::::::: ON/EXEC_ERRORS :::::::::::::: Usage: ON [#|+|-|^|&|@]EXEC_ERRORS [-|^]<parameters> [action] This is activate whenever an EXEC'd process produces output to its standard error channel. The process number is the number assigned by EXEC to the process (see HELP EXEC). The parameters to this function are: $0 The process number that activated the ON This may also use the process name. (See ON EXEC) $1- The line of output to stderr :::::::::::::: ON/EXEC_EXIT :::::::::::::: Usage: ON [#|+|-|^|&|@]EXEC_EXIT [-|^]<parameters> [action] This is activated when any EXEC'd process exits. The parameters are: $0 Process number or logical name (if assigned) $1 Signal that killed the process (or 0 if it exited normally) $2 Exit code for process (non-zero only if $1 is 0) :::::::::::::: ON/EXEC_PROMPT :::::::::::::: Usage: ON [#|+|-|^|&|@]EXEC_PROMPT [-|^]<parameters> [action] This is activated whenever an EXEC'd process displays a "prompt". A "prompt" is defined as any line of output from a process that doesn't end in a carriage return - line feed. The parameters are: $0 process number or logical name (if assigned) $1 The prompt string :::::::::::::: ON/FLOOD :::::::::::::: Usage: ON [#|+|-|^|&|@]FLOOD [-|^]<parameters> [action] The FLOOD type is activated whenever someone sends a lot of information very rapidly to you, your channel, or the system at large (ie: a wallop). Usually, this is caused when someone dumps a file to your channel or to you. The parameters for this are: $0 The nick of the flooder $1 The type of flooding being done $2- The content of the flooding message General use for ON FLOOD is as follows: ON ^FLOOD * This will automatically prevent flooding messages from being displayed and automatically disable itself when the flooding has stopped. If you use services like IRCIIHelp or NickServ, these can appear to IRCII as floods, but if you add to following ON lines: ON FLOOD ^IRCIIHelp ON FLOOD ^NickServ These will not be treated as floods and will let their messages through. Warning: There are occasions where ON FLOOD can be inadvertantly activated (such as after a net-burp, or after you have ^Z'd for a while). Therefore, I strongly advise against using KILL or even KICK as the action taken by an ON FLOOD. See Also: SET FLOOD_AFTER SET FLOOD_RATE SET FLOOD_USERS SET FLOOD_WARNING :::::::::::::: ON/HELP :::::::::::::: Usage: ON [#|+|-|^|&|@]HELP [-|^]<parameters> [action] ON HELP is activated for each line of the HELP command that is displayed. There is probably no other use for this except by IRCIIHelp. So ignore it. :::::::::::::: ON/HOOK :::::::::::::: Usage: ON [#|+|-|^]HOOK [-|^]<any pattern> [action] This is activated whenever you receive a HOOK. HOOKs are generated by the user for one purpose, which is to activate ON HOOK. The parameters for the action are as follows: $0 First word of text $1 Second word of text.. $2- Rest of pattern. Can use whatever you like. Basically if you have an ON HOOK pattern and you send a HOOK command that matches the pattern it will be activated. This is useful for testing ON patterns, and sending commands from within scripts and aliases which can be either ignored or acted upon (ON HOOK). See Also: ON HOOK :::::::::::::: ON/IDLE :::::::::::::: Usage: ON [#|+|-|^|&|@]IDLE [-|^]<parameters> [action] This is activated when IRCII has been idle for a period of time. Idleness is in minutes from the last keystroke. Parameters: $0 minutes idletime So, ON IDLE 5 /ECHO FINISHED will print out "FINISHED" after a period of 5 minutes without any key pressed. :::::::::::::: ON/INPUT :::::::::::::: Usage: ON [#|+|-|^|&|@]INPUT [-|^]<parameters> [action] This is activated whenever you send a line of input to either a channel or a query user. This means that if you type in a message and hit return, ON INPUT can be activated. ON INPUT can catch and process any input line. Note: The fact that you can capture any line and suppress further normal processing means you can completely disable the client by accident or on purpose. Don't use this function if you don't know exactly what you are trying to do. Parameters are: $0 Text of line If you use ^ to suppress the processing of the line, you can do your own pre-processing and send the line back to the client with a call to SENDLINE. Note $[1]0 is the first character of the first word of the line. Also, the $T var can show you who or what you're talking to at any given moment. See Also: SET INPUT_PROTECTION ALIAS special :::::::::::::: ON/INVITE :::::::::::::: Usage: ON [#|+|-|^|&|@]INVITE [-|^]<parameters> [action] This is activated whenever you receive an INVITE. The parameters for the action are as follows: $0 nickname of person who invited you $1 the channel to which you are being invited :::::::::::::: ON/JOIN :::::::::::::: Usage: ON [#|+|-|^|&|@]JOIN [-|^]<parameters> [action] This is activated whenever someone joins a channel you are on. The parameters for the action are as follows: $0 nickname of person who joined the channel $1 the channel which was joined :::::::::::::: ON/LEAVE :::::::::::::: Usage: ON [#|+|-|^|&|@]LEAVE [-|^]<parameters> [action] This is activated whenever someone leaves a channel you are on. The parameters for the action are as follows: $0 nickname of person who left the channel $1 the channel which which was left :::::::::::::: ON/LIST :::::::::::::: Usage: ON [#|+|-|^|&|@]LIST [-|^]<parameters> [action] When LIST is activated any outputline will be modified by [action]. For example: ON LIST "* 5 *" /ECHO NUMBER OF USERS: 5 The parameters are as follows: $0 channel name $1 number of users on channel $2- topic of channel :::::::::::::: ON/MAIL :::::::::::::: Usage: ON [#|+|-|^|&|@]MAIL [-|^]<count> [action] This is activated whenever you receive new mail (non-irc mail) or when you start up irc and you have mail. You can use this to replace the standard "*** You have new mail" banner with anything you like. The parameters for this function are: $0 The number of new mail messages $1 Total number of mail messages On startup, new mail messages will be all messages found. After that, for example if you had 2 messages and a new message came in, new messages would be 1. Here are a few examples of how to use this: ON ^MAIL 1 /echo *** You have $0 new mail message, total of $1 ON ^MAIL * /echo *** You have $0 new mail messages, total of $1 These will display the number of new messages that arrive. Here is another example: ON ^MAIL * /comment This will disable the display of any message when you have mail. Setting the MAIL variable to OFF will also have this effect, but this will also disable the total mail messages count in the status line. :::::::::::::: ON/MODE :::::::::::::: Usage: ON [#|+|-|^|&|@]MODE_CHANGE [-|^]<parameters> [action] This is activated whenever someone on a channel you are on changes the mode for that channel (see HELP MODE). The parameters for this function are: $0 The nickname of the person who changed the mode $1 The channel on which the mode was changed $2- The new mode settings for that channel :::::::::::::: ON/MSG :::::::::::::: Usage: ON [#|+|-|^|&|@]MSG [-|^]<parameters> [action] This is activated whenever you receive a MSG from someone. The parameters for the action are as follows: $0 nickname of person who sent the MSG $1- The message Warning: If you attempt to send a MSG from within a MSG action, it will be automatically converted to a NOTICE, as this will prevent MSG loops from being sent between two or more users. Also, you will not be permitted to send either MSGs or NOTICEs from within a NOTICE action. The irc protocol states that NOTICEs may not generate automatic replies so this will prevent loops of automatic messages from flooding the net. :::::::::::::: ON/MSG_GROUP :::::::::::::: Usage: ON [#|+|-|^|&|@]MSG_GROUP [-|^]<parameters> [action] This is activated whenever you receive a message sent to a "group" of people, such as a message from an operator to everyone on a given server. Parameters: $0 Sender $1 Group being sent to $2- Text of message :::::::::::::: ON/NAMES :::::::::::::: Usage: ON [#|+|-|^|&|@]NAMES [-|^]<parameters> [action] When NAMES is activated any outputline will be modified by [action]. For example: ON NAMES * /echo $0 $1- The parameters are as follows: $0 name of the channel $1 all users on this channel :::::::::::::: ON/NICKNAME :::::::::::::: Usage: ON [#|+|-|^|&|@]NICKNAME [-|^]<parameters> [action] This is activated whenever someone on a channel you are on changes their nickname. The parameters for this function are: $0 Original nickname for that person $1 New nickname for that person :::::::::::::: ON/NOTE :::::::::::::: Usage: ON [#|+|-|^|&|@]NOTE [-|^]<parameters> [action] This is activated whenever you receive an irc NOTE. The parameters for the action are as follows: $0 nickname of person who sent the note $1 The user@hostname of the person who sent the note $2 The note flags (see HELP NOTE FLAGS) $3-7 The time the note was queued. $8 The server from which the note was queued $9- The message itself :::::::::::::: ON/NOTICE :::::::::::::: Usage: ON [#|+|-|^|&|@]NOTICE [-|^]<parameters> [action] This is activated whenever you receive a NOTICE from someone. The parameters for the action are as follows: $0 nickname of person who sent the NOTICE $1- The message Warning: If you attempt to send a MSG from within a MSG action, it will be automatically converted to a NOTICE, as this will prevent MSG loops from being sent between two or more users. Also, you will not be permitted to send either MSGs or NOTICEs from within a NOTICE action. The irc protocol states that NOTICEs may not generate automatic replies so this will prevent loops of automatic messages from flooding the net. :::::::::::::: ON/NOTIFY_SIGNOFF :::::::::::::: Usage: ON [#|+|-|^|&|@]NOTIFY_SIGNOFF [-|^]<parameters> [action] This is activated when someone on your notify list (see NOTIFY) signs off of irc. The parameters to the action are: $0 Nickname of person who signed off :::::::::::::: ON/NOTIFY_SIGNON :::::::::::::: Usage: ON [#|+|-|^|&|@]NOTIFY_SIGNON [-|^]<parameters> [action] This is activated when someone on your notify list (see NOTIFY) signs onto irc. The parameters to the action are: $0 Nickname of person who signed on :::::::::::::: ON/ON :::::::::::::: Usage: ON [#|+|-|^|&|@]<event> [serial] [-|^]<match> [action] The ON command lets you set up actions which will occur when certains events happen. For example, you can create "personalized" away messages for different individuals, periodic actions that occur at specific times, just to name a few. Note that using ON JOIN and ON LEAVE to automatically greet people entering or leaving your channel is extremely poor etiquette. See /HELP ETIQUETTE. ON [mode]<event> [-|^]<match> [action] ON [mode]#<event> <serial number> [-|^]<match> [action] There are seven modes for each event. I've shown the # mode as a separate line because it requires a serial number. Different modes are specified by preceeding the event with one of the following characters: + Make event very noisy. It will display everything it does. - Make event quiet. It will not display any of it's actions. ^ Make event silent. Just like - above except it inhibits the normal event display as well. The only command that will cause output in this mode is the ECHO command. This can be used to redefine how event messages look. & Make the /ON local to only your own server. e.g. /on -&msg * echo One of mine Will echo "One of mine" ONLY when someone from my own current server sends me a message. If nothing matches in this list, then it will resort to the default ONs. Of if there was an /ON ^msg * echo :$0: $1- then it it will use that for anyone not on your server. @ This is like & except that it is exclusive to your server. It will NOT look at the default ONs if there is no match for your own server. # Allows you to assign a serial number to the specific <event> such that you can have multiple ON's trigger of one <event>. Further discussion of this below. Note this is a pound sign NOT a number. The serial number comes right after the <event>. If no character is specified, you will be warned upon activation of an event (this is somewhere between the + and - modes). The <match> parameter may be a single word, or a list of words surrounded by double quotes ("). The <match> determines specifically which events of the given <event> will cause the action to take place. The <match> may contain wildcards, and the specifics of the <match> parameter are dependant on the <event> type. If the <match> is preceeded by a -, that entry will be removed from the action list. For example: ON PUBLIC -BigCheese ON INVITE -"* +Har" The first will remove "BigCheese" from the PUBLIC list, the second will remove -"* +Har" from the INVITE list. You can remove all entries from a given event list by doing the following: ON <event> - For example: ON MSG - removes all entries in the ON MSG list. If the <match> is preceeded by a ^, then no action will be taken for a match for that event (this is used when you wish to exclude a nickname or list of nicknames from a larger wildcard match, see HELP ON FLOOD for an example). Added two new wildcards to the pattern matching system. '%' matches any sequence of characters except a space. '?' matches any single character. e.g. ON ^msg "bob % % blue" whatever would match a message from bob with two words and then the word 'blue'. The [action] parameter is that action that will occur when the specified event occurs which matches the given <match>. The action parameter is parsed by the command parse in exactly the same way as an IRCII alias is parsed, using the same inline variable expansions (See ALIAS). Also, depending on the event that is activated, there will be certain values passed as arguments to the action, just as if they were arguments to an alias. You may use the $0, $1, $2... etc variables to expand out these arguments. The arguments passed for each event are described in the individual help files for each event. Here are some examples: ON -MSG *cheese* /NOTICE $0 No Cheese Messages Please! Whenver a MSG is received from anyone with a nickname with cheese in it, a NOTICE will be sent out to that user. This action will generate no noticeable effect to you (it is marked as "quiet"). ON MSG ^BigCheese If used with the first example above, this will prevent the action from being taken when a message is sent from BigCheese. Here is an example of how to redefine the way a message looks: ON ^MSG * /ECHO :$0: $1- All MSGs received from now on will look: :BigCheese: Hello! The same can be done with the other event types. IMPORTANT IMPORTANT: A full discussion of serial numbers is given in HELP ON serial_numbers as there is too much to place directly in this help file. Please read this one as it will help prevent collisions between different scripts. More examples are given for the individual event types. See Also: ON serial_numbers ircII programming ALIAS expressions (Special Cases is of particular relevance) :::::::::::::: ON/PUBLIC :::::::::::::: Usage: ON [#|+|-|^|&|@]PUBLIC [-|^]<parameters> [action] This is activated whenever you receive a message from someone on a channel which is also one of your current channels. The parameters for the action are as follows: $0 nickname of person who sent the message $1 channel sent to $2- the message Listen to what the phonemaster says ;) <phone> public_msg is for a message from someone NOT on the channel <phone> public_other is for a message on a channel that doesn't belong to a window... <phone> public is for a message on a channel that belongs to a window! See also: ON PUBLIC_OTHER ON PUBLIC_MSG :::::::::::::: ON/PUBLIC_MSG :::::::::::::: Usage: ON [#|+|-|^|&|@]PUBLIC_MSG [-|^]<parameters> [action] This is activated whenever you receive a message to your channel from someone not on that channel. The parameters for the action are as follows: $0 nickname of person who sent the message $1 the channel to which the message was sent $2- the message :::::::::::::: ON/PUBLIC_NOTICE :::::::::::::: Usage: ON [#|+|-|^|&|@]PUBLIC_NOTICE [-|^]<parameters> [action] This is activated whenever you receive a NOTICE to your channel from someone not on that channel. The parameters for the action are as follows: $0 nickname of person who sent the NOTICE $1 the channel to which the NOTICE was sent $2- the message :::::::::::::: ON/PUBLIC_OTHER :::::::::::::: Usage: ON [#|+|-|^|&|@]PUBLIC_OTHER [-|^]<parameters> [action] This is activated whenever you receive a message from someone on a channel that you are also on which is not one of your current channels. The parameters for the action are as follows: $0 nickname of person who joined the channel $1 name of channel message was sent to $2- the message :::::::::::::: ON/RAW_IRC :::::::::::::: Usage: ON [#|+|-|^|&|@]RAW_IRC [-|^]<parameters> [action] This is activated whenever a message is received from a server which is not understood by IRCII. Under normal circumstances this will never happen, however if used in conjunction with /QUOTE, this ON function can be used to test new features being added to a server. This will normally be used in conjunction with /ALIAS IMPORTANT NOTE: ON RAW_IRC can and will seriously impede the operation of the client if not used correctly. If you use ON ^RAW_IRC to suppress a message then the client will ignore it internally as well. Various internal databases will be corrupted and such. Be careful. See Also: ALIAS QUOTE :::::::::::::: ON/SEND_ACTION :::::::::::::: Usage: ON [#|+|-|^|&|@]ACTION [-|^]<parameters> <action> This is activated whenever you send an action, with ME DESCRIBE or CTCP ACTION. The parameters for the action are as follows: $0 nickname or channel name to which the action was sent $1- The message :::::::::::::: ON/SEND_DCC_CHAT :::::::::::::: Usage: ON [#|+|-|^|&|@]SEND_DCC_CHAT [-|^]<parameters> [action] This is activated whenever you send a DMSG to someone else. The parameters for the action are as follows: $0 nickname of person to whom you sent the DMSG $1- The message itself :::::::::::::: ON/SEND_MSG :::::::::::::: Usage: ON [#|+|-|^|&|@]SEND_MSG [-|^]<parameters> [action] This is activated whenever you send a MSG to someone else. The parameters for the action are as follows: $0 nickname of person to whom you sent the MSG $1- The message itself :::::::::::::: ON/SEND_NOTICE :::::::::::::: Usage: ON [#|+|-|^|&|@]SEND_NOTICE [-|^]<parameters> [action] This is activated whenever you send a NOTICE to someone else. The parameters for the action are as follows: $0 nickname of person to whom you sent the NOTICE $1- The message itself :::::::::::::: ON/SEND_PUBLIC :::::::::::::: Usage: ON [#|+|-|^|&|@]SEND_PUBLIC [-|^]<parameters> [action] This is activated whenever you send a message to a channel you are on. The parameters for the action are as follows: $0 Name of the channel to which the message is going $1- The message itself :::::::::::::: ON/SEND_TALK :::::::::::::: Usage: ON [#|+|-|^|&|@]SEND_TALK [-|^]<user[@host]> [action] This is activated whenever you send a TALK MSG to someone else. The parameters for the action are as follows: $0 user[@host] of person to whom you sent the DMSG $1- The message itself :::::::::::::: ON/SERVER_NOTICE :::::::::::::: Usage: ON [#|+|-|^|&|@]SERVER_NOTICE [-|^]<parameters> [action] This is activated whenever you receive a message from the server as a NOTICE. This is basically anything beginning with "***" which is sent to you by the server, and the MOTD. The parameters for the action are as follows: $0 The name of the server which sent you the message $1 The first word of the text sent - probably "***" or "MOTD" $2- The message :::::::::::::: ON/SIGNOFF :::::::::::::: Usage: ON [#|+|-|^|&|@]SIGNOFF [-|^]<parameters> [action] This is activated whenever someone on a channel you are on leaves irc. Normally, the display would show: *** Signoff: <nickname> (<reason>) but, of course, you can change this. If <nick> is your own nickname, then the action will be taken when you exit from irc. The parameters are as follows: $0 Nickname of person who left irc $1- Reason for the sign-off. :::::::::::::: ON/TALK :::::::::::::: Usage: ON [#|+|-|^|&|@]TALK [-|^]<user> [action] This is activated whenever you receive a TALK message from someone. The parameters for the action are as follows: $0 user name of person who sent the TALK message $1- The message :::::::::::::: ON/TIMER :::::::::::::: Usage: ON [#|+|-|^|&|@]TIMER [-|^]<time> [action] This is activated whenever the real-time clock is equal to the time specification you gave it. The time specifications should be one of two forms: HH:MM[AM|PM] where 1<=HH<=12 and 0<=MM<=59 HH:MM where 0<=HH<=23 and 0<=MM<=59 which form you use depends on the current setting of CLOCK_24HOUR. Time specification may include wildcards as well. The matching of the real-time clock and the time specification is a pure textual match. Of course, wildcards may be used in the time specification. The parameters for the action are as follows: $0 The time (format depends on CLOCK_24HOUR variable) See Also: SET CLOCK_24HOUR :::::::::::::: ON/TOPIC :::::::::::::: Usage: ON [#|+|-|^|&|@]TOPIC [-|^]"<nickname> channel" [action] This is activated whenever someone changes the topic $0 nickname of person who changed the topic $1 The channel on which the topic was changed $2- The new topic :::::::::::::: ON/WALL :::::::::::::: Usage: ON [#|+|-|^|&|@]WALL [-|^]<parameters> [action] This is activated whenever you receive a WALL (a global message from an irc operator). Note: WALL is dead.. Don't even bother. :::::::::::::: ON/WALLOP :::::::::::::: Usage: ON [#|+|-|^|&|@]WALLOP [-|^]<parameters> [action] This is activated whenever you receive a WALLOP (a message sent to all operators on irc). The parameters for the action are as follows: $0 Sender $1 + if sender is an oper, - if sender is a normal user, S if sender is a server $2- text of message :::::::::::::: ON/WHO :::::::::::::: Usage: ON [#|+|-|^|&|@]WHO [-|^]<parameters> [action] This is activated whenever the reply of a /WHO comes in. The parameters for the action are as follows: $0 The channel the user is on, or 'Channel' for the /who header line. $1 Nickname. $2 Status. (Here, Gone, *Operator, [ @ChannelOperator ]) $3 Username (login name) $4 Host (host machine) $5- Full Name or other User Data. See Also: ON WHO :::::::::::::: ON/WINDOW :::::::::::::: Usage: ON [#|+|-|^|&|@]WINDOW [-|^]<parameters> [action] This is activated whenever text is sent to a matching window. This can be used to echo information from one window to a channel. WARNING!!! If you aren't careful you can get into some infinite sending loops! Use with care! Parameters: $0 Refnum or name of window $1- text of line sent to window :::::::::::::: ON/WINDOW_KILL :::::::::::::: Usage: ON [#|+|-|^|&|@]WINDOW_KILL [-|^]<parameters> [action] Whenever a window is killed (checked out by parameter * or number for the window (see HELP WINDOW)), action is done. The parameters are: $0 Refnum or name of the window :::::::::::::: ON/numeric :::::::::::::: Usage: ON [#|+|-|^|&|@]<numeric> [-|^]<parameters> [action] This is activated whenever a numeric message of that number arrives. The legal range of values for <numeric> are from 001 to 999. Numeric messages are special replies send by the server to the client in the raw irc protocol. They are useful to intercept if you are writing a service using ircII. For more details about what numbers represent what messages from the server, please see the irc server source code. The parameters for the action are as follows: $0 name of the server who sent the message $1 number of numeric message $2- parameters (depends on the numeric message) See Also: SET SHOW_NUMERIC :::::::::::::: ON/serial_numbers :::::::::::::: How to use SERIAL NUMBERS This describes the use of serial numbers in ON functions, and is a direct extension of the basic ON help file. It is now possible to have more than one ON hook executed for each event triggering a hook. This has been done by adding a new serial number concept to the ON command. Each ON hook has a serial number attached. Serial numbers can be any number from -maxint to maxint, with the default being 0. When an event triggers a hook, IRCII now goes through the ON hooks added for that event, and for each serial number used by ON hooks in that hook type, finds the best match out of those ON hooks which have that serial number and executes that ON hook. The hooks are executed in order of serial number. Thus if you set up the following set of MSG hooks. ON #^MSG -666 * echo Message coming: ON ^MSG * echo Message from $0: $1- ON #^MSG 666 * echo I got one, I got one! ON #^MSG 666 WiZ echo WiZ hath spoken will cause the following to appear when you receive a message: Message coming: Message from nick: text I got one, I got one! And the following if you receive a message from WiZ: Message coming: Message from WiZ: text WiZ hath spoken The default serial number is 0, and the serial numbers are always executed in order, starting with the lowest, and ending with the highest. Although the '^' modifier can be used with any serial number, it will only suppress the default action if used with serial number 0. Thus if the only message hook you have is: ON #^MSG -666 * echo Incoming: You will see the following when you receive a message: Incoming: *nick* text It is advisable to place any ON hooks which do not suppress the default action in a serial number other than 0. In particular, TIMER hooks, which are generally not intended to exclude other TIMER hooks, should be placed at different serial numbers wherever possible, and never on 0 (since 0 is the most likely place to get a clash if anybody does use it). See Also: ON :::::::::::::: PARSEKEY :::::::::::::: Usage: PARSEKEY <key function> The argument is one of the key functions, and the effect is the same as would be if you pressed a key bound to that function. These are the same functions as specififed when using BIND. E.g. PARSEKEY ERASE_TO_BEG_OF_LINE will execute that function just as though the key bound to that function had been pressed. See Also: BIND :::::::::::::: PART :::::::::::::: See LEAVE for more information about PART. :::::::::::::: PING :::::::::::::: Usage: PING <nickname> This command will send a CTCP PING <current time> to the given nickname or nicknames. The remote client will bounce the time back and that is compared with the new current time. The difference in the two times, is how long it takes for a message to get to that person and get back. This should give you some idea of how slow or fast the network is. Do not use with too long a list of nicknames or server flood control will kick in and the return times will be inaccurate. See Also: CTCP :::::::::::::: QUERY :::::::::::::: Usage: QUERY [<nicknames>|%n|/<command>] Starts a private conversation with <nicknames>. All text you type that would normally be sent to your channel now goes to <nicknames> in the form of MSGs. To cancel a private conversation, use QUERY with no arguments. The %n arguments allows you to send the query text to a process number n. The process must have already been started using a previous call to EXEC. It's also possible to query someone on a DCC connection with QUERY =nickname. Another form has been added which allows you to send messages to the specified command with the format QUERY /COMMAND and everything you type will be parsed by that /command. Can be an alias or anything you like. Note that when querying a command, you may need to use XECHO -WINDOW to ensure output goes to the right place. If "*" is given as a nickname the output is sent to the current channel. See Also: EXEC DCC QUERY :::::::::::::: QUIT :::::::::::::: Usage: QUIT [<reason>] Quits your IRC session. If a reason is supplied, it is displayed to other people on your channels. BYE, EXIT and SIGNOFF are identical. :::::::::::::: QUOTE :::::::::::::: Usage: QUOTE <server command> Send a command directly to the server. No parsing is done by the client. :::::::::::::: REDIRECT :::::::::::::: Usage: REDIRECT <nick|channel|process|=nick> <cmd> This will send the output from the given command to the specified nickname, channel, or started process. For example: REDIRECT #Har /WHOIS bigcheese This sends the result of "WHOIS bigcheese" to channel #Har. There is an implicit WAIT built into the REDIRECT command. This means that all output will be redirected until the given command has finished executing. This can have some unpredictable results, so use it with caution. If you want to redirect output to a DCC CHAT connection then specify the last form REDIRECT =nick command. If the nickname|channel is given as the char "*" output will be redirected to the current channel. :::::::::::::: SAVE :::::::::::::: Usage: SAVE [<filename>] This will save all of the settings of IRCII to a file. It saves all of the Key Bindings, Variables, and Aliases (in that order) in a format such that they can be loaded into IRCII using the LOAD command or the -l switch. If no filename is given, the your default .ircrc file will be used (unless changed with the -l switch). See Also: LOAD ircII command_line_args :::::::::::::: SAY :::::::::::::: Usage: SAY <text> This command is to permit aliases, binds, scripts and similar to send a message to the current channel as if it were typed. This is equivalent to typing '/ <text>'. See Also: SEND ircII programming :::::::::::::: SEND :::::::::::::: Usage: SEND <text> This command is to permit aliases, binds, scripts and similar to send a message to the current channel or query as if it were typed. See Also: SAY ircII programming :::::::::::::: SENDLINE :::::::::::::: Usage: SENDLINE <line of text> SENDLINE will send a line to the client EXACTLY as though you had typed it at the command line. However, unlike TYPE it is not displayed in the command line. All alias expansion or command processing is done after it's sent as it normally would be when you send a line with RETURN. It can be used with ON ^INPUT if you're extremely careful. See Also: ON INPUT SET INPUT_PROTECTION :::::::::::::: SET/ALWAYS_SPLIT_BIGGEST :::::::::::::: Usage: SET ALWAYS_SPLIT_BIGGEST [ON|OFF|TOGGLE] If ON, all new windows displayed will split in half the largest visible window to make room for themselves. If OFF, the current window is always split unless it is too small, then the largest is split. :::::::::::::: SET/AUTO_UNMARK_AWAY :::::::::::::: Usage: SET AUTO_UNMARK_AWAY [ON|OFF|TOGGLE] When ON, you will automatically be unmarked as being away (as if you had issued an AWAY with no arguments) if you send a message to a channel or send a private message. When OFF, your away status will remain unchanged until you issue the AWAY command with no arguments. :::::::::::::: SET/AUTO_WHOWAS :::::::::::::: Usage: SET AUTO_WHOWAS [ON|OFF|TOGGLE] If set to ON, this will automatically generate a WHOWAS <nickname> for any nick command that results in *** <nickname>: No such nickname If OFF, you will not be bothered with WHOWASs. :::::::::::::: SET/BEEP :::::::::::::: Usage: SET BEEP [ON|OFF|TOGGLE] Turns ON or OFF the audibleness of ^G's when received. If ON, ^Gs should beep the terminal. When OFF, ^G's will be treated as other control characters and show up as G in the display. The setting of BEEP does not affect the beeps generated by the BEEP_ON_MSG variable and the BEEP_WHEN_AWAY variable. See Also: SET BEEP_ON_MSG SET BEEP_WHEN_AWAY :::::::::::::: SET/BEEP_MAX :::::::::::::: Usage: SET BEEP_MAX [<number of beeps>] This allows you to limit the maximum number of beeps you will hear for any given messages. For example, if you set BEEP_MAX to 3, and someone sends a message with more than 10 beeps in it, you will only hear the first three. Setting BEEP_MAX to 0 means you will hear all beeps in a message. :::::::::::::: SET/BEEP_ON_MSG :::::::::::::: Usage: SET BEEP_ON_MSG [ALL|NONE|[-]<level> [-] <level> ...] This variable lets you specify certain types of messages which will cause an audible beep when you receive one. The possible message levels are: PUBLIC Channel conversation only MSG MSGs only NOTICE NOTICEs only WALL WALLs only WALLOP WALLOPs only NOTE NOTE only CRAP Is not used. See SET LASTLOG_LEVEL for more on these levels :::::::::::::: SET/BEEP_WHEN_AWAY :::::::::::::: Usage: SET BEEP_WHEN_AWAY [<value>] This sets the number of beeps that you will hear when you receive a message while you are AWAY. Setting the value to 0 will not put a limit on the number of beeps. :::::::::::::: SET/BOLD_VIDEO :::::::::::::: Usage: SET BOLD_VIDEO [ON|OFF|TOGGLE] When OFF, bold video sent to your display by using the ^B character will not show up in bold. This can effect the status line but not the input line. :::::::::::::: SET/CHANNEL_NAME_WIDTH :::::::::::::: Usage: SET CHANNEL_NAME_WIDTH <value> Lets you adjust the amount of space used to display channel names in the LIST and NAMES output and in the status line of IRCII. If CHANNEL_NAME_WIDTH is set to 0, no channel width formatting is performed and channel names are displayed at full width. :::::::::::::: SET/CLIENT_INFORMATION :::::::::::::: Usage: SET CLIENT_INFORMATION <Text of message> This message will be displayed any time someone does a CTCP VERSION on your nickname. See Also: CTCP VERSION :::::::::::::: SET/CLOCK :::::::::::::: Usage: SET CLOCK [ON|OFF|TOGGLE] Turns ON or OFF the status line clock. The clock can be set to show 24 hour time as well as 12 hour time (See HELP SET CLOCK_24HOUR). You can also set an alarm to warn you of the time (See HELP SET CLOCK_ALARM). :::::::::::::: SET/CLOCK_24HOUR :::::::::::::: Usage: SET CLOCK_24HOUR [ON|OFF|TOGGLE] When ON, the status line clock will be displayed in 24 hour format. When OFF, the status line clock will be displayed in 12 hour format with either AM or PM after it. :::::::::::::: SET/CLOCK_ALARM :::::::::::::: Usage: SET CLOCK_ALARM [<time>|OFF] Sets an alarm clock that will beep and send you a message when the time arrives. The time format may be either 12 hour format (with AM or PM) or 24 hour format. The CLOCK does not have to be ON for the alarm to function. :::::::::::::: SET/CMDCHARS :::::::::::::: Usage: SET CMDCHARS <character set> Sets the set of characters which may be used to specify a command to IRCII. You can specify as many characters as you wish to be command characters. :::::::::::::: SET/COMMAND_MODE :::::::::::::: Usage: SET COMMAND_MODE [ON|OFF|TOGGLE] This switch was designed for those who are used to MUDs and computer freaks who like command oriented environments. It will disable the command character! Every input of yours will be expected to be a command. If you want to send something to your current channel or query, you'll have to type "send <text>" or "'<text>". "say <text>" will always send to the channel even if you're in a query. With ":<text>" you get the same effect as with "me <text>". The "'" and ":" abbreviations are introduced for MUD compatibility and are only available in COMMAND_MODE. See Also: SAY SEND LOAD ACTION LOAD MUD ME :::::::::::::: SET/CONTINUED_LINE :::::::::::::: Usage: SET CONTINUED_LINE <some text> This allows you to change the text which is displayed when a line is greater than than width of the screen. By default, this text is a +, and each line greater than the screens width will have this prepended to all lines after the first. You may use CONTINUED_LINE in conjunction with INDENT, or you may disable the CONTINUED_LINE character by setting it to <EMPTY>. See Also: SET INDENT :::::::::::::: SET/DCC_BLOCK_SIZE :::::::::::::: Usage: SET DCC_BLOCK_SIZE <size in bytes> Controls the size of blocks sent when sending files using DCC SEND. The default is normally 512. Increasing this number increases network efficiency. Decreasing this number slows down the transfer, but also decreases the chances of the transfer being aborted over bad links. :::::::::::::: SET/DEBUG :::::::::::::: Usage: SET DEBUG <debug level> The DEBUG variable enables three types of debugging output dependant on the settings of various bits. bit value purpose 0 1 Display all commands executed 1 2 Display all alias substitutions made 2 4 Display all function calls and return values DEBUG 3 will show all command executed and all alias expansions. DEBUG 7 will show EVERYTHING. It is pretty messy so you might want to set HOLD_MODE on when you use this. Keep in mind that FLUSH will flush pending client output as well, in case you get more than you bargained for. :::::::::::::: SET/DISPLAY :::::::::::::: Usage: SET DISPLAY [ON|OFF|TOGGLE] Turns ON or OFF all output. When DISPLAY is off ECHO can still produce a message on your screen. DISPLAY is set OFF by default in scripts now, including the .ircrc file. It is automatically turned back on when the script is done loading. :::::::::::::: SET/EIGHT_BIT_CHARACTERS :::::::::::::: Usage: SET EIGHT_BIT_CHARACTERS [ON|OFF|TOGGLE] Allows you, if set, to input 8 bit characters. (such as the Swedish character set) Notes: On SUN machines, you will have to use `stty pass8' and not `stty cs8' to be able to use this properly. By default, M-b M-d M-f M-h and M-^? (del) are bound to the corresponding emacs keys. See also: SET TRANSLATION DIGRAPH :::::::::::::: SET/EXEC_PROTECTION :::::::::::::: Usage: SET EXEC_PROTECTION [ON|OFF|TOGGLE] If you saw a warning message telling you to read this, beware! If anyone on irc told you that typing "ON ^MSG * $1-" or "ON ^MSG <nick> $1-" would speed speed things up or otherwise make life better for you, they are lying. The above commands allow people to send you MSGs and have them executed as commands by your IRCII. This can be a major security problem, since the person who told you to do this can then execute any command you could, including EXEC commands. This would give them control over your account while you are on irc. Anyway, if you did see this warning, it could be that someone is trying to abuse your account. But, don't worry, the EXEC command that it warned you about was not executed. If you are unsure about what is going on, please contact your local irc operator for help. If you know what you're doing, you can set EXEC_PROTECTION to OFF and EXEC will be allowed within ON commands. Only do this if you are sure you understand what is going on. :::::::::::::: SET/FLOOD_AFTER :::::::::::::: Usage: SET FLOOD_AFTER <number of messages> Used in conjunction with ON FLOOD, this lets you specify the number of flooding messages you will see before ON FLOOD is activated. See Also: ON FLOOD SET FLOOD_RATE SET FLOOD_USERS :::::::::::::: SET/FLOOD_RATE :::::::::::::: Usage: SET FLOOD_RATE <messages per second> FLOOD_RATE can be set to the number of messages per second you wish to activate flooding. If messages from a user outpace FLOOD_RATE for FLOOD_AFTER number of messages, ON FLOOD is activated. If FLOOD_RATE is larger then FLOOD_AFTER, then you will end up seeing at least FLOOD_RATE messages before flood activation (If FLOOD_RATE is 5 and FLOOD_AFTER is 3 then you must receive at least 5 messages before the flood rate can be 5 messages per second). See Also: ON FLOOD SET FLOOD_AFTER SET FLOOD_USERS :::::::::::::: SET/FLOOD_USERS :::::::::::::: Usage: SET FLOOD_USERS <number of users to monitor> FLOOD_USERS sets the maximum number of users you can have flood protection from at one time. If this number is too large, you may see performance degradations and the flood protection might not work as well as it should. See Also: ON FLOOD SET FLOOD_RATE SET FLOOD_AFTER :::::::::::::: SET/FLOOD_WARNING :::::::::::::: Usage: SET FLOOD_WARNING [ON|OFF|TOGGLE] If ON, you will see a warning when flood protection is activated. This is used in conjuction with: ON ^FLOOD * which otherwise will simply cut off flooding messages without a warning to you. See Also: ON FLOOD :::::::::::::: SET/FULL_STATUS_LINE :::::::::::::: Usage: SET FULL_STATUS_LINE [ON|OFF|TOGGLE] When ON, IRCII will always draw it's status line to fill the entire width of the screen. When OFF, the status line will only be as long as it needs to be to accommodate the displayed information. :::::::::::::: SET/HELP_PAGER :::::::::::::: Usage: SET HELP_PAGER [ON|OFF|TOGGLE] When set to OFF, the HELP function will not use it's built in paging mechanism but will use the normal window paging (hold mode). If ON, then help uses it's own pager. Note: Note that if you have to use the help from a help service such as Help_US or help_AU then the setting of the HELP_PAGER variable is irrelevant. Use HOLD_MODE on instead to slow down the output. See Also: SET HOLD_MODE :::::::::::::: SET/HELP_PROMPT :::::::::::::: Usage: SET HELP_PROMPT [ON|OFF|TOGGLE] If SET nothing different happens, but if set OFF, then ircII will not prompt for more help after showing a file. :::::::::::::: SET/HELP_SERVICE :::::::::::::: Usage: SET HELP_SERVICE <Name of ircII HELP service> When the HELP command is issued it first searches the current HELP_PATH for help files. If they are not found it sends a message to the service specificed in HELP_SERVICE An example setting is. SET HELP_SERVICE help_US which would make the client query the United States ircII help service. Keep in mind that having local help files is always faster and generally guarantees better service. See Also: SET HELP_SERVICE HELP :::::::::::::: SET/HELP_WINDOW :::::::::::::: Usage: SET HELP_WINDOW [ON|OFF|TOGGLE] This will cause the HELP function to create a new window for displaying help. If OFF, the current window will be used. :::::::::::::: SET/HIDE_PRIVATE_CHANNELS :::::::::::::: Usage: SET HIDE_PRIVATE_CHANNELS [ON|OFF|TOGGLE] When ON, this will suppress display in your status line of channels whose mode is +s (secret) or +p (private). When OFF, channels are shown as usual in the status line. :::::::::::::: SET/HIGHLIGHT_CHAR :::::::::::::: Usage: SET HIGHLIGHT_CHAR [BOLD|INVERSE|UNDERLINE] When the + option of IGNORE is used it highlights messages from the specific user. The setting of this variable determines how the name is to be highlighted. See Also: IGNORE :::::::::::::: SET/HISTORY :::::::::::::: Usage: SET HISTORY <value> Sets the size of the command history circular buffer. Setting HISTORY to zero disables the command history functions unless you have HISTORY_FILE set. You must disable HISTORY_FILE to completely turn off command history. See Also: SET HISTORY_FILE :::::::::::::: SET/HISTORY_FILE :::::::::::::: Usage: SET HISTORY_FILE <path for history file> If HISTORY_FILE is set, then the command history is saved in this file rather than in memory. The advantage to this is that the size of this file is limited by your disk space and doesn't increase the memory usage of IRCII. The disadvantage is that history access might be slower (or it might not). To disable the HISTORY_FILE, set it to <EMPTY>. To completely disable the command history functions, you must also set HISTORY to 0. See Also: SET HISTORY :::::::::::::: SET/HOLD_MODE :::::::::::::: Usage: SET HOLD_MODE [ON|OFF|TOGGLE] When ON, IRCII will pause at the end of each page of output. Output will continue when the TOGGLE_STOP_SCREEN function is activated (bound, by default, to ctrl-S) or when the SEND_LINE function is activated (bound, by default, to the Return or Enter key). Note: If using multiple windows the HOLD_MODE value refers to default setting for new windows. To effect the hold mode of individual windows refer to WIN HOLD_MODE See Also: SET STATUS_HOLD WIN HOLD_MODE :::::::::::::: SET/HOLD_MODE_MAX :::::::::::::: Usage: SET HOLD_MODE_MAX <number of lines> This specifies the maximum number of lines that will be held in HOLD_MODE before the display is automatically restarted. If HOLD_MODE_MAX is 0, the number of lines held in HOLD_MODE is unlimited. :::::::::::::: SET/INDENT :::::::::::::: Usage: SET INDENT [ON|OFF|TOGGLE] Setting INDENT to ON will cause lines of text that are longer than the screen width to be indented so that all lines after the first start underneath the second word in the first line. That's a long sentence, but that's what it does. If you also have CONTINUED_LINE set, this will pad the CONTINUED_LINE characters out to the second word in the first line, unless CONTINUED_LINE is longer. CONTINUED_LINE will not be truncated. To disable the CONTINUED_LINE, set it to <EMPTY>. INDENT will never indent beyond 1/3 the width of the screen. See Also: SET CONTINUED_LINE :::::::::::::: SET/INPUT_ALIASES :::::::::::::: Usage: SET INPUT_ALIASES [ON|OFF|TOGGLE] Turns ON or OFF the expanding of aliases in the inputline, If you set INPUT_ALIASES ON and type: ECHO $S you will see your server name echoed to your window. If it is OFF, you will see $S echoed to your window. INPUT_ALIASES now has no effect on expansions in the .ircrc and loaded files. To Make a line expand when a file is loaded, use EVAL <command>. Note also, that when INPUT_ALIASES is ON, text within (..) and {..} are not expanded. If you want them to be expanded then quote the leading ( or {. e.g. \( \{ Additionally, You can return to full alias substitution within ${...} by enclosing the substitution text in [...]. Thus if $0 == test, and $bear == black ${[$0]} expands to "test" ${[$bear]} expands to "black" ${bear} also expands to "black" ${ bear == [black] } expands to "1", ${ [$0] == [test] } expands to "1" ${ [$0] == [black] } expands to "0" ${ [$0](this) } expands to the return value of $test(this) Note: If you do turn on INPUT_ALIASES in the .ircrc then the argument expandos ($*, $0, $1, $3-4, etc) will expand to the command line arguments passed to IRCII on startup. :::::::::::::: SET/INPUT_PROMPT :::::::::::::: Usage: SET INPUT_PROMPT <input prompt string> Allows you to change the prompt that will be displayed in the input line before any text you type. Normally, there is no prompt, but you can specify any string. To turn off a prompt, use /set -INPUT_PROMPT. Using the special variable $T is useful as in INPUT_PROMPT as it shows what the current destination is for any input, such as a channelname or nickname if you are using query. See Also: ALIAS Special :::::::::::::: SET/INPUT_PROTECTION :::::::::::::: Usage: SET INPUT_PROTECTION [ON|OFF|TOGGLE] When set this variable will prevent you from using the ON INPUT functionality. ON INPUT is extremely dangerous in that it can easily disable or throw the client into a loop. Be sure you know what you're doing if you decide to use this function. See Also: ON INPUT SENDLINE :::::::::::::: SET/INSERT_MODE :::::::::::::: Usage: SET INSERT_MODE [ON|OFF|TOGGLE] Turns ON or OFF insert mode. While on, characters typed are inserted into already existing text. When off, new characters overwrite existing ones. Whichever key is bound to the function TOGGLE_INSERT_MODE will toggle this setting on and off. The TAB key (or ^I) is the default binding. See Also: BIND TOGGLE_INSERT_MODE :::::::::::::: SET/INVERSE_VIDEO :::::::::::::: Usage: SET INVERSE_VIDEO [ON|OFF|TOGGLE] When OFF, inverse video sent to your display by using the ^V character will not show up in inverse. This can effect the status line but not the input line. :::::::::::::: SET/LASTLOG :::::::::::::: Usage: SET LASTLOG <value> Sets the size of the lastlog buffer (See HELP LASTLOG). This buffer keeps an in memory record of messages sent and received. If LASTLOG is set to 0, the lastlog function is disabled. :::::::::::::: SET/LASTLOG_LEVEL :::::::::::::: Usage: SET LASTLOG_LEVEL [ALL|NONE|[-]<level> [-]<level> ...] The setting of this variable determines which types of messages are stored in the lastlog. If ALL is specified, everything that shows up on the screen is saved in the lastlog, except DCC mesages, which have to be explicitely set. eg, to get everything, use /SET LASTLOG_LEVEL DCC,ALL . If NONE is specified, nothing is saved in the lastlog. The <level> specification can be one of the following: PUBLIC Channel conversation MSGS Private messages NOTICES NOTICEs WALLS WALLs WALLOPS WALLOPs NOTE NOTEs OPNOTES Operator notifications SNOTES Server notices ACTIONS In and outgoing CTCP ACTION lines USERLOG1 Reserved for the user USERLOG2 Reserved for the user USERLOG3 Reserved for the user USERLOG4 Reserved for the user DCC DCC connections CRAP Anything not covered by the above categories You can combine these on a command line to make the lastlog save just what you want. Also, by putting a - before any level, you remove that one from the list. For example, if you wish to save everything except NOTEs and all that CRAP, you could do: SET LASTLOG_LEVEL ALL -NOTE -CRAP which is the same as doing: SET LASTLOG_LEVEL PUBLIC MSG NOTICE WALL WALLOP OPNOTES ACTIONS SNOTES :::::::::::::: SET/LOAD_PATH :::::::::::::: Usage: SET LOAD_PATH <Path to load scripts from> This path controls where the client finds scripts and menus. A typical example would be. SET LOAD_PATH .:~/.irc:/usr/local/lib/irc/script Which will first look in the current directory, and then in the system's irc script directory. This can of course be set to anything you want. If you want to determine if you have the default scripts, and where they are, use /WHICH global and that should show you the location of the 'global' script file. The directory it's in is also the location of all the other scripts. See Also: LOAD WHICH CD :::::::::::::: SET/LOG :::::::::::::: Usage: SET LOG [ON|OFF|TOGGLE] Turns the session log ON or OFF. While ON, a record of your IRC session is recorded to file (see HELP SET LOGFILE). When OFF, no log is made. This log will contain everything that appears on your screen, no matter what window, in the order it comes in. To log an individual window, use the: WINDOW LOG [ON|OFF|TOGGLE] command. See Also: SET LOGFILE WINDOW LOG WINDOW LOGFILE :::::::::::::: SET/LOGFILE :::::::::::::: Usage: SET LOGFILE <filename> Sets the name of the file to be used for the session log. New session log messages are appended to the end of this file. See Also: SET LOG WINDOW LOG WINDOW LOGFILE :::::::::::::: SET/MAIL :::::::::::::: Usage: SET MAIL [0|1|2] When non zero, you will be informed when you have new mail. This is your real unix mail and not irc-mail. An indicator will light up in your status line and a message will be sent to your screen telling you about the new mail. If set to 2, the more significant headers from the mail are shown. See Also: ON MAIL_REAL SET STATUS_MAIL :::::::::::::: SET/MAX_RECURSIONS :::::::::::::: Usage: SET MAX_RECURSIONS <A reasonable limit for alias recursions> This will limit the number of times that a particular alias can call itself recursively. (default is 10) To see how recursive aliases work take a look at the RECURSION script. See Also: LOAD RECURSION :::::::::::::: SET/MENU :::::::::::::: Usage: SET MENU <Name of menu> Will set the MENU variable to the name of a menu which has been loaded with the MLOAD command. When MENU is set, the new menu will appear on the screen. The key bound to ENTER_MENU is used to get into the menu. (default ^R) See Also: MLOAD BIND ENTER_MENU :::::::::::::: SET/MINIMUM_SERVERS :::::::::::::: Usage: SET MINIMUM_SERVERS <number of servers> When connecting to a server, this variable is checked versus the number of servers currently connected to the ircnet. If the number of servers is less than the setting of MINIMUM_SERVERS, you will automatically be disconnected from that server and IRCII will attempt to connect to the next server in you server list (as though you had done SERVER +). This is useful if the net is fragmented to keep you on a more populated portion of the net. This will be rechecked if you issue a LUSERS. This will only affect your primary server. Secondary servers are not checked vs this variable. See Also: SET MINIMUM_USERS SERVER LUSERS ircII server_list :::::::::::::: SET/MINIMUM_USERS :::::::::::::: Usage: SET MINIMUM_USERS <number of users> When connecting to a server, this variable is checked versus the number of users currently connected to the ircnet. If the number of users is less than the setting of MINIMUM_USERS, you will automatically be disconnected from that server and IRCII will attempt to connect to the next server in you server list (as though you had some SERVER +). This is useful if the net is fragmented to keep you on a more populated portion of the net. This will be rechecked if you issue a LUSERS. This only affects your primary server. Secondary servers are not affected by this variable. See Also: SET MINIMUM_SERVERS SERVER LUSERS ircII server_list :::::::::::::: SET/NOTIFY_LEVEL :::::::::::::: Usage: SET NOTIFY_LEVEL [ALL|NONE|[-]<level> [-]<level> ...] The setting of this variable determines which the default notify_level for windows. See SET LASTLOG_LEVEL for explanation of available flags. See also: WINDOW WINDOW NOTIFY_LEVEL :::::::::::::: SET/NOTIFY_ON_TERMINATION :::::::::::::: Usage: SET NOTIFY_ON_TERMINATION [ON|OFF|TOGGLE] When ON, all EXEC'ed processes will inform you when they exit. You will be told which process is exiting and the reason it exited. If termination was normal, you will receive the exit status code. If termination was by signal, you will be told which signal. If OFF, you will not be informed when processes exit. :::::::::::::: SET/NOVICE :::::::::::::: Usage: SET NOVICE [ON|OFF|TOGGLE] The NOVICE variable causes IRCII to disallow certain actions by the user (such as ON commands) and to show a request to read the NEWUSER help file on startup. It is set to ON by default, and should normally be turned off in your .ircrc file. Additionally, it enforces an automatic LEAVE before JOIN so that novice users are not confused by multiple channels. See Also: ON NEWUSER :::::::::::::: SET/NO_CTCP_FLOOD :::::::::::::: Usage: SET NO_CTCP_FLOOD [ON|OFF|TOGGLE] When ON, your client will only send out one CTCP reply every 2 seconds, and ignore any other CTCP requests it gets in the meantime. When OFF, it will process CTCP replies properly, ie ^AFINGER blah^A^AVERSION^A will work. :::::::::::::: SET/PAUSE_AFTER_MOTD :::::::::::::: Usage: SET PAUSE_AFTER_MOTD [ON|OFF|TOGGLE] When ON, this will cause IRCII to wait for a keystroke after the local IRCII motd is displayed then clear the screen and continue. If OFF, the local motd will be displayed, immediately followed by the server banners and motds. If there is no local IRCII motd, this variable has no effect. PAUSE_AFTER_MOTD only works for the IRCII motds and *not* for server motds. :::::::::::::: SET/SCROLL :::::::::::::: Usage: SET SCROLL [ON|OFF|TOGGLE] Turns ON or OFF screen scrolling. While OFF, when the cursor reaches the bottom of the screen, it jumps to the top and overwrites its way back down. This mode is recommended for *extremely* dumb terminals. When ON, the screen will scroll old information off the top. :::::::::::::: SET/SCROLL_LINES :::::::::::::: Usage: SET SCROLL_LINES [<number of screen lines to scroll>] This allows you to set the number of lines the screen will scroll each time the cursor reaches the bottom of the screen. If SCROLL_LINES is set to 0, the SCROLL is turned OFF as well, and must be turned back on before scrolling can be resumed. The maximum number of lines that may be scrolled is the size of the display (the number of lines on the screen minus 2). Negative numbers are automatically changed to positive. :::::::::::::: SET/SEND_IGNORE_MSG :::::::::::::: Usage: SET SEND_IGNORE_MSG [ON|OFF|TOGGLE] When OFF, prevents the sending of "You are being ignored" messages when you IGNORE someone. When ON, these messages are sent when then IGNORE is initiated for PRIVATE or ALL messages. :::::::::::::: SET/SET :::::::::::::: Usage: SET [-][<variable name> [<value>]] Sets a specified variable to a given value. If SET is used with no parameters, all variables and their current settings are listed. If SET is used with a variable name and no value, that variables current setting is listed. If a - preceeds a variable whose value is a string of text, it sets that variable to nothing. See also: HELP SET ? for a list of all variables :::::::::::::: SET/SHOW_AWAY_ONCE :::::::::::::: Usage: SET SHOW_AWAY_ONCE [ON|OFF|TOGGLE] This will show you someone's away message only once even if you send them many messages. :::::::::::::: SET/SHOW_CHANNEL_NAMES :::::::::::::: Usage: SET SHOW_CHANNEL_NAMES [ON|OFF|TOGGLE] When ON, this will show the names of all the users on a channel when you join it. When OFF, no names will be displayed. :::::::::::::: SET/SHOW_END_OF_MSGS :::::::::::::: Usage: SET SHOW_END_OF_MSGS [ON|OFF|TOGGLE] When ON, tells IRC II to display the "End of list" messages for the NAMES, LIST, LINKS, and other commands. When OFF, no "End of list" messages are displayed. :::::::::::::: SET/SHOW_NUMERICS :::::::::::::: Usage: SET SHOW_NUMERICS [ON|OFF|TOGGLE] If ON, then any numeric protocol messages from the server will have their corresponding number shown on the line. :::::::::::::: SET/SHOW_STATUS_ALL :::::::::::::: Usage: SET SHOW_STATUS_ALL [ON|OFF|TOGGLE] When set, it shows everything in every (visible) status line. When not set, it only show things that (I think) are relevant to that window, and are not the same as the current window. Things like nickname, usermode, are only shown on one window, if connected to only one server. :::::::::::::: SET/SHOW_WHO_HOPCOUNT :::::::::::::: Usage: SET SHOW_WHO_HOPCOUNT [ON|OFF|TOGGLE] When ON, this will show the number of IRC-server hops between you and another user in any WHO output. :::::::::::::: SET/STATUS_AWAY :::::::::::::: Usage: SET STATUS_AWAY <Status line text when in away> The contents of STATUS_AWAY are replaced in the STATUS_FORMAT variable for any occurrence of %A while you are away. If you are not away, %A is replaced by nothing. :::::::::::::: SET/STATUS_CHANNEL :::::::::::::: Usage: SET STATUS_CHANNEL <Status line text for display of channel> The contents of STATUS_CHANNEL are replaced in the STATUS_FORMAT variable for any occurence of %C. This variable may contain any text, plus it may contain a single occurence of %C, which is replaced by the name or the number of the channel you are currently on. :::::::::::::: SET/STATUS_CHANOP :::::::::::::: Usage: SET STATUS_CHANOP <text of display for status line operator mode> The value of STATUS_CHANOP is replaced in the STATUS_FORMAT variable for any occurence of %@ if you have chanop status. If you are not a chanop, %@ is replaced with nothing. :::::::::::::: SET/STATUS_CLOCK :::::::::::::: Usage: SET STATUS_CLOCK <text of display for status line clock> The value of STATUS_CLOCK is replaced in the STATUS_FORMAT variable for any occurrence of %T if CLOCK is ON. If CLOCK is OFF, nothing is displayed for %T in STATUS_FORMAT. Also, the STATUS_CLOCK variable may contain one occurrence of %T which will be replaced with the current time of day in the string. :::::::::::::: SET/STATUS_DQUERY :::::::::::::: Usage: SET STATUS_DQUERY <Status line text when DCC querying> This variable is replaced in the STATUS_FORMAT for occurrences of %Q when you are DCC querying someone. This variable may contain any text, plus it may contain a single occurrence of %D, which is replaced by the name of the user you are DCC querying. For example, you can set STATUS_DQUERY to "DQuerying %D", where %D is replaced by a the DCC query nickname. :::::::::::::: SET/STATUS_FORMAT :::::::::::::: Usage: SET STATUS_FORMAT <format description for status line> Setting the variable allows you to alter the appearance of the status line. Certain special characters are recognized in this format line and replaced with various bits of status line information. Each of these special characters is preceeded by a '%'. Here is a list of these characters: N Your current nickname. C Your current channel. R Current window refnum or name. W Value of STATUS_WINDOW variable. * + Value of STATUS_MODE variable. * Q Value of STATUS_QUERY variable. * I Value of STATUS_INSERT variable. * S Value of STATUS_SERVER variable. * F Value of STATUS_NOTIFY variable. * O Value of STATUS_OVERWRITE variables. * A Value of STATUS_AWAY variable. * T Value of STATUS_CLOCK variable. * U Value of STATUS_USER variable. * X Y Z Value of STATUS_USER1,2,3 variables. * H Value of STATUS_HOLD variable. * * Value of STATUS_OPER variable. * @ Value of STATUS_CHANOP variable. * M Value of STATUS_MAIL variable. * # Value of STATUS_UMODE variable. B Value of STATUS_HOLD_LINES variable. * V Current IRCII version > Makes anything beyond it right justified. % Replaced by % Those marked with * are only displayed in the status line when certain conditions are met. Please get help on the variables mentioned above for specifics about each one. For example, the standard default IRCII status line format looks like this: %T[%R] %*%@%N %S%H%Q%A%C%+%I%O%M%U %W which when expanded for the nickname Dae on the channel #blue [1] @Dae on #blue (+tn) * type /help for help The window number %R is 1 The nickname %N is Dae and Dae is a channel op %@ @ Dae is on channel %C #blue The mode %+ calls up the contents of the STATUS_MODE variable and displays the channel modes, (+ps) The end of the status_format $U expands to the contents of STATUS_USER which contains.. "* type /help for help" Everything else is ignored unless it's needed. You can now include text modification characters (^B, ^V, ^_ and ^O) in STATUS_FORMAT. If you change the format at the start of STATUS_FORMAT, you will have to do it again after any %C or %U, as these both reset it to reverse video. See Also: SET STATUS_AWAY SET STATUS_CHANNEL SET STATUS_CHANOP SET STATUS_CLOCK SET STATUS_DQUERY SET STATUS_FORMAT SET STATUS_HOLD SET STATUS_HOLD_LINES SET STATUS_INSERT SET STATUS_MAIL SET STATUS_MODE SET STATUS_NOTIFY SET STATUS_OPER SET STATUS_OVERWRITE SET STATUS_QUERY SET STATUS_SERVER SET STATUS_UMODE SET STATUS_USER SET STATUS_WINDOW SET CLOCK :::::::::::::: SET/STATUS_HOLD :::::::::::::: Usage: SET STATUS_HOLD <text of display for status line hold mode> The value of STATUS_HOLD is replaced in the STATUS_FORMAT variable for any occurence of %H if the display is current on hold (See SET HOLD_MODE). If the display is not on hold, %H is replaced with nothing. :::::::::::::: SET/STATUS_HOLD_LINES :::::::::::::: Usage: SET STATUS_HOLD_LINES <text of message for status line> The value of STATUS_HOLD_MODE is replaced in the STATUS_FORMAT variable for any occurence of %B if the display is current on hold. This shows the number of lines currently being held in the buffer. If the display is not being help, it is replaced with nothing. :::::::::::::: SET/STATUS_INSERT :::::::::::::: Usage: SET STATUS_INSERT <Status line text when in insert mode> The content of STATUS_INSERT are replaced in the STATUS_FORMAT variable for any occurence of %I while INSERT_MODE is ON. If INSERT_MODE is OFF, nothing is displayed for %I. :::::::::::::: SET/STATUS_MAIL :::::::::::::: Usage: SET STATUS_MAIL <Status line text when you have mail> The contents of STATUS_MAIL are replaced in the STATUS_FORMAT variable for any occurence of %M while you get new mail. The STATUS_MAIL may contain occurences of %M which will be replaced by the total number of mail messages you have. If you have no mail, %M is replaced by nothing in the STATUS_FORMAT. :::::::::::::: SET/STATUS_MODE :::::::::::::: Usage: SET STATUS_MODE <text displayed for channel mode> The value of STATUS_MODE is replaced in the STATUS_FORMAT variable for an occurence of %+ if the window's current channel has any of the mode settings active. The STATUS_MODE variable may contain one occurence of %+ which will be replaced with the current channel mode (if applicable). :::::::::::::: SET/STATUS_NOTIFY :::::::::::::: Usage: SET STATUS_NOTIFY <Status line text> The contents of STATUS_NOTIFY are replaced in the STATUS_FORMAT variable for any occurence of %F when there has been activity in a hidden window. STATUS_NOTIFY may contain occurences of %F which will be replaced by the list of windows in which there has been activity. If there has been no activity in hidden windows, %F is replaced by nothing in the STATUS_FORMAT. :::::::::::::: SET/STATUS_OPER :::::::::::::: Usage: SET STATUS_OPER <text of display for status line operator mode> The value of STATUS_OPER is replaced in the STATUS_FORMAT variable for any occurence of %* if you have operator status. If you are not an operator, %* is replaced with nothing. :::::::::::::: SET/STATUS_OVERWRITE :::::::::::::: Usage: SET STATUS_OVERWRITE <Status line text when in overwrite mode> The content of STATUS_OVERWRITE are replaced in the STATUS_FORMAT variable for any occurence of %O while INSERT_MODE is OFF. If INSERT_MODE is ON, nothing is displayed for %O. :::::::::::::: SET/STATUS_QUERY :::::::::::::: Usage: SET STATUS_QUERY <Status line text when querying> This variable is replaced in the STATUS_FORMAT for occurrences of %Q when you are querying someone. This variable may contain any text, plus it may contain a single occurence of %Q, which is replaced by the name of the user you are querying. For example, you can set STATUS_QUERY to "Querying %Q", where %Q is replaced by a the query nickname. :::::::::::::: SET/STATUS_SERVER :::::::::::::: Usage: SET STATUS_SERVER <Status line text for display of server> The value of STATUS_SERVER is replaced in the STATUS_FORMAT variable for any occurence of %S. This variable may contain any text, plus it may contain a single occurence of %S , which is replaced by the server you are currently on. :::::::::::::: SET/STATUS_UMODE :::::::::::::: Usage: SET STATUS_UMODE <text displayed for user mode> The value of STATUS_UMODE is replaced in the STATUS_FORMAT variable for an occurence of %# if the window's current nickname has any of the mode settings active. The STATUS_UMODE variable may contain one occurence of %# which will be replaced with the current user mode. :::::::::::::: SET/STATUS_USER :::::::::::::: Usage: SET STATUS_USER <text of status line user information> The value of STATUS_USER is replaced in the STATUS_FORMAT variable for any occurence of %U. If STATUS_USER is set to <EMPTY>, nothing will be replaced for %U. Additionally 3 more variables STATUS_USER1, STATUS_USER2, and STATUS_USER3 exist and they correspond to the occurences of %X, %Y, and %Z :::::::::::::: SET/STATUS_WINDOW :::::::::::::: Usage: SET STATUS_WINDOW <text displayed in current window status line> The value of STATUS_WINDOW is replaced in the STATUS_FORMAT variable for an occurence of %W if the window is the current window. If the window is not the current window (or if there is only one window visible), then %W is replaced with nothing. :::::::::::::: SET/SUPPRESS_SERVER_MOTD :::::::::::::: Usage: SET SUPPRESS_SERVER_MOTD [ON|OFF|TOGGLE] This will prevent you from seeing the motd from the server when you connect to a server. This is not to be confused with the IRCII motd which your installation may or may not have. You will still see the server motd if you use the /MOTD command. :::::::::::::: SET/TAB_MAX :::::::::::::: Usage: SET TAB_MAX [<number of tabs>] This allows you to limit the maximum number of tabs you will hear for any given messages. For example, if you set TAB_MAX to 3, and someone sends a message with more than 10 tabs in it, you will only see the first three tabs. Setting TAB_MAX to 0 means you will see all tabs in a message. :::::::::::::: SET/TRANSLATION :::::::::::::: Usage: SET TRANSLATION <character translation table> The TRANSLATION variable defines a character translation table. By default, ircII assumes that all text processed over the network is in the ISO 8859/1 map, also known as Latin-1. This is identical to standard ASCII, except that it is extended with additional characters in the range 128-255. Many environments by default use the Latin-1 map, such as X Windows, MS Windows, AmigaDOS, and modern ANSI terminals including Digital VT200, VT300, VT400 series and MS-Kermit. However, many older environments use non-standard extensions to ASCII, and yet others use 7-bit national replacement sets. Some available settings for the TRANSLATION variable: 8-bit sets: LATIN_1 ISO 8859/1. Default. HP_MCS Hewlett Packard Extended Roman 8. MACINTOSH Apple Macintosh computers and boat anchors. CP437 Old IBM PC, compatibles and Atari ST. CP850 New IBM PC compatibles and IBM PS/2. DEC_MCS DEC Multinational Character Set. VAX/VMS. VT320's and other 8-bit Digital terminals use this set by default, but I recommend changing to Latin-1 in the terminal Set-Up. DG_MCS Data General Multinational Character Set. NEXT NeXT. 7-bit sets: ASCII ANSI ASCII, ISO Reg. 006. For American terminals in 7-bit environments. Use this one if everything else fails. DANISH Norwegian/Danish. DUTCH Dutch. FINNISH Finnish. FRENCH ISO French, ISO Reg. 025. FRENCH_CANADIAN French in Canada. GERMAN ISO German, ISO Reg. 021. IRV International Reference Version, ISO Reg. 002. For use pedantic in ISO 646 environments. ITALIAN ISO Italian, ISO Reg. 015. JIS JIS ASCII, ISO Reg. 014. Japanese ASCII hybrid. NORWEGIAN_1 ISO Norwegian, Version 1, ISO Reg. 060. NORWEGIAN_2 ISO Norwegian, Version 2, ISO Reg. 061. PORTUGUESE ISO Portuguese, ISO Reg. 016. PORTUGUESE_COM Portuguese on Digital terminals. SPANISH ISO Spanish, ISO Reg. 017. SPANISH_COM Spanish. Digital. SWEDISH ISO Swedish, ISO Reg. 010. SWEDISH_NAMES ISO Swedish for Names, ISO Reg. 011. SWEDISH_NAMES_COM Swedish. Digital, Hewlett Packard. SWISS Swiss. UNITED_KINGDOM ISO United Kingdom, ISO Reg. 004. UNITED_KINGDOM_COM United Kingdom on DEC and HP terminals. Please forward your problems, bugs, home-made maps, documentation on other sets, etc... to me, Tomten on IRC or by E-Mail tomten@solace.hsh.se. See Also: DIGRAPH BIND ENTER_DIGRAPH :::::::::::::: SET/UNDERLINE_VIDEO :::::::::::::: Usage: SET UNDERLINE_VIDEO [ON|OFF|TOGGLE] When OFF, underline video sent to your display by using the ^_ character will not show up in underline. This can effect the status line but not the input line. :::::::::::::: SET/USER_INFORMATION :::::::::::::: Usage: SET USER_INFORMATION <Text of message> This message will be displayed any time someone does a CTCP USERINFO on your nickname. It is set to "<None Supplied>" be default. :::::::::::::: SET/USER_WALLOPS :::::::::::::: Usage: SET USER_WALLOPS [ON|OFF|TOGGLE] This variable filters incoming user wallops out, if you set it to OFF. :::::::::::::: SET/USE_OLD_MSG :::::::::::::: Usage: SET USE_OLD_MSG [ON|OFF|TOGGLE] This will tell the client to use a VERY VERY old syntax for sending messages to channels which is no longer supported. It went out with 2.6 servers I believe. :::::::::::::: SET/VERBOSE_CTCP :::::::::::::: Usage: SET VERBOSE_CTCP [ON|OFF|TOGGLE] When this is set ON, you will see any CTCP queries anyone sends to your client. :::::::::::::: SET/WARN_OF_IGNORES :::::::::::::: Usage: SET WARN_OF_IGNORES [ON|OFF|TOGGLE] Turns OFF or ON warning messages that occur when you try to send a message to a nickname that you are ignoring. When ON, you get a warning each time you attempt this. When OFF, you get no warning. :::::::::::::: SET/XTERM_OPTIONS :::::::::::::: Usage: SET XTERM_OPTIONS <options> Sets the options that are passed to xterm, when using WINDOW CREATE Note: -geom switches are already generated by ircII, so these will be ignored. See also: WINDOW CREATE :::::::::::::: SIGNOFF :::::::::::::: See QUIT for more information about SIGNOFF. :::::::::::::: SLEEP :::::::::::::: Usage: SLEEP <number of seconds> This suspends IRCII for the number of seconds given. NOTHING happens during this time. This is really only useful for automatons. Maybe not even then. Try the TIMER command instead. See Also: TIMER :::::::::::::: STATS :::::::::::::: Usage: STATS [c|h|k|i|l|m|u|y] [<server>] Shows some irc server usage statistics. c - Shows C and N lines for a given server. These are the names of the servers that are allowed to connect. h - Shows H and L lines for a given server (Hubs and Leaves). k - Show K lines for a server. This shows who is not allowed to connect and possibly at what time they are not allowed to connect. i - Shows I lines. This is who CAN connect to a server. l - Shows information about amount of information passed to servers and users. m - Shows a count for the number of times the various commands have been used since the server was booted. o - Shows the list of authorized operators on the server. u - Shows the uptime for a server y - Shows Y lines, which lists the various connection classes for a given server. :::::::::::::: TIME :::::::::::::: See DATE for more information about TIME. :::::::::::::: TIMER :::::::::::::: Usage: TIMER [-refnum <num>] [-delete <num>] <seconds> [<command>] Waits for the given number of seconds and then executes the command. This is done without hindering normal operation of the client. Any number of TIMERs can be set at once, and all will activate at the appropriate time. TIMER with arguments will list pending TIMERs. TIMER -refnum <num> will assign a specific number to that action allowing you to delete it later if necessary with TIMER -delete <num> If no refnum is specified, one is automatically assigned. :::::::::::::: TOPIC :::::::::::::: Usage: TOPIC [<channel>] [<topic for channel>] Changes the topic for the named channel. You have to be on the channel to change the topic and if the channel mode is +t then only a channel-operator can change the topic. :::::::::::::: TRACE :::::::::::::: Usage: TRACE [<server>] Without a specified server it shows the current connections on the local server. If you specify a remote server it will show all servers between your current server and that remote server as well as the connections on that remote server. :::::::::::::: TYPE :::::::::::::: Usage: TYPE <keystrokes> The TYPE command simulates keyboard keystrokes. You can include control characters as well as normal characters and they will respond as they would as if typed at the keyboard. A control key is specified by a ^ before the letter. For example: TYPE Testing^B^B^B go^E will type the word "Testing", move the cursor left three spaces, then type " go" and move the cursor to the end of the line, leaving "Test going" on the input line. This will probably happen too fast to see. See also: XTYPE :::::::::::::: USERHOST :::::::::::::: Usage: USERHOST <nickname> [-cmd <command>] If only USERHOST nickname is supplied the server will be queried for information about that person. It will return something in the format: *** Daemon is frechett@spot.Colorado.EDU (Is an IRC operator) If -cmd command is added then it will parse the returned line just as though it were an ON or an ALIAS. Parameters are: $0 nickname $1 '+' if server operator, '-' otherwise $2 '+' if marked away, '-' if here $3 username $4 hostname Note: Something you may run into if you use this command within an ALIAS or ON is the following. Take the following example. alias bonk userhost $0 -cmd echo \($$*\) When bonk is called, $0 is expanded to a nickname, and $$* changes to $* to be used by userhost -cmd. However, since the entire expression is parsed twice, the \'s are eaten the first time leaving ($*) which will never expand. Thsu to make the above alias work, it has to be: alias bonk userhost $0 -cmd echo \\\($$*\\\) On the first pass it becomes userhost nick -cmd echo \($*\) and on the second pass when the -cmd part is executed it expands and executes echo (contents of $*) This is NOT a special case or a bug. It is just an added level of processing... See Also: expressions (under Special Cases at the end) :::::::::::::: USERS :::::::::::::: Usage: USERS [<server>] Shows the users logged into the machine where the specified server is running. If no server is given, the current server is used. Many servers do not have this feature enabled. :::::::::::::: VERSION :::::::::::::: Usage: VERSION [<server>] Shows the IRCII version number and the version number of the server specified. If no server name is specifed, the version of your current server is shown. :::::::::::::: WAIT :::::::::::::: Usage: WAIT [%process] [-cmd <command> <do_command>] There are several forms of this command. The first, and best is: WAIT -CMD command WAIT causes the command to be executed when server output that hasn't yet arrived, finally arrives. This allows you to take a specific action immediately after receiving output from the server, or client. For example, the following alias: ALIAS BACKWARDS wait -cmd echo hello there;echo hi there will actually display "hi there" before "hello there", because the "hello there" echo is not executed until a WAIT token is received from the server. If for instance you wanted to make sure to execute some command after the completion of a TRACE of your server, the format would be. TRACE WAIT -CMD command Note: This doesn't work for commands that depend on another server to send you information. TRACE <remote server> for instance. The second form of the command is: WAIT -CMD %process command Where %process is a valid running processes id or name. This is used to cause IRCII to execute the command after the process has exited. If the given process doesn't exist, return is immediate. Here is an example of it's use: alias uptime { exec -name uptime uptime wait %uptime -cmd echo The time is $uptime } alias dotime uptime on ^exec uptime assign uptime $1 When dotime is called, a request will be sent to get the uptime. The ON EXEC will catch the time and assign it to the variable 'uptime' at the same time that the alias is at the 'wait %uptime' stage, when the process exits, WAIT will continue and execute echo The time is $uptime, where '$uptime' has been set already. If you are echoing output to the screen from within the WAIT -CMD form, it is probably a good idea to record the current window and use XECHO -WINDOW to ensure that output goes where it should. The last form of WAIT is no longer recommended. It can be used in the form of WAIT or WAIT %process This suspends he client until the server has finished output, and has innumerable problems, among them being: - If one WAIT is executed while another is pending, both will be registered as satisfied when the first returns. A warning is now issued when this happens. - If you are in a prompted input sequence (such as oper password, confirmation prompts, and $".." input), results can be unpredictable. - It is not consistant with the message driven programming model which exists in ircII. With multi window enhancements the problems with WAIT become even more prohibitive, unless used in the -CMD form. :::::::::::::: WHICH :::::::::::::: Usage: WHICH <script name> WHICH will attempt to find a given script name in your LOAD_PATH. E.g. WHICH global might return: /usr/local/lib/irc/script/global See Also: SET LOAD_PATH CD :::::::::::::: WHILE :::::::::::::: Usage: WHILE <boolean> { <cmd> } This will execute the given cmd while the given boolean returns true. The boolean has the same format as for the IF command, except that it is re-evaluated at each loop interation. The same is true for cmd. It is re-evaluated at each loop interation. Example (in script format): alias repeat { @ rep = 0; while (rep < [$0]) { $1- @ rep = rep + 1 } assign -rep } This can be used as follows: /repeat 10 /msg bigcheese This repeats 10 times The repeat alias breaks down into three parts. @ rep = 0 while (rep < [$0]) {$1-;@ rep = rep + 1} assign -rep The first is to initialize rep to 0 and the last part is to remove rep when done. The first is just like ASSIGN rep 0 The WHILE portion is described below: The boolean for the while loop is (rep < [$0]). This is what is then used at each loop interation. At the first iteration this will be ( 0<10 ), at the next ( 1<10 ), and so on. The cmd part of this looks like {$1-;@ rep = rep + 1} When the alias is first parsed, the stuff inside {..} is not expanded but is simply executed at each loop interation. It expands to 'msg bigcheese This repeats 10 times.;@ rep = rep + 1' It sends the MSG to BigCheese and then it increments rep by 1. (See HELP @ for more information about this assignment) The command part while is exactly like the syntax in IF and FOREACH. See Also: IF FOREACH @ expressions :::::::::::::: WHO :::::::::::::: Usage: WHO [-switch [<arg>]] [<wildcard expression>] Gives a listing of the users on irc. If no flags are specified, the wildcard expression you supply will match any field returned by WHO. However, if the wildcard expression is "*" (an asterisk), the users on the current channel are shown. Note that WHO * will fail if you are not on a channel. If the expression is 0, all users on irc are shown. The following switches are also recognized and used to limit the listing: -OPERATORS - lists only operators -LUSERS - lists only non operators -CHOPS - lists only channel operators -NAME <username> - lists only people with matching user-ids -FILE <filename> - lists only people listed in the file -HOST - Lists users from the specified host. -SERVER - Lists users from the specified server. -HERE - Lists only those marked as here. -AWAY - Lists only those marked away. -NICK - Match only the given nickname The switches may be abbreviated unambiguously. All matching of usernames, hostnames, and servernames may contain wildcards (*). Wildcards in the form "*.edu" are also correctly recognized by the IRC server (so there's no need for ircII to do that). :::::::::::::: WHOIS :::::::::::::: Usage: WHOIS <nickname> WHOIS <nick1>,<nick2> [...] WHOIS <server> <nickname>[,<nick2>...] Shows more detailed information about the nickname specified. This info includes the users name, host, server, "real" name, and away message. As you can see in the second line you can use WHOIS on multiple nicknames. The third line demonstrates how you can send the WHOIS request to a distant server. If you WHOIS a person on his server you will receive extra info about his idle time. WHOIS nickname nickname where the two nicknames are the same will query the user's server about his information just like the WHOIS <server> <nickname> form. See Also: WHOWAS :::::::::::::: WHOWAS :::::::::::::: Usage: WHOWAS <nickname> [<count>] Shows information about who used the given nickname last, even if no one is currently using it. If <count> is specificed, then only the last <count> entries are shown. :::::::::::::: WINDOW/ADD :::::::::::::: Usage: WINDOW ADD <n> Adds <n> to window namelist, where <n> is either a nick or channel name. All communication with <n> will go to that window. Also, <n> may be a comma separated list (no spaces). :::::::::::::: WINDOW/BACK :::::::::::::: Usage: WINDOW BACK Set the current window to the previous current window swapping the current window with the new one if it was hidden. :::::::::::::: WINDOW/BALANCE :::::::::::::: Usage: WINDOW BALANCE Causes all windows to resize so they are as close as possible to evenly sized. :::::::::::::: WINDOW/CHANNEL :::::::::::::: Usage: WINDOW CHANNEL <c> Directs all conversation with channel <c> to the current window. If you are not current on channel <c>, you will join it. If you are on channel <c> it will be diverted to the current window, possibly removing channel <c> from another window. :::::::::::::: WINDOW/CREATE :::::::::::::: Usage: WINDOW CREATE Creates a new ircII window by either opening a new 'screen' window or 'xterm' window depending on the environment. 'screen' is a popular program which allows multiple windows to be recalled under unix and displayed one at a time on even a vt100 terminal. The X environment is a graphical interface for high resolution monitors usually attached to UNIX machines. Currently, all xterms must be the same size as each other. See also: WINDOW DELETE :::::::::::::: WINDOW/DELETE :::::::::::::: Usage: WINDOW DELETE Destroys a screen or xterm ircII window, depending on the environment. You can't WINDOW DELETE the main screen (the one ircII was started in). See Also: WINDOW CREATE WINDOW KILL :::::::::::::: WINDOW/FORWARD :::::::::::::: Usage: WINDOW FORWARD Set the current window to the next numbered window swapping the current window with the new one if it was hidden. :::::::::::::: WINDOW/GOTO :::::::::::::: Usage: WINDOW GOTO <n> Set the current window to the n'th window visible on the screen. They are numbered from the 1 being the topmost window. :::::::::::::: WINDOW/GROW :::::::::::::: Usage: WINDOW GROW <n> Increases the size of the current window by n lines. :::::::::::::: WINDOW/HIDE :::::::::::::: Usage: WINDOW HIDE Make the current window "hidden". It still exists in every way except it takes up no space on the screen. :::::::::::::: WINDOW/HIDE_OTHERS :::::::::::::: Usage: WINDOW HIDE_OTHERS This hides all visible windows but the current window. :::::::::::::: WINDOW/HOLD_MODE :::::::::::::: Usage: WINDOW HOLD_MODE [ON|OFF|TOGGLE] This controls hold mode for the current window. The settings of the system variable HOLD_MODE is used as default for new windows created. If more than one window exists, then executing a SET HOLD_MODE will change the settings for the current window only. :::::::::::::: WINDOW/KILL :::::::::::::: Usage: WINDOW KILL Removes the current window. This does not remove you from any channel you were on in that window. :::::::::::::: WINDOW/KILL_OTHERS :::::::::::::: Usage: WINDOW KILL_OTHERS This kills all visible windows but the current window. :::::::::::::: WINDOW/LASTLOG_LEVEL :::::::::::::: Usage: WINDOW LASTLOG_LEVEL <l> Where <l> is the same as for LEVEL, this controls what types of messages displayed in the current window should be saved to the windows lastlog. See Also: SET LASTLOG_LEVEL for a complete description of the LEVEL parameters. :::::::::::::: WINDOW/LEVEL :::::::::::::: Usage: WINDOW LEVEL <l> Where <l> is a comma separated list of one of the following: CRAP, PUBLIC, MSG, NOTICE, WALL, WALLOP, NOTE, ALL, or NONE. This controls what types of messages will go to the current window. No information is ever lost. Anything that doesn't otherwise have a specific window to go to (because it is a window's current channel or QUERY user) will either go to the current window, or the window whose LEVEL setting contains an appropriate type for that message. By default, the first window created has a LEVEL of NONE, meaning that no messages will go to that window unless otherwise specified. Output from NAMES, LIST, WHO... fall under the CRAP category for LEVEL. If you want, for example, these messages to always go to the current window, you can type this: WINDOW LEVEL CRAP Now, all "crap" will remain in this window, while all private messages, walls, wallops, mail, and notices will go to your current window. See Also: SET LASTLOG_LEVEL for a full description of the LEVEL parameters. :::::::::::::: WINDOW/LIST :::::::::::::: Usage: WINDOW LIST Show a list of all windows in the following format... *** Ref Nick Name Channel Query Server Level *** 1 Daemon <Non #twilight_ <None> ucsu.color NONE :::::::::::::: WINDOW/LOG :::::::::::::: Usage: WINDOW LOG [ON|OFF|TOGGLE] This turns on logging for the current window only. If no logfile name has been set with WINDOW LOGFILE, the logfile name is created from the current setting of the LOGFILE variable and the name of the window channel, query user, or simply the word "Window" with the windows internal reference number added to the end. For example, if LOGFILE is set to "IrcLog", and you are on channel "#Har", the log file for the window will be "IrcLog.#Har". See Also: WINDOW LOGFILE SET LOG SET LOGFILE :::::::::::::: WINDOW/LOGFILE :::::::::::::: Usage: WINDOW LOGFILE [<filename>] Sets the name of the file to be used for the log of this window. New window logs are appended to the end of this file. Nothing is appended to this name, if you use WINDOW LOG. If you don't set a logfile for the window, and call WINDOW LOG, ircII creates a name for you. See Also: WINDOW LOG SET LOG SET LOGFILE :::::::::::::: WINDOW/MOVE :::::::::::::: Usage: WINDOW MOVE <n> Moves the current window n positions on the screen. Eg, MOVE 1 will move the current window down 1 on the screen. Window proportions are maintained using MOVE. :::::::::::::: WINDOW/NAME :::::::::::::: Usage: WINDOW NAME <name> Sets a <name> for the window, which may now be used in place of the refnum assigned by ircII. :::::::::::::: WINDOW/NEW :::::::::::::: Usage: WINDOW NEW Creates a new window by splitting either current window, or the largest window on the screen. See Also: SET ALWAYS_SPLIT_BIGGEST. :::::::::::::: WINDOW/NOTIFY :::::::::::::: Usage: WINDOW NOTIFY Toggles notification for the current window when it is invisible. If set to ON, the first text written to the window after it is hidden will cause a line to be displayed in the current window at that time. :::::::::::::: WINDOW/NOTIFY_LEVEL :::::::::::::: Usage: WINDOW NOTIFY_LEVEL <l> Where <l> is the same as for LEVEL, this controls what types of messages trigger STATUS_NOTIFY. See also: SET LASTLOG_LEVEL for a complete description of the LEVEL parameters. SET NOTIFY_LEVEL SET STATUS_NOTIFY WINDOW WINDOW HIDE WINDOW SWAP WINDOW SHOW :::::::::::::: WINDOW/POP :::::::::::::: Usage: WINDOW POP Pops the top window off the window stack making it the current window. If it is hidden, then makes it visible first. :::::::::::::: WINDOW/PREVIOUS :::::::::::::: Usage: WINDOW PREVIOUS Set the current window to the last numbered window swapping the current window with the new window if it was hidden. :::::::::::::: WINDOW/PROMPT :::::::::::::: Usage: WINDOW PROMPT <s> Sets the input prompt for the window. It will replace $T as the window target when used in the INPUT_PROMPT variable. The window prompt is set automatically when EXEC detects a prompt from a process. :::::::::::::: WINDOW/PUSH :::::::::::::: Usage: WINDOW PUSH Push the current window onto the window stack. :::::::::::::: WINDOW/REFNUM :::::::::::::: Usage: WINDOW REFNUM <r> Change the current window to the window with refnum <r>. :::::::::::::: WINDOW/SCROLL :::::::::::::: Usage: WINDOW SCROLL [ON|OFF|TOGGLE] This controls scrolling for the current window. The settings of the system variable SCROLL is used as are used as default for new windows created. If more than one window exists, then executing a SET SCROLL will change the settings for the current window only. :::::::::::::: WINDOW/SHOW :::::::::::::: Usage: WINDOW SHOW <r> Makes the hidden window with refnum <r> visible again and become the current window. :::::::::::::: WINDOW/SHRINK :::::::::::::: Usage: WINDOW SHRINK <n> Decreases the size of the current window by <n> lines. :::::::::::::: WINDOW/STACK :::::::::::::: Usage: WINDOW STACK Show all the windows in the window stack. :::::::::::::: WINDOW/SWAP :::::::::::::: Usage: WINDOW SWAP <r> Swaps the current window with the hidden window with refnum <r>. The proportions of the window are maintained. :::::::::::::: WINDOW/WINDOW :::::::::::::: Usage: WINDOW [<argument> [<argument> <argument> ...]] The WINDOW command lets you manipulate multiple "windows" in ircII. Windows are horizontally divided sections of the screen in which different bits of irc information can be displayed. WINDOW lets you create, manipulate, and remove such windows. The <argument> parameters to WINDOW are described in full detail in their own sections. The "current window" is denoted by "^^^^^^^^^^" in the status line for that window. You can switch the current window by activating the key functions PREVIOUS_WINDOW or NEXT_WINDOW. These are bound, by default, to ^Xp and ^Xn, respectively. Each window can have the conversation of a channel going to it, which can be specified by either using WINDOW CHANNEL <c> or by executing the JOIN or CHANNEL commands in a window. Each window can also have its own QUERY user. When QUERYing someone in a window, all conversation with that person is directed to that window. If you have JOIN or WINDOW CHANNEL commands in a script, like your .ircrc file, you will need to do a WAIT after each JOIN or WINDOW CHANNEL. See Also: WAIT WINDOW LEVEL :::::::::::::: XECHO :::::::::::::: Usage: XECHO [<flags>] <text> XECHO is like ECHO, except that it takes flag arguments. Available flags: -LEVEL <level> displays the message with the specified lastlog level. This is useful to change the window some messages are displayed in. This is the only way to generate a message with the USERLOG1-4 lastlog levels. -WINDOW <winname> displays the text in the named window, if it can. If the window doesn't exist, then the -WINDOW flag is ignored. See Also: ECHO ON SET DISPLAY LASTLOG :::::::::::::: XTYPE :::::::::::::: Usage: XTYPE [-LITERAL] <text> XTYPE is like TYPE, except that it takes flag arguments. Available flags: -LITERAL Adds text to the input cursor, like /type does, but bindings are ignored. See also: TYPE :::::::::::::: commands :::::::::::::: All IRCII commands typed on the command line must begin with one of the CMDCHAR settings (see SET CMDCHARS). By default, this is set to /. Thus, any input line whose first character is a / is treated as an IRCII command. For example: /MSG BigCheese Howdy! This executes the MSG command, which sends a private message to "BigCheese", and that message is "Howdy!" You can create aliases for commands or redefine what an existing command does. This is done with the ALIAS command. For example: /ALIAS M /MSG NOTE: Command within aliases and other functions do not need the CMDCHAR, and thus the above alias could be written as /ALIAS M MSG as well. The exception to this, is the // convention mentioned below. This example creates a new command, M, which does the same thing as MSG, you can now do: /M BigCheese Howdy! and it will work exactly like MSG. Suppose however you did this: /ALIAS MSG //MSG BigCheese Now, the MSG command will only send messages to BigCheese: /MSG Howdy! Note that in the alias, there are two / in front of MSG. Putting two of the CMDCHAR in front of a command tells IRCII that you want to use the original command, and not any alias of it. Therefore, even if you had the above alias for MSG, you could still do the following: //MSG Cheese I can still use the original MSG command. Furthermore, if you wish you can turn off your display (See SET DISPLAY) for the duration of a command. This is done by putting a ^ character between the / and the command word. For example, if you do: /^MSG BigCheese Hello You will not see any visible effect to this command (unless the nickname BigCheese does not currently exist). Lastly, if you do the following: / /this is a test Note there is a space after the /. This form forces the following text to be sent to your current channel no matter what. You can thus send lines that begin with your CMDCHAR. It can also be used to force a message to your current channel when you are using QUERY. :::::::::::::: etiquette :::::::::::::: Etiquette on the NCF IRC * Language The NCF is a bilingual system, and people on some channels may also be speaking languages other than French or English. Be tolerant of people using other languages, and if you want to limit the language on a particular channel use the /TOPIC command to say so, as: /TOPIC Francais seulement, s.v.p. * Confusion On a busy channel there can be more than one conversation going on at once. One convention used to indicate who a comment is addressed to (perhaps a reply) is to prefix the comment with the nick of the person most interested in it, as: Mermaid: Yes, but I really think grapple-grommets should be banned anyway. * Topic It's a good idea to listen for a while when joining a busy channel to get an idea of what's being discussed, as well as what language it's in. Using the /TOPIC command can give other people in IRC an idea of whether they'd like to join your channel (and can also be fun). * Floods Most people get irritated at automated floods of text from one person, as when someone feels the need to dump an ASCII picture repeatedly on a channel. IRC becomes like an "environment" for most people; please respect the environment of others. * "Op Wars" Channel Operator status is a tool used to maintain some sort of sanity on IRC channels, not a privilege, mark of friendship, or other badge. Mass "ops" and "deops" generally don't do much for the level of conversation. Use channel mode changes when necessary, but there's no need to get excessive. * In general Remember that the people you meet on IRC form their opinions about you from your actions and comments on IRC. Think before you type, and have fun. :::::::::::::: expressions :::::::::::::: This help file describes expresssions available in ${}, and the @, IF, WHILE, and FOREACH commands. Variable expressions are used to perform arithmetic, string and boolean operations. Their syntax is similar to the syntax of most computer languages, and is modelled on C syntax. A simple example of this, is that when ${A + 2} is used, and the ASSIGNed variable A has the value '3', the result is 5. Brackets can be used in these expressions, so (A+2)*3 would give a value of (3+2)*3 == 15, whereas A+2*3 would give a value of 9, because multiplication is performed before addition. The common arithmetic operations (+, -, *, /) are all available. Additionally, there is a string concatenation operator (##). This treats both sides as strings and pastes them together. Thus if A is 3 and B is 7, "A##B" becomes "37", but "A+B" becomes 10. You can also assign values to a variable in these expressions using the '=' operator. Thus if you have the expression "C = A+B", it will assign the value 10 to C. This has a number of affects. The most common case is the @ command, where you can enter this expression literally: @ C = A + B The '=' operator returns the value assigned. Thus you can extend this to: @ D = C = A + B Which will assign the value 10 to both C and D. In a $ expression, you might want to assign a value to a variable, and display it at the same time. Thus you might do the following: echo The value of C is now ${C = A+B} which would set C to 10 and display "The value of C is now 10". Comparison operations also exist. These return 1 if the comparison is valid (true) and 0 if it is invalid (false). The comparison operations available are: == (equal to) > (greater than) >= (greater than or equal to) < (less than) <= (less than or equal to) != (not equal to) Thus, the following expressions would result in the following results: ( recall A = 3 and B = 7 ) A == B FALSE 0 A == 3 TRUE 1 A > 3 FALSE 0 A >= 3 TRUE 1 A != 3 TRUE 1 These expressions can be combined with || (OR), && (AND) and ^^ (XOR). So (A == 3) || (B==3) would be TRUE, and (A == 2) && (B == 7) would be FALSE. You can also negate expressions with ! (NOT), so !(A == 3) would be FALSE. These boolean expressions are used primarily in IF and WHILE. A string expression is considered to be true if it is non empty. So if E has the value "word", then E || ( A > 3) is true, because E has a non empty value, and !E is false. Functions can also appear in expressions. The arguments to functions are evaluated as normal $ type expressions. Thus the following alias: alias test echo ${ MID(3 2 $0) + 5) } is executed with /test 123456, would give 34 (Two digits from position 3 in $0) + 5, giving 39. If the function returns another function name, that function name can be called with another set of brackets. Thus if you have the following set of aliases: alias fptr { if ( [$0] ) { @ function_return = func1 } { @ function_return = func2 } } alias func1 @ function_return = this is $0 alias func2 @ function_return = that is $0 alias check echo ${ fptr($0)($1) } then /check 0 1 would print "that is 1", and /check 1 0 would print "this is 0". Array expressions can also be used in this way. For example: assign A.1.1 One One was a racehorse assign A.1.2 Two Two was one too assign A.2.1 One One won one race assign A.2.2 Two Two won one too alias rhyme echo ${ A[$0][$1] } would cause /rhyme 2 1 to print "One One won one race". Function and array expressions can be combined to give a form of pointer arithmetic like that seen in C. If a function RhymeNum exists as follows: alias RhymeNum @ function_return = [A] and rhyme is changed to: alias rhyme echo ${ RhymeNum()[$0][$1] } /rhyme 2 1 still prints "One One won one race". This is because RhymeNum returns A, and the expression then becomes A[$0][$1]. The $0 is expanded to 2, so it becomes A.2[$1], and the $1 is expanded to 1, so it becomes A.2.1, which is then substituted as a variable for "One One won one race". The reverse is also possible. For example, a robot might have the following: alias thing.0 @ function_return = laughs his silly head off alias thing.1 @ function_return = growls menacingly alias thing.2 @ function_return = smiles like a crocodile alias thing.3 @ function_return = wails uncontrollably alias something SAY WereBot ${ thing[$RANDOM(4)]() } Will cause WereBot to say that it's laughing itself silly, growling menacingly, smiling like a crocodile or wailing uncontrollably. Assuming RANDOM(4) results in a value of 2, This expands to thing.2(), which is then considered to be a function and substituted to "smiles like a crocodile", the end result being that WereBot will say "WereBot smiles like a crocodile". Finally, there are occasions when you need to get back to the $ substitution level. This can be done by enclosing text to be used at this level in [..]. For example, [A] substitutes to a literal 'A', whereas A on its own substitutes to 3, and [$0] is needed to get argument 0, because 0 on its own is taken to be the number 0. Example: alias something SAY WereBot ${ [$0][$RANDOM(4)]() } will case /something thing to first expand [$0] to thing, giving thing[$RANDOM(4)](), and if $RANDOM(4) returns 1, this becomes thing.1(), which expands to "growls menacingly", and causes WereBot to say "WereBot growls menacingly". The following is the parse tree for expressions such as those NU_EXPR = NU_CONJ NU_CONJ = NU_CONJ && NU_CONJ | NU_CONJ || NU_CONJ | NU_CONJ ^^ NU_CONJ | NU_ASSN NU_ASSN = varexp = NU_ASSN | NU_COMP NU_COMP = NU_COMP == NU_COMP | NU_COMP != NU_COMP | NU_COMP > NU_COMP | NU_COMP >= NU_COMP | NU_COMP < NU_COMP | NU_COMP <= NU_COMP | NU_ADD NU_ADD = NU_ADD + NU_ADD | NU_ADD - NU_ADD | NU_ADD ## NU_ADD | NU_MULT NU_MULT = NU_MULT * NU_MULT | NU_MULT / NU_MULT | NU_UNIT NU_UNIT = token NUX_MODIF | unaryop token | ( NU_EXPR ) | [ expression ] NUX_MODIF NUX_MODIF = ( expression ) NUX_MODIF | [ expression ] NUX_MODIF Special cases: If a (...) or {...} construct is quoted with \(...\) or \{...\} then variable expansion will take place on the first available parse run. However, after parsed, the \'s are eaten. e.g. alias bonk echo ($0) will return "($*)" regardless of the argument to the alias. No expansion takes place. However, in alias bonk echo \($0\) expansion takes place as the special meaning of the () is taken away by \. This will return "(arguments to bonk)". :::::::::::::: intro :::::::::::::: IRC is a multi-user, multi-channel chatting network which allows people to talk to one another in real-time. Each IRC user is identified by a unique nickname, and users can create and join "channels"; all communication is directed either to another nick (user), or to a channel (and all the users on that channel). All ircII commands begin with a '/' character. Anything that does not begin with a '/' is assumed to be a message that is sent to everyone on your current channel (most chatting is done this way). A list of basic commands follows (the case is unimportant when you enter a command): /NICK <nick> Change your nickname to something meaningful, so that people won't see your messages coming from a freenet userid like <aa382>. You'll want to do this first. Also good in an .ircrc file so you don't have to do this every time you enter IRC. /LIST Lists all current IRC channels, with the number of users and topic for each. /NAMES Shows the nicknames of all users on each channel. /WHO <channel> Shows who is on a given channel, including nickname, userid and host, and realname. Use /WHO 0 for all channels, or /WHO * for your current channel. Typing "/WHO 0" on NCF's local IRC is a good way to see everyone currently using IRC, and what channels they're on, so you'll know who to /MSG or what channels to /JOIN. /JOIN <channel> Join the named channel. All non-commands you type will now go to everyone on that channel. This is also how you create a new channel. Note that channel names begin with a '#' or '&' sign, ie. #chat. /PART <channel> Leave the named channel. Unless you set the "NOVICE" flag to OFF ("/SET NOVICE OFF"), you will only be able to join one channel at a time (probably best to begin with). /MSG <nick> <msg> Sends a private message to the specified nickname. Only that person will see the message. /WHOIS <nick> Shows the real name and userid of a nick, as well as other semi-useful information. /HELP [topic] Gets help on ircII commands. Use "/HELP ?" for a topic list. /QUIT Exits IRC, if you feel you must. These commands should get you started on IRC. Use the /HELP command to find out more about things on IRC, or ask questions of people...most would be happy to help you out (and show off a bit in the process). :::::::::::::: ircII/COPYRIGHT :::::::::::::: IRCII is Copyright (c) 1991 by Michael Sandrof. Versions 2.11 to 2.2pre7 Copyright (c) 1991 by Troy Rollo. Versions 2.2pre8 and beyond Copyright (C) 1992, 1993 Matthew Green. You have the right to copy, compile, and maintain this software. You also have the right to make modifications to this code for local use only. You have the right to distribute modified versions of the code as long as you CLEARLY indicate that any problems with the modified code be reported to you. One module of the source code, scandir.c is copyright (c) 1983 by the Regents of the University of California. All rights are reserved by the University of California. This software is provided ``as is'' and without any express or implied warranties, including, without limitation, the implied warranties of merchantability and fitness for a particular purpose. :::::::::::::: ircII/ircII :::::::::::::: IRCII is a termcap based interface to the IRC Network. All commands to IRCII begin with a '/' (or whatever your current CMDCHAR is set to, see HELP SET CMDCHAR). Any other text you type on the command line is sent directly to the channel you are on. IRCII may be ftp'ed from coombs.anu.edu.au [150.203.76.2] cs.bu.edu [128.197.2.1] [128.197.10.1] nic.funet.fi [128.214.6.100] ftp.informatik.uni-oldenburg.de [134.106.1.9] Send bug reports, comments, or questions to Matthew Green (phone@coombs.anu.edu.au) or to the IRCII mailing list ircII-coders@cbme.unsw.edu.au or to phone or Daemon on IRC :::::::::::::: ircII/programming :::::::::::::: This is about programming in ircII, because ircII is not a client program, it's an operating system.. :) And the language is just as simple as SMAIL (that is: it is horrendous) but if you want to get into it, here's a little note for you: The command character (usually '/') is only necessary when you type commands interactively, when you program things it is no more needed, it used to be though. If you want to type to the channel from within an alias, on or binding, you have to use SAY or SEND. There is a case where you do need to use '/' and that is when you want to make absolutely sure you send the REAL command instead of an alias. Here is a useful example: alias mode { if (([$[1]0] == [#]) || ([$0] == [*]) || ([$0] == N)) { //mode $* } { //mode $C $* } } If the first arg is not a channel name or your nickname then the mode is assumed to be to your current channel.. e.g. mode +i mode +ps etc.. '//' is used to send a real MODE instead of the alias. This sort of thing is common. The ';' has a special meaning in aliases, bindings and ons: It is treated as command separator, that means you can execute multiple commands in a row separated by semicolons. The semicolons are not considered separators when you use them interactively (to be able to type ;-)) and within an ircII script file. You can escape the meaning of ; in an alias with \;. Try the following. alias testhook { on hook * echo A hook has occured: $*;echo What are you going to do? } Then type /testhook followed by /hook blah blah blah and notice that the message "What are you going to do?" appeared when you typed the alias instead of when you activated the HOOK. To avoid this problem, use the property mentioned above. alias testhook { on hook * echo A hook has occured: $*\;echo What are you going to do? } Note that the \ take the special meaning away from the ; until the ON had been stored. At which point it is parsed normally. See: USERHOST for some other notes about using \. There are now several new forms for aliases and such. The most common form is to enclose multiple commands from an ALIAS, IF, FOREACH, or WHILE statement inside { }. This also allows one command to be imbedded within another. (See IF, for an example of an imbedded IF statement). For a full working example of imbedded FOREACH loops, see the FOREACH help. For a prime example of this in action, take a look at the 'netsplit' script. Many things have changed and continue to change. Usually, the best way to get some idea of how things work with any given release is to go take a look at the files in the 'script' directory. You can see where this is by looking at the contents of the LOAD_PATH variable or using the WHICH command. (ie. WHICH netsplit) will show you where the netsplit script is located on your machine. Use the help alot. What you want to know is in there and many people get tired of answering the same easy questions. A couple notes about creating scripts. It's best if you use a consistent and useful naming scheme for the variables used within your scripts. For example, if you have a script called 'blue' that has a bunch of internal variables and aliases then you might make those variables and aliases have names like. blue.tmp blue.cnt or bl.cnt etc.. This does two things. 1. It lessens the chance that your variable names will collide with someone elses 2. you can type 'assign blue.' and see every variable associate with that script and it's current value. or 'alias blue.' and see all the aliases. When using ON's, if you have some ON that simple observes an action taking place and acts upon it, but does not try to suppress or change the output, then please use serial numbered ONs so that your ONs don't collide with those in other scripts. See: HELP ON serial_numbers Have fun. See Also: USERHOST WHILE ALIAS IF ON ON serial_numbers expressions :::::::::::::: ircII/status_line :::::::::::::: The IRCII status line shows some important pieces of information. It shows your current nickname (with an asterisk next to it if you have OPER privs), your current channel and QUERY user (if you are QUERYing anyone), current Insert or Overwrite mode (I or O), and your AWAY status. The status line may be customized using certain IRCII variables. Please see the following for more information on this: HELP SET HELP SET STATUS_AWAY HELP SET STATUS_CHANNEL HELP SET STATUS_CHANOP HELP SET STATUS_CLOCK HELP SET STATUS_FORMAT HELP SET STATUS_HOLD HELP SET STATUS_HOLD_LINES HELP SET STATUS_MODE HELP SET STATUS_NOTIFY HELP SET STATUS_OPER HELP SET STATUS_OVERWRITE HELP SET STATUS_QUERY HELP SET STATUS_SERVER HELP SET STATUS_UMODE HELP SET STATUS_USER HELP SET STATUS_USER1 HELP SET STATUS_USER2 HELP SET STATUS_USER3 HELP SET STATUS_WINDOW :::::::::::::: menus :::::::::::::: This describes a feature which allows one to create and use menus in any irc session. The menus are totally user configurable and a test menu has been provided at the end of this help file. To use this menu, copy it to your home directory calling it 'test', run IRC, and do the following: MLOAD test SET menu Main Menu Control-R is bound to ENTER_MENU, and while in the menu you can use vi-like keys or EMACS-like keys to move through the options, and either '.' or SPACE to select an option. The format of the menu file is as follows A line beginning with a '#' represents a comment. Blank lines are ignored. A line beginning with the word "MENU" starts a new menu and gives it a name. A line beginning with the word "OPTION" adds a new option to the menu, gives it a name and describes what it does. It's possible to have one menu OPTION lead you into a new menu with OPTION "Sub Menu" COMMAND set menu Sub Menu assuming the Sub Menu has been defined like the following Main Menu. The following is a test menu to show how it it can be used. # Cut off this line.. and take everything down to the next Cut line --- # Test menu to see how our menu reader works MENU Main Menu OPTION "This menu" MENU Main Menu OPTION "List Channels" COMMAND LIST OPTION "Join Channel" COMMAND JOIN $"Join Channel: " OPTION "Leave Channel" COMMAND PART * OPTION "Change Name" COMMAND NICK $"New NickName: " OPTION "Private Message" COMMAND MSG $"Person to send message to: " $"Text of message: " OPTION "Say something" COMMAND SAY $"Say: " OPTION "Exit Menu" EXIT OPTION "Exit IRC" COMMAND if ( [$"Really quit? "] == [y] ) { QUIT } OPTION "Kill Menu" COMMAND set -menu # Cut off this line and take everything up to the previous Cut line ---- See Also: SET MENU MLOAD :::::::::::::: news :::::::::::::: __________________________________________________________________________ ircII 2.2, 2.2.1, 2.2.2 and 2.2.3 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ READ THIS READ THIS READ THIS READ THIS READ THIS ============================================================= The most important difference between this version and older ones is that the format for ON SERVER_NOTICE and ON PUBLIC has changed. Some scripts won't work anymore (may have strange effects). Also, for 2.2.3, the characters ^B ^V and ^_ mean different things - ^B bold, ^_ for underline, and ^V for inverse. Commands that have changed. It is now possible to redirect to a DCC CHAT connection with REDIRECT =nick You can have some command executed on the results of USERHOST with USERHOST -CMD command You can, and should, use WAIT now with WAIT -CMD command You can have ircII create new windows (screen or xterm) with WINDOW CREATE The IF and WHILE commands have changed. New in 2.2.2 ON PUBLIC and ON SERVER_NOTICE have changed. IGNORE now has CRAP and CTCP levels. SERVER has now -DELETE flag. news flags -USER and -NAME for LIST -WIDE New commands WHICH script - returns which script will be loaded with LOAD FOREACH - to iterate over a list. TIMER seconds command - executes `command' after `seconds' seconds. INPUT "prompt" command - executes `command' when input is read from the keyboard. PING nick - uses CTCP PING to work out how many seconds a remote is from you. PARSEKEY key - acts as though a key bound to `key' was pressed. SENDLINE line - is the same as typing in the line. HOOK line - does an ON HOOK check. EVAL line - passes `line' to the inline parser, to be executed. CTCP UTC - A time CTCP. MLOAD - loads a menu. New in 2.2.1 CTCP ECHO - Similar to CTCP ERRMSG. WINDOW LOGFILE - Sets the logfile for that window. New in 2.2.2 XTYPE - Similar to TYPE WINDOW NOTIFY_LEVEL New alias variables: $W $V $H $U $~ New SETable variables NO_CTCP_FLOOD SHOW_STATUS_ALL SCROLL_AFTER_DISPLAY. STATUS_USER1-3 MENU HIGHLIGHT_CHAR HELP_PROMPT HELP_SERVICE HELP_PATH DCC_BLOCK_SIZE LOAD_PATH DEBUG VERBOSE_CTCP SCROLL_BACKWARD SCROLL_FORWARD SCROLL_END TRANSLATION BOLD_VIDEO New in 2.2.1 SHOW_WHO_HOPCOUNT New in 2.2.2 NOTIFY_LEVEL XTERM_OPTIONS EIGHT_BIT_CHARACTERS And STATUS_FORMAT has these new variables %W %X %Y %B %# %@ %> New/changed on hook's. ON DCC_RAW ON HOOK ON INPUT Several of the numeric ON's have changed. New in 2.2.1 ON SERVER_NOTICE ***** THIS HAS CHANGED ***** ON PUBLIC ***** THIS HAS CHANGED ***** New bindable keys. ERASE_TO_BEG_OF_LINE REFRESH_INPUTLINE META3_CHARACTER META4_CHARACTER New functions. $ENCODE() $DECODE() $TDIFF() $CONNECT() $LISTEN() $ISCHANNEL(word) $ISCHANOP(nick channel) $WORD(number wordlist) $WINNUM() $WINNAM() New in 2.2.2 $CURPOS() $MYCHANNELS(refnum) $MYSERVERS() Other You can no longer use \n in a line to separate commands. Functions are now access with $name(). $%name() is not supported. You can access varibles in structures by using struct[index] as well as struct.index. You can use { } style braces around aliases. You can connected to the server via Unix domain sockets. The display defaults to OFF while loading a script. __________________________________________________________________________ ircII 2.1.5g.tom2 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > Internationalization issues: 1. Support for multiple character sets. See /help SET TRANSLATION. 2. Digraph entries. See /help BIND ENTER_DIGRAPH and /help DIGRAPH. __________________________________________________________________________ ircII 2.1.5 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > The command /who -h and -s is no more supported. > Introduced { and } in scripts, see script/finger for an example. See Also: /help load. > Behavior of HOLD_MODE has changed, won't hold when you are being active in that window. I like it a lot more, it's not so disturbing anymore. > Away messages are displayed only once, when talking to someone who is away unless you /set show_away_once off. > You don't get disturbed by cryptic but trivial CTCP requests, unless you /set verbose_ctcp on. > Improved handling of process prompts, but INPUT_PROMPT must be set. > ircII can now load scripts and help files in compressed form. > All the scripts have been updated and many helpfiles written and rewritten. Many bugs have been fixed, support of newer server features added, this client is already 2.7-capable. > There have been major changes in the command parser. Commands are not expected to have a leading / unless entered interactively, if you experience incompatibilities, you will have to add 'say' and 'send' wherever you have made aliases that send to the channel or query. See Also: /help ircII programming for this. Also the ';' has a new meaning as command separator within ALIAS, BIND and ON. You might have to \escape it. > The good news: Scripts are much more readable and understandable, look a lot less ugly now :) COMMAND_MODE gives command-oriented freaks the chance to use ircII that way. A special script for MUDders has been added that emulates an Aber/LPMUD-like environment on irc, without having to type / before "smile" and allowing "'<text>" for "say" etc. > CTCP ACTION has been implemented which permits you to send descriptions of actions/'feelings' to other people on channels and even through queries. You can use it with /me and the action script. See Also: LOAD ACTION :::::::::::::: newuser :::::::::::::: Welcome to IRC on the National Capital Freenet! Everyone in the chat area is identified by a "nickname". By default, your nickname is your userid (something like "aa382") which is to say the least impersonal. Thus, the first thing you'll want to do on connecting to IRC is change your nickname to something meaningful and/or creative. You could change your nickname to "Mermaid" by typing (at the command line): /nick Mermaid Let your imagination run wild (but, uh, keep it clean; there may be smurfs about). The next thing to do is to find someone you can chat with. Chatting is generally done on "channels", and you can list the public channels that exist at the moment with the "/list" command. To join one of the channels you see, type "/join channelname" where "channelname" is replaced by the specific channel you'd like to join (all channel names begin with a '#' or a '&' character, to distinguish them from nicknames). If there aren't any channels (or none you'd like to join) you can create a new one - just use the same command with a new name. When someone on a channel with you types a message, it will appear to you (and everyone else on the channel with you) as: <nick> I have something to say! Private messages (sent with the /msg command) appear differently, with the nickname enclosed in '*' characters: *nick* whisper, gossip, whisper Other IRC users will see your comments in a similar manner, of course. There are more commands listed under "/help intro", and "/help ?" will list all of the commands or topics available (there are a lot, but many are things you'll probably never need to use). To get rid of the admonition to "please read /HELP NEWUSER" every time you enter IRC, you can create an .ircrc file with some commands to run each time you use the chat system (like /nick). Read the menu item pertaining to your .ircrc file for more info. Finally, when you'd like to exit IRC, type /quit. :::::::::::::: rules :::::::::::::: Definitions: IRC-ADMIN - Person who have access to all files concerning ircd. IRC-OP - Person who have privileges given to him by an IRC-ADMIN. And who is in charge at HIS server. CHAN-OP - Person who runs a channel and has absolute rights there. USER - Person who is using IRC. ------------------------------------------------------------------------------ Users Behavior on the Internet Relay Chat system The Internet Relay Network (IRC) is a system for communicating with other peoples. IRC is a free speech system. Users may exchange viewpoints with other users. But to protect people from abuse there are certain rules that the user MUST respect. If a USER doesn't respect the guidelines/rules stated below, then the IRC-ADMIN may suspend or reduce the availability for the USER. These things are prohibited: * Using offensive words in channel topics. * Harassing another user. Harassment is defined as behavior towards another user with the purpose of annoying them. Harassment is a matter of opinion of the IRC-OP. * "Dumping" a lot of text to a channel. * Annoying another user or a channel with constant beeping. * Any behavior reducing the functionality of IRC. What kind of action a user is doing to break these rules are up to the IRC-OP to decide. Violation should be straighted out via a civilized conversation between the IRC-OP and the USER. If the USER is not on-line then the USER should be notified by EMail. If the USER wont respect what he's been told then it is up to the IRC-ADMIN what to do with the USER. Many many problems can be avoided all together if the CHAN-OP puts necessary restrictions on his/her channel or if the USER learns how to use IGNORE. If someone finds a USER violating these rules he may contact the USER's IRC-ADMIN. To find a USERS IRC-ADMIN one may use the /ADMIN command. Ove Ruben R Olsen IRC-ADMIN for Bergen Edu. College, Norway. EMail: rubenro@viggo.blh.no