30/07/2010 - mIRC v7.1 Changes: 1.This is the first stable release of the new Unicode version of mIRC. The project to convert mIRC to Unicode has taken almost two years of development and testing and has required tens of thousands of changes to 150,000+ lines of source code. This has been the most complex and time-consuming update to mIRC since it was created in 1995, when it started out as a non-Unicode, 16-bit, Windows 3.1 application. Many areas of mIRC have had to be updated or re-written, from file handling to text processing, from display to memory allocation, from server communications to file transfers. mIRC should now be faster, more stable, and more compatible with the latest versions of Windows, and should be able to better handle the display and input of a variety of languages. In addition to being converted to Unicode, there are a few other notable changes: Improved Windows 7 compatibility More reliable INI file handling Faster text display/scrolling Speech support Improved interface design for a number of features Automatic text color correction Menubar ALT key show/hide feature Support for italic text and other font styles Optimized SSL routines Status window SSL connection icon IPv6 support Improved portable support Persistent channel history Digitally signed executables Automatic splitting of long channel/private messages Full screen display with F11 function key UPnP support Many bug fixes And more For a full version history of mIRC v7.x development, please see the list of changes starting with v7.0. 21/07/2010 - mIRC v7.08 Changes: 1.Fixed Unicode surrogates bug. 2.Changed Port dialog bind address editbox to allow entry of longer addresses. 3.Fixed Unicode and color codes text-wrapping bug. 4.Extended /tokenize to accept Unicode characters as delimiters. 5.Fixed log files corruption bug. 09/07/2010 - mIRC v7.07 Changes: 1.Fixed /showmirc -s bug with maximized windows. 2.Fixed INI routines quote handling bug. 3.Fixed F11 full screen gpf bug when many windows are open. 4.Changed folder selection dialog to allow editbox input. 5.Fixed /timer -h consistency bug. 6.Fixed window vertical scrollbar bug when lines were trimmed due to exceeding maximum buffer size in some situations. 7.Fixed transfer windows displaying & characters as accelerators. 8.Changed script editor to display message when desktop setting is changed. 9.Fixed iswm bug where * wildcard was not matching $null. 10.Added $mouse.cx/cy properties to return cursor position relative to primary monitor. 11.Fixed /bwrite file pointer bug. 12.Fixed $window().dx/dy bug. 28/06/2010 - mIRC v7.06 Changes: 1.Changed "Split long channel/query messages" option to handle action messages and to ignore other CTCP messages. 2.Updated to OpenSSL 0.9.8o library. 3.Changed CAP event handling so that scripts can no longer prevent the CAP reply from being sent. 4.Fixed find text dialog not matching text in wrapped lines. 5.Fixed /timer parameter error handling and display. 6.Fixed display width of some characters when using monospace fonts. 7.Fixed hotlink cursor not being updated in some situations. 8.Added support for full screen display with F11 function key, /showmirc -f switch and $appstate value "full". 9.Fixed switchbar separator display bug. 10.Fixed main window system menu bug when main menubar is hidden. 11.mIRC now remembers if MDI windows were maximized on exit and opens them maximized on next startup. 12.Fixed /signal -n recursion gpf bug. 16/06/2010 - mIRC v7.05 Changes: 1.Extended editbox history to 100 lines. 2.Extended /sockread to read more than 4096 bytes at a time. 3.Changed INI routines to enclose data in quotes if it contains any non-printable characters, ie. less than $chr(32). 4.Fixed INI routines not saving comments within topics correctly. 5.Fixed INI routines bug that would have resulted in a random crash in some situations. 6.Extended $mask() to handle IPv6 addresses. 7.Fixed $gmt and other time-related identifiers to correctly include timezone and daylight offsets. 8.Fixed $asctime(zzz) bug. 9.Added /localinfo -p switch, uses UPnP to look up and set your local info settings. 10.Changed $utfencode()/$utfdecode() to handle the C script/codepage parameter correctly in text that contains Unicode and UTF-8. 11.Fixed variables not being sorted correctly when sort button is used in script editor. 12.Added /bwrite -t switch, interprets text value as plain text and does not evaluate &binbar variables. 28/05/2010 - mIRC v7.04 Changes: 1.Added UPnP support. The Ports dialog allows you to enable UPnP support for retrieving your external IP address, the identd server, DCC connections, and the DCC server. The first three options are enabled by default. mIRC marks UPnP ports that it opens as "mIRC". It closes UPnP ports the moment they are no longer needed. If mIRC is connecting to multiple servers at the same that use both IPv4 and IPv6, the UPnP port for the identd server will only be able to handle either IPv4 or IPv6 at any one time, since a UPnP port can only be bound to one address. If you make any changes to the UPnP options in the Ports dialog, mIRC performs a quick check to see if UPnP is available and will warn you if it is not. 2.Added /socklisten -p switch to enable UPnP support for a listening socket. 3.Changed hotlink feature to handle more formats. 4.Fixed /clear -g switch bug. 5.Optimized display routine to use bitmap caching more efficiently. 6.Changed the way a server connection is closed after sending /quit to make disconnection more robust/graceful. 7.Added check for empty servers list. If servers list is empty, mIRC looks for the "defaults" folder and copies the servers.ini from there to the data folder. 20/05/2010 - mIRC v7.03 Changes: 1.Changed DCC Send/Get windows to show long progress bar when window is maximized. 2.Changed DCC Send/Get switchbar buttons to display progress bar in black during transfer and grey when finished. 3.Fixed /fseek line matching bugs. 4.Optimized BOM-checking in file routines, should have minimal impact on read/write speed now. 5.Fixed $dns().ip bug when resolving an IP address. 6.Changed Control+N back to shortcut for channel switching. 7.Added "Split long channel/query messages" option to Messages dialog. If a message is long enough that it might be chopped by the maximum server line length, it is sent as mutliple lines. 8.Fixed font bug with reading font settings from mirc.ini. 9.Optimized display routine, should be faster in some situations. 10.Changed richedit editbox support back to riched20.dll since it seems to be faster and more reliable overall. 11.Optimized the way scripts are loaded into script editor editbox. 12.Fixed ini file handling bug when reading section/item/data that are enclosed in quotes. 13.Fixed hotlink feature not handling single-word hostnames. 14.Changed $utfencode/$utfdecode to return input text if they are unable to encode/decode the text instead of returning an error. 15.Changed the way the file routines set end-of-file and error, should behave more like older versions now. 16.Added /raw -n switch to prevent characters in the range 0-255 being UTF-8 encoded when sent to the server. Also added a $rawbytes identifier that returns the incoming server message prior to any parsing/decoding. 01/05/2010 - mIRC v7.02 Changes: 1.Added Unicode/UTF-8 BOM support to file routines. This applies to all files that are read or written as text, including ini files. 2.Changed DCC Send/Get windows to allow full filename to be viewed when window is resized. 3.Changed DCC Get to open download file with exclusive write access. 4.Added support for detecting Wine so that mIRC can use alternative code for features that need it. Around fifteen separate workarounds were implemented. Features that could not be made to work reliably (richedit editbox support and playing mp3 and mid files) are now disabled. 5.Changed mouse wheel scroll method in the script editor editbox to allow faster/smoother scrolling. 6.Fixed system shell DDE messages bug. 7.Changed font-linking implementation slightly, should be faster and support more characters. 8.Added support for /dns $server to fill $serverip for SOCKS5 users, though note that this results in a DNS leak. 9.Fixed treebar background update bug. 10.Optimized display routine, should now be faster when displaying control codes. 11.Fixed $regml().pos bug. 12.Added Names dialog back to Display options dialog. 13.Fixed /sockudp -k bug. 14.Fixed line colors parsing bug when reloading log files. 15.Fixed query flood check bug. 15/04/2010 - mIRC v7.01 Changes: 1.Changed the way fonts are set for editboxes in windows and in the script editor. This should resolve issues for users who are seeing the font change when they enter text. 2.Changed the foregound/background color correction feature so that it no longer applies if a ^K background color is specified. 3.Fixed /filter gpf bug. 4.Fixed /fopen gpf bug. 5.Changed $input() icons default sound behavior. 6.Fixed text display bug where last character was not entirely visible in some situations with certain fonts. 7.Changed toolbar and switchbar to not display separators when background picture is used. 8.Fixed timestamp bug where the timestamp was not being displayed if a Unicode character was used in the format string. 9.Changed numeric 451 "You have not registered" message for the "CAP" request to no longer be displayed when connecting to a server. 10.Fixed DDE support. Most applications, such as web browsers, can only reply to ANSI DDE requests, so mIRC now sends DDE requests in ANSI as opposed to Unicode. mIRC can now reply to both Unicode and ANSI DDE requests. 11.Changed identd default behavior when choosing userid from email address or identd userid field. 12.Fixed $ini()/loadbuf combination bug that was fixing/updating an incorrectly formatted ini file even though it was only being read by the script. 13.Changed /filter to allow output to the NUL device. 14.Fixed "End of /MOTD" message not being displayed in some cases. 15.Fixed /speak not working with older voices/engines. 16.Fixed /sockwrite -n and /write -a CRLF bugs. 02/04/2010 - mIRC v7.0 Changes: 1.mIRC is now a Unicode application. 2.mIRC now uses its own custom ini routines to ensure more reliable ini file handling. They should work almost identically to the standard Windows ini routines. 3.Changed the way microsoft agent is detected by checking for folder instead of loading agent to cater for Windows 7 issue. 4.Added a bitmap cache to speed up window text display. Depending on the font you are using, your cleartype settings, and/or your cpu speed, you should see a significant increase in display speed of text in all windows. 5.Fixed script editor not filling as much of the editbox buffer as it could (up to maximum size of 500k) when reading a file. 6.Updated to PCRE library v8.02 and enabled Unicode/UTF-8 support. 7.Fixed /drawrot gpf bug. 8.Fixed tooltips cpu usage bug under Windows 7. 9.Fixed switchbar/toolbar button sizes under Windows 7. 10.Fixed multi-monitor popup menu bug when second monitor was placed to the left of the main monitor. 11.Now using gdi+ for picture loading/saving. 12.Fix internal http routines not handling redirects correctly. 13.Updated to SAPI5+ speech and voice commands to make them work with Windows 7. 14.Added Speech dialog to Sounds dialog. This replaces the Agents dialog which is no longer supported by Windows 7. If mIRC notices that Agents are available on your version of Windows, the Agents dialog option will still be available. 15.Added /speak -spclu [speed] [pitch] [text] command which speaks the specified text, where the switches are: -s = speed (0 to 100) -p = pitch (0 to 100) -c = clear all queued lines -l = apply lexicon settings in speech dialog. -u = apply option settings in speech dialog You can use $speak(N) to list all lines that are currently queued for speaking through the /speak command. If N = 0, returns total number of queued lines. 16.Extended maximum incoming server line length from 600 to 1024 bytes. 17.Fixed default notify sounds not being saved with relative path. 18.Fixed popup loading bug when a file contains empty lines. 19.Fixed on CLOSE event bug with status window requiring * prefix. 20.Extended on CLOSE event to work with channels. 21.Changed on OPEN/CLOSE events to handle parameters like other similar events. This should not affect existing scripts. 22.Added script editor file menu options "Rename" and "Delete". 23.Added [about] portable=[yes|no] item to mirc.ini that allows you to enable portable mode more easily on usb drives. 24.Changed mouse wheel routine to correctly handle faster/slower scrolling. 25.Added CAP LS protocol support. mIRC now sends "CAP LS" as the first line when connecting to a server before sending NICK/USER to logon. Currently enables "multi-prefix" and "packet-size=1024" if they are available. 26.Fixed listbox item height in Control/Color/Highlight dialogs. 27.Fixed text display being clipped incorrectly when using certain fonts. 28.The Channels List window now updates the horizontal scrollbar on-the-fly to avoid the display freeze after listing a large number of channels. 29.Fixed some controls not being disabled in Lock dialog when lock is enabled. 30.When clicking reset button in Colors dialog, colors are now reset to the most recent active settings for that theme. 31.mIRC now skips sending "mode +i" on connect if it has already been set automatically by the server. 32.Changed the design of some of the dialogs in the Options dialog, the DCC Send/Get dialogs, and others. 33.mIRC no longer requires Full Name and Email Address to be filled in the connect dialog and sends default values if left empty. 34.On connecting to a server, if both nick and alternative are in use mIRC appends a random number to your nickname and tries again. 35.Changed /debug windows to no longer interpret colors. They now display control codes as plain text. 36.Changed USER/NICK logon method to comply with RFC2812. 37.Changed switchbar DCC Send/Get button progress bar, now displays a small bar under the text. 38.Optimized Unicode font-linking routines. 39.Now using Visual Studio 2008 to compile mIRC. 40.Added WM_PRINTCLIENT support to a number of controls including the toolbar, switchbar, and treebar. 41.Renamed "download" folder to "downloads" in line with other folders. 42.Fixed /debug windows log menu not being set correctly. 43.Fixed mIRC main window system menu not being set correctly when the menbuar is disabled. 44.Renamed "Firewall" dialog "Proxy". Replaced /firewall command with /proxy although /firewall is still supported. 45.mIRC now disables the proxy if it is enabled in the proxy dialog but no address is provided and a SOCKS_HOST environment variable does not exist. 46.Added menbuar auto-show/hide feature that displays the menubar when you press the ALT key and hides it afterwards. 47.Keyboard focus now automatically switches to the treebar if all other windows are minimized. 48.Fixed PCRE gpf bug when expression results in heavy recursion. 49.Changed switchbar to display transparent buttons when a background picture is selected. 50.Added support for all available font styles, such as italic and semi-bold, in font dialog. 51.Added support for Control+I key combination to make italic text using control code 29. 52.Added support for DLLs that use Unicode functions. By default mIRC assumes that DLL functions are ANSI for backwards compatibility. However a DLL can enable Unicode support by setting mUnicode to TRUE in the LOADINFO structure: typedef struct { DWORD mVersion; HWND mHwnd; BOOL mKeep; BOOL mUnicode; } LOADINFO; 53.Added SendMessage WM_MEVALUATE/WM_MCOMMAND support for Unicode. By default mIRC assumes that mapped file data is ANSI for backwards compatibility. However an application can "or" the value 8 in the cMethod parameter to specify Unicode data. 54.Changed display behavior for a number of dialogs, such as the DCC Send/Get dialogs, so that buttons are now disabled for a short time when the dialogs are displayed to prevent accidental typing. If the user is typing the buttons remain disabled until the user stops. Added a 'b' switch to $input() and an "option disable" property to custom dialogs that enables this behavior. 55.Fixed treebar display bug when displaying DCC window names. 56.Changed script editor Order dialog to automatically select the active script in the listbox on opening. 57.Updated editbox in all windows and script editor to use richedit 4.1 msftedit.dll for improved Unicode support. If not available reverts to riched20.dll. 58.Changed line numbering method in script editor, uses more reliable method that is independent of editbox. 59.Changed status window icon to display a yellow lock when on a secure connection using SSL. 60.Fixed Control+K color dialog centering bug. 61.Changed servers list sorting method so that the networks listed in the [networks] section of servers.ini are now placed at the top. 62.Changed DCC Send/Get transfer windows default font, now uses the system dialog font. Also switched to appropriate system font for measurements in features such as $input() and popup menus. 63.Changed design of DCC Send/Get transfer windows, interface is now clearer and the display updates once a second. 64.Changed flood protection to begin working only after receiving the first numeric to prevent logon issues in some situations. 65.Changed design of the File Type warning dialog, now clearer and also shows the file extension that was ignored. 66.Optimized the way line indentation works, such as for /echo -iN, and other displayed lines. 67.Improved tab and indent spacing measurement method for both fixed and non-fixed width fonts. 68.Improved text-wrapping at whole word boundaries, and now wraps at both spaces and commas. 69.Numeric 422 "MOTD file is missing" message is no longer displayed when first connecting to a server. 70.Fixed proxy errors not being displayed correctly in some situations. 71.Added a bind listbox to the Connect/Options/Ports dialog that lists all active networks interfaces for easy selection. It still allows you to enter an IP address as well. 72.Updated /dns command, now multi-threaded, resolves concurrently, and can return both IPv4 and IPv6 addresses. By default, /dns only returns IPv4. You can use the switches -46 to return a combination of IPv4 and IPv6 addresses. 73.Added support for IPv6 connections. By default, mIRC will always use IPv4, so IPv6 support must be explicitly enabled using one of these methods: 1) Enable IPv6 support in the Connect/Options/Ports dialog. This allows mixed IPv4 and IPv6 connections, with IPv6 taking priority in DNS resolution. This means that if you try to connect to a server that has both IPv6 and IPv4 addresses, mIRC will try IPv6 first. 2) The bind option in the Connect/Options/Ports dialog. If you specify an IPv4 or IPv6 adapter/address, DNS resolution and all connections will be made based on the adapter/address type. If you explicitly specify an IP address for a connection, such as a /server or DCC connection, it overrides this setting. 3) The /server command with switches -46 to force DNS resolution to return either IPv4, IPv6, or both. If you specify an IP address, it overrides the switches. The server window will use the requested DNS method for all subsequent connections until you change it with the /server command. Note: in order to use IPv6, both your version of Windows and your Internet connection must support IPv6. 74.Added $iptype(text) identifier, returns "ipv4" or "ipv6" if text is is a valid IP address format. With IPv6 addresses, the properties .compress and .expand can be used. 75.Added cue text (optional) to Connect dialog for user name and email address. 76.Extended $portfree(port,ip) so that you can specify an ip address. If not specified, all active interfaces are checked as before. An adapter name can also be used instead of an ip address. 77.Added $bindip(N|ip) identifier. If N is specified, lists active network adapters with properties .name, .ip, .loopback. If an ip address is specified, returns best adapter for connecting to that ip address. 78.Updated to OpenSSL 0.9.8n library. 79.Updated installer to offer a portable install option that can be used to run mIRC on a USB flash drive. 80.Added support for whois numeric 729. 81.Added "Invalid certificate" disconnect message in the event of an SSL connection failing due to an invalid certificate. If there is a DNS pool, mIRC will now continue to retry the connection. 82.Changed /localinfo to report an error if you try to use an invalid switch. Also fixed /localinfo not setting/saving the local info results correctly across server windows. 83.Fixed hotlink shift-key display bug. 84.Fixed logfile bug when window is switched between mdi/desktop. 85.Added $file().sig property, checks digital signature of a file. 86.Added check for foreground/background colors in control codes in text. If they are the same, the foreground color is changed to ensure the text is visible. 87.Changed color dialog behavior: if you delete all schemes, the default schemes are added back to the list. 88.Changed position of history menu in file and favorites menus. 89.Added /close -t switch, closes all status windows. If used with -i switch, closes only if not connected/connecting to a server. 90.Channels history is now saved across sessions to the [chanhist] section in mirc.ini. 91.Fixed tips display bug that caused tip width to be smaller than necessary, shortening the title text. 92.Fixed SSL warning dialog bug, was not showing the actual error message in some cases when a certificate error was detected. 93.Fixed /var gpf bug.