home *** CD-ROM | disk | FTP | other *** search
Text File | 1992-06-28 | 58.4 KB | 1,677 lines |
- 2.2.9
- fixed memory leak
-
- 2.2.7
- DCC SEND/GET now shows the size, if it exists.
-
- You can now use \ to escape newlines in scripts.
-
- 2.2.5
- New key binding, SCROLL_START, which moves the scroll
- buffer to the start of the lastlog buffer. Bound to
- meta1-< by default.
-
- New arguemnt to /LASTLOG, -LITERAL, which allows you
- to specify the next argument as the pattern to match.
- Allows matching of numbers, eg
- /LASTLOG -LITERNAL 6667
-
- Channel keys, if set, are now shown in STATUS_MODE.
-
- When DCC connections become connected, the remote IP number
- is shown, for additional security.
-
- 2.2.3
- I think the Makefile and config.h file are easier to use
- now.
-
- The control characters for bold, inverse and underline
- have been changed to ^B ^V and ^_ respectively, so make
- some sort of visual connection (B to bold, _ to underline)
- with these characters.
-
- 2.2.2
- New command, XTYPE. Happens like this;
- XTYPE [-LITERAL] <text>
-
- This text gets added to the input cursor, like /type does,
- except bindings are ignored with the -LITERAL switch is
- used.
-
- New function $CURPOS() which returns the postition from the
- start of the input line to where the cursor is now.
-
- New STATUS_FORMAT variable, %> which makes anything beyond
- it right justified.
-
- It is now possible to close all DCC connections and kill all
- EXEC'ec process by sending the client a SIGUSR1.
-
- ON PUBLIC has now got this format:
- $0 sender
- $1 channel sent to
- $2- message
-
- New variable, NOTIFY_LEVEL, and window command NOTIFY_LEVEL,
- which affect the notification of hidden windows. Same
- arguments as LASTLOG_LEVEL.
-
- Two new level of /IGNORE, CRAP, and CTCP.
-
- New functions, MYCHANNELS() and MYSERVERS() added.
- MYCHANNELS() takes a window refnum (defaults to current
- window), and returns a string with a list of channels on that
- windows server. MYSERVERS() returns a string of the names of
- the servers you are connected to.
-
- New variable, XTERM_OPTIONS, which are passed to xterm, when
- using WINDOW CREATE. Note that -geom switches are already
- generated by ircII, so these will be ignored by xterm.
-
- New variables, EIGHT_BIT_CHARACTERS, which, if set, allows
- you to input 8 bit characters (such as the Swedish character
- set).
-
- New SERVER option, -DELETE, allows you to remove servers
- from the internal server list.
-
- New command line option, -v, which prints the version
- and internal version (release date).
-
- 2.2.1
- New WINDOW command LOGFILE has been added. It takes one
- argument, the file name of the logfile to be used for this
- window. Nothing is appended to this name, if you use
- WINDOW LOG. If you don't set a logfile for the window, and
- use WINDOW LOG, then ircII creates a name for you (old way).
-
- ON SERVER_NOTICE has been changed, and any script which used
- this will most likely not work any more. In the new format,
- $0 is the server name, and $1- is the notice itself.
-
- New variable, SHOW_WHO_HOPCOUNT, which if set will not filter
- out the hopcount on a who reply.
-
- 2.2c
- New CTCP, ECHO, which just returns what you sent.
-
- 2.2
- New alias variables `$W', `$V' and `$H' which expand to the
- current working directory, the internal ircII release date,
- in YYYYMMDD format, and the current numeric being processed,
- respectively.
-
- /ME and /DESCRIBE no longer add a period to the end.
-
- New variable NO_CTCP_FLOOD has been added. When set, it makes
- your client only send out one CTCP REPLY each second, and will
- ignore anyothers it gets for that second.
-
- New BINDable key function, REFRESH_INPUTLINE, which, amazingly,
- refreshes the input line.
-
- Several /ON NUMERICS's have been changed such that $0 is now the
- server name of the originating. These include the 31x series
- (/WHOIS replies), which in turn is /ON WHO and /ON WHOIS.
- Numberics 401, have also been changd for this.
-
- MSG -channel is no longer supported. Multi-channal make
- this switch unreliable.
-
- IRCII now supports CTCP PING. You can call this with
- /PING nick[,nick[,nick...]]
- And it will show you how many seconds to takes to get a
- message to them and back. Be warned that too many nick
- will cause the server flood control to be used, making
- the times calculated wrong.
-
- You can now redirect in to a dcc chat connection, with
- REDIRECT =nick command.
-
- 2.2pre8
- New command, INPUT has been added. It takes arguments like:
- /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.
-
- USERHOST and HOST commands have been changed to allow
- asymnronous command execution, depening on the return of
- the userhost reply. The form is
- /USERHOST <nick> -CMD <commands>
-
- Where $0 - $4 expand to the nick, oper status, away status,
- username and hostname respectively.
-
- If you want the screen to be scrolled like it was in 2.1.5
- and before (A line at the bottom), edit source/window.h and
- define SCROLL_AFTER_DISPLAY.
-
- DCC CHAT has be improved. No longer will a collision cause
- nasty things to happen - the client will automatically connect
- if a collision is detected.
-
- LASTLOG has been changed so that you can now use it like this:
- /LASTLOG <pattern> <count> to get the last <count> lines that
- match <pattern>.
-
- LIST -TOPIC has been fixed, and its functionality changed,
- so that it do NOT over ride other switches, but works with
- them.
-
- Three new variables STATUS_USER1-3 have been added, to combine
- with the new STATUS_FORMAT variables, %X, %Y and %Z. <poxaV>
-
- New command, PARSEKEY, added. 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.
-
- New command, SENDLINE added. The arguments parsed to it
- are processed like normal text input, except they are not
- caught by ON INPUT.
-
- ON INPUT changed to catch all inputted text, not just
- text being send to a channel or a nick. New variable
- INPUT_PROTECTION added to stop people shooting their
- own foot with the new ON INPUT.
-
- One new BIND functions has been implimented -
- ERASE_TO_BEG_OF_LINE (not bound to anything by default),
- erases from the current cursor position to the beginning
- of the input line - <poxaV>
-
- Added new variable HIGHLIGHT_CHAR. That is /setable to either
- BOLD, INVERSE, or UNDERLINE. It effects the character that
- ignore + uses.
-
- Made dcc chat messages show the time after them, if away,
- like normal messages.
-
- Made ctcp not reply to global messages, either in the form
- of $*.domain, or #*.domain.
-
- Added a new command line argument. `-S'. It does the
- oppsite of the `-s' option, and also made -s the default.
- Make then run ircserv if they want it, not if they don't
- know.
-
- Rewrote BreakArgs() in parse.c trying to fix a bug with
- referencing NULL pointers on domain/ox.
-
- More of the source files reformatted. Starting to get some
- distance with this finally.
-
- We now understand that &channel are channels, for the 2.8 servers
- that will be arriving soon.
-
- DCC LIST now shows the start time, and the number of bytes
- sent, and read on a dcc connection.
-
- Added a ctcp reply to dcc.c so that when a dcc collision
- occurs, we also inform the other client of the event, rather
- than them not knowing about it. (obsoleted)
-
- Added new functiality to the /TIMER command. If it is called
- with out arguments, then it list the commands that were
- added with /TIMER, that are pending to be executed. If it is
- called with the -DELETE flag, and given a refnum (first column
- in the timer list), it will attempt to delete the timer. You
- can also specific the TIMER command to use a refnum of your
- choice, with the -REFNUM n flag. It generates an error if
- the refnum already exists, or you specify a negative number.
- It is illegal to remove a timer from itself.
-
- Added new functionality to /window server command. You can now
- do /window server server.name:port:password:nick, and the nick
- will be set properly for that server.
-
- Two new functions, $ENCODE() and $DECODE(). They work as a
- pair, such that $ENCODE($DECODE(blah)) will return blah, and
- the other way around. The primary use is tha $ENCODE() always
- returns a value that is suitable for a variable name, so that
- the well used $strip_chan() alias is not needed. <Daemon>
-
- Added -WIDE flag to /LIST. Shows the channel names, and their
- sizes in as little space as possible. <Troy>
-
- HELP now works properly again. No recusive calls to irc_io, and
- no ping timeouts, but with the same functionality as 2.2pre7.
-
- New variable added, HELP_PROMPT. If set ON, nothing different
- happens, but if set OFF, then ircII will not prompt for more
- help after showing a file.
-
- All the header files reformatted, and some of the source files.
-
- Fixed bug in window server which caused the client to become
- confused about nicks for each window.
-
- Fixed bug that caused ircII to continue trying to connect to the
- last server in the server list if it failed on every other one,
- and often flooded umode s people. Nasty Nasty.
-
- Fixed bug in status.c/window.c that caused the window_notify
- to be out of date on occasion.
-
- When changing servers, or when the last window to a server is
- closed, the QUIT is actually sent.
-
- 2.2pre8.troy
- A new command has been added - /TIMER. This takes the form:
-
- TIMER seconds command
-
- and causes the given command to be executed after the specified
- number of seconds. Any number of timers can be issued, and
- they do not need to be issued in order. For example, the following
- alias:
-
- ALIAS JUMBLE TIMER 10 echo one;TIMER 5 echo two; \
- TIMER 15 echo three
-
- will cause "two", "one" and "three" to be printed at 5 second
- intervals, starting with "two" in 5 seconds. Using /TIMER should
- be the preferred approach over /SLEEP.
-
- ircII can now take advantage of X windows and screen to create
- windows in different xterms or screen windows. The command to
- create such a window is /WINDOW CREATE. Each window created in
- this manner gets its own input line. This feature is
- particularly useful if you use multiple channels. There are
- still some things to be fixed with this. In particular,
- prompted input can give unexpected results ($"..", /Oper and
- server passwords, confirmations), as can the old form of the
- /WAIT command. In short, when using multiple windows,
- expect the unexpected. To use this feature you will have to
- define WINDOW_CREATE in source/window.c.
-
- A new form of the WAIT command, /WAIT -CMD command,
- (or WAIT -CMD %process command) causes the given command
- to be executed after the wait condition has occured.
- 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.
-
- This new form of /WAIT is to be used in preference over the
- old form. The old form 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.
-
- 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.
-
- 2.2lynx.pre8
- Modified /me (edit.c) to automatically append periods,
- feature used by new 'action' script.
-
- Revamped many scripts, the config.h, little changes to
- Makefile and help files.
-
- Globally replaced all put_it("*** .. by new function say()
- and changed put_it_always into yell.
-
-
- 2.2pre7.myc6.phone
- Added Megre support of irc 2.8, there is still a long way to
- go here. Code for the user mode e has been written, but not
- added, as it probably won't be in the server.
-
- Added window refnum to the output of the WINDOW LIST command.
-
- Notify bug on start up fixed.
-
- Two new functions GETPID() and GETPPID() added to allow the
- process ID, and parent process ID to be accessable with in
- a script. These have been left out for now.
-
- Changed the KICK command, to allow the sending of kick
- comments.
-
- Bug in QUIT_ON_OPERATOR_KILL fixed, where last time was
- not `seen' for long enough to be read.
-
- Mail checking bug fixed.
-
- Added new variable SHOW_STATUS_ALL. When set, it shows everthing
- 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.
-
- Made DCC with no arguments the same as DCC LIST.
-
- Added the window notification status to WINDOW command (no args).
-
- Away changed to allow different away messages on different
- servers. Two flags -ONE and -ALL (-ONE default) for the sending
- of the away message to the servers you are on.
-
- Bug in $RAND() fixed <Daemon>.
-
- 2.2pre7.myc6
- HELP_SERVICE and HELP_PATH are now SETtable variables.
-
- Memory leak in add_to_window() is fixed.
-
- WHICH doesn't wedge the client (by corrupting load_depth) any more.
-
- MSG *, QUERY *, CTCP *, REDIRECT *, NAMES *, LIST *. [Daemon]
-
- $U inserts cut buffer. [Daemon]
-
- $RAND() is a bit more portable and doesn't use floating point.
-
- Scripts updated to use `:' as noop rather than `#'.
-
- 2.2pre7.myc5
- QUOTE USERHOST *really* doesn't core dump any more. B-)
-
- `voice' script updated for new script parser.
-
- 2.2pre7.myc4
- The Makefile now handles making the symlink for config.h. This
- has the advantage of being slightly easier to use on a machine
- without symbolic links; you just change the `LN' variable in the
- top-level Makefile to `cp'. It also has the advantage that we
- won't see patch files with two copies of the diffs for config.h
- any more. B-)
-
- Makefile.proto has been rearranged somewhat, and the dependencies
- have been updated.
-
- DCC GET bug from myc2 fixed.
-
- 2.2pre7.myc3
- All the bloody #defines at the beginning of keys.c are now in
- keys.h.proto, and are handled by `count'.
-
- Stupid inverse (and bold) video bug from myc2 fixed.
-
- 2.2pre7.myc2
- ^Os are no longer appended to lines before storing them in the
- lastlog. This avoids adding ^Os to lines in the log file when
- using /LASTLOG. Bleah.
-
- New commmand :, which is a noop. Using # as a noop command is
- strongly discouraged, as it is treated differently in scripts.
- (# at the beginning of a line in a script (ignoring spaces) means
- to ignore the whole line.)
-
- Bug in handling quoted braces from 2.2pre7.myc1 fixed.
-
- `DCC GET nickname' gets the first file offered by `nickname'.
-
- KICK comments are now displayed, if present.
-
- Removed silly whitespace limitation in scripts.
-
- JOIN no longer automatically adds a `#' to a channel name if missing.
- [Avalon]
-
- 2.2pre7.myc1
- New commands WINDOW BACK, NEXT, PREVIOUS. [phone]
-
- New commands ON HOOK and HOOK. [Daemon]
-
- DCC SEND and GET now display speed when transfer is finished. [Avalon]
-
- (Rest of these by Mycroft:)
-
- Added declaration for `newexp' in whilecmd() which Troy left
- out.
-
- Removed line discipline code for AIX.
-
- Fixed ON_KICK.
-
- Tabs now display in reverse video after limit reached, so you
- can actually see them.
-
- -c works again.
-
- ON WINDOW doesn't recurse (and thus doesn't crash).
-
- TOPIC and ACTION messages go in the right windows.
-
- PAUSE_AFTER_MOTD is now a compile-time option and actually
- works.
-
- QUOTE USERHOST doesn't crash.
-
- QUOTE ISON does something sensible.
-
- USERHOST and ISON with no arguments no longer corrupt the
- whois queue.
-
- \ is no longer converted to \\ by /SAVE and in the history.
-
- /MSG FOO, does the right thing.
-
- /TYPE \^ now types out a caret, which you couldn't do before.
-
- White space around braces is less important. The main effect
- is that K&R style braces now work. You should be able to use
- whatever indenting style you prefer. Note that braces inside
- a command should be quoted now, a la \{ and \}.
-
- 2.2pre7
- Meta4 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.
-
- Bugs in complex '@' expressions fixed.
-
- Thu Jun 11 09:48:47 1992 Charles Hannum (mycroft@ai.mit.edu):
-
- * Makefile: Change RS/6000 support.
-
- * config.h (DEFAULT_STATUS_CHANNEL): Delete duplicate definition.
-
- * script/action: Remove `on's.
-
- * script/bigcheese: Convert to 2.2pre6 syntax.
- script/finger.who, script/fnet, script/killpath: Likewise.
- script/kpstat, script/log, script/nicks, script/repeat: Likewise.
- script/shell, script/voice: Likewise.
-
- * script/version: Update version number.
- script/netsplit: Rewrite to handle multiple splits.
- script/brc: Fix typo.
-
- * source/alias.c: Change function prototypes to match definitions.
- source/ctcp.c, source/edit.c, source/status.c: Likewise.
- source/term.c, source/translat.c, source/vars.c: Likewise.
- source/window.c: Likewise.
-
- * source/edit.c: Put comment delimiters around text after #endif.
- source/help.c, source/hold.h, source/irc.h, source/ircaux.c: Likewise.
- source/lastlog.h, source/term.h: Likewise.
-
- * source/exec.c: Add support for AIX 3.
- source/help.c, source/irc.h, source/ircserv.c: Likewise.
- source/log.c, source/newio.c, source/scandir.c: Likewise.
- * source/ircaux.c: Rename _RS6000 to _IBMR2.
- source/status.c: Likewise.
- * source/term.c: Remove unnecessary code for AIX 3.
-
- * source/vars.c: Replace NULLs with 0s in integer context.
-
- * source/status.c (convert_sub_format): Make bletch an array to
- prevent being put in readonly storage.
- (status_channel): Use format string even if *private*.
-
- * source/notice.c (parse_server_notice): Don't call
- reconnect_all_channels and reinstate_user_modes if first connect
- (phone bug).
-
- * source/menu.c: Make sure menu cursor doesn't get redrawn if menu
- disappears.
-
- * source/exec.c: Make sure messages get redirected after EXEC output.
-
- * source/edit.c (evalcmd): Fix EVAL when subargs == NULL.
- source/if.c (ifcmd, whilecmd, foreach): Likewise for IF, WHILE,
- and FOREACH.
-
- * source/if.c (whilecmd): Copy exp on every iteration, as parse_inline
- destroys it.
-
- * source/irc.c: Update version number.
-
- * source/dcc.c: Include arpa/inet.h for prototypes.
-
- * script/ping, script/whowas: New scripts.
- 2.2pre6
- WARNING. 2.2pre6 will almost certainly require changes
- to your .ircrc and script files due to changes in the
- parsing. The intention at this point is to keep the new
- syntax forever. That is, unless there's something I
- have missed, there will be no further script breaking
- changes.
-
- DISPLAY now defaults to OFF in scripts.
-
- Two new meta keys have been added. Meta3 is bound by
- default to META1-[, and Meta4 is left unbound.
-
- DCC SEND now checks that a file exists before sending
- the request. Memory allocation bugs when using DCC
- file transfers with ~ pathnames fixed.
-
- If you have experienced corrupted output from ircII,
- this should be fixed.
-
- Several display bugs, including a memory leak related
- to using windows have been fixed.
-
- Missed PINGs when in the help pager fixed.
-
- A new command, EVAL, has been added. EVAL causes
- its arguments to be passed through variable substitution
- and executed.
-
- Alias substitution is no longer performed in scripts,
- regardless of the setting of INPUT_ALIASES. To force alias
- substitution, use EVAL.
-
- A command beginning with '@' is taken to be an
- alias expression as would be normally parsed
- from within ${}. The expression is substituted and
- the substituted value discarded.
-
- The script loading path is now accessible as the SET
- variable, LOAD_PATH. Additionally, if you are unsure
- as to which directory a script being loaded is in,
- the /WHICH command will display the full path to a
- script. eg. /which global shouls give something on all
- systems.
-
- Bugs in Menus which caused core dumps have been fixed.
-
- Bug in DCC which caused incoming DCC messages not to be
- directed to window level DCC fixed.
-
- Bug with +s channels and /names fixed.
-
- Connections to servers on UNIX domain sockets are now
- supported.
-
- Aliases can now be recursive up to a maximum level
- as specified in the variable MAX_RECURSIONS.
-
- The inline variable parser now substitutes \n, \r, \0
- and \p too their equivalents in the CTRL-P convention.
-
- Having ! as the first character for the INDEX function
- no longer causes just unescaped characters to be matched.
- It is now a normal character in this context.
-
- The $%FUNCTION syntax is no longer supported. You can
- still use functions - just remove the '%'.
-
- The parser used when INPUT_ALIASES is on has been changed
- again. Text between brackets (...) and {...} is no longer
- subject to alias expansion, unless the opening bracket is
- escaped (ie... \( or \{ ). This affects alii and input when
- INPUT_ALIASES is on.
-
- 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)
-
- There is a new form for the if command. This is:
- if (expr) {then_commands} {else_commands}
- Note that because the expression, the then_commands
- and the else_commands are between brackets, they are
- not expanded in alias expansion. This is taken care of
- in the if statement itself. The expression is treated
- as if it were enclosed in ${...}. Thus all the comparisons,
- groupings, arithmetic and boolean operations that a
- available in ${...} can be used in the expression.
- Also note that you can have more than one command in
- each of the then and else parts of the condition.
-
- The result is that what used to look like this:
-
- on ^send_public * if "$^!^=^>^<C=$^!^=^>^<0" \
- "echo $%format(11 <$N>) $^"1-" \
- "echo $%format(10 <$N):$^"0> $^"1-"
-
- can (and must) now be expressed like this:
-
- on ^send_public * if ( C == [$0] ) \
- { echo $format(11 <$N> $1- } \
- { echo $format(10 <$N):$0> $1- }
-
- Note that this means there is no longer any need for using the
- ^ escaping, and this may disappear in a later version unless
- there are strong objections.
-
- The same thing has happened to while and foreach, which now
- have the syntax:
- WHILE (expr) {commands}
- AND
- FOREACH structure index {commands}
-
- The effect of this on WHILE and FOREACH is that you no longer
- need to double up occurrences of '$'. You can still get this
- effect if you wish by escaping the leading bracket in the
- appropriate expression. Additionally, both while and foreach
- can now be recursive. Thus the following works as expected:
-
- assign a.1.1 one one
- assign a.1.2 one two
- assign a.2.1 two one
- assign a.2.2 two two
- alias fe
- {
- foreach a i
- {
- foreach a.$i j
- {
- echo $i $j $a[$i][$j]
- }
- }
- }
-
- THE OLD SYNTAX FOR IF, WHILE AND FOREACH IS NO LONGER SUPPORTED.
-
- In scripts, lines beginning with '{' and containing other text
- are joined on to the previous line with one space placed between
- the two lines, thus the above example could have been written as:
-
- on ^send_public * if ( C == [$0] )
- { echo $format(11 <$N> $1- }
- { echo $format(10 <$N):$0> $1- }
-
- Additionally, the {..} syntax for grouping within scripts
- can now be nested. Nested {...} pairs must have the brackets
- placed on their own line, and the brackets are included in the
- resulting text. Thus the following is equivalent to the above:
-
- on ^send_public * if ( C == [$0] )
- {
- echo $format(11 <$N> $1-
- }
- {
- echo $format(10 <$N):$0> $1-
- }
-
- Or, for a little more verbosity:
-
- on ^send_public * if ( C == [$0] )
- {
- echo Current Channel:
- echo $format(11 <$N> $1-
- }
- {
- echo Another Channel:
- echo $format(10 <$N):$0> $1-
- }
-
- 2.2pre5
- Bug in "Password" prompt for server passwords fixed.
-
- Bug in WINDOW REFNUM fixed. <phone>
-
- Bug in ON DCC_CHAT which prevented interaction with
- the server fixed. <phone>
-
- Bug which caused +w'd non-opers to see their own WALLOPs
- twice fixed. <phone>
-
- Additional operators have been added to the ${...}
- expresions. They are the equality and inequality
- operators (==, !=, >, >=, <, <=), the unary NOT
- operator (!), and the conjugation operators (&&, ||, ^^).
- These take 0 as false and any other number as true,
- and return 1 as true and 0 as false.
-
- On top of these are the assignment operator (=) and the
- string concatenation operator (##). The assignment operator
- means that the following now makess sense, and causes the value
- of first_name and last_name to be concatenated with a space
- inserted between them, and the value assigned to full_name.
-
- @ full_name = first_name ## [ ] ## last_name
-
- The following is also possible:
-
- @ a = b * (c + d)
-
- A new variable has been added for script developers.
- 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
-
- More changes to parsing have occured. Firstly, there
- is no longer any '\' substitution on input. Thus, when
- you type text to a channel, in a /msg or elsewhere, it
- comes out exactly as you type it.
-
- On the other hand, '\' processing does exist anywhere
- that alias expansion occurs. The result is that if you
- have INPUT_ALIASES ON, you won't notice the difference.
- Also, aliases and ons still get the '\' substitution
- performed on them. All \c pairs where c is any character
- are collapsed to just 'c' after all parsing has been done,
- with the exception of ", !, =, < and >, which are
- required by if and while. This shouldn't be the case
- for much longer.
-
- Function and array index expansion now only observes
- unescaped bracket delimiters. Thus $%index(\) abc\)def)
- returns 3.
-
- Finally, the '%' is no longer needed for functions.
- Thus you the above example is the same as
- $index(\) abc\)def)
-
- The net result of all the changes to parsing in this
- version should be to make both command entry and alias
- construction much more intuitive.
-
- A new function, TDIFF, has been implemented.
- TDIFF takes as its argument a time interval in seconds
- and returns it as the english representation of
- that number in the form:
-
- dd days hh hours mm minutes ss seconds
-
- omiting any zero values, unless all values are zero,
- in which case the seconds field is returned.
-
- Bugs in dumb mode fixed.
-
- The parsing of ${} expressions has been changed. When
- mathematical expressions are being used, order of
- operations is respected and brackets are recognised
- and treated correctly. Additionally, functions can
- be referenced (without needing the % qualifier), and
- functions and aliases can be mixed to give versatility.
- This may break some numeric expressions, but will make
- a lot more a whole lot more legible and intuitive. For
- example, the following:
-
- ${3*(INDEX(x abcxdef)+2)}
-
- Yields 3*(3+2) = 15
- or, if you have an alias:
-
- ALIAS TEST echo ${INDEX(x $0)*5}
-
- and then type:
-
- /TEST abcxdef
-
- you will get back 15
-
- Then, if you have a set of functions, A.1, A.2, A.3,
- and the variable IND is set to 2, then ${A[$IND]()}
- will resolve to an invocation of A.2 as a function.
-
- If you have a function, F, and a pair of arrays A
- and B, each with elements numbered 1-10, and F returns
- either A for 1 and B for 2, then the following:
-
- ${F(2)[5]}
-
- returns element 5 from array B.
- Because order of operations is now respected, both
- ${3*2+5} and ${5+2*3} return 11.
-
- 2.2pre4
- /WHO * now results in failure if you are not on a channel.
-
- Behaviour of positioning when menus are being used has been
- corrected. There's the possibility that I broke something
- else while doing it though.
-
- The worst of the memory leaks has been fixed. There are
- still some memory leaks apparently present. If you compile
- with ALLOC_DEBUG defined, then when the memory tracking
- table gets full (indicating a leak), IRCII will abort,
- generating a debug.log which lists all allocated blocks
- with their sizes and contents in ASCII. This should
- prove helpful in tracking leaks.
-
- The slosh (\) no longer quotes characters which have no
- special meaning, thus allowing you to enter a '\' in the
- text without doubling it up. Additionally, The \n sequence
- no longer works. Use ';' in aliases instead, and quote the
- CR or NL character to get the same effect interactively
- (ie. ^Q^J or similar).
-
- Fixes to the multitude of bugs in pre3.
-
- 2.2pre3
- If the environment variable "MAIL" is set, IRCII now uses
- it to determine which file to check for mail.
-
- The VERBOSE_CTCP variable has been fixed.
-
- A new function, CONNECT(), gives access to TCP sockets
- at the application level. The arguments are the destination
- host and port number, and the return value is the
- file descriptor (fd) associated with that socket.
- A null file descriptor indicates that the host could
- not be resolved, and a negative descriptor indicates
- that an error occured in connecting.
-
- To test this facility, create a connection to the
- echo service on some machine with:
-
- /alias socktest echo $%connect(host 7)
-
- Which will echo the file descriptor.
- Then send messages to it with:
-
- /dcc raw fd host message
-
- These will be echoed back at you by the remote host.
- 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.
-
- The LISTEN() function creates a listening socket. It takes
- a single argument - the port number on which to listen. If
- this is zero, then a port number is assigned. The return
- value is the port number on which the socket is listening
- for connections. A port number below 1025 results in an
- error.
-
- 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.
-
-
- You can now "send" a message to a command. For example,
- /msg /echo this is a test
- is the same as
- /echo this is a test.
- The primary use of this is to allow a /QUERY of a command.
- Thus if you /query /echo, everything you type to the
- current window will simply be echoed back, and if you
- /query /exec, you can use IRCII as a shell. Note that
- when querying a command, you may need to use XECHO -WINDOW
- to ensure output goes to the right place.
-
- CTCP UTC has been added. 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).
-
- Menus have been added. The menus are totally user
- configurable and a test menu has been provided in
- the top level directory of the IRCII source distribution.
- To use this menu, copy it to your home directory,
- run IRC, and to 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.
-
- For more information, see the demonstration menu shipped
- with the sources.
-
- Bug which cleared the input line when calling WAIT from
- ON TIMER fixed.
-
- Bug which left channel names from a previous connection
- in the channel list even if they could not be rejoined
- fixed.
-
- User modes are now restored after a disconnect/reconnect.
-
- Bug which caused the scrollback buffer to duplicate messages
- when HOLD_MODE is on fixed.
-
- USERHOST is now used in place of WHOIS to retrieve IRC-Op
- information on WALLOPing users and in the case of 2.6.2
- servers, user@host information for IGNORE. This means
- that there are now three commands going through the WHOIS
- queue - WHOIS, ISON and USERHOST. It is not a good idea
- to /quote these, as you will be likely to corrupt the
- WHOIS queue. USERHOST can now be issued with /HOST and
- /USERHOST
-
- 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 decault 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).
-
- The # modifier (bind to current server) for ON commands has been
- changed to '&'.
-
- Fixed display bug with reverse and bold modes which caused
- these modes to be turned off if a line wrapped. Also fixed
- NOTIFY and LINKS problems.
-
- The bug in user mode processing when a MODE command makes no
- actual changes to the user mode has been fixed.
-
- A new status line variable, %B, gives the number of lines
- in the hold buffer for the current window. Its format
- is controlled by the STATUS_HOLD_LINES variable. %B is only
- updates once for every ten lines.
-
- New status line variable, %# added. This returns the current
- user mode. Its format is controlled by the STATUS_UMODE
- variable.
-
- The behaviour of FLUSH when HOLD_MODE is on has changed.
- it now clears the hold buffer for the current window before
- flushing further output from the server. The result is that
- with HOLD_MODE on it is now impossible to get into a
- situation where you are being flooded by server output
- with no hope of reprieve.
-
- 2.2pre2
- ^G bug fixed. A couple of small things cleaned up.
-
- 2.2pre1
- Note that there have been several new variables added in
- this version, so old config.h files won't work. Also the
- IRCIIhelp service is being regionalised. You should set
- HELP_SERVICE to the nearest IRCII help service in config.h
-
- Three new BIND functions have been implimented -
- SCROLL_BACKWARD (bound by default to ESC-p), SCROLL_FORWARD
- (bound by default to ESC-n), and SCROLL_END (bound by
- default to ESC-e). These allow you to scroll through the
- output stored in LASTLOG without having to use the
- LASTLOG command. SCROLL_BACKWARD causes IRCII to scroll
- half a window of LASTLOG data on to the screen, pushing
- whatever is in the window towards the bottom. ESC-p
- reverses this, thus looking at newer parts of the LASTLOG
- history. ESC-e exits this scrollback buffer facility
- at any time. This facility is probably best used with
- HOLD_MODE set to ON, and requires SCROLL to be set to ON.
- If you use this facility with HOLD_MODE off, then when you
- leave the scrollback buffer, either by SCROLL_FORWARDing
- to the end of it or SCROLL_ENDing, all text that has been
- accumulated will be printed. If you have HOLD_MODE on,
- the window will be held until you manually unhold it.
-
- Provision has been made for memory allocation debugging
- for developers. Add -DALLOC_DEBUG to the CFLAGS, and
- IRCII will abort (generating a core dump) should memory
- be freed which was never allocated. Additionally, a
- dump will be made showing the locations of all allocated
- memory with the two preceding long integers in memory.
- Additionally, SEGV will be trapped and will generate
- a similar log, with the addition that if you are using
- an IBM RS6000 it will dump a heap walk. People on other
- platforms will need to either add heap walk code for
- those systems or manually walk the heap using the
- debugging information. The dump is stored in debug.log
-
- A new XECHO flag, -WINDOW, has been implimented. Thus:
- XECHO -WINDOW 1
- always sends output to window 1, and
- XECHO -WINDOW JUNK
- always sends output to the window named "junk". If the
- window does not exist, the -WINDOW flag has no effect,
- except to cancel any earlier -WINDOW flag.
-
- Two new modifiers have been added to /ON. If the first
- character of the first argument (the hook name or numeric
- number) is '#' or '@', the ON only affects things relating
- to the current server. Additionally, if it is '@', and there
- is no match for things in the list of ONs applying to the
- current server, it will not resort to the default list.
- [Changed in pre3]
-
- WHO -LUSERS (returns only non-operators) and
- WHO -NICK <nickname> (returns only people matching the
- nickname argument) have been implimented.
-
- A new variable, DCC_BLOCK_SIZE 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.
-
- Use of real estate when SCROLL is ON has been improved.
- There is no longer a blank line between the text and
- the status bar. This takes a little getting used to,
- as now the screen scrolls before a line is printed
- rather than after.
-
- 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.
-
- You can no longer abbreviate QUIT, SIGNOFF, BYE or EXIT
- in NOVICE mode.
-
- All restrictions on IGNORE by user@host removed.
-
- Internals given a decent reworking. There could be bugs here.
- You should now never see ircd's colons marking the last
- argument.
-
- Added two new wildcards to the pattern matching system.
- '%' matches any sequence of characters except a space.
- '?' matches any single character.
-
- International character set support added. Translation
- tables are supplied for various terminal types. To activate
- the appropriate character set, /SET TRANSLATION charset_name
- eg. For an IBM PC set up for US English (Code page 437),
- /SET TRANSLATION CP437
- The translation tables assume that text transmitted on the
- servers adheres to ISO 8859/1. If your terminal understands
- ISO8859/1, set TRANSLATION to LATIN_1. The default is ASCII,
- due to the fact that nothing can be safelt assumed about any
- terminal.
-
- Bug in /set history 1 fixed
-
- Bug with redirecting to yourself fixed. It is now illegal
- to redirect to yourself.
-
- $P (Chanop status variable) fixed, and a new status line
- substitution, %@, which subsitutes to STATUS_CHANOP if
- you are chanop on the channel shown on the status bar.
-
- $~ now substitutes to the last word on a line.
-
- New functions:
-
- 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.
- WORD(number wordlist) Returns the specified word from
- wordlist. The first word is
- numbered 0.
- 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.
-
- INVERSE_VIDEO variable and beyond fixed.
-
- A new character attribute, bold, has been added. This
- is enabled and disabled with ^_. Disabling bold has
- the side effect of disabling inverse and underline
- without recording it internally. You should allow for
- this when using bold text. Bold text can be enabled
- and disabled with the BOLD_VIDEO variable.
-
- The status line problems with attribute characters
- have been fixed. You can now include attribute characters
- in the status line and they will take effect. One
- application of this is to change the status bar from
- inverse text to bold or underlined by including ^_ or
- ^V at the start of STATUS_FORMAT.
-
- You can now refer to the elements of structures
- (normally Structure.Element) as Structure[Element].
- When you do this, Element is evaluated as an expression
- before it is appended to Structure. Thus if A has the
- value "TEST", and there is a variable "B.TEST" with the
- value "Message":
- echo $B[$A]
- yields:
- Message
- These can be repeated, as in:
- $MATRIX[0][0]
- which becomes "$MATRIX.0.0". The result is a pseudo-array
- effect.
-
- New command, FOREACH has been added. The format is
- FOREACH structure variable command
- This causes command to be executed once for each
- element in the named structure, with variable
- substituted to the name of the element. Thus
- if you have assigned:
- /ASSIGN A.1 ONE
- /ASSIGN A.2 TWO
- /ASSIGN A.3 THREE
- /ASSIGN A.4 FOUR
- /ASSIGN A.5 FIVE
- and have an alias:
- /ALIAS SHOWA FOREACH a i ECHO $$i
- and type
- /SHOWA
- The output will be:
- 1
- 2
- 3
- 4
- 5
- Alternatively, you can use:
- /ALIAS SHOWA FOREACH a i ECHO $$a[$$i]
- to get:
- ONE
- TWO
- THREE
- FOUR
- FIVE
- Note that if you use numbers, 11 comes before 2.
- The easiest way around this is to start numbering
- elements at a higher number, such as 100.
- Note that FOREACH, like WHILE, does variable
- substitution once when the FOREACH command is
- evaluated, and once for each iteration. This
- means that in general you will need to double
- up any occurences of '$'.
- 2.1.5b-2.1.5g
-
- Functionality of WHO -HOST and WHO -SERVER returned.
-
- New WHO flags, -HERE and -AWAY added.
-
- New functions:
-
- MATCH(pattern word-list) Returns an index into the word
- list of the first word that matches
- the pattern, starting at 1 and
- returning 0 for no match.
- RMATCH(word pattern-list) Returns an index into the pattern
- list of the pattern that word best
- matches.
- STRIP(charlist line) Strips all occurrences of characters
- contained in charlist from the line.
-
- You no longer need to supply the leading # to JOIN and PART.
- If the leading # is omitted, and you are on a 2.7 server,
- it will be inserted. Notable exceptions to this rule are
- channel '#', which would have no name if the # were omitted,
- and channels beginning with '##'.
-
- CTCP Action format changed so as not to interfere with channel
- text. ON ACTION and ON SEND_ACTION added. You can now suppress
- ACTION text with these, or reformat it.
-
- Many bugs fixed.
-
- 2.1.5-2.1.5a
-
- New functions:
-
- USERHOST() Returns the user@host of the sender
- of the message currently being
- processed.
-
- WHO -HOST and -SERVER is no more supported. (This is reenabled
- in a later version).
-
- The contents of an alias can now be surrounded by '{' and '}'
- in and broken over multiple lines. See script/finger for an example.
-
- Indentation with leading tabs and spaces is now permitted in script
- files. See /HELP LOAD.
-
- HOLD_MODE no longer holds when you are being active in that window.
-
- If you have SHOW_AWAY_ONCE on, away messages are remembered and
- only displayed when they change.
-
- Notification of the receipt of a CTCP request no longer occurs
- unless VERBOSE_CTCP is on.
-
- Prompts from EXECed processes now appear in the input window if
- $T appears in INPUT_PROMPT.
-
- Scripts and help files can now be stored in compressed format.
- They will be uncompressed as they are used.
-
- All the scripts have been updated and many helpfiles written and
- rewritten. Many bugs have been fixed, support of newer server
- features added. Server 2.7 compatibility improved.
-
- 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 seperator within ALIAS, BIND and ON. You might have
- to \escape it.
-
- 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: /help load action.
-
- * 2.1.5 (by lynX) Text is historically from new to old, that is - read it from bottom to top!
-
- Updated help files: NEWS LOAD/* WHOIS IRCII/IRCII IRCII/PROGRAMMING
- ALIAS/ALIAS BIND/PARSE_COMMAND BIND/EXAMPLES ON/ON CTCP/* ME DESCRIBE
- ON/SIGNOFF SEND SAY NOTIFY SET/COMMAND_MODE ALIAS/SPECIAL RESTART
- SET/LASTLOG_LEVEL
-
- Threw out /who -s and -h, they were superflous and bad.
- Cleaned up the vars.h and hook.h by cleaning the protos... FINALLY!
- Wrote count.c and the proto headerfiles, adapted the Makefile.proto
- Added underlining mechanism with put_it-code ^V.
- Updated man page a bit.
- Added optional code to limit the notify list length (MAX_NOTIFY).
- Removed lots of do_hook-numeric if's by splitting the numeric's switch.
- Rewritten /notify list.
- Simplified notify.c and whois.c to no more support channel notify.
- (If ISON doesn't, why should we then?).
- Added Troy's alias functions MATCH and USERHOST, but no HELPs.
- Added support for { } constructs in scripts and indentation.
-
- Removed the oper-flags from the IRC commands, if you issue oper commands while
- you're not one, you get the beautiful ircd error messages.
-
- Seem to have fixed the problem in the status_mail sprintf...
- Changed the handling of 2.7 UserHost in PRIVMSG etc.
- The $, is now also set when you get an invitation.
- Added oneself's nickname as command alias for /me. "/lynx smiles."
- Improved HOLD_MODE: it no more holds a window if the user is being active on it.
- Added some numeric codes in numbers.c for 2.7 compatibility.
- Added support for ~ in IRCPATH, but only referring to the user's own home-dir.
- Suspended a piece of new code in mail.c which seems to cause weird problems.
- Introduced lastlog_level 'ACTIONS' to log in and outgoing CTCP ACTION lines.
- Made 317 (whois-idle) a tiny bit smarter (seconds or minutes).
- Added #ifdef SVR4 code.
- Added SHOW_AWAY_ONCE and VERBOSE_CTCP vars.
- Replaced QUIT_ON_KILL variable by a #define.
- Applied Allanon's patches to ctcp.c and dcc.c, removal of DCC/SENDCRC + GETCRC.
- Added support for numeric 364 (new LINREPLY). Old LINREPLY code not removed.
-
- New handling of process prompts. In the past they were put into the window->prompt
- and then inserted into the INPUT_PROMPT var mask, which looks *ugly*, also the
- input would not get echoed. Now it does this: If a prompt is detected you are
- elegantly prompted, as if you were in the program itself, when you enter your
- datum prompt and input are displayed in the window the way it would look outside
- ircII. This is a great step towards using ircII as an interface to all kinds of
- things, ircII + /bin/sh as a replacement for tcsh.. Ha ha I'm kidding. Well, for
- a MUD client it's fine. ircII can now be used as MUD client.
- BTW, I had to do profound changes in the handling of prompts throughout the source.
-
- Fixed ancient bug concerning process-query: you can now type 'just CR' into an exec.
-
- Fixed strange bug with /save prompt. Still don't know what was actually wrong,
- but it behaves correctly now. :-I
-
- Away messages are only displayed ONCE.
-
- Added #ifdef into new_free() to hunt for free's that should not take place.
- If you have spare time hunt some of those.. ;)
-
- Added the commands '<text> and :<text> which only work in COMMAND_MODE and
- act like /send and /me respectively. This is a MUD standard.
-
- Added /restart, /xtra and /host which calls USERHOST. The last two have no
- /help files.
-
- Introduced Allanon's implementation of ZCAT help file display.
- Also scripts (files for /load) can be stored in compressed format if one likes.
-
- Patched /save to work with totally dumb terminals, with -d it saves without prompting.
-
- Added special sequence '$D' to the alias parser. Thanks to The_Edge for the idea.
- Added binding ESC-G to the 'commander' script that uses it.
-
- Applied Veggen's patch to alias.c concerning uninitialized variables.
-
- Removed /set VERBOSE_QUERY since the same can be achieved with /^query...
- (If you want it use /alias quer ^query)
-
- Added DCC SENDCRC and GETCRC by Allanon. These functions transmit and receive
- files with checksum. It has to be tested and decided if a checksum is needed
- or futile by TCP definition. The commands are temporary and should replace
- the current SEND/GET or be removed away again. Since this decision affects
- other client coders, too, it should be discussed via USENET or interactively.
-
- Added ';' handling: In ALIASes, ONs and BINDs it is legal to use ; as command
- seperator instead of \\n while in LOAD and interactive mode ';' is considered a
- normal character (to be able to type ;-) ). With a little magic I managed to make
- it possible to escape the ; with \; in aliases if you want it as character. *PHEW*
-
- Repaired /whois 317 (idle time output).
- Added /whois <server> <nick>[,<nick2>..] format to /whois command.
-
- Added commands /me and /describe to produce ACTION messages.
-
- Added CTCP ACTION handling.
-
- Disabled GLOBAL_IRCRC, replaced by automatic /load of 'global' which is
- supposed to be in the IRCPATH. This permits easier debugging and developing
- of scripts by redirecting everything into an other directory.
-
- If a person has an .ircrc the person is assumed to not be a novice, the /HELP NEWUSER
- notice is not output.
-
- Added variable QUIT_ON_KILL to select if one wants to /quit when
- one is killed. /ON KILL has not been implemented for obvious
- reasons of possible misuse.. :-(
-
- Added #ifdef AUTO_RECONNECT to make ircII not auto-reconnecting.
-
- Added CTCP TIME by Veggen.
-
- Added 'signoff reason' to signoff message. Modified some messages concerning
- CTCP and NOTIFY for beauty or better elequence...
-
- Added /send command which sends something to the current query or channel
- as if it were typed. Acts as replacement to bare text, since that is now
- interpreted as commands
-
- Added /say command which does the same as '/ <text>'
- and /# (or # in script mode) command which is the same as /comment.
-
- Introduced script (command) mode and COMMAND_MODE variable.
-
- Removed some code that would never get used, as my optimizer told me.
-
- Bug fixes concerning buffers, /if command with HP/UX, ...
- by Allanon and Veggen.
-
- * 2.1.4c
- Some bug fixes, including the CTCP DCC bug and substitution
- of '\' in alias expansion.
-
- Bug in SAVE with "-d" mode fixed.
-
- * 2.1.4b
- Support for server version 2.7
-
- * 2.1.4a
- Bug fixes.
-
- * 2.1.4
- $N now substitutes correctly to the nick on the current server.
-
- Bug with changing servers when on multiple channels fixed.
-
- ISON based NOTIFY has been implemented. In addition, the
- code has been modified so that NOTIFY will cause much lower
- network loads.
-
- /TOPIC can now change the topic of a # channel on a 2.6.2b
- or newer server. The new format for /TOPIC is:
- /TOPIC [<channel>] [<topic>]
-
- Aliases and ASSIGNed variables can now include a dot
- ('.') in their names. When listing aliases and assigned
- variables, anthing after a dot in the variable name
- is suppressed, unless typed explicitly. If two variables
- have the same name after this, only the first occurence
- is printed. This allows a structure-like effect.
-
- /ASSIGN A.A This is a
- *** Assign A.A added
- /ASSIGN A.B this is B
- *** Assign A.B added
- /ASSIGN A.C This is c
- *** Assign A.C added
- /ASSIGN A
- *** Assigns:
- *** A <Structure>
- /ASSIGN A.
- *** Assigns:
- *** A.A This is a
- *** A.B this is B
- *** A.C This is c
- /ALIAS A.A alias a
- *** Alias A.A added
- /ALIAS A.B alias b
- *** Alias A.B added
- /ALIAS A.C alias c
- *** Alias A.C added
- /ALIAS A
- *** Aliases:
- *** A <Structure>
- /ALIAS A.
- *** Aliases:
- *** A.A alias a
- *** A.B alias b
- *** A.C alias c
-
- Note that structures are effectively in a different naming
- space to non structures. Thus, you can have a structure called
- 'A' and a normal variable, also called 'A'.
-
- Server notices are now displayed with the SNOTE level.
- Four additional lastlog levels, USERLOG1-USERLOG4, are
- reserved for users. These can be used by displaying text
- with the XECHO command.
-
- Four new alias substitutions: $O substitutes to the value
- of STATUS_OPER if you are an operator, $P to '@' if you are
- a channel operator on the current channel, $M to the modes
- on the current channel, and $A to the current away message.
- * 2.1.3c
- A new DCC command, rename, changes the name of a file sent
- to you by somebody else. DCC file transfer should also accept
- the ~ now.
-
- Some bug fixes.
- * 2.1.3b
- A new log level, OPNOTE, has been added. This level applies
- to notices sent to operators, such as KILL notices.
-
- A new status line variable, %F, lists the hidden windows in
- which there has been activity since they were made hidden.
- An associated IRCII variable, STATUS_NOTIFY, sets the format
- for this to be displayed.
-
- New ONs: CHANNEL_NICK and CHANNEL_SIGNOFF are executed once
- for each channel from which the user changes nick or signs off.
- If all the CHANNEL_NICK and CHANNEL_SIGNOFF hooks which are
- matched suppress output, then the default output and the NICKNAME
- and SIGNOFF hooks will be suppressed.
-
- Various bug fixes.
- * 2.1.3a
- Various bug fixes.
- * 2.1.3
- Added support for the Tektronix XD88
-
- Added DCC talk. To use this, /DCC TALK user@host. DCC talk
- will only send an announcement once, rather than an infinite
- number of times.
-
- Fixed bug with functions which have no arguments. Added RINDEX
- function.
-
- * 2.1.2.2
- New help files RULES and IMPORTANT included. You should
- read these before installing help and decide on a site
- by site basis if you wish to install them. If not, remove
- them from the help directory.
-
- Hopefully fixed the WHOIS queue once and for all.
-
- Fixed some bugs outstanding from 2.1 (HELP paging with
- HOLD_MODE ON, Core dumps after a WHOIS or WHOWAS if the
- WHOIS queue was empty, core dumps when the status line
- is an empty string)
-
- * 2.1.2
- Added DCC file transfers (GET and SEND), and DCC CLOSE
-
- Added new window command - NOTIFY. This toggles the
- notification status of the current window. A window with
- notification on causes a message to be printed in the
- current window if output to that window occurs while
- it is hidden.
-
- Changed group message ([$#]*.domain) handling so that such
- messages are treated more like WALLs than MSGs. (Meaning
- that it beeps if you have WALLs set in BEEP_ON_MSG, not
- if you have MSGs set).
-
- The type of the MAIL variable has been changed from BOOLEAN
- back to INTEGER. If set to 2, it will now display some of the
- headers from incoming mail. Setting it to 1 is the same as
- setting it to ON used to be.
-
- /ON SERVER_NOTICE processes messages sent from the server
- as NOTICEs, including MOTDs and many server status messages.
- The easiest way to see what is trapped by this is to do a
- /ON ^SERVER_NOTICE * /echo [SNOTICE] $* and see what happens.
-
- /WHO -FILE performs a /WHO, displaying only those nnicks
- contained in the named file. This allows a larger list to
- be kept of people you know on IRC but not well enough to
- put them in the NOTIFY list.
-
- If a channel name exceeds the channel name width in the output
- of /NAMES or /WHO, the last character that would be displayed
- is shown as a '>'.
-
- Added NOVICE variable. Causes a new user message to be printed
- after .ircrc has been loaded if it is still set to ON, and
- refuses to allow any ON commands to be executed.
-
- Added /ON RAW_IRC to deal with any unknown commands coming from
- the server. This is primarily of use to people working on server
- code, or people using servers with new commands which IRCII does
- not yet recognise.
-
- Direct Client Connections implemented. /DCC CHAT opens a direct
- connection to another client. The user at the other end can either
- accept the chat with a /DCC chat or ignore it. Messages are sent
- across DCC CHAT connections with DMSG or DQUERY. A new status
- specifier, %D (STATUS_DQUERY) is supported, which substitutes
- the DQUERY value. Two more /ONs, DCC_CHAT and SEND_DCC_CHAT, deal
- with DMSG messages.
-
- * 2.1.1
- Version 2.1.1 supports user defined functions. A user
- defined functions is an alias that ASSIGNs a value to
- FUNCTION_RETURN. Another alias can substitute the return
- value with $%FUNCTION(ARGUMENTS). See /HELP ALIAS FUNCTIONS
-
- Pattern matching has been improved. IRCII now has an idea
- of the "best" match. This allows #* to be treated differently
- to * in /ON NAMES, for example.
-
- IF and WHILE now only use unescaped operators. Thus if it
- is possible for a substitution in an if or while to produce
- an operator, such as a channel name containing !, it can
- be entered as $^!CHANNEL, escaping the ! and making IF
- and WHILE work as expected.
-
- Support has been added for privileged ports. If IRCII is
- installed setuid->root it will attempt to bind the local
- socket to a privileged port, allowing some servers to
- verify connecting users on this basis. The PP_OBJS and
- PP_DEFS macros in Makefile must be uncommented.
-