+===================================+ || || || AmIRC -- The AmigaOS IRC Client || || || || Version 1.69 || || || +===================================+ AmIRC is a client for the IRC Internet Relay Chat protocol. Features: o runs with Miami, AmiTCP and as225/inet225 without additional support libraries. o builtin high speed DCC drivers for SEND, TSEND and MOVE. Highly optimized with asynchronous file I/O and threaded network handling. Supports Drag&Drop sending of files. Supports the "mIRC for Windows" DCC RESUME extension. o tranparent implementation of DCC CHAT. All /MSGs are automatically routed via DCC CHAT if applicable, to reduce latency and IRC server load. Option to automatically accept DCC CHAT connections. o supports secure encrypted DCC CHAT (SCHAT) o supports drag&drop o ultra fast text output and scrolling. Supports Cut&Paste for the list text. Supports proportional fonts. o internal CTCP flood and DCC bomb protection o supports the latest 2.9.x irc server extensions. o full support of the "Undernet" IRC extensions, both reply codes and additional IRC commands. o intuitive channel display with userlist and channel mode overview. Channel modes can easily be changed via gadgets. Configurable user action list to perform whatever action you like on users in channel by the press of a mousebutton. Ban list window. o supports QUERY windows for private chat. o supports "smart" banning. o versatile machine language plugin interface for custom commands, parsers and more. o versatile AREXX port including server message parsing ("event trapping") and commandline/script interaction. o easy command line aliasing. o builtin IdentD (automatically disabled if another IdentD is already installed). o supports nick notification, highliting, ignoring and kickban. o versatile event handling allows you to bind sound effects, auto-deiconify or rexx scripts to certain events. o server phonebook. o last nick history. Stores the nicknames of the last nicks you've send MSGs to, received MSGs from or addressed publically with "nick:". Reference can be used in all commands which require nick names, e.g. /MSG, /OP, /DEOP. Automatic nick expansion on public messages with ":". o TAB messaging to automatically cycle the list of last used nicknames with a /MSG prefix. o Nickname completion. Press TAB after a partial nickname to automagically match nicks in the current channel just like in your favorite CON: handler. o auto rejoin channel on KICK and auto reconnect server facility. o auto away after idle timeout. Auto unaway after sending public and/or private msgs. o URL grabber for interfacing with the Voyager WWW browser (optionally via ARexx script and lesser browsers) This is the sixth public release of AmIRC. It has undergone thorough testing, although bugs surely have remained. If you find anything queer, send a bug report to . Thanks! Special thanks to all ATO members who provided translations for AmIRC. See http://ato.vapor.com/ato/ for more information on the Amiga Translators Organization. The executable comes in two versions: One, called "AmIRC", is compiled for OS 2.x and 68000 CPUs, the other, "AmIRC020" is compiled for 68020 CPUs (and up) and for OS 3.x systems. AmIRC is *SHAREWARE*. You can register it easily with the included registration utility at 8 (!) sites around the world: Germany, UK, France, Sweden, USA, Canada, Australia and Poland. You can register with your Credit Card and email only (at the UK site), and you can register via First Virtual Electronic Transaction (at the US site). Online registration with Credit Card or FV payment is also possible: http://www.vapor.com/order/ Known problems, their reasons and their cures: o You absolutely MUST install SetPatch 40.16 (or higher), otherwise you will stumble over the broken pool functions in 3.0/3.1 exec. o Spurious crashes when having an ObtainGIRPort hack installed. This hacks break a few of the ROM internal BOOPSI gadget classes (notable the propgclass which is used by AmIRC for it's scroller) and MUST not be used. Older versions suggested to install such a hack to avoid MagicMenu lockups; this was before the system hostility of the ObtainGIRPort hack was unveiled. o Neither HILITE, IGNORE nor URL-Grabber work on text written by yourself. This is due to internal reasons, I'm not sure if it is worth changing. ============================================================================ * Revision history: * ============================================================================ [Changes before 1.0 have been removed from this file] 1.0 --- - "Connect Thread" didn't work with the unregistered Version. - the RESUME button now behaves like GET for DCC MOVE requests. - fixed a nasty bug in the text layout with control characters causing writes outside of the text gadget. - incoming DCC CHAT messages didn't trigger a PRIVMSG event. - BEEP on CTRL-G was disfunctional. - alias definitions are now checked before internal commands. Note that it is not possible to nest aliases. You can always access the non aliased command by prefixing the command name with a "!", i.e. "/!leave". This is usefull when calling commands from ARexx scripts. - several small fixes, cleanups and optmizations. - DCC sockets now use TCP_NODELAY. - fixed various bugs the registration utility. - the RIGHTBORDER setting will now cause window borders to be used for scrollers. 1.1 --- - fixed a few typos in the builtin english text. - The SendBrowser.AMIRX interface didn't work because the path stuff was munged. - fixed nick changes to be properly tracked in the userhost database (fixes QKICK problems with nick floods) - RDArgs wasn't every freeed, causing a memory leakage if started from shell. - added support for DALNET extensions: Reply code 328 (Channel URL) and PART with additional parameter. - now accepts nick names up to 30 channels (for use on ArcNet and DALNET) - fixed parsing of the undernet extended 392 message (messed up RPL_TIME). - on cut operation, normal channel text nick's are now enclosed in angle brackets. - fixed cutting of channel text without prefixes. - fixed a few background setings of MUI objects. - "/?" now works different from "/help command"; /? only lists the command template, whereas /HELP will view the guide entry as usual. - notify is fixed to not flood with n^2-1 userhost requests upon detecting a bunch of nicks on startup. Also, USERHOST requests are now properly grouped by 5 for faster response and less load. - fixed pasting of multiline text into query windows. - the connect info window now pops up in deactivated state. - notify list will now be properly flushed when changing servers. - incoming private CTCP ACTIONs ("Describes") had the DCC/CTCP color instead of the private msg color. - ban list wasn't properly reread when the channel bound to a window or the server changed. - the userlist listview now has a popup menu with all the defined actions. - userlist sorting now has three options: sort alpha, add at bottom, add at top. - several small fixes, cleanups and optmizations. - CONNECT wasn't recognized as a tooltype. - specifying server, port, autojoin or password on startup will no longer mess up the formely selected server entry in the phonebook. - specifying a server on startup will now properly use the corresponding phonebook entry (if existant) as a template. - fixed bug in handling DCC RESUME reject messages (which caused an endless loop if used between two AmIRCs) - included fixed documentation, new installer, some new submissions and new gost-sounds. Also, fixed a silly bug in the form generation in RegisterAmIRC. 1.2 (beta) ---------- - added /NOTE command. - added /LASTLOG command. - text list didn't properly chop off prefixes while the associated window was closed. - AUTOJOIN tooltype was internally misspelled as AUTOJIIN - listview scrolling is now visually "nicer". - fixed a few problems with the URL grabber termination characters. - minimum period for nick notify is now 60 seconds to avoid bandwidth trashing - now displays the HIGHSCORE 317 message extension - fixed parsing of the undernet 317 SIGNON TIME message extension - no auto reconnect on OPER KILL anymore - AmIRC is now more picky on what server version it connects to and which modes are available (recognized so far as being "special" are "2.8.21+" and "2.9". - now checks for already installed identd and automatically disables the internal identd and uses the system username in that case. - 2.9-support: Displays and understands the 437 extension messages ("Nickname temporarly locked") - 2.9-support: Understands the JOIN channel+mode message which is used on netjoins (WTF sends this to clients anyway?!) - 2.9-support: Understands restricted user mode and the 484 "Restricted" error message. 1.3 (beta) ---------- - fixed problem with getting the username when using Miami - fixed pasting of text containing linefeeds to query windows (last char of every line was lost) - CTCP ignore will now properly ignore channel CTCPs as well 1.4 (beta) ---------- - added internal CTCP SOUND support. Sound files have to reside in PROGDIR:Sounds 1.5 (beta) ---------- - directory and volume for CTCP SOUND stuff is now settable - AWAY state in dialog windows will now go away when the remote user is no longer away and a WHOIS is performed on him. 1.6 (beta) ---------- - changed login procedure a bit in an attempt to avoid the autojoin delay with 2.9-servers - now supports optional external soundplayer for people struck with OS 2.x systems, or Play16 fans :-) 1.7 (beta) ---------- - identd now only returns "real" answers, to overcome the now a bit more smarter inquiries of current identd versions. - recognizes 476 (AnotherNet, "no warez") extension message - recognizes 438 (Nick change too fast) message - added /MAP command and 005/007 messages - added /GLINE command and 280/281 messages - added /IRCNAME command and response parsing 1.8 (beta) ---------- - fixed messed up catalog string numbers - fixed /IRCNAME command - no longer sets identd to off when the port is bound - fixed handling of "," in server comment strings 1.9 (beta, internal only) ------------------------- - fixed netsplit detection for server names containing a digit as the first character. - fixed bogus identd gadget disabling. - long outstanding bug in the Rexx interface -- RexxMsgs were never flushed, thus causing memory loss during longer AmIRC operation with Rexx usage. - recompiled with SAS/C 6.57 in case some now fixed code generator bug slipped in. - fixed /KILL and /SQUIT commands. 1.10 (beta) ----------- - (hopefully) fixed all instances of the 9 character nick limit. People not using sizeof() should be shot, really :-) - no longer stores CTCP responses of any kind in the nick history - sound names are now properly validated for security before being passed to an external sound player. - now strips of any pathes from incoming and outgoing sound requests. - added UPING oper command - cleaned up my email and the support URL - fixed deadlock when there was another identd in use on the system and the connect to the server failed or was closed straight without sending something. Happened to MIAMI users, mostly. - fixed a few duplicate shortcuts - completely recompiled with SAS/C 6.57 1.11 (beta) ----------- - properly strips path names from incoming DCC requests, too (might be an problem if you accidentally clicked "GET" on same lamo sending you "S:Startup-Sequence") - fixed nickhistory for TAB messaging which were broken in the 30-char-nickname movement in 1.10. 1.14 (internal) --------------- - fixed potential crash when selecting menu AWAY while there was no connection. - fixed illminded reaction when WaitSelect() returned the reset handler IPC signal to be set (caused deadlocks with Miami users) - added 281 and 512 GLine related response codes - DCC CHAT connection sockets now have SO_KEEPALIVE set so that connection losses don't go unnoticed. - hopefully fixed all remaining 10-char-limits on nicknames for DCC transactions. - now shows unknown user modes as the raw mode char, instead of simply ignoring them. - "Use Identd?" was ghosted, but not cleared if the auth port was in use during startup. - fixed potential crash on closing dialog and channel windows with close gadget - DCC windows now open inactive - added CTCP flood protection - added a custom CTCP handling hook: If PROGDIR:Rexx/Custom_CTCP.AmIRX" exists, it will be called for unknown CTCP requests with the following template: Custom_CTCP.AmIRX command fromnick arguments A check is done for dangerous shell escape characters. - fixed cycle chains in several windows - rewrote the internal nick/userhost database. Much faster now. - added CTCP flood protection. - now doesn't eat 332 "Topic is" message when joining a channel. - now ignores excess (i.e. more than 40 bytes) CTCP ECHO requests. - no longer stores notice origins and CTCP originators in the TAB nick history - dialog window nick binding still had a limit of 12 chars. 1.13 (internal) 1.12 (internal) 1.15 (internal) --------------- - changed strings for all topic response messages. - did another attempt in the "Fix Crash on Dialog Win Close" session - changed CTCP flood sensitivness a bit - no longer accounts CTCP responses for floods 1.16 (internal) --------------- - fixed the temp ban mask generated for CTCP floods 1.17 (internal) --------------- - removed "Server" from default string for channel window titles. - the "Connecting to..." window will now remain on screen until the connection process has successfully completed, unlike going away after the inititial connect() has been done. Much nicer when you get kicked from a server due to K: line, server overloads or other reasons AFTER connect(). 1.18 (internal) --------------- - fixed enforcer hits on certain unexpected malformed server responses - fixed "Connecting to" abort quitting AmIRC when clicking "Cancel" while a connect()ion has already been established. - removed group frame in ban list window - 317 "signon time" (undernet) display was broken. - fixed calling of custom_ctcp.amirx - now properly calculates time zone offsets when parsing time stamps delivered from servers - fixed responses for +v/-v on a different channel - userhost cache nodes were allocated with trash in the flood counting variables, thus causing random IGNORES of CTCP messages and other neat things. 1.19 (internal) --------------- - topic buffer is now 256 chars - no longer changes topic string gadget's contents while it's active - fixed /LASTLOG crashes and deadlocks - fixed several broken cycle chains - /LASTLOG now correctly handles multi-line responses - fixed text marking problems with fixed fonts - fixed text marking problems with characters < 31 which are not meaningful style commands - added "Info message window" which stores all all incoming server messages, mode changes etc.. Option to "shanghai" server notices, wallops and incoming "basic" CTCP requests so they are only displayed inside this window. - changed display of server notices and ERROR commands to have the server name in [brackets] for clarity. 1.20 (internal) --------------- - list class used masked scrolling even on interlaced screens - changed calling of custom_amirx.ctcp to: Custom_CTCP.AmIRX command fromnick destination arguments where "destination" is either the destination channel or your own nickname. - changed IRC server login to overcome stupid efnet "bot" detection - server notices now again have "privmsg color" and trigger the NOTICE event - ARexx "ECHO" command now accepts optional paremeter "C=COL" specifying one of the user defined text colors. - minimum period for NOTIFY checks is now down to 20 seconds again. 1.21 (internal) --------------- - DisplayBeep() only events didn't work when a external sound player was configured - fixed the ARexx ECHO command to no longer interpret _fmt codes (%s et all) - fixed several of the ARexx command templates to actually require arguments and fail with a command parse error otherwise. Fixes enforcer orgy on "SAY", "RAW" etc. without args. - now runs PROGDIR:Rexx/Startup.amirx, /Shutdown.amirx and /Connected.amirx when available on startup, shutdown and established connection accordingly. - GETUSERS nuked if the total size of the result string exceeeded 2048 bytes - new arexx command "GETWINNUM #channelname" returns the win number of a channel - GETUSER, GETUSERS, GETSELECTEDUSER and GETUSERSTATE now accept CHANNEL=#channelname instead of a numeric window argument - added GETDCC rexx command. Returns 3 stem list: DCC.CHAT.x has "nick state hostname" DCC.SEND.x has "nick moveflag hostname state len cps filename" DCC.RECEIVE.x has the same as SEND - added /DCC RESUME command - added /DCC CLOSE command - fixed /DCC LIST state display - now automatically uppercases the first word of outgoing CTCP requests - now calls PROGDIR:Rexx/DCCDone.AmIRX (if available) with the "SEND|RECEIVE successcode nick filename" for any DCC post processing 1.22 (internal) --------------- - added a "» Clipboard" button in the URL grabber window to send selected URL to the clipboard (in addition to double click) - fixed a longstanding bug in the list class which caused the initial scroll down to not happen under a certain funky combination of lines and output length - added "MATCHUERHOST" arexx commands, taking a userhost (or nick) and a pattern, returning 0 for no match, 1 for match. 1.23 (internal) --------------- - fixed broken GETUSERS 1.24 (internal) --------------- - fixed problems with autojoining channels and "Connect thread" - now preconfigs tiny font to helvetica/9 if not set 1.25 (internal) --------------- - /DCC CLOSE without args returned an bogus error. 1.26 (internal) --------------- - DCC SEND requests with ports less than 1024 are now considered malformed (to protect against DCC bombs) - now handles incoming DCC TSEND requests (DCC SEND without acknowledge packets). Note that AmIRC's "normal" DCC is already sending data at maximum speed without waiting for ACK packets, so there's no speed loss when DCCing between two AmIRCs with "plain" DCC, although remaining 100% compatible with the ultra lame ircII or PC-Client DCC implementations). TSEND requests are marked with "T" in the DCC RECEIVE window. - fixed scrolling problem (occured when a list had to be scrolled for the first time and multi line text was to be added) 1.27 (internal) --------------- - List prefs window crashed if aliases >255 bytes were defined. 1.28 (internal) --------------- - recompiled after removing unused catalog strings - removed a lame debug Printf from DCC RESUME 1.29 (internal) --------------- - the DCC bomb protection actually protected against file sizes < 1024 bytes, instead of ports < 1024. Weee. 1.30 (internal) --------------- - incoming DCC CHAT messages are now returned to the PRIVMSG event and via GETLINE as the special faked message "nick!nick@dcchost DCCMSG yournick :text", to allow processing. - added GETDCCRECEIVEDIR and GETCTCPSOUNDDIR functions. Guess what they do. 1.31 (beta) ----------- - changed format of PING message. Now sends a 7 digit number. Reduces bandwidth waste and protects against clients which are picky on the format of PING requests they like to reply to. - DCC bomb protection now added to DCC CHAT, too 1.32 (beta) ----------- - fixed userhost database not updating to current userhost when not marked dirty beforehand 1.33 (beta) ----------- - DCCMSG events had the "from host" in passive DCC CHAT connections, which was broken - dcc windows opened active if opened a second time in a session - CTCP ACTION and SOUND to the channel now trigger CTCP event - if "HandleFlood.amirx" is there, it will be called upon detecting a ctcp flood with the last line as a parameter. The internal ignore won't be set in that case. - DCC requests are no longer accounted for CTCP flood checking - message ignore will now ignore INVITEs as well - /DCC RESUME NICK without file spec worked like /DCC GET no matter what - fixed cps calculation for resume/move DCCs 1.34 (beta) ----------- - DCC SEND/MOVE now show "stalled" status when no data has arrived in the last 5 seconds - DCC SEND now has a "Reoffer" button which resends the DCC offer for the currently selected DCC - when sending multiple files, a one second delay is now made between sending out each DCC offer, to avoid triggering server side flood protections. - "Connect thread" when no connection is established will no longer close the connect window and leave the first instance of AmIRC lingering around without any window open - added new rexx command: "PLAYSOUND FILENAME,EVENT/K/N". Argument is either a filename of a CTCP SOUND alike sound to be played; EVENT=num plays a predefined user defined event sound. - Abort connection now works properly when a server connection has been established, too. - CTCP SOUND trigger the DCC event, not the CTCP event. - CTCP ACTION has been changed to not trigger a CTCP event at all. 1.35 (beta) ----------- - modified behavior of VERSION command. If a nickname, not a server name, is given, it behaves like "CTCP VERSION" 1.36 (beta) ----------- - fixed broken key detection 1.37 (beta) ----------- - fixed Remove/Reoffer in the DCC SEND list - INVITE is now ignored by IGNORE PRIV, not IGNORE TEXT 1.38 (beta) ----------- - sounds were loaded (not played) via datatypes even if external player was configured - PLAYSOUND EVENT was broken - "Reoffer" button was hosed - fixed missing argument to STM_PLAY in datatypes sound play 1.39 (beta) ----------- - fixed PLAYSOUND definition (again :) 1.40 ---- - fixed banlist window inner spacing - fixed updating for DCC Receive pathes when the default receive path is changed - now filters mIRC color codes in display. They're still available in Rexx processing (in case you want to do a auto-kickban or stuff :) - fixed DCC path rename (again) - increased DCC send delay timeout - added fixed version of WallChop.AMIRX 1.41 ---- - fixed serious security leak in handling incoming DCC requests which were char device names - fixed clone handling in flood detection (was accidentally commented out) 1.42 ---- - now recognizes the 265/266 messages (reported as LUSER) - ARexx "GetUserState" command caused memory trashing under certain cirumstances 1.43 ---- - fixed potential deadlock when quitting amirc with active DCC sessions 1.44 ---- - fixed initial rename of DCC path not working - pending GETLINE requests could cause a crash when AmIRC was quitted 1.45 ---- - querying channel modes of not joined channels could cause enforcer madness and bogus output if the channel had both a limit and a keyword - fixed another potential deadlock possibility arising when the TCP/IP is closed while AmIRC is running 1.46 ---- - fixed a pretty obscure bug in channel/window binding which could happen if you had more than one window open, had a broken server link, closed one window and reconnected. - fixed problem with having trailing blanks after a query statement - added secure encrypted DCC chat. Open with /DCC SCHAT nick. Incoming secure messages have [nick] in square brackets. 1.47 ---- - dialog windows now habe a SCHAT button - changed dialog window out prefix for DCC CHAT to ">>>" and for SCHAT to "··>" - outgoing SCHAT messages in plain windows now have ]nick[ as a prefix - fixed problem with SCHAT sessions terminating sometimes due to a partialy done recv() - now properly strips also MS-DOS path parts from sound requests - now properly handles sound pathes containing PROGDIR: - now properly handles sound pathes containing spaces - now properly opens dialog windows for incoming secure chat messages if "Auto open dialog windows" is selected 1.48 ---- - fixed activating of string gadget in password window - now sends and accepts CTCP ACTION ("Describe") via DCC CHAT links - now displays PRIVMSGs which don't have a channel destination but are NOT to your own nick with a [to dest] prefix - own nicknames were limited to 15 chars 1.49 ---- - raised the maximum number of userop buttons to 96. Also, the buttons can be distributed over a register group with a maximum of 8 pages now. - userlist now supports multiple selection. A new placeholder %m for userop actions is introduced. If this is used, then the corresponding action is called once for groups of up to 6 users seperated by commas, otherwise the command is iterated over the selected entries normally. So, %m allows for using commands which accept multiple users (i.e. mode changes) - fixed a memory leak in /LIST command - VERSION now accepts * and , placeholders 1.50 ---- - changed layout of the dialog window buttons again - the [S] button in dialog windows is now only disabled when a secure chat link has been established. Also, clicking on [S] while a non-secure chat link exists will terminate the non-secure link and send a secure offer - reoffering of DCC Chat links now works properly - /DCC LIST CHAT now shows whether a chat link is secure or not - fixed %m not working properly with >5 entries - fixed problems with number_of_button_pages bigger than actually defined number of buttons - /OP, /DEOP, /VOICE and /UNVOICE now both accept up to 6 nicks, and cut of any further arguments to avoid bogus mode changes - added drag&drop support for userlist. The following d&d operations are possible: dropping on the input string inserts the selected user names into the string. Dropping on any of the action buttons activates the action. Dropping outside of any windows opens a query window for the nicks in question. 1.51 ---- - fixed potential enforcer flood when setting up userop buttons - %m now groups by 4 nicks for efnet mode change compatibility - added /UMODE command to directly set own usermodes - fixed switching from normal to secure DCC chat - fixed dropping of nicks on the command buttons - removed dropping of nicks outside of any area again due to major annoyance - [S] status wasn't set properly when a query window was opened after the DCC chat was established 1.52 ---- - NOTIFY list was loaded twice internally (no effects, but time and code size) - fixed a bug with loading "old" config files causing enforcer hits galore on button setup - added "drop outside of window" again. This time properly checks whether the nicks are really dropped outside of any amirc window - fixed dropping of nicks to the input string gadget 1.53 ---- - input string now becomes active after dropping stuff on it - fixed a desynched taglist in window creation which could cause major havoc depending on what was on the stack before 1.54 ---- - fixed problems with being unable to connect when the client IP refuses to resolve to a name due to whatever reason - fixed roundup problems with the balance bar 1.55 ---- - prefs windows now remember the last page active - division by zero crash when there was no userop button at all - userop button spreading sucked under certain cirumstances - it's now possible to start AmIRC without having an TCP/IP stack active - did some general code cleanup - DCC IPC is now less CPU intensive and will also avoid excess refresh 1.56 ---- - now userop button labels were messed up - Trying to connect to a server while being connected to another server where the connect failed early to (for example) missing servername caused a generally funky and obscure internal state messup 1.57 ---- - list class no longer does a relayout of the buffer if the horizontal width hasn't changed upon layout operations - included updated registration utility 1.58beta -------- - URL grabber now handles https:// URLs - URL grabber did stop early on "?" or "&" characters - fixed a longstanding bug in the list class causing layer damage to go unnoticed. Liked to show up frequently with SuperLayers, but could happen with OS2/OS3 as well. - state of raw log mode wasn't saved to prefs - reworked default server list - a CTCP ACTION send over DCC CHAT had an excess \n at the end 1.59beta -------- - fixed a few bogus methods going up to rootclass pointlessly, thus wasting CPU 1.60beta -------- - now reads a file PROGDIR:AmIRC.passwords for secure chat passwords. Format is "nick password" per line. If a password specified in the file fails, the requester pops up as usual. Note that the passwords are never sent as cleartext during handshaking, so an attempt to establish a SCHAT to a person with the same nick but different identity will not open the password to cryptographic attacks. - began migration to textinput - removed forcing of tiny font to helvetica/9 if unset - now sends a "USERHOST mynick" after connection to get the server's opinion on what the user's userhost is - %m now groups every 3 nicks to be compatible with the efnet tree of IRC servers 1.61beta -------- - fixed enforcer hits when dragging nicks into the input gadget - dialog windows are now app windows; dropping icons will start a DCC SEND/MOVE - added new placeholder %a in userop actions which is replaced with all selected nicks - pressing return in the topic gadget now activates the main gadget again 1.62beta -------- - fkeys with \n ending now work again 1.63beta -------- - fixed query window Drag&Drop DCC send 1.64beta -------- - https:// URLs weren't grabbed correctly 1.65 ---- - now specifies MUIA_Application_UsedClasses - updated documentation, incorporating Ariel Magnum's ARexx guide. - included Textinput v13.11 - included updated registration utility - using new distribution style designed by Martin 'xen' Huttenloher - included updated ATO provided translations 1.66beta -------- - now has a new shell arg/tooltype "UseOldStyleStrings" which forces the main gadget to be an old style intuition stringclass instance - completely recompiled with SAS/C 6.58 - DCC RECEIVE could send out duplicate ACKs for the last block under certain circumstances 1.67beta -------- - added nickname completer. If "TAB" is pressed inside the string gadget when the cursor is positioned at the end of a word, this is assumed to be a partial nickname and it's completed out of the current userlist. Pressing "TAB" multiple times will cycle through all nicknames matching the original partial string. This functionality is not available when using old style string gadgets. - in "UseOldStyleStrings" mode, the channel keyword and limit gadgets are now old style intuition strings, too (required for proper activate handling) - when transmitting files containing whitespace or quotes in the filename, the offending characters are transformed into underscores - raised stack size for DCC SEND/RECEIVE threads back to 10k to avoid potential problems with certain TCP/IP stacks 1.68beta -------- - fixed "old style" tab cycling which was broken in 1.67 - nickname completion now works when the partial nick is the first word in the line 1.69 ---- - fixed deadlock when pressing TAB in a query window - autobans in response to CTCP floods are now set to *!*@, to better protect against clone floods. - included updated Polish translation - included Textinput 13.14 classes - included updated Installer 1.70beta -------- - added CTCP reply throttling; AmIRC will now throttle sending CTCP replies to no more than 2 messages within 1 second. This should effectivly protect against CTCP floods even when normal flood detection is worked around. - newly created nicknodes will now inherit the flood status from nicknodes on the same domain; this should improve the catching of clone floods - autoaway timeout is now reset when reconnecting to a server - URL grabber doesn't stop on "=" anymore - DCC SEND no longer goes ape when the file size of a file changes in between the DCC offering and the actual start of the transfer 1.71beta -------- - now runs "AwayAway.AMIRX" when being set away and "AwayBack.AMIRX" when being set not away - reworked CTCP reply throttling a bit; it's now using a dynamically expanded delay window 1.72beta -------- - improved domain detection for floods 1.73beta -------- - added a special PPC version which moves some time intensive list operations to the PPC (e.g. nicknode cache). Currently only works with the PowerUP system. - fixed a problem with textinput activation after iconify/prefs update 1.74beta -------- - fixed \n in fkeys - reworked DCC initiating port generation to be compatible with Miami's SOCKS allocation scheme - added new Textinput revision - dialog and channel windows can now be individually iconified into a tray window ("Winlist" window). Requires muimaster V18+ 1.75beta -------- - double clicking on a tray window entry now iconifies the window if it's already open - "port" in server window wasn't in the cycle chain - /LASTLOG no longer finds text in previous LASTLOG outputs - if a dialog or channel window failed to open due to low chip mem or other reasons, it would still be regarded as being "internally there" thus silently eating up messages without a chance to display them - now calls upon miami.library/MiamiSetSocksConn() before bind()ing a DCC offering socket for SOCKS compatibility - added /QUOTE as an alias for /RAW - tray window listview now has a proper frame - removed a few bogus CPU wasting method overrides in the string gadget subclass - fixed textinput activation when activating a channel window - now handles "+channels" correctly - CTCP ACTION in a dialog window is now shown using the ACTION prefix and normal text color - "//" in a dialog window wasn't properly translated into a single "/" 1.76beta -------- - tray window now uses buttonized "dock window" layout 1.77beta -------- - fixed Secure DCC chat (broken in 1.76) - closing the winlist window when all other windows are "iconified" now causes an app iconify instead of an app without any open windows at all - now clears all channel win topics on a server connect - topics longer >127 chars could cause internal buffer overflow - having all windows iconified no longer causes a full quit under certain cirumstances - fixed a problem with "default window focus loss" after deiconify (either single or global) 1.78beta -------- - fixed 332/333 message window binding - fixed another instance of the "crop topic to 128 chars no matter what" bug - winlist buttons now show number of total new messages, number of hilited messages and channel user count - netsplit detection will no longer be confused by consecutive splits of the same server pair - fixed bug which could screw the userlist by doubling every entry due to a funky combination of NAME/JOIN messages from the server causing an internal state messup 1.79beta -------- - fixed default channel win sync loss - the "faked" DCCMSG didn't trigger a flush of pending GETLINE requests 1.80beta -------- - added machine language plugin API - DCC CHAT CTCP ACTIONs are now handled like normal ones - fixed a bug in the config parser which could hit flood on certain corrupt config files - server list is now a listtree object with subgroups 1.81beta -------- - now shows a "You have been invited to channel XYZ" requester upon INVITE requests, offering JOIN and IGNORE. Will only open one requester for every userhost in order to avoid invite floods. 1.82beta -------- - prefs section now has a new page "Windows" to specify which "special" windows to open on startup 1.83beta -------- - changed default kickban banmask to *!user@*.do.main - changed *!*@*.do.main ban in kickbanwin to *!*user@*.do.main 1.84beta -------- - fixed a potential crashy race condition when closing a DCC chat link while new messages should be sent through it - will now report if queued DCC CHAT message couldn't be sent due to a broken DCC CHAT TCP link 1.85beta -------- - DCC status windows are now updated at max once a second, to reduce screen refreshing and thus flickery and CPU usage - files received via DCC are now opened in shared mode during transfer. This is basically to allow people to listen to partial mp3's while the transfer is still in progress :-) 1.86beta -------- - fixed cps calculating on sender side when resuming DCC MOVEs - default /kickban mask for IP addresses is now *!*user@ip1.ip.ip3.* (Yeah, yeah, it's not dealing with Class-A or -B nets correctly. Sod off :-). - now shows both elapsed and estimated remaining time for DCCs 1.87beta -------- - modified plugin API to pass the function table pointer to every hook function to not force the library to store some global data - finally and for all fixed the query window ACTION prefix and color stuff. Not kidding. - fixed remaining time integer overflow with large files - now handles CTCP SOUND sent over DCC CHAT links - added "GETPROGDIR" ARexx command to get the name of the directory AmIRC is installed in