mIRC Changelog

What's new in mIRC 7.76

Jan 7, 2024
  • Changes:
  • Fixed perform dialog bug when adding/switching between multiple items
  • Extended ogg support to work with other codec libraries
  • Fixed MDI background picture not using the transparency color when loading gifs/pngs
  • Fixed /toolbar -p bug that was not freeing the previously loaded icon when replacing a button
  • Fixed Aero theme bug that displayed inner border artifacts in some contexts when a window is first created
  • Now using Visual Studio 2017 to compile mIRC Required converting all solutions, including all external libraries, and recompiling with the v141_xp toolset to maintain Windows XP support
  • Fixed custom dialog mnemonics bug in tab controls
  • Fixed $sslversion/$ssldll version bug
  • Updated OpenSSL library to v3012
  • Improved $base() floating point conversion
  • Enabled Control Flow Guard runtime security checks
  • Added support for loading SVG resources for internal use
  • Added 20/24 pixel icon sizes for all icons used in the GUI The Options/Display dialog now allows you to select between small, medium, and large icons to be used in the toolbar, switchbar, and treebar, for use with higher resolution monitors
  • Changed /font to update switchbar, treebar, and scripts editor fonts immediately
  • Changed /font -z to preserve switchbar font in the same way as with the treebar and scripts editor fonts
  • Changed $decode() to handle invalid input in a more consistent way for all decoding methods
  • Updated LibZip library to v1101
  • Fixed switchbar vertical scrollbar buttons not being visible on Windows 11
  • Fixed typing notifications bug when typing in editbox in parted/kicked channel windows
  • Fixed $scriptdir bug in popup menus
  • Added tab completion suffix option to Keys dialog
  • Fixed $wrap() control code wrapping bug
  • Fixed notify list MONITOR event parsing to handle events without hostnames
  • Fixed Favorites dialog slow update when displaying a long list of channels
  • Fixed numeric 324 bug when parsing date range
  • Updated CA root certificates cacertpem file
  • Added $urlget() 'e' switch that, on a failed download, eg due to a 404 error, will save the server reply to the &binvar/file, requiring the script to handle the error itself
  • Fixed custom dialog icon using wrong icon size from ico file containing multiple icons
  • Changed tray icon transparency/color when flashing to make it clearer with different taskbar colors

New in mIRC 7.75 (Aug 26, 2023)

  • Changes:
  • Fixed SSL certificate verification not loading Windows certificate store if the trusted authorities file is not specified
  • Added channels file location to mircini [files] section to enable per mircini name/location of favorites
  • Fixed identifiers that output to %var/&binvar not correctly handling invalid %var/&binvar names that contain spaces
  • Updated OpenSSL library to v3010
  • Updated LibZip library to v1100
  • Updated TagLib library to v1131
  • Fixed arrange icons bug that caused mIRC to crash for some users
  • Fixed clear history on close bug that was not clearing non-marked items in URLs list on exit
  • Changed how windows are minimized under Wine by removing no longer needed Wine-specific fixes
  • Added loading of custom fonts on startup from "fonts" folder if it is found in the main mIRC folder
  • Fixed status window server address not being displayed in connect dialog if it does not already exist in the servers list
  • Updated list of servers in serversini file
  • Added SSL cipher directive @LEGACY to enable connections to unpatched servers reporting "legacy sigalg disallowed" error Servers needing this may also need cipher directive @SECLEVEL=0
  • Fixed editbox eye icon display bug on Wine
  • Updated CA root certificates cacertpem file

New in mIRC 7.74 (Aug 2, 2023)

  • Changed arrange icons feature to place iconified windows beneath open windows.
  • Added tray tip warning on startup if mIRC has been minimized to the system tray but Windows has hidden its icon.
  • Fixed add/edit server dialog bug with comma-separated port numbers.
  • Fixed /drawpic -v initialization bug.
  • Fixed Do Not Disturb option hiding windows in some contexts, such as when manually changing a window's desktop state.
  • Fixed Scripts Editor line number display not being redrawn correctly in some contexts.
  • Added support for custom-drawn menubar on Windows 10/11.
  • Fixed View Menubar option bug when in full screen mode.
  • Changed how SSL connections load the trusted authorites file to get around the much slower speed of SSL_CTX_load_verify_locations() in OpenSSL v3.x.x.
  • Added clear history on close option that clears history when mIRC is closed.
  • Added per server option to connect/minimize on startup.
  • Changed MONITOR to take priority if a server has both MONITOR and WATCH tokens listed in numeric 005.
  • Added support for IRCv3 extended-monitor tag. This adds $notify() properties .account, .away, .awaymsg, and .gecos. These, and .addr, are updated when these events are received. If a nick is on a channel that you are on, these events also update the IAL.
  • Extended $notify() to support second parameter, switches 'n' and 'f', to list either online or offline nicks.
  • Added support for IRCv3 typing client tag. When typing in a query or channel window, mIRC can now send typing notifications to let other users know that you are typing. mIRC can also receive typing notifications from other users and will display a typing indicator in the query and channel titlebars. This feature can be turned on or off in the IRC/Options dialog.
  • Fixed Connect dialog bug when no nickname is specified and the connect button is pressed.

New in mIRC 7.73 (Jun 18, 2023)

  • Changes:
  • Fixed $bvar() gpf bug with negative ranges.
  • Changed bitwise identifiers in bigfloat mode so that, by default, they work in the same way as in non-bigfloat mode, for backward compatibility. To make them handle larger values, you can now specify a bit size parameter.
  • Fixed channels list not showing non-text prefixed channel names.
  • Changed how the keep channels open settings in IRC options work so that they apply in different numeric events as well.
  • Fixed $modinv() /$powmod() gpf bug relating to large values.
  • Updated CA root certificates cacert.pem file.
  • Fixed /debug custom command not working with local aliases.
  • Fixed custom dialog icon not handling spaces in quotes.
  • Fixed /cnick auto-color as * parameter bug.
  • Removed tray tip warning on startup due latest version of Windows 11 no longer supporting this.
  • Updated OpenSSL library to v3.0.9.
  • Optimized $bvar(&binvar,N,M) to use faster method.
  • Extended SASL authentication to support IRCv3 >=400 byte base64 chunks.
  • Added /drawsave -v[pgj] switch to save bitmap to &binvar in different formats. Note that the -b switch converts the bitmap before saving in all contexts now.
  • Extended $scon()/$scid() to support -1 for active connection.
  • Extended $unsafe() to allow $null values.
  • Added $encode()/$decode() 'v' switch to support Z85 encoding.
  • Changed Find dialog in Scripts Editor to work in the same way as most applications. Added case sensitive and whole word match options.
  • Changed $hfind() with 0 index and /halt to return count.
  • Added /drawsave -du switches, where -d dithers and -u quantizes, for use with the -b switch.
  • Added /drawpic -v switch that loads a picture from a &binvar instead of a filename.
  • Fixed editbox eye icon password display bug.
  • Fixed while/if script parser bugs.
  • Fixed $urlget() only sending &binvar body data up to the first NULL value.
  • Fixed $input() with 'u' option not using active window in some contexts.
  • Fixed $wrap() not preserving some combinations of control codes across wrapped lines.
  • Added support for IRCv3 standard-replies capability.
  • Changed nick colors and hilight dialogs to use the background colors set in the colors dialog.
  • Added $input() 'x' switch that opens dialog on desktop.
  • Fixed $biton() handling of no bitmask parameter.
  • Added /copy -p switch to preserve access/creation/modified timestamps.
  • Fixed while loop break error message bug.
  • Fixed $input() buffered key presses handling bug.
  • Changed /returnex to work as expected for general use.
  • Fixed scripts editor cursor position being set incorrectly when window is minimized/restored.
  • Fixed Do Not Disturb bug that caused mIRC to crash/freeze when minimized to tray.
  • Added $dialog().mapw/maph to return mapped pixel measurements.
  • Extended numerics 338 and 344 to handle different ircd formats.
  • Changed /set & to use unsigned 32-bit integers to match /if & behaviour.

New in mIRC 7.72 (Nov 27, 2022)

  • Changed /nick, /mnick, /anick, to override /server -i localsettings when not connected to a server
  • Changed $wrap() to allow an empty switch parameter
  • Fixed script parser bug when handling non-while/if { } brackets
  • Fixed /var parsing bug in single-line scripts split across multiple lines using combinations of {} and |
  • Fixed nested single-line if/while bug
  • Fixed scripts editor not allowing multiple empty alias files
  • Fixed scripts editor Listen and View menu bugs when in the users or variables sections
  • Updated zlib library to v1213
  • Added support for big float calculations using MAPM libraryThis can be enabled with the command /bigfloat [on|off] for the whole script or by using a %varbf variable name to enable it for a command/identifier The $bigfloat identifier can be used to check the current bigfloat state
  • Extended $base() to handle big numbers
  • Fixed ! command prefixes used infront of while/if commands affecting following command
  • Added identifiers $cbrt(N), $log2(N), $powmod(B,E,M), $modinv(B,M), $gcd(N,), and $lcm(N,) for cuberoot, log2, modular exponentiation and inverse, greatest common divisor, and least common multiple
  • Changed confirm paste in a single line editbox to only warn if the line contains CRLF characters
  • Fixed $fullscreen not working correctly if certain windows, such as OSD caps/numlock-type windows, are present
  • Fixed script popup menu in menubar not working in fullscreen mode
  • Updated OpenSSL library to v111s
  • Changed $encode()/$decode() to support longer key and to report an error if key is longer than maximum allowed length
  • Changed $base() to allow longer padding
  • Changed $totp()/$htop() parameter validation to 40/64/128/256 for hex, 16/26/32 for base32, extended timestep maximum to 48 hours, and increased max digits to 10
  • Fixed $totp()/$htop() hex key UTF-8 conversion bug
  • Changed how $bfind()regex matches against a &binvar
  • Updated code signing certificate
  • Updated CA root certificates cacertpem file
  • Updated TagLib library to v113

New in mIRC 7.71 (Oct 1, 2022)

  • Changes:
  • Changed the way Windows system libraries are loaded to prevent DLL hijacking
  • Added extra format check to channelsini [recent] items to splitat commas in case of invalid format
  • Added tray tip warning on startup if mIRC has been minimized to the system tray but Windows has hidden its icon
  • Added /socklisten and /sockaccept -n switch to disable Nagle algorithm on a socket
  • Fixed /socklisten -pu with UPnP, IPv6 address, and dual stack not opening an IPv4 UPnP port on the router
  • Added /drawsave -a [x y w h] <filename> switch to allow specifying area of bitmap to save
  • Fixed Aero theme bug where if /window +b was used, a miniature titlebar was being drawn
  • Added $sock()upnp that returns $true/$false for the socket
  • Fixed IPv6 addresses in server list not being saved correctly
  • Fixed colons being stripped out of nick, alternative nick, user, emails, /nick, and server list entries
  • Changed "set as default" option in font dialog so that it is checked by default when disabled for some types of windows
  • Extended $mousekey to detect different combinations of left/right key presses
  • Fixed Highlight/Flash message times option location
  • Changed how $os properties are handled to maintain backward compatibility with existing scripts
  • Fixed nested single-line while loop break bug
  • Fixed alternative nick bug when left empty in connect dialog
  • Fixed scripts editor file change monitor dialog appearing overcertain dialogs
  • Fixed scripts editor file change monitor not detecting changes to INI files
  • Reverted change to /echo to only accept integers as color parameter for backward compatibility
  • Fixed /hsave -i intermittent crash bug caused by a data race / race condition across multiple threads
  • Changed CTCP PING to not reply to text containing CTCP control codes to mitigate NAT-AGAIN Linux kernel NAT bug (CVE-2022-2663)
  • Fixed $zip() unzipped files not having same timestamp as files in the zip
  • Added $zip()mtime to return timestamp for files in the zip
  • Added $window()fullscreen that returns $true/$false
  • Fixed tab key evaluation of identifiers in editboxes that contain multiple CR/LF-delimited lines
  • Fixed /server with network name + parameters not over-riding global and local defaults
  • Fixed Scripts Editor View More dialog bug when active tab is set to users or variables
  • Updated CA root certificates cacertpem file

New in mIRC 7.69 (Jul 18, 2022)

  • Changes:
  • Changed servers list in connect dialog to always group servers with the same group name together
  • Changed location of channels favorites to channelsini file This will allow users to update/edit this file without having to modify their mircini settings file If [chanfolder] or [chanhist] exist in mircini when mIRC starts up, they will be automatically moved to [channels] and [recent] in channelsini
  • Changed how the Windows media library is loaded to enable sounds to be played without delay
  • Extended $mousekey to support detecting right-shift/control/menu keys and capital/scroll/numlock
  • Added /bset -z switch that makes an empty &binvar or zeros an existing &binvar
  • Changed regex parser to use less stack memory during recursion
  • Added $keylparam identifier to on KEYUP/KEYDOWN that returns the result of the lParam value in the event
  • Added support for numeric 005 UTF8ONLY token If enabled on a server, this overrides the UTF-8 setting in Options/IRC/Messages to always UTF-8 encode/decode messages on a connection
  • Added support for IRCv3 echo-message Current implemention tracks outgoing messages, filters echoed messages, and grays displayed messages until the server confirms they have been received by the target, for both PRIVMSG/NOTICE and nicks/channels
  • Changed CAP request on connect to combine multiple tokens in one line to speed up server reply
  • Added $mircpid identifier that returns mIRC's process id
  • Fixed nested while loops continue bug
  • Changed how nick event is handled on connect to get around ZNC initial nick change affecting query window with same nick
  • Fix alignment of checkboxes in Address Book dialog
  • Fixed /sound CTCP event not displaying message if filename is "" empty
  • Updated OpenSSL library to v111q
  • Updated CA root certificates cacertpem file
  • Updated zlib library to v1212
  • Updated TagLib library to latest fixes
  • Added $codepage(N) to return available codepages, with properties name, desc, id
  • Added on PARSELINE identifier $parseem, returns $true or $false depending on whether mIRC thinks the incoming line is an echoed message due to IRCv3 echo-message being enabled
  • Fixed options dialog not freeing memory when closed in some situations
  • Fixed cue text in editboxes, such as (optional) in the Name editbox in the Connect dialog, not being set correctly in some contexts
  • Added per server options for SSL certificate, logon settings, and server encoding
  • Added /server command support for -key, -i, and -encoding, as well as -keytype global/local and -itype global/local
  • Added $server() properties: keytype, key, itype, nick, anick, user, email, encoding
  • Fixed Aero theme colors under Windows 11 22H2
  • Fixed left-most tab in tabbed windows, eg Scripts editor, Address book, etc not being drawn correctly
  • Extended $server(N) where N = -1 to return values for active status window
  • Added SSL private key warning message on connect if key is not valid or will expire soon
  • Added support for Alt+A/E in Connect dialog for quick access to server add/edit dialogs
  • Added support for IRCv3 005 numeric BOT=b mode token The assigned mode letter is stored and if it is later found in a /who reply, it sets the user's $ial()bot property
  • Extended /server to support -p -g -w -d when not using -ars
  • Fixed $comval() not freeing memory correctly
  • Updated LibZip library to v192
  • Added support for WATCH list numeric 609 that is meant to do the same thing as 604 but with an away reason Also added checks for WATCH away numerics 597, 598, 599, which are now hidden but still trigger scripts
  • Added support for handling PRIVMSG/NOTICE events that use source/ target combinations that are not normally sent by an IRC server These still trigger the on OPEN/TEXT/ACTION/NOTICE/SNOTICE/CTCP events but set $nonstdmsg to $true
  • Changed display of CAP events to hide NEW/DEL events sent by the server

New in mIRC 7.68 (Apr 2, 2022)

  • Updated LibZip library to v180
  • Fixed treebar icons not being updated immediately in some situations
  • Fixed /did -a not scrolling to added line when editbox is not visible
  • Fixed /raw PRIVMSG not correctly appending specified @labels to outgoing messages
  • Fixed /window -d desktop windows being minimized when opened in the context of a custom dialog
  • Changed $bytes() to round using more significant digits and added petabytes support with 'p' switch
  • Extended $os identifier to detect Windows 11
  • Fixed nested while loops break/continue bug
  • Added /sockopen -sdap switches to use with -e SSL switch, where:
  • s = skip invalid certificates
  • w = display warning dialog
  • a = accept invalid certificates
  • p = prevent certificate caching
  • Added /writeini -z switch to write empty value
  • Fixed channels list window display of modes to add ellipses if modes are too long for the column
  • Added a /socklisten and /sockudp -u switch to enable dual stack sockets. Note that this will only work in some contexts and on some addresses and may depend on your version of Windows
  • Updated CA root certificates cacertpem file
  • Updated OpenSSL library to v111n
  • Changed right-click tray menu to not activate mIRC window if it is open on the desktop
  • Added Do Not Disturb menu item to tray menu for quick access
  • Changed Confirm Exit dialog to open near tray menu if Exit mIRC was selected in the tray menu
  • Changed tray menu to open dialogs aligned to mIRC tray icon
  • Added /server -d switch that allows setting the current status window's connection details without connecting
  • Added support for strikethrough text using character 0x1E (30) as supported by other clients You can use Control+E to insert this code into text This also affects the strip codes option in the IRC/Messages dialog, adds an 'e' switch to /strip and strip(), and affects many other features that parse control codes
  • Added $sslhash(method,type) where method = md5, sha1, sha256, sha512 and type = p for private and s for server Properties: babble and colons $sslcertsha1 and $sslcertsha256 are still supported for backward compatibility
  • Added key type option to SSL certificate generator
  • Added Copy To Clipboard menu item to System Menu Buffer menu
  • Extended Order dialog in Scripts Editor to include Top and Bottom buttons and to be resizable
  • Extended More dialog in Scripts Editor to be resizable
  • Added /topic -r switch to remove channel topic
  • Updated list of default channels
  • Fixed /writeini caching bug for item names that contain equal sign characters
  • Fixed /writeini issue with ;comment equal sign separator
  • Changed /writeini to prevent writing identical consecutive comments
  • Added $crc64() identifier and changed $crc() to use slightly faster implementation with same output
  • Added server login method options for ECDSA-NIST256P-CHALLENGE and SCRAM-SHA-256 authentications
  • Removed List Channels dialog lock option as this has been superseded by the Lock feature in the Options dialog, and the hide non-text channels legacy option
  • Added "Keep channels open on part" option to Options/IRC dialog
  • If you part a channel and its window is kept open, it will not be rejoined on connect
  • Extended /join so that if it is typed in a channel window that has been parted/kicked, it will not require a channel parameter
  • Changed tab key completion to place currently open channel windows at start of list
  • Changed tab key completion to reset to start of list if non-tab key pressed
  • Added ciphers list setting to Options/SSL dialog
  • Added display of ECDSA compressed public key to SSL dialog to make it easier to use with nickserv if private key is ECDSA
  • Extended $sslhash() to support "ecdsa" method to return compressed public key if private key is ECDSA
  • Extended /server -l method to support "ecdsa" and "scram"
  • Changed SSL to allow private key/certificate PEM files that contain a private key without a certificate
  • Fixed editbox home/end key bug under Windows XP
  • Extended Favorites dialog to include a channel/network/description header that can be sorted by type, as well as a network listbox to show channel favorites for a particular network On popping up on connect, it auto-selects the current network and shows favorite channels for that network The favorites menu now also shows the network for each channel name and places channels for the current network at the top of the list
  • Fixed listbox/listview/treeview active/inactive color of selected line in windows like the notify list, URLs list, Options and Servers listbox, favorites dialog, and so on
  • Fixed $duration() with N=2 not working correctly in some cases
  • Changed Channels List dialog layout/text to make its use clearer
  • Added display of channels list file age to Channels List dialog
  • Fixed spacebar keypress in URLs/Notify/etc listboxes beeping when displaying a popup menu
  • Changed channels list window right-click popup menu to use the same wording as other features
  • Extended $os to have properties major, minor, build, platform, type, spmajor, spminor, suite
  • Extended Log View dialog to include sort arrows in the column header and for the headers to be auto-resized to fit
  • Extended Log View dialog to be resizable
  • Fixed dialog initial sizing bug that can happen with resizable dialogs like the scripts, favorites, log view, etc dialogs
  • Added eye icon to password editboxes in the servers, favorites, lock, and other dialogs, to make editing text easier
  • Fixed scrollbar thumbtrack button bug in custom dialog and @window listboxes with more than 65535 items
  • Added /editbox -r switch to allow insertion of text that contains cr and $lf characters
  • Added $isnum(N,sd,I,J) where s = allow +/- sign, d = allow decimal, and range is between I and J The switches and range parameters are optional
  • Added exception for ChanServ network service name to avoid displaying the same notice in all common channels
  • Fixed tiled/maximized MDI window duplicate icons bug
  • Changed channels list to use network name instead of server address in titlebar and in channels list file
  • Changed channels and links list windows to clear their contents on connect if they were showing results from a different network
  • Added servers combobox to Connect dialog and removed separate servers dialog
  • Fixed /echo printing text twice to same window in some contexts
  • Fixed nick color list auto-color bug

New in mIRC 7.67 (Oct 2, 2021)

  • Fixed /fupdate not working correctly with up/down key presses
  • in some contexts.
  • Fixed /window +f custom @window border display bug.
  • Fixed window menu hidden windows selection bug.
  • Fixed $wrap() default colors bug.
  • Changed Logs dialog view window to use the same on top setting as
  • the main mIRC window.
  • Changed channels list window maximum channel name length.
  • Changed /channel to open channel central dialog immediately
  • instead of waiting for ban list reply from server.
  • Updated CA root certificates cacert.pem file.
  • Fixed Aero theme helper windows occasionally becoming visible.
  • Fixed /window icon setting not applying to treebar/switchbar
  • and MDI titlebar.
  • Fixed how /set/unset/inc/dec/timer/sockread %vars are evaluated
  • in some contexts.
  • Updated DigiCert code-signing certificate.
  • Updated OpenSSL library to v1.1.1l.
  • Updated PCRE regex library to v8.45.
  • Fixed $sline() to return zero instead of $null when no items
  • are selected.
  • Fixed channel nicklist default settings not being applied to
  • currently open channel windows.
  • Fixed SSL certificate verify failed issue relating to expired
  • certificates.

New in mIRC 7.66 (Jun 29, 2021)

  • Added MDI area background color option to Colors dialog.
  • Changed the editbox line separator so that its color is now based on the color of the editbox, and the nickname list sizing bar so that its color is now based on the color of the listbox, so these should now match the user's chosen theme.
  • Changed /window -h to support hiding status windows in both the switchbar and the treebar.
  • Changed channel and query window icons to make them more distinctive.
  • Added colors dialog default/undo buttons. Default resets a built-in theme to its default settings. Undo reverts the current changes to when the dialog was opened.
  • Changed /server to prioritize group name over server address to handle server group names that contain periods.
  • Changed parsing of /mode commands that use combinations of +ovh so that number of modes/parameters are trimmed to equal number due to changes in how some ircds process these.
  • Optimized Windows 10 Aero theme support.
  • Fixed maximized MDI window duplicate icons bug.
  • Changed tab completion to leave in place non-existent/empty identifiers/variables, as with previous versions.
  • Fixed select folder bug incorrectly filling in filename as a *.* wildcard.
  • Updated CA root certificates cacert.pem file.

New in mIRC 7.65 (May 8, 2021)

  • Changes:
  • Added flash option to ignore dialog options
  • Reverted change to nick idle time so that it is updated per second once again
  • Updated some of the winsock error messages in resources to use more up-to-date descriptions
  • Fixed regex global matching bug with UTF-8 characters
  • The styles dialog has been removed The channel nicklist sizing bar now uses a standard width The editbox and nicklist borders now use standard Windows colors Windows no longer use an internal frame
  • Fixed tray tips Control+O display bug
  • Updated OpenSSL library to v111k
  • Updated TagLib library to v112
  • Added Windows 10 Aero theme support to MDI windows
  • Changed the aliases list menu to use shorter, combined a-z menus, with separators, and any left over items in a ? submenu
  • Fixed URLs List SendTo menu item being disabled
  • Fixed MDI tile feature not fitting the right/bottom-most windows to the edge of the MDI area
  • Changed scripts editor alias and popup menubars to use an "Index" menu name to list aliases/popups
  • Added scripts editor "Index" menu to remote menu bar that lists all of the items defined in a script It also includes partial lines for some items to give context
  • Added home/end/page up/down key support to popup menus to allow for faster scrolling in long menus These keys normally do nothing in menus, however they will now scroll multiple lines per key press and will stop once they reach the top/bottom of the menu
  • Updated CA root certificates cacertpem file
  • Extended tab completion to allow using just a channel mode prefix to begin cycling through all matching users with that mode
  • Extended tab completion to support %halfops If an existing %var name is used, it is evaluated as in past versions, if you are not currently cycling through %halfops
  • Changed Window menu to not show windows hidden with /window -h unless shift key is pressed when viewing menu
  • Changed /window -h to not hide Status Windows in treebar, switchbar, and window menu, as these are root windows for al other windows on that connection
  • Fixed bind to adapter/IP address bug that caused it to use wrong adapter if adapter has two identically named IPv4 and IPv6 entries
  • Fixed bind to adapter/IP address bug that caused it to block connections in some contexts
  • Fixed DCC get sometimes reporting that the transfer completed when there was insufficient disk space to save the whole file
  • Fixed scripts editor bug that caused incorrect indentation in saved files with certain combinations of comments and brackets

New in mIRC 7.64 (Dec 11, 2020)

  • Fixed /bcopy not copying zero length binary variables.
  • Fixed /timer -h multimedia timer bug that caused imprecise elapsed time measurement at low millisecond intervals.
  • Fixed $bfind() N parameter not being applied during a .regex search.
  • Fixed $min()/$max() parsing bug.
  • Extended the DLL LOADINFO structure to include a DWORD dBytes variable that specifies the maximum number of bytes allowed when writing to the data and parms strings.
  • Fixed /timer halted message not being displayed in some cases.
  • Fixed DDE server not being reset when DDE settings changed in the Options DDE dialog.
  • Fixed SSL private key error incorrectly being reported as an SSL certificate error in some contexts.
  • Fixed bind to adapter/IP address bug that prevented it from using adapters with dynamic IP addresses.
  • Changed $base() to remove limit on floating point precision for larger bases.
  • Fixed $base() not rounding fractions to current base.
  • Updated LibZip library to v1.7.3.
  • Changed $regml().pos so that if //u is not used for a unicode string, UTF-8 characters now return the position of the start of the character in the unicode string.
  • Added $regml().bytepos that returns the UTF-8 byte positions matched within a string.
  • Changed /setlayer to report an error if invalid parameters are used.
  • Fixed $bfind().regex issues related to UTF-8 parsing.
  • Added $ticksqpc that returns a high resolution tick count.
  • Changed isalpha/isalnum/isletter/islower/isupper/$lower()/$upper() to use consistent APIs.
  • Fixed $window().title returning incorrect results for some windows.
  • Changed Control+Break to be more responsive.
  • Updated installer to backup files into dated folders in the backups folder. Files that are in the root of the backups folder and that match known installed filenames are moved into their own dated folder. All unrecognized files and folders in the root of the backups folder are left as is, in case the user has been putting their own files or folders in there. The installer will keep the last ten dated backup folders and will delete older ones.
  • Changed workaround for Windows 10 MDI caption bug so that it is not applied during remote desktop sessions.
  • Fixed channel keys being saved incorrectly on Undernet ircds that use * for hidden keys.
  • Updated OpenSSL library to v1.1.1i.
  • Fixed on CHAR event not being triggered in custom @window editbox and listbox.
  • Updated CA root certificates cacert.pem file.
  • Changed how notices are displayed so that consecutive notices from the same user are now grouped together.
  • Added protocol-relative redirect support to $urlget().
  • Changed $window().dw so that it now returns the printable width, which can vary depending on window type, as opposed to the client area.
  • Added $urlget() 'k' switch to prevent redirects.
  • Extended $width()/$height()/$wrap() to support parameter that sets the bold, italic, control code, and tab options, ie. $width(text,font,size,bipt) where each letter can be followed by an N value of 0 or 1 to enable or disable it. The $wrap() identifier also supports an option that enables word wrap, ie. $wrap(text, font, size, width, biptw, N).
  • Changed $wrap() so that the 'p' option, enabled by default, preserves control codes across wrapped lines.
  • Fixed $utfencode() memory gpf bug that caused intermittent crashes.
  • Extended tab character support to all windows.
  • Added /drawtext -d option to disable tab support, which has always been enabled by default.
  • Fixed /drawdot bug with certain dot sizes.
  • Added $min()/$max() .alpha/.alphacs/.alnum/.alnumcs properties.
  • Changed "Unable to join channel" message to include URL if one is specified in the numeric.
  • Optimized display speed of long lines of text.
  • Added $window().fontdialogsize property.
  • Changed "Nick Colors" idle time option to update less frequently.
  • Added Bind Adapter/IP Address option where, if the bind fails, mIRC can either try the system default bind or just block the connection, eg. when a VPN adapter is not available.

New in mIRC 7.63 (Aug 17, 2020)

  • Fixed tray tip display bug that caused close box to be displayed incorrectly.
  • Updated OpenSSL library to v1.1.1g.
  • Added custom dialog group control left/right/center style.
  • Fixed Control+Break key gpf bug in Windows 7.
  • Extended $tempfn to work with folder names.
  • Extended $duration() to handle negative values.
  • Added /drawtext -v switch that allows use of a &binvar instead of text.
  • Added $tempfn(path) that allows specifying the file/folder path.
  • Fixed display of numeric 477 to show authenticate message on some networks.

New in mIRC 7.62 (Jul 30, 2020)

  • Changed how on KEYUP/KEYDOWN are processed. This affects the values returned in $keyval and $keychar for combined key presses.
  • 2.Reverted change to $cnick() so that it returns default values for non-existent nicks.
  • Changed how Control+Break key is handled so that it only works when mIRC is the active application.
  • Updated PCRE regex library to v8.44.
  • Updated LibZip library to v1.6.1.
  • Added $width() and $height() sixth $true/$false parameter to enable custom window-specific measurement.
  • Added support for irc hotlinks that uses the non-standard plus sign prefixed port number format, such as +6697.
  • Extended $bfind() to support regex searches using:
  • $bfind(&binvar, N, M, [name]).regex
  • Where M is a regular expression when .regex is used. The name parameter is the $regml() name.
  • Extended $regml()/$regmlex() to save result to a &binvar using:
  • $regml([name], n, [&binvar])
  • $regmlex([name], m, n, [&binvar])
  • When saving to a &binvar, returns length of saved text.
  • Updated OpenSSL library to v1.1.1f.
  • Changed [ssl] certificate warning item name in mirc.ini to ensure one-time reset to a new default value.
  • Added CAP support for setname. This is automatically enabled if available and will cause the server to send the setname event to the client when users change their full name. Events are not shown but are triggered as RAW events.
  • Changed IRCv3 CAP support of draft/label and draft/labeled-response to label and labeled-response. ACK replies from the server are not shown but are triggered as RAW events.
  • Updated colors dialog, control+K dialog, and /color command to support color indexes 16 to 98.
  • Added $comval() .result property to support &binvar as a fourth parameter, same as $com(), to store one dimensional array results. If array is BSTR, it is stored using null bytes as separators.
  • Added on CHAR event that returns translated keyboard presses. Uses the same format as on KEYDOWN/KEYUP.
  • Fixed tray tip display bug with different DPI settings.
  • Fixed /hmake not allowing maximum prime value for table size during a hash table rename.
  • Fixed display of channel name in numeric 477 on some networks.
  • Fixed script editor rich editbox bug that may have caused font to be set incorrectly.
  • Added workaround for maximized MDI window caption bug in Windows 10 on monitors with some DPI/resolution combinations.
  • Fixed custom window treebar folder not staying open in some contexts.
  • Added $min()/$max() identifiers that return minimum/maximum of a list of values. Defaults to numbers. Properties: .text, .textcs, and .nick. If a single parameter is used, it is treated as a space-delimited list of values. If two or more parameters are used, each is treated as a separate value.
  • 24.Added check for numeric 696 on ircds that report errors when mode requests include more modes than parameters.
  • Optimized processing of long strings in /commands, token identifiers, $calc(), $eval(), and identifier parameters.
  • Fixed "Mark As Read" menu item in treebar, switchbar, toolbar and MDI popup menus not resetting flash/hilight correctly.
  • Fixed CAP logon/authentication messages not being displayed if remotes are disabled.
  • Added highlight dialog item that allows you to specify the channels and/or nicks to which the highlight applies.
  • Added $highlight().chans property.
  • Added a "Do Not Disturb" option to the Tools menu that allows you to temporarily disable all visible/audible notifications such as sounds, tips, flashing window icons, tray icon animations, and more.
  • Added /donotdisturb [on|off] command and $donotdisturb identifier.
  • Fixed if/while parser not detecting some invalid bracket combinations.
  • Updated dialog titles for several features. Most dialog titles are now prefixed with "mIRC". Some dialog titles have also been changed to better describe their purpose.
  • Changed richedit editbox in windows, scripts editor, and custom dialogs so that it no longer beeps when cursor is moved beyond text range, like standard editboxes.
  • Fixed incoming server messages being truncated at 1024 bytes for servers that send messages longer than the standard 512 byte maximum.
  • Extended $maxlenl maximum internal string length to allow parsing of IRCv3 8191 byte message tag + message.
  • Fixed INI file caching bug with semi-colon prefixed comments.
  • Updated CA root certificates cacert.pem file.

New in mIRC 7.61 (Mar 1, 2020)

  • Fixed custom toolbar buttons not being displayed correctly.
  • Fixed /if isnum backward compatibility issue due to recent change.
  • Fixed local host/ip addresses not being changeable while connected to a server.
  • Fixed bitmap memory bug in About dialog.
  • Fixed /cnick not updating nick color immediately when used with a full address.

New in mIRC 7.59 (Feb 8, 2020)

  • Changed $disk().unc to use newer API.
  • Fixed channel mode parsing bug.
  • Added /cnick support for auto-color option by allowing * as color number. Also added $cnick().auto property.
  • Changed SSL default setting to "Skip connections with invalid certificates". This means that mIRC will, by default, not connect to SSL servers with invalid SSL certificates.
  • Fixed how nick!user@host addresses are formed in $ulist() and other features so that IPv6 addresses are handled correctly.
  • Changed toolbar display code to handle icons of different sizes for default internal icons.
  • Updated CA root certificates cacert.pem file.
  • Fixed treeview display bug when scrolling new item into view.
  • Changed treeview sorting method that affects favorites and servers dialogs.
  • Fixed favorites dialog join button not initiating a connection if not currently connected.
  • Fixed $cnick() returning default values for non-existent items.
  • Changed how log filenames are renamed to use group/network names during a connect/disconnect.
  • Changed quote "" parsing routines to use the same consistent method for all commands/identifiers.
  • Extended $fline((@name,text,N,T,S) to support S parameter for search start position and $flinen that returns match position.
  • Fixed custom dialog controls not being updated immediately when /did is used to change their contents.
  • Added /fseek -p switch that moves the file pointer backwards to the start of the current line. If the file pointer is already at the start of a line, it is moved to the start of the previous line.
  • Fixed $fread() not setting file pointer to start of next line if line is longer than the maximum line length.
  • Fixed /halt not stopping $hfind() search and then allowing script to continue running.
  • Changed how Port dialog bind adapter setting is saved in mirc.ini so that both name and address are saved to [ports] section.
  • Fixed $bindip() bug when used with dual-stack network interface.
  • Added $caller tabcomp value for tab completion.
  • Fixed /if & bit comparison not using unsigned 32-bit integers.
  • Changed identd dialog so that userid entry is not changed when "Use ID from email address" is checked.
  • Changed /if isnum to also support larger value as the first number.
  • Optimized file reading routines to improve processing speed for contexts that affect /fseek -l, $read(), $lines(), and /loadbuf.
  • Added /drawrot -p switch that clips the rotated rectangle.
  • Fixed $zip() creating zip files with temporary file attributes.
  • Updated the IRC FAQ that comes with mIRC and is in the Help section of the mIRC website.
  • Added support for the IRCv3 TAGMSG event. This event is not shown but triggers as a RAW event.
  • Changed the /help and /ircintro commands so that if the mirc.chm or ircintro.chm files cannot be found, they are instead opened on the mIRC website.

New in mIRC 7.57 (Jul 25, 2019)

  • Updated OpenSSL library to v1.1.1c.
  • Changed OpenSSL support so that, by default, mIRC no longer checks for a newer external version of the OpenSSL library. This should resolve the R6034 Windows error reported by some users.
  • Changed /url, /run, and other features to use alternative method to open links to resolve issues with asynchronous window messages.
  • Fixed STS/SSL server/port parsing bug.
  • Fixed handling of 64bit timestamp value for several features.
  • Changed $crc() to use larger read buffer with files to improve speed.
  • Fixed script parser bug that caused binary variables to be unset in scripts that call external DLLS that SendMessage() mIRC many times.

New in mIRC 7.56 (Jul 6, 2019)

  • Changes:
  • Added $urlget() identifier that downloads content from http/https
  • addresses. Returns id number. Calls alias with id number when transfer
  • completes.
  • id = $urlget(url,hgpuadfbrtic,target,alias,headers,body)
  • urlget(N/id) used with properties:
  • url, redirect, method, type, target, alias, id, state, size,
  • resume, rcvd, time, reply
  • url = http/https://user:pass@address:port/file?parameters
  • options =
  • hgpuad = head, get, post, put, patch, or delete
  • fb = file or &binvar
  • r = resume
  • t = use .part file
  • i = ignore SSL errors
  • c = cancel
  • target = file or &binvar
  • alias = called on completion
  • headers = &binvar
  • body = &binvar
  • Fixed $regml().pos bug with multibyte characters.
  • Changed $dll() to require filename .dll extension. If filename does
  • not have an extension, .dll is appended.
  • Updated OpenSSL library to v1.1.1b. Required code changes due to to
  • changes in OpenSSL 1.1.x. Older OpenSSL versions are no longer
  • supported. Compiled to work on XP. Dynamic loading of OpenSSL DLLs
  • still supported as libcrypto-1_1.dll and libssl-1_1.dll.
  • Updated TagLib library to latest fixes.
  • Updated LibZip library to v1.5.2.
  • Reverted changes to $gmt(N) and $gmt(format).
  • Changed a number of features to use tick counts instead of system
  • time for time measurement.
  • Fixed $astime() and other time/date features applying DST incorrectly
  • in some situations.
  • Changed time/date features to use threadsafe versions of CRT time
  • functions.
  • Changed $encode()/$decode() to allow non-literal keys longer than 56
  • characters.
  • Changed $encode()/$decode() to not allow salts/IVs that contain
  • codepoints 256+.
  • Fixed "try next server in group" option being incorrectly applied in
  • some situations.
  • Changed action message processing so that it is integrated into
  • the privmsg routines.
  • Changed time/date routines to use Windows APIs, allowing extended
  • date range 1601 to 9999.
  • Changed $encode()/$decode() to zero-pad salt strings shorter than
  • eight bytes.
  • Changed /msg -switches support to enable backwards compatibility with
  • BNCs that use - as an invalid nickname prefix, such as -sBNC and
  • psyBNC.
  • Changed DCC Folders dialog so that when a new item is added, it
  • uses the default get path by default.
  • Fixed script error not showing line number for single-line event
  • definitions.
  • Added /server [-key filename] to set private key file to use for
  • an SSL connection.
  • Changed nickserv logon method to increase delay after last nickserv
  • notice is received before triggering perform.
  • Changed status window connection state icons. Now show a green
  • lock icon for a valid SSL connection and an orange icon for an SSL
  • connection with an invalid certificate.
  • Fixed $com()/$comcall() not scanning the local alias/script file
  • first for a matching command/identifier.
  • Updated PCRE regex library to v8.43.
  • Fixed $$ prefix not working for remote identifiers.
  • Fixed connect retry count and port number not changing when try next
  • server in group option is not enabled.
  • Changed flashing tray icon feature so that icon is dimmed instead of
  • hidden.
  • Changed $sha1/$sha256/$sha384/$sha512/$hmac() to use larger read
  • buffer with files to improve speed.

New in mIRC 7.55 (Feb 8, 2019)

  • Changes:
  • Fixed /onotice and related commands not working correctly in some contexts
  • Fixed Clear History log files option not deleting empty nested folders in logs folder
  • Fixed $sha1()/$hmac() bug that caused &binvar data to be overwritten
  • Added support for AES encrypted ZIP files using the libzip library
  • $zip(filezip,cetlpo,file|dir,password,N)
  • Where the switches are: c = create, e = extract, t = test, l = list,
  • p = password, o = overwrite existing file/dir
  • The N parameter is used with the list option, where 0 = return number
  • of items, otherwise return Nth item, with properties: size
  • Extended $rand() to allow negative number values
  • Changed $rand() RNG algorithm to Bob Jenkins's JSF64
  • Added $rands() identifier that returns a cryptographically secure random number using Microsoft's RtlGenRandom() API
  • Changed all features that previously used the standard CRT rand() to use the new RNG algorithm
  • Fixed $hfind() not reporting an error when the called alias returns an error
  • Fixed $asctime() 'z' bug that returned whole numbers for timezones with 15/30/45 minute offsets
  • Extended IRCv3 support for CAP NEW so that if a token is normally requested by mIRC on connect, it will be automatically requested on receipt of CAP NEW as well
  • Fixed RCE vulnerability affecting all versions of mIRC (CVE-2019-6453)
  • Added $notify()sound2 property to return offline sound
  • Updated CA root certificates cacertpem file
  • Fixed "Show nicks on join" option not working correctly

New in mIRC 7.54 (Dec 21, 2018)

  • Changes:
  • Fixed script editor editbox horizontal scrollbar sensitivity
  • Fixed /hadd -mN parsing bug
  • Fixed $decode() parsing of N parameter when N = 0 to ensure that it
  • always returns a line count of one
  • Fixed API call that prevented mIRC from running on Windows XP
  • Fixed /timer -p switch not counting down correctly when more than one
  • repetition is specified
  • Added /timer -P switch that pauses the count down for a timer
  • Updated OpenSSL library to v102q
  • Optimized while loop parameter parsing in scripts
  • Fixed $hmac() bug when using sha384/sha512 with keys longer than 64
  • bytes
  • Fixed /onotice and related commands not working in some contexts
  • Fixed Log Files dialog sort by date column bug
  • Updated CA root certificates cacertpem file

New in mIRC 7.53 (Nov 29, 2018)

  • Changes:
  • Added /set -g switch that makes /set change a global variable.
  • Added /unset -gl switches that make /unset change a global or local
  • variable.
  • Changed udpate check/other features to avoid insecure SSL protocols in
  • HTTP requests under Windows XP.
  • Changed all time-related features to use 64bit time values.
  • Fixed hotlink parsing of mailto: and similar URIs.
  • Added hotlink parsing of URIs xmpp, teamspeak, ssh, and sftp.
  • Extended /drawpic -o [N] to refer to frames in a GIF file.
  • Added /drawpic -f switch that works with -o to specify the Nth icon
  • and the Mth frame in that icon by using /drawpic -of [N] [M].
  • Extended $pic() to support properties .icons, .frames, .delay and
  • to allow specifying N and M parameters.
  • Added voice selection to speech options.
  • Fixed $onpoly() not handling zero area polygons correctly.
  • Changed $onpoly()/$inpoly() implementations from regions to maths.
  • Updated PCRE regex library to v8.42.
  • Fixed script parser bug that caused mIRC to process Windows messages
  • while a script was running.
  • Changed $encode() base32 to use 72 character chunks.
  • Fixed /ialfill not displaying channel name when fill completes.
  • Updated CA root certificates cacert.pem file.
  • Fixed $ctime() returning incorrect result at midnight before a new
  • year begins.
  • Changed the way maximum server line lengths are applied to various
  • commands and features.
  • Added /privmsg command.
  • Added support for CPRIVMSG and CNOTICE. If listed in numeric 005,
  • PRIVMSG and NOTICE will be automatically upgraded for most
  • outgoing messages if you are an op/voice on a channel and message
  • a user on the same channel.
  • Added support for numeric 005 STATUSMSG=@+ and WALLVOICES and added
  • commands /vmsg, /vnotice, and /wallvoices. If server does not support
  • STATUSMSG, WALLCHOPS, or WALLVOICES, mIRC uses own method to send to
  • multiple targets.
  • Changed line splitting method for long messages when:
  • 1) Sending message through editbox of a channel/query window.
  • 2) Using commands /ame /amsg /describe /me /msg /omsg /privmsg /qme
  • /qmsg /query /sound /vmsg /wallchops.
  • Note: when line splitting, the /sound command switches to an ACTION
  • message for the second line onwards.
  • Note: line splitting is not performed on NOTICEs, so is not applied
  • to /notice /onotice /vnotice /wallvoices.
  • Changed multiple target handling in PRIVMSG and NOTICE so that if
  • TARGMAX or MAXTARGETS are not specified in numeric 005, mIRC assumes
  • the maximum is one target per message.
  • Changed channel favorites dialog drag-resize method.
  • Changed channel mode parsing in numeric 324 and MODE events to handle
  • channel keys hidden from non-ops only on the Undernet ircd. As there
  • is no numeric 005 token for this, this is based on the Undernet ircd
  • version number in numeric 004.
  • Note: Added support for numeric 005 HIDDENKEY token. When specified,
  • this means that non-ops on a channel receive the * character as the
  • channel key in numeric 324 and MODE events. Clients should treat the
  • * character (or whatever character/string is sent) as a non-key if
  • they are not ops. If the user is then opped, their client can issue
  • a MODE to retrieve the real key.
  • Changed STATUSMSG support to use only NOTICE on the Undernet ircd,
  • which is the only method Undernet supports. On all other ircds,
  • STATUSMSG implies NOTICE/PRIVMSG. As there is no numeric 005 token
  • for this, this is based on the Undernet ircd version number in
  • numeric 004.
  • Increased the size of short, medium, and long string lengths used
  • throughout mIRC that affect features such as variables, window names,
  • and so on.
  • Increased stack reserve size from 2 to 8 megabytes.
  • Added identifiers $maxlens $maxlenm $maxlenl that return the maximum
  • string lengths for small, medium, and large strings.
  • Note: although it is possible in some situations, eg. when assigning
  • values to variables, to store slightly longer strings, the values
  • returned by the above identifiers should be treated as maximums.
  • Changed CAP packet-size request to use mIRC's medium string length,
  • as returned by $maxlenm. The previous version was requesting 1024. If
  • a server replies with a different value, mIRC will use it, with a
  • mimumum of 512 and a maximum of $maxlenm.
  • Changed base64 implementation for $decode() to handle invalid input
  • lengths better.
  • Added $eventparms identifer that returns the event-specific parameters
  • passed to an executed command in a script.
  • Changed /ialfill to not issue a WHO if it thinks the IAL list is
  • already filled or currently filling.
  • Changed $base() to only remove the 0x prefix from base16 input.
  • Changed perform, and the joining of channels, on connect to trigger
  • only after a short delay, if the server connection uses nickserv to
  • identify a nickname. This ensures that you are able to join channels
  • that only allow identified users.
  • Fixed while loop parsing bug when $& is used to separate comparison
  • parameters.
  • Changed when the raw event for invite (as a channel notification)
  • triggers to allow the /haltdef of default display text.
  • Fixed options/connect dialog new status window being opened with the
  • current status window's SSL port/state.
  • 40.Updated OpenSSL library to v1.0.2p.
  • 41.Added support for IRCv3 nested batches. This goes beyond the basic
  • batch support in previous versions and implements the full
  • specification, which includes nested batches and delaying batch
  • execution until end of batch is received. This includes support
  • for draft/label and draft/labeled-response.
  • Extended $hfind() 'w' and 'r' parameters to search entire length of
  • binary variable data. Note that in the case of 'r', long results
  • will be truncated due to internal string length limits.
  • Fixed $hash() parsing bug that caused a break evaluation error.
  • Changed how mIRC manages its string pool memory to ensure that very
  • large strings are freed immediately.
  • Changed $hfind() to allow $null text parameter.
  • Fixed on NOTIFY/UNOTIFY events not resetting print/halt state across
  • events.
  • Changed the way long lines are displayed to get around ExtTextOut()
  • timeout limitation.
  • Changed default hash table hash function to modified FNV-1A for
  • improved distribution.
  • Added support for dynamic-resizing in hash tables for features like
  • the IAL, nickname lists, INI files, etc. that start off with small
  • hash tables and expand as necessary to improve performance.
  • Fixed $readini() reporting an evaluation error when reading a line
  • that contains only empty spaces.
  • Changed the [dirs] section to always contain "getdir", refers to
  • the default item in [extensions].
  • Updated TagLib sound library to latest fixes.
  • In preparation for language translation support, changes have been
  • made to the way resources are loaded, the resources file has been
  • changed to Unicode, and many string resources have been cleaned up
  • and/or re-worded to improve context and make translation easier.
  • 54.Fixed $cb() not delimiting different combinations of $cr, $lf, and
  • $crlf correctly in the same text.
  • 55.Fixed $var().secs for local variables returning global variable
  • values.
  • 56.Added /load -aN switch that loads alias file into Nth position.
  • 57.Fixed $cb(0,u) not returning line count.
  • 58.Extended /debug -t timestamp to apply to log files.
  • 59.Changed how /clipboard and $cb() are called to mitigate clipboard
  • being in use by other applications.
  • 60.Fixed $isbit()/$biton()/$bitoff() allowing N outside range 1 to 32.
  • 61.Changed /var to report an error if it is used outside a script.
  • 62.Added /hload and /hsave -B switch that uses a larger index to allow
  • longer binary data to be saved. This is not compatible with files
  • created by the -b switch.
  • 63.Changed script editor editbox to allow longer lines before it starts
  • wrapping.
  • 64.Changed DCC Send file dialog to display some custom controls better
  • under dark mode in Windows 10.
  • 65.Fixed /ignore -l not showing items in ignore list.

New in mIRC 7.52 (Feb 28, 2018)

  • Changes:
  • Changed website/forums to use HTTPS/SSL connections
  • Changed HTTP requests, such as the update check, to use HTTPS/SSL
  • Older versions of mIRC do not support this, so continue to use non-SSL
  • connections
  • Added support for IRCv3 sts secure connection feature that directs
  • clients to switch from a non-SSL to an SSL port when connecting to a
  • server Sts port and duration settings are saved in serversini file
  • Added /server -u switch that makes the server connection ignore IRCv3
  • sts directives
  • Fixed SSL connect behaviour that prevented a retry connect attempt
  • for non-critical SSL errors
  • Extended $file() to include path, name, and ext properties
  • Updated code signing certificate
  • Advance notification: the next version of mIRC will change the default
  • SSL dialog setting from "Display invalid certificates for approval" to
  • "Skip connections with invalid certificates" This means that, by
  • default, mIRC will not connect to SSL servers that use invalid,
  • self-signed certificates, such as on EFnet, DALnet, and LinkNet
  • Fixed $chan()ibl/iel/iil/iql $inmode status not being reset when
  • server returns numeric 482
  • Added support for IRCv3 batch feature, however, as allowed by the
  • spec, mIRC does not delay processing of batched lines
  • Fixed online timer bug that caused mIRC to freeze once a minute the
  • more connected status windows were open
  • Extended Window menu status window items to include user mode
  • Fixed /editbox -bNeN selection not being set if the text length
  • resulted in auto-resizing of the multiline editbox
  • Extended ^K color support for indexes 16 to 98
  • Fixed $cb(N,u) not returning UTF-8 encoded text
  • Updated libraries to OpenSSL 102n
  • Fixed $window()tbtext not returning text for hidden windows
  • Fixed font dialog not displaying sample text correctly for certain
  • fonts
  • Changed $sfile()/$msfile() to return $null for special folders such
  • as the fonts folder and to set $sfstate that returns "cancel" for
  • cancelled dialogs and "error" for errors
  • Added "Hide away reminders" option to IRC/Options dialog that hides
  • repeat away messages in active query windows for ten minutes
  • Fixed /timer -h bug that prevented a subsequent /timer -h request
  • from using the multimedia timer
  • Changed script editor file monitor to ignore daylight savings offset
  • and to check file size changes
  • Fixed window focus not being set correctly in some contexts when
  • mIRC is made the active application
  • Changed CAP cap-notify support for NEW/DEL so that mIRC no longer
  • disconnects/reconnects for most CAP features unless necessary
  • Fixed $encode() bug that caused it to report "line too long" with
  • binary variables and certain combinations of switches
  • Updated to TagLib library latest fixes
  • Fixed $encode()/$decode() with e/c switches not handling short/long
  • keys correctly
  • Extended nickname, highlight, display, marker, and styles dialogs to
  • support color indexes 16 to 98
  • Changed JOIN events to no longer restore/activate channel windows
  • that already exist when rejoining after a kick/hop/reconnect
  • Fixed user/level commands, such as /auser, causing gpf with long
  • parameters
  • Extended highlight dialog to show line color
  • Changed mouse wheel scrolling to scroll by page if this option is
  • enabled for your mouse in Windows
  • Added /savebuf -p switch that strips control codes from saved lines
  • Extended $width() to support $true/$false parameters
  • Extended /hload and /hadd to support -mN which creates the table,
  • with N slots, if it does not already exist
  • Extended $cb() to support output to a %var|&binvar as third parameter
  • and to return length If N == -1, stores entire clipboard
  • Added /bwrite -c switch that chops file after appended bytes
  • Extended /window -M -tN to allow N = 0 which enables leading text to
  • be hidden
  • Fixed $hotlink(match) bug that did not store nicknames correctly in
  • some contexts
  • Added $timer(N)name property that treats N parameter as timer name
  • and returns position
  • Added /debug -rNoN switch that sets the received and outgoing line
  • colors
  • Changed server dialog to update the connection details of any open
  • status windows if you edit a matching server item
  • Added $fromeditbox identifier that returns $true/$false if command
  • or identifier called directly from an editbox
  • Changed $encode()/$decode() with e/c switches to allow $null
  • parameters
  • Changed /debug colors to support the color 99 to use the default
  • color
  • Added $parms identifier that returns an untokenized $1- for events
  • and other command/identifier calls
  • Extended /splay to enable pause, seek, and resume with wave and midi
  • files
  • Added /fupdate [N] command that sets the display update rate when
  • outputting text to windows
  • Fixed MDI window maximize bug that caused a second copy of mIRC to
  • not have a maximized window on startup
  • Fixed $msfile() gpf when too many files are selected
  • Fixed regular expression bug relating to K escape sequence
  • Added /ignore support for highlight, speech, and tips
  • Fixed beep on message option not beeping on an incoming message that
  • matched a highlight item It now beeps as usual if the highlight
  • item does not specify a sound
  • Changed Switchbar/Treebar "blink icons" feature so that it is now
  • controlled by the global flash setting and individual window flash
  • setting It can still be fully disabled in the Display dialog
  • Fixed /window -t <name> T1 T2 Tn bug that caused it to not update
  • the display immediately
  • Fixed UDP server sockets being closed due to WSAECONNRESET error
  • Fixed $com() not freeing returned dispatch pointers if they were not
  • being saved for later use
  • Changed CTCP handling to correctly display empty ACTIONs/SOUNDs and
  • empty CTCPs Also, all CTCPs in DCC Chats are now displayed as CTCPs
  • for consistency, not just ACTIONs/SOUNDs
  • Fixed List Channels dialog file not being set correctly after
  • connecting to a different network
  • Fixed scripts dialog using an invalid folder for new files if a user
  • has deleted the folder outside of mIRC
  • Fixed regex support for UTF-8 parsing and handling (*UTF8) prefix
  • Added /flash -c switch to clear flash status of all windows
  • Optimized switchbar in certain contexts when many windows are being
  • displayed
  • Added set/var -p switch to treat value as literal text, including
  • quotes and spaces
  • Added /savebuf -n switch to treat wrapped lines as single line
  • Changed /join -i so that it will work in an event
  • Added /join -md switches to set mdi/desktop for new windows
  • Added /query -mdx switches to set mdi/desktop for new windows and
  • to maximize a window
  • Changed /raw to support @msgtag prefixes internally when parsing
  • commands
  • Changed "Split long channel/query messages" option to handle @msgtag
  • prefixes

New in mIRC 7.51 (Sep 19, 2017)

  • Fixed server passwords not being migrated from older versions of mIRC
  • Updated libraries to OpenSSL 102l, PCRE 841, and zlib 1211
  • Fixed /server not parsing passwords set in servers list
  • Fixed network name in status window titlebar not being synchronized with switchbar/treebar
  • Fixed log files bug that caused logs from different networks to be mixed
  • Extended /bset to support -1 to append characters
  • Extended DCC Trust to allow network specific address
  • Extended LOADINFO structure to include DWORD mBeta value
  • Fixed mIRC window saved position bug that caused it to reset to the wrong position
  • Added /set -i switch that only initializes a variable if it does not already exist
  • Fixed script line parser bug that caused a gpf with some combinations of $str/$N-/$len
  • Extended $compress()/$decompress() to support raw, zlib, and gzip
  • Updated CA root certificates cacertpem file
  • Fixed Clear History not correctly clearing network names in switchbar/treebar

New in mIRC 7.49 (May 25, 2017)

  • Changed CAP invite-notify support so that invite notifications are now displayed by default.
  • Added CAP 3.2 support, so mIRC now sends LS CAP 302 when logging on.
  • Added CAP cap-notify support which allows a server to add or remove capabilities during a connection. mIRC responds to NEW or DEL events by quitting and reconecting, as allowed by the specification.
  • Added server version check for UnrealIRCd in order to disable support for mode +q quiet lists as UnrealIRCd uses mode +q for owner lists.
  • Changed Add/Edit server dialog to allow use of seperate server and logon method passwords.
  • Changed /server -w and -l switches to allow specification of separate [-w password] for server and [-l method password] for logon method.
  • Changed $server().pass to return server password and .methodpass to return logon method password.
  • Fixed window treebar/switchbar focus bug.
  • Fixed $regmlex() returning 0 for empty capture group when it should have been returning $null.
  • Fixed CAP SASL external bug.
  • Added CTCP DCC resume error message when file is smaller than the existing file.
  • Added support for evaluation of highlight tip messages.
  • Added /sockopen -n switch to disable Nagle algorithm on socket.
  • Fixed IAL gpf bug when IAL was turned off and channel was joined.

New in mIRC 7.48 (Apr 17, 2017)

  • Changes:
  • Extended $com() to handle one dimensional single-byte array results which are now copied into the specified &binvar
  • Fixed $com() memory bug that resulted in memory not being freed after a dispatch pointer request
  • Fixed on RAWMODE not triggering for invalid mode changes such as a channel mode change for a user that is not on the channel
  • Fixed /dns bug that returned IP address instead of error if it was unable to reverse lookup IP address
  • Added sha256 fingerprint to server SSL certificate dialog
  • Extended /dns to parse nick!user@host and extract the host for resolution
  • Added -nowine command line option to disable Wine support for testing purposes
  • Fixed custom dialog incorrect client size bug due to menubar height
  • Fixed $insong/$inmidi/$inwave bugs with appended text
  • Fixed if/while statement parsing bug
  • Updated to OpenSSL 102k library
  • Added "Control key enables mark/copy" option to Options/Other/Keys dialog
  • Added support for middle-click mouse button to close tab in switchbar/treebar
  • Added SASL/NickServ support as a per server setting in the servers dialog SASL is supported using CAP NickServ is supported by logging in when numeric 001 is received
  • Added /server -l method parameter where method can be: pass, sasl, external, msg, nickserv
  • Added $server()method property to return server login method
  • Added CAP support for extended-join and account-notify These are enabled automatically on connect if available and provide the account names of users in JOIN/ACCOUNT events ACCOUNT events are not shown but are used to update $ial()account They trigger as RAW events
  • Added CAP support for away-notify This is automatically enabled if available and makes the server send AWAY events to the client indicating the away state of users on the same channels as you AWAY events are not shown but are used to set $ial()away They trigger as RAW events
  • Added CAP support for account-tag This is automatically enabled if available and makes the server include the user's @acount=name in the message-tag for messages sent by that user
  • Added CAP support for invite-notify This is automatically enabled if available and makes the server send these events to the client for users invited to their channel These events are not shown but trigger as RAW events
  • Added CAP support for chghost This is automatically enabled if available and makes the server send user@host updates for nicknames on the same channels to update the IAL These events are not shown but trigger as RAW events
  • Added /ialfill #channel command that fills the IAL by sending a /WHO channel to the server and processing the WHO reply If the server supports WHOX, an extended /WHO #channel %acdfhlnrstu,T is sent to receive the account name, where T is a number that uniquely identifies the WHO request and is set to 995
  • Extended mark/copy to allow copying a single character by initially marking more than one character
  • Fixed file change monitor bug that was causing timers to be blocked while the file change dialog was displayed
  • Added $ial()gecos to return gecos/name field from the /who reply
  • Added $ial()id that is a unique id number for each new entry in the IAL
  • Extended /ialmark to allow setting arbitrary marks using the format: /ialmark -nrw <nick> [name] [text] (-n = the [name] of the mark. If -n is not used, the default name 'default' is used; -r = remove the mark; -w = used with -rn to treat name as wildcard). Marks can be accessed using $ialmark(nick,N/name) and properties 'name' and 'mark'.
  • Optimized $ial() when looking up nick!user@host where the nick contains no wildcards An instant hash lookup on the nick is now performed and a full address match performed on the result, instead of a slower wildcard/address search
  • Added $dqwindow identifier that returns the state of the single message window When used in on TEXT/ACTION events, it also returns opening/writing/written states:
  • echo State: $iif($dqwindow & 1,enabled,not enabled)
  • echo State: $iif($dqwindow & 2,open,not open)
  • echo State: $iif($dqwindow & 4,opening,not opening)
  • echo State: $iif($dqwindow & 8,writing,not writing)
  • echo State: $iif($dqwindow & 16,written,not written)
  • Fixed server password not being encoded in mircini/serversini in some situations
  • Changed server group to be truncated at ,'":; and space character for future extension of serversini format
  • Added -a switch to all binary variable commands that makes them not apply UTF-8 encoding to characters in the range 0-255, as long as the line contains no characters > 255
  • Added channel central support for +q quiet list channel mode supported by some networks Also added $chan()iql, $iql(), and isquiet
  • Note: the quiet list numerics and their format vary across IRC networks: some use 728 and 729, others use 344 and 345, some use a 'q' parameter, other do not Also, some networks use these numerics for other events, eg 345 for invites and 729 for whois mIRC has to perform parameter checks on these numerics to decide what they mean on a server
  • Extended numeric 334 support for networks that use it as part of a whois reply that provides the user's location This numeric is also used as a list/command syntax reply on other networks
  • Fixed WM_ENDSESSION handling bug that resulted in mIRC being closed by Windows before it could save all settings
  • Fixed group changes via enable/disable commands not being saved if used during the on UNLOAD event
  • Improved /who tracking method
  • Extended $regsub() to support output to a &binvar
  • Extended $regsubex() to support output to a %var|&binvar, and to return N, as long as the name parameter is specified
  • Extended /ban to support -beIq switches These can be stacked but are issued as separate modes
  • Extended per network channel key history that remembers keys of joined channels for the current mIRC session Now used automatically in more joins eg after reconnect, in new server windows, and so on
  • History is cleared with "Channels" in the Clear History dialog
  • Fixed window focus not being set correctly when a custom dialog is used to open/close custom windows
  • Changed the way sound-related routines are called by all features to make it easier to change away from MCI
  • Changed sound-related routines to use DirectSound instead of MCI to play sounds
  • Added "Create new certificate" button to Options/IRC/SSL dialog that creates a new self-signed client certificate, saves the key/cert pair to a PEM file, and sets it as your private key
  • Added $sslcertsha1 and $sslcertsha256 identifiers that return fingerprint of currently loaded SSL client certificate file for use with /nickserv cert add
  • Optimized the channel central +beIq lookup routines
  • Extended /timer -pr switches to support wildcards
  • Fixed $sound()vbr bug
  • Added /drawsize @ <w h> that sets the bitmap size for picture windows up to a maximum of 8192 x 8192 pixels Note: 1) a bitmap cannot be sized to less than the largest point that has been drawn on it (which can be reset with /clear), 2) once a size has been set, changing the window size will not resize it to less than the set size
  • Fixed /drawreplace not setting largest point drawn to correctly

New in mIRC 7.47 (Jan 18, 2017)

  • Fixed treeview display of text being chopped with certain fonts.
  • Fixed URL hotlink and catcher bugs that prevented extraction of short URLs.
  • Updated to OpenSSL 1.0.2j library.
  • Extended /drawpic and other features to support .jpeg extension.
  • Reverted changes to $calc() and other identifiers regarding number of decimal digits in floating point calculations.
  • Updated About dialog to use Windows theme.
  • Changed op/ignore/protect/voice commands to maintain position of item in list if it already exists. Same applies to editing item in the Control dialog.
  • Extended hotlink and catcher to allow underscores in addresses.
  • Updated to TagLib 1.11.1 library.
  • Updated CA root certificates cacert.pem file.
  • Fixed /protect not using network parameter correctly.
  • Fixed $modespl not allowing larger server-set values.
  • Fixed $int() bug when rounding some negative values.
  • Fixed $com().result not trimming trailing zeros in float values.
  • Fixed $wrap() not updating wrapped text if case has changed.
  • Fixed hash table bug that resulted in intermittent gpfs due to incorrect freeing of memory in some contexts.

New in mIRC 7.46 (Aug 1, 2016)

  • Updated to OpenSSL 102h library
  • Fixed /timer -h high resolution timer which was being limited to the same rate as the -m millisecond timer
  • Added $samepath(path1,path2) identifier that returns $true/$false if paths refer to the same file/dir It resolves relative paths and converts long/short filenames
  • Added /copy -f switch to flush copy to disk immediately
  • Added /rename -f switch to flush rename to disk immediately and -o switch to allow overwrite of an existing file
  • Extended $calc() and other identifiers to return up to 12 decimal digits in floating point calculations
  • Added $tempfn identifier that returns temporary filename located in mIRC folder using same method that mIRC uses internally
  • Fixed Clear History bug that incorrectly cleared channels list settings while status window was connected to a server
  • Extended /mkdir to create the full path to the target folder
  • Changed the way files are replaced during updates to decrease the potential for file loss eg lost mircini files in situations such as crashes, BSODs, and power failures
  • Changed URL catcher to extract URLs using the same method used by hotlink feature
  • Extended URL hotlink/extract feature to handle IPv6 addresses
  • Fixed $base() bug with floating point precision
  • Fixed /hadd not reporting error if UTF-8 conversion results in a string that is too long
  • Fixed script error not showing line number for single-line event definitions
  • Added /list -n switch to minimize channels list window
  • Added resize grip to bottom right of resizable dialogs: channel central, channel folder, play central, and scripts editor
  • Fixed regex bug when K is used in some regex patterns, such as regsubex(abcd, /K/g, )
  • Fixed /drawline -p bug when measuring clipping width for text that contains tab characters
  • Updated to PCRE 839 library
  • Added display of CAP state on connecting to a server and when CAP commands are issued later
  • Fixed first server "command not supported" error message not beingdisplayed

New in mIRC 7.45 (Apr 25, 2016)

  • Fixed on BAN/UNBAN event bug that caused it to not be triggered on mode +b/-b events
  • Updated channels /list feature to send *matchtext* to server in LIST request on Undernet and Quakenet
  • Fixed DCC Send file dialog nickname combobox being incorrectly sized
  • Updated installer to re-use default NSIS uninstall executable
  • Fixed $sdir() new file dialogs not handling invalid path names
  • Fixed $sfile() new file dialogs not filling in filename editbox if filename provided
  • Fixed tray tips bug that caused gpf triggered by right-click on tray tip and possibly other contexts
  • Fixed tray tips and speech bug in formatting of text for mode event at contains multiple mode changes
  • Updated CA root certificates cacert.pem file

New in mIRC 7.44 (Mar 25, 2016)

  • Fixed incorrectly formatted else/elseif reporting the wrong error.
  • Changed /fwrite -n to allow writing an empty line.
  • Updated manifest files to indicate Windows 10 compatibility.
  • Extended $os identifier to detect Windows 10.
  • Added support for extended numeric 338 reply with IPv6 address.
  • Fixed $encode($null,m) returning "line too long" error.
  • Added $regml().group property that returns the () group number for a match and .match property that returns the match number in the case of a /g global match that returns multiple matches.
  • Added /sockopen -46 switches to specify the IPv4/IPv6 context when resolving named addresses.
  • Extended /sockopen to base its IPv4/IPv6 context on the bind address if specified and if the -46 switches are not used.
  • Changed /server to base its IPv4/IPv6 context on the IP address if one is used.
  • Added $isalias() property .ftype and now allows listing of lines in multi-line aliases using $isalias(alias,N).alias.
  • Fixed $msgtags not being reset immediately after an event.
  • Fixed $eval() bug that caused over-evaluation in some cases.
  • Fixed logging bug with large log files.
  • Fixed log view dialog file size bug with large log files.
  • Extended $com() to allow passing parameters in from and results out to binary variables. To pass parameters in from binary variables, prefix the variable type with & to indicate the parameter is a binary variable eg. $com(name, member, method, &bstr, &binvar). To retrieve a result into a binary variable, use $com(name, &binvar).result.
  • Updated to OpenSSL 1.0.2g library.
  • Extended $sysdir() to support downloads folder.
  • Updated to PCRE 8.38 library.
  • Added CA root certificates cacert.pem file to installer. On a new install, mIRC will default to using this as the trusted authorities file if found in the mIRC folder.
  • Fixed $findfile()/$finddir() not responding to Control+Break.
  • Added regex modifier 'u' which enables PCRE_UTF8 and PCRE_UCP in the same way as PHP.
  • Fixed CAP bug that caused mIRC not to parse the capabilities list if it was not prefixed by a : colon.
  • Updated code signing certificate to SHA-256. Binaries are now dual code-signed with SHA-1 and SHA-256.
  • Updated to TagLib 1.11 library.
  • Extended $regex() to allow unlimited backreferences.
  • Added $file().version to return file version of executable/DLL.
  • Extended $bvar(&binvar) to return name if &binvar exists.
  • Added $font(N/name) identifier with properties .size, .pitch, and .type.
  • Added command warning dialog that warns new users when they enter a scripting command into an editbox. The option is enabled by default and can be enabled/disabled in the Options/Other/Confirm dialog.
  • Added $unsafe(text) identifier for use with, for example, user input in /timer commands, that delays evaluation of text for one level of evaluation.
  • Moved send file dialog options, such as packet size, to DCC Options dialog.
  • Updated all file dialogs, including the send file dialog, to use modern file dialogs.
  • Updated to NSIS 2.50 installer and related plugins.
  • Fixed mode +q event being processed as on OWNER/DEOWNER event on networks that use +q as a channel mode.
  • Fixed numeric 353 and 366 bug that caused them to trigger the raw event even if raw was disabled.
  • Fixed if/while bracket parsing bug that caused mIRC to freeze with a certain combination of separators and brackets.
  • Added /write -mN switch, where N = 0 is the default behaviour, N = 1 adds CRLF to end of file if not already there before writing a line, and N = 2 never adds CRLF to end of file before writing a line.
  • Added check for servers that include MONITOR in numeric 005 but do not actually support it. mIRC reverts back to ISON in this case.
  • Fixed on UNLOAD event not being triggered when a file is deleted via the Script Editor File/Delete menu item.
  • Fixed treebar expand/collapse bug that was causing treebar not to update correctly.
  • Fixed dcc chat window beep on incoming text not paying attention to the "Enable Sounds" option in the options dialog.
  • Fixed active "A" letter not appearing on tray icon for the active mIRC when more than one mIRC is running.
  • Updated installer so that, if installing as non-portable, it writes to the registry to set mIRC as an IRC protocol handler and to make mIRC appear in the default programs list. mIRC also does this itself on startup if run as non-portable and as an administrator. On Windows 8 onwards, administrator access is not required for this to work.
  • Added installer /NOADMIN switch to allow running installer without administrator access.
  • Updated installer to remove legacy code that was needed for older Windows versions.
  • Added "Certficate" menu item to status window system menu that allows viewing of the SSL certificate for an SSL connection.
  • Changed /exit -r to no longer restart mIRC using a short filename, which had been necessary under older Windows versions.
  • Changed SSL certificate warning dialog to center based on the status window position as opposed to the mIRC window.
  • Changed various dialogs to center in the middle of the MDI window if the top MDI window is zoomed.
  • Fixed SSL memory leak that caused small amounts of memory not to be freed during initial connection.
  • Added regex modifier 'F' that makes \N back-references in patterns and N indexes in identifiers refer to the () capture group order. It also causes $regml() to include empty () matches. This makes the regex feature work like standard regex. Help file has been updated to include these details.
  • Added $regmlex(name,M,N) where M is the match number (in case of multiple /g global matches) and N is the () group number. If N is not specified, it defaults to 1.
  • Extended $url to work with browsers that do not support DDE, like Microsoft Edge and Google Chrome.

New in mIRC 7.43.2186 Beta (Mar 21, 2016)

  • Item 53, fixed bug where if N was not specified, did not default to N=1.
  • Item 25, updated.
  • Item 54, optimized.

New in mIRC 7.43.2074 Beta (Mar 21, 2016)

  • Item 52, changed
  • Item 53, changed
  • Item 54, added back with some optimizations

New in mIRC 7.43.1959 Beta (Mar 21, 2016)

  • Item 7, added .match property
  • Reverted extended $url (which was intended to support browsers that do
  • not support DDE) as it had too many issues to be practical
  • Item 52, this has been made an option to ensure that older scripts
  • continue to work as before

New in mIRC 7.43.1808 Beta (Mar 21, 2016)

  • 1.Fixed incorrectly formatted else/elseif reporting the wrong error.
  • 2.Changed /fwrite -n to allow writing an empty line.
  • 3.Updated manifest files to indicate Windows 10 compatibility.
  • 4.Extended $os identifier to detect Windows 10.
  • 5.Added support for extended numeric 338 reply with IPv6 address.
  • 6.Fixed $encode($null,m) returning "line too long" error.
  • 7.Added $regml().group property that returns the () group number for
  • a match and .match property that returns the match number in the
  • case of a /g global match that returns multiple matches.
  • 8.Added /sockopen -46 switches to specify the IPv4/IPv6 context when
  • resolving named addresses.
  • 9.Extended /sockopen to base its IPv4/IPv6 context on the bind address if specified and if the -46 switches are not used.
  • 10.Changed /server to base its IPv4/IPv6 context on the IP address if
  • one is used.
  • 11.Added $isalias() property .ftype and now allows listing of lines in
  • multi-line aliases using $isalias(alias,N).alias.
  • 12.Fixed $msgtags not being reset immediately after an event.
  • 13.Fixed $eval() bug that caused over-evaluation in some cases.
  • 14.Fixed logging bug with large log files.
  • 15.Fixed log view dialog file size bug with large log files.
  • 16.Extended $com() to allow passing parameters in from and results out to binary variables. To pass parameters in from binary variables, prefix the variable type with & to indicate the parameter is a binary variable eg. $com(name, member, method, &bstr, &binvar). To retrieve a result into a binary variable, use $com(name, &binvar).result.
  • 17.Updated to OpenSSL 1.0.2g library.
  • 18.Extended $sysdir() to support downloads folder.
  • 19.Updated to PCRE 8.38 library.
  • 20.Added CA root certificates cacert.pem file to installer. On a new install, mIRC will default to using this as the trusted authorities
  • file if found in the mIRC folder.
  • 21.Fixed $findfile()/$finddir() not responding to Control+Break.
  • 22.Added regex modifier 'u' which enables PCRE_UTF8 and PCRE_UCP in the same way as PHP.
  • 23.Fixed CAP bug that caused mIRC not to parse the capabilities list if
  • it was not prefixed by a : colon.
  • 24.Updated code signing certificate to SHA-256. Binaries are now dual code-signed with SHA-1 and SHA-256.
  • 25.Updated to TagLib 1.11 library.
  • 26.Extended $regex() to allow unlimited backreferences.
  • 27.Added $file().version to return file version of executable/DLL.
  • 28.Extended $bvar(&binvar) to return name if &binvar exists.
  • 29.Added $font(N/name) identifier with properties .size, .pitch, and
  • .type.
  • 30.Added command warning dialog that warns new users when they enter a scripting command into an editbox. The option is enabled by default and can be enabled/disabled in the Options/Other/Confirm dialog.
  • 31.Added $unsafe(text) identifier for use with, for example, user input
  • in /timer commands, that delays evaluation of text for one level of
  • evaluation.
  • 32.Moved send file dialog options, such as packet size, to DCC Options dialog.
  • 33.Updated all file dialogs, including the send file dialog, to use
  • modern file dialogs.
  • 34.Updated to NSIS 2.50 installer and related plugins.
  • 35.Fixed mode +q event being processed as on OWNER/DEOWNER event on networks that use +q as a channel mode.
  • 36.Fixed numeric 353 and 366 bug that caused them to trigger the raw event even if raw was disabled.
  • 37.Fixed if/while bracket parsing bug that caused mIRC to freeze with a certain combination of separators and brackets.
  • 38.Added /write -mN switch, where N = 0 is the default behaviour, N = 1 adds CRLF to end of file if not already there before writing a line,
  • and N = 2 never adds CRLF to end of file before writing a line.
  • 39.Added check for servers that include MONITOR in numeric 005 but do not actually support it. mIRC reverts back to ISON in this case.
  • 40.Fixed on UNLOAD event not being triggered when a file is deleted
  • via the Script Editor File/Delete menu item.
  • 41.Fixed treebar expand/collapse bug that was causing treebar not to update correctly.
  • 42.Fixed dcc chat window beep on incoming text not paying attention to the "Enable Sounds" option in the options dialog.
  • 43.Fixed active "A" letter not appearing on tray icon for the active mIRC when more than one mIRC is running.
  • 44.Updated installer so that, if installing as non-portable, it writes to the registry to set mIRC as an IRC protocol handler and to make mIRC appear in the default programs list. mIRC also does this itself on startup if run as non-portable and as an administrator. On Windows 8 onwards, administrator access is not required for this to work.
  • 45.Added installer /NOADMIN switch to allow running installer without administrator access.
  • 46.Updated installer to remove legacy code that was needed for older Windows versions.
  • 47.Added "Certficate" menu item to status window system menu that allows viewing of the SSL certificate for an SSL connection.
  • 48.Changed /exit -r to no longer restart mIRC using a short filename, which had been necessary under older Windows versions.
  • 49.Changed SSL certificate warning dialog to center based on the status window position as opposed to the mIRC window.
  • 50.Changed various dialogs to center in the middle of the MDI window if the top MDI window is zoomed.
  • 51.Fixed SSL memory leak that caused small amounts of memory not to be freed during initial connection.
  • 52.Added regex modifier 'F' that makes \N back-references in patterns and N indexes in identifiers refer to the () capture group order. It also causes $regml() to include empty () matches. This makes the regex feature work like standard regex. Help file has been updated to include these details.
  • 53.Added $regmlex(name,M,N) where M is the match number (in case of multiple /g global matches) and N is the () group number. If N is not specified, it defaults to 1.
  • 54.Extended $url to work with browsers that do not support DDE, like Microsoft Edge and Google Chrome.

New in mIRC 7.43 (Aug 4, 2015)

  • Changes:
  • Fixed window focus bug that affected switching windows when using control+tab, the switchbar, and other methods
  • Added $sysdir(item) to return system folders for the current user where item can be profile, desktop, documents, music, pictures and movies

New in mIRC 7.42 (Jul 18, 2015)

  • Fixed tokenization bug due to strtok()'s use of an internal static variable that may have caused a number of subtle bugs. Replaced with
  • more secure strtok_s().
  • Fixed script error line number bug that was causing the line number not to be reported in some contexts.
  • Fixed /drawtext -c clipping bug.
  • Added /filter -hN switch that indents wrapped text when the -p switch is used.
  • Fixed channel central listbox horizontal scrollbar bug that caused the ends of lines to be chopped.
  • Updated libraries to OpenSSL 1.0.1p.
  • Fixed SSL certificate change warning bug that caused warnings to be displayed for valid certificates.
  • Fixed /filter output to nul not working.
  • Updated voice command support to work with newer versions of Windows.
  • Extended /server to handle passwords with spaces.
  • Updated libraries to PCRE v8.37.
  • Changed drag-drop to only set focus on a window once a file has been dropped onto it and before commands are executed.
  • Fixed /play dialog not allowing long filenames to be typed into filename editbox.
  • Fixed file dialog bug that prevented typing a folder name into the filename editbox to change into that folder.
  • Changed script processing method so that Windows no longer thinks mIRC has stopped responding during long loops.
  • Extended /savebuf -l to work with channel nicklist.
  • Fixed /exit bug that caused settings to be saved incorrectly when used in some contexts.
  • Fixed $input() bug that caused mIRC to gpf if the script it was running from was modified while waiting for input.
  • Fixed $encode(..., 0) and $decode(..., 0) not returning correct line count.
  • Added $encode()/$decode() 'a' switch for base32 encoding.
  • Fixed $encode() bug that caused a gpf with input whose encoded output was longer than maximum line length, now triggers "line too long" error.
  • Added $sha256(), $sha384() and $sha512() identifiers, same format as $sha1().
  • Added $hmac(text|&binvar|filename, key, hash, N) identifier where hash = md5, sha1 (default), sha256, sha384, or sha512, and N = 0 for plain text (default), 1 for &binvar, 2 for filename.
  • Added $hotp(key, count, hash, digits) identifier and totp(key, time, hash, digits, timestep) identifiers. The key can be in a hex format of 40/64/128 chars, base32 format of 16/24/32 chars, or plain text. It can also be in a Google Authenticator format ie. lowercase with spaces. For $hotp: count is required, hash and digits are optional and default to sha1 and 6. For $totp: time, hash, digits, and timestep are optional and default to $ctime, sha1, 6, and 30.
  • Fixed $sdir() not being centered correctly after you resize the dialog.
  • Added support for IRCv3 message tags. mIRC will now automatically remove @ prefixed tags from incoming server messages and store them in the $msgtags identifier. The CAP server-time "time" tag can now be parsed when mixed with other tags.
  • Fixed treebar not setting active item when maximized windows are hidden and then shown again.
  • Added $msgtags(tag|N) identifier with .tag .key properties, where N = 0 returns number of tags.
  • Added on PARSELINE event, triggers before incoming/outgoing server lines are received/sent and allows a script to modify them.
  • Fixed Options/Sounds Event Beeps beep value not being applied, resulting in repeated beeping during a flash event.
  • Extended script editor editbox limit to 1MB.
  • Fixed $intersect() bug that was rounding floating point values.

New in mIRC 7.41 (Mar 2, 2015)

  • Added $calc() // floor divide operator
  • Optimized script parser recursion to make better use of reserved stack space, enabling slightly deeper recursion
  • Optimized SSL event processing speed
  • Fixed $input() maximum editbox limit being off by one
  • Extended hotlinks to correctly parse channel names in a channel message/notice prefix format
  • Fixed file handling bug that would have caused mirc.ini to be reset if there was a drive error, such as the drive being full
  • Fixed another while loop bug
  • Fixed MDI window transparency bug under Windows 8
  • Extended SSL support to allow connecting to SNI servers

New in mIRC 7.39 Beta (Jan 29, 2015)

  • Extended /dll -u to allow use of a partial path.
  • Reverted Channels List window change so that modes are included in the listing again.
  • Fixed hash table bug that would have caused a crash if mIRC was unable to allocate memory for the table.
  • Fixed INI file bug where mIRC was not unloading an INI file if it no longer existed, ie. when deleted by another application.
  • Added $comchar identifier to return the command prefix character.
  • Fixed connection timeout not being applied while a STARTTLS handshake is in progress.
  • Fixed script editor bug that caused popups text not to be displayed correctly in some situations.
  • Fixed confirm exit dialog bug that was not detecting if any DCC gets were in progress.
  • Updated many routines to use 32/64-bit compatible types as a first step in preparing for a 64bit version of mIRC.
  • Fixed icon loading routine bug that may have caused an incorrect icon size to be loaded.
  • Changed threaded critical sections from InitializeCriticalSection to InitializeCriticalSectionAndSpinCount to improve performance in some contexts.
  • Fixed custom dialog limit text option not being applied to simple combo boxes.
  • Changed internal icon format for both the mIRC and connect tray icons.
  • Changed checkbox/radio button in Options/Lock/Disable features listbox and in custom dialog listboxes to use the correct Windows theme.
  • Fixed MDI windows not maximizing fully to the right in some contexts when main mIRC window is also maximized.
  • Fixed $* bug with // and other prefixes not being parsed correctly.
  • Updated file dialog routines, which includes the DCC Send file dialog, in preparation for switching to modern file dialogs in a future version.
  • Fixed /dcc send/chat/fserve bug when parsing the port number that is specified at the end of an ip address, ie. address:port.
  • Fixed Log and Buffer submenus in window system menus not being set correctly when toggling between mdi/desktop modes.
  • Fixed Shift-F3 bug under WINE that caused mIRC to freeze.
  • Extended file dialogs to include more file types in the file types listbox.
  • Fixed log reload bug that caused logs not to be reloaded before the start of a new year.
  • Added $chan(@N) wid support.
  • Added $window().idle property, returns idle state for window type.
  • Updated libraries to OpenSSL 1.0.1l.
  • Fixed while loop bug when multiple nested while loops are used on a single line separated by | line separators.
  • Fixed $reptok() bug that may have caused intermittent results.
  • Fixed $mode() bug that may have caused intermittent results.
  • Fixed empty parameter handling in $instok(), $puttok(), $remtok(), and $reptok().
  • Fixed $ini() bug that limited the index to a maximum of 9999.
  • Fixed log viewer bug that caused it to freeze during a log search if a log file contained a line longer than mIRC's maximum internal line length.
  • Fixed $mp3().bitrate bug that returned an incorrect value.

New in mIRC 7.38 (Nov 27, 2014)

  • Changes:
  • Added $envvar(N/name) identifier with .name and .value properties to return environment variables.
  • Added $notify identifier, returns $true or $false based on whether the notify list is enabled or disabled.
  • Fixed treebar status window folders being expanded when they should not be in some situations.
  • Updated the default DCC accept and ignore file types lists.
  • Extended /close -@ to handle @N window id values.
  • Fixed switchbar lines "auto" bug that was causing the switchbar to auto-expand incorrectly for large numbers of windows.
  • Fixed DCC Get/Fserve not using path of existing DCC Get window when resuming a failed transfer.
  • Fixed DCC Get window not being updated when a resume begins in some cases.
  • Fixed DCC Fserve get not applying "sort files by nickname into own folders" option for received files.
  • Added /close -axdnu switches, where a = apply to all server connections, x = apply to current server connection, d = single message window, n = notify list, and u = urls list.
  • Fixed DCC Chat speech bug that caused text in a DCC Chat window not to be spoken if speech was enabled only for that nickname.
  • Changed /server to search servers list using combination of server address, group, and description.

New in mIRC 7.37 Beta (Nov 8, 2014)

  • Fixed /window -dC bug not centering @window on the same the monitor as the main mIRC window.
  • Fixed Window Order dialog not allowing entry of long channel names.
  • Fixed $sockerr being incorrectly set in some socket events.
  • Fixed font display bug that caused mIRC to use a blank font if the font name was empty in the [fonts] section in mirc.ini.
  • Fixed channels list display bug when list reply includes channel modes. The modes are no longer displayed in the channels list.
  • Updated compiler options to improve buffer overrun defenses and enabled heap metadata protection on Vista onwards.
  • Added check for numeric 447 issued by some servers when a /list request is sent.
  • Added Windows entering sleep/hibernation detection at which point mIRC will immediately save unwritten INI settings as a precaution.
  • Added STARTTLS support using the CAP tls protocol:
  • To initiate a secure connection to a STARTTLS capable server, you can use the /server -t switch or prefix the port number with a star sign, eg. *6667.
  • On connecting to a server, mIRC now sends CAP LS and waits for a reply from the server before logging on. This allows mIRC to determine if STARTTLS is supported and to initiate STARTTLS before logon credentials are sent.
  • If a server replies with a CAP reply, mIRC processes the CAP reply, initiates STARTTLS if supported, and then logs on. If STARTTLS is not supported, mIRC cancels the connection.
  • If a server replies with numeric 451 (not registered), indicating it does not recognize CAP, mIRC cancels the connection.
  • If a server does not reply at all, after a few seconds of waiting, mIRC sends a PING. If a server replies with a PONG or numeric 451, indicating it does not support CAP, mIRC cancels the connection.
  • Added /sockopen -t switch that initiates an SSL negotiation on a non-SSL connection, eg. as with STARTTLS, and a $sock().starttls identifier.
  • Fixed /sockread unsetting local variable instead of setting it to an empty value in some contexts.
  • Fixed /whois results being incorrectly displayed in @debug window if it happened to be active in some contexts.
  • Fixed SSL port cycling bug.
  • Added /sockwrite -a switch that prevents characters in the range 0-255 from being UTF-8 encoded, as long as the line only contains characters in the range 0-255.
  • Fixed /server -nm not setting channels list filename correctly when server window is created.
  • Changed channels list "hide non-text channels" option to allow display of double-prefix channels.
  • Changed status window titlebar to include port number when not connected so you can see if the next connection attempt will be secure or not.
  • Fixed recent server connections not being saved to servers.ini file if the "move to top on connect" option was disabled.
  • Changed servers history menu to correctly show the history of servers you have connected to as opposed to servers at the top of the servers list. If you select "clear history", it now clears the history as expected.
  • Added ircs:// support to URL catcher.
  • Changed log view window, opened by logging dialog, so that it is positioned at the end of the switchbar/treebar window list.
  • Fixed switchbar/treebar display bug that caused windows to be displayed in the wrong order in some situations.
  • Changed $sound() to use the TagLib library for improved reading of MP3 and other media file formats.
  • Added Shift-F3 key support in Scripts Editor to search backwards through text.
  • Fixed timezone bug that caused timezones with non-whole hour offsets to be handled incorrectly.
  • Updated manifest files to indicate Windows 8/8.1 compatibility.
  • Extended $os identifier to detect 8.1.
  • Fixed dialogs display bug that caused dialogs opened via MDI window system menu to be offset incorrectly.
  • Fixed $did bug that caused $did to be reset inside an event in some situations.
  • Changed SSL accepted cipher list to ALL:!ADH:!aNULL:!eNULL:!EXP:!3DES:!RC4:!MD5:!PSK:!SRP:!DSS:!SSLv2:!LOW.
  • Added "ciphers" item to [ssl] section in mirc.ini that allows you to specify list of accepted ciphers.
  • Updated libraries to PCRE v8.36 and OpenSSL 1.0.1j.
  • Changed connection error messages to include actual SSL error messages provided by OpenSSL.
  • Changed $input() to allow entering of longer text and limiting text entry to maximum length.
  • Fixed text display spacing bug with zero width characters.
  • Fixed timezone/daylight savings bug that was affecting timestamping and time/date identifiers.

New in mIRC 7.36 (Aug 14, 2014)

  • Changes:
  • Fixed mark/copy text bug.
  • Updated the replace dialog in the script editor to remember its position for the current mIRC session.
  • Fixed /alias incorrectly halting script in some situations.
  • Fixed SSL "Unable to get certificate CRL" bug.
  • Reverted change to $sslversion so that it returns only the version number and excludes the "OpenSSL" prefix.
  • Updated libraries to OpenSSL 1.0.1i.

New in mIRC 7.35 Beta (Aug 5, 2014)

  • Fixed slow mark/copy text in windows that contain long lines.
  • Fixed listbox lines in Options dialog and other windows being vertically chopped when DPI settings are set to a high value of 200% or more.
  • Reverted change to alias/identifiers when called recursively that caused the script to be halted with a recursion error warning.
  • Fixed listbox with checkboxes bug that caused checkboxes to be checked if you scrolled through them with the up/down keys.
  • Changed channel folder dialog so that it can now be resized.
  • Changed online timer dialog to display information more clearly.
  • Added /timer -zN switch to reset online timer, where N = 0 resets current and total time, N = 1 resets current time, and N = 2 resets total time.
  • Added $onlineserver to return current server online time and $onlinetotal to return total online time.
  • Fixed Shift+Tab beeping when switching to listbox in channel window.
  • Fixed $fullscreen not working on a non-primary monitor.
  • Updated SSL routines to allow both static and dynamic linking of OpenSLL with mIRC. mIRC now comes with OpenSSL 1.0.1h linked statically, so SSL is available without needing external DLLS. However, if mIRC finds a newer version of OpenSSL on your system, it will load that automatically.
  • Added SSL option that allows you to control whether the internal or external version of OpenSSL is loaded, by adding "load=N" to the [ssl] section in mirc.ini, where N = 0 means "use internal, external if newer", N = 1 means "use external always", and N = 2 means "use internal always". The default is 0. If no external is available, or there is an error loading external, internal is used.
  • Fixed SSL routines not checking if a private certificate was loaded either in the same file as the private key or as part of a separate certificate chain file.
  • The find dialog in the script editor now remembers its position for the current mIRC session.
  • Fixed favorites bug where if multiple networks are defined for a channel, and you click the join button, mIRC was only connecting to the first network. mIRC now connects to all of the networks defined for that channel and will open new status windows if necessary.
  • Fixed lock dialog bug that caused mIRC to ask for a password if the on startup option was enabled without setting a password.
  • Fixed $input() 'b' switch so that the dialog window close button is also temporarily disabled. This also applies to other dialogs that use this feature.
  • Fixed isignore only accepting types, now also accepts switches.
  • Fixed CAP server-time time value not being used when timestamping an event in the log file.

New in mIRC 7.34 (Jun 19, 2014)

  • Fixed SendMessage() bug that prevented mIRC from processing incoming WM_MCOMMAND/WM_MEVALUATE messages correctly.
  • Changed right-click popup menu item order for Treebar, Switchbar and Toolbar for common menu items so that they match.
  • Added Switchbar font option to right-click popup menu.
  • Changed Switchbar to display active window tab in a slightly different color when a background picture for the Switchbar is set.
  • Changed tooltip display delay to use the Windows default tooltip display delay value.
  • Changed Clear History feature to not delete some interface settings, such as font settings for Treebar, Switchbar, and Scripts Editor and background picture settings for Treebar, Switchbar, and Toolbar.
  • Changed installer to default to upgrade mode if installing over an existing installation when using the /S silent option and added a FULL command line option to force a full install.
  • Fixed DNS resolution bug that would have returned incorrect results during multiple simultaneous DNS requests in rare contexts.
  • Updated libraries to OpenSSL 1.0.1h.
  • Added Lock dialog option to disable SendMessage. If cMethod value 16 is used for more useful error messages, returns 64 to indicate SendMessage is disabled. You can use $lock(sendmessage) to check if it is disabled.
  • Extended mouse wheel to work in interface elements, such as list boxes in dialogs, under the cursor even if they are not active.
  • Added /comlist command to list open com objects.
  • Added $servertarget identifier to return address specified in the server command, which may not be the same as $server.
  • Added /play -x switch to treat the first line in the file as plain text even if it is a number.
  • Fixed custom dialog listbox with checkboxes not working correctly on Windows 8 tablet touch screens.

New in mIRC 7.33 (Jun 19, 2014)

  • Fixed $ini() bug that resulted in an incorrect count being returned with a particular combination of subject and key parameters.
  • Added /var -n switch to make /var treat input as plain text.
  • Fixed /loadbuf bug that skipped empty lines when loading a topic.
  • Changed HTTP routines to use POST with form parameters instead of GET with URL parameters.
  • Fixed $line() with Channels List window so that it references the current search results instead of the full list.
  • Fixed while/if loop error reporting bug.
  • Fixed /hotlink -m menu not working correctly when a menu item is selected.
  • Fixed channel central limit bug that caused invalid limit values sent by the server to be stored incorrectly.
  • Fixed channel titlebar not displaying numeric modes.
  • Fixed /timer bug when using the [time] parameter that caused it to execute twice on reaching [time].
  • Extended server/history popup menu so that if you hold down either the shift or control key and click, it opens a new server window. Changed /localhost -p UPnP method to use local interface address instead of 127.0.0.1.
  • Fixed on SOCKWRITE event not being triggered for UDP events when an error occurs.
  • Fixed editbox focus not being set on restored desktop windows.
  • Fixed script editor focus not being set if it is in MDI mode and you switch to a window outside of mIRC and then back to mIRC.
  • Fixed right-click popup menus in listbox windows not working on Windows 8 tablet touch screens when using press-and-hold.
  • Fixed INI file save bug that was causing a gpf if the INI file was already in use by another application.
  • Fixed full screen menubar bug that caused the menubar to be displayed incorrectly in a multi-monitor setup in some cases.
  • Added /fopen -x switch that opens a file for exclusive access. If another application is using the file, /fopen will fail.
  • Fixed /hsave to an INI file not clearing section before writing hash table items to it.
  • Changed Options/Display/Buttons option to allow "Small" or "Large". This now changes both the toolbar and switchbar size. The size is scaled based on screen resolution and DPI settings. If installed on a tablet, the large button size is chosen by default.
  • Fixed /echo -h bug that caused text not to hard-wrap.
  • Fixed $ctime() bug where "nd" values were not being recognized.
  • Updated libraries to PCRE v8.35 and OpenSSL 1.0.1g.
  • Fixed $msfile() bug when too many filenames were selected under Windows 7/8.
  • Fixed $sdir() bug that caused selected folder not to be scrolled into view when dialog is displayed under Windows 7/8.
  • Added math identifiers $atan2(y,x), $hypot(x,y), $log10(x), sinh(x), $cosh(x), $tanh(x).
  • Fixed $onpoly() bug due to rounding errors that may have returned true in rare cases where two lines are very close.
  • Added $intersect(x1,y1,x2,y2,x3,y3,x4,y4,method) identifier that returns the point at which two lines/rays intersect. The method parameter is optional. If not specified, two lines are compared. If specified, it can be lr, rl, rr = line/ray, ray/line, ray/ray.
  • Fixed /drawdot bug that caused it to be drawn slightly off center.
  • Added $input() 'f' switch that forces the return of $no/$cancel for edit/combo boxes.
  • Fixed SSL certificate password dialog box being displayed multiple times when multiple SSL connections are in progress.
  • Added display of "Connect cancelled" message when a connection attempt/retry cycle has ended completely.
  • Added a single, standard lock/password dialog for use by all features to replace multiple older implementations.
  • Fixed SendMessage() WM_MCOMMAND bug that would have returned a successful result to the calling application even if the command had in fact failed.
  • Added support for encrypting server passwords in servers.ini. Old plain text passwords are converted to the new format.
  • Changed List Channels dialog lock password so that a hash is stored in mirc.ini instead of the actual password. The old password is converted to the new format.
  • Fixed SSL certificate password dialog box bug that, on being displayed, caused controls to be enabled even if user was currently typing in another window.
  • Added another method for detecting Wine, as a backup to the current method.
  • Extended SendMessage() to enable executing a command in the context of a remote event. During a remote event, a $eventid identifier is set to a unique value to identify the event. This can be passed to a DLL which can then pass it back to mIRC using: SendMessage(mHwnd, WM_MCOMMAND, MAKEWPARAM(cMethod, cEventId), cIndex). This will cause the command/evaluation to execute in the context of the remote event identified by cEventId. If cEventId is 0, this indicates a non-remote event.
  • Extended SendMessage() to return information about mIRC using SendMessage(mHwnd, WM_MCOMMAND, -1, lParam) where lParam is -1 to receive the mIRC version number and -2 to receive the cMethod options that are supported.
  • Extended SendMessage() to support cMethod value 16 which causes SendMessage() to return more useful error values instead of just 0 for failure and 1 for success. The return values are: 0 = success, 1 = failure or'd with 2 = bad mapfile name, 4 = bad mapfile size, 8 = bad eventid, 16 = bad server, 32 = bad script.
  • Fixed hotlinks display bug that affected how hotlinks were displayed in dialogs.
  • Fixed topics, modes, and several other events not including the year that the mode was set.
  • Changed About dialog to include check for update button.
  • Added installer check for limited user write access to the selected install folder when the "portable" option is enabled.
  • Fixed alias/identifier behaviour inconsistency when a recursive call is attempted which could have led to unexpected results. Both now halt the script with an error message instead.
  • Changed installer to include links to license and privacy policy.
  • Added CAP userhost-in-names support.
  • Changed CAP support so that CAP END will only be sent once the server has replied to all requests with ACK or NAK and requests have been processed.
  • Fixed timezone/daylight savings bug due to a hack around a bug in a previous version of the C runtime library.
  • Fixed all server messages, such as MOTD, not being timestamped when timestamp option is enabled.
  • Added CAP server-time and znc.in/server-time[-iso] support. Enabled automatically with a CAP request if server lists it in CAP LS. If a server message has a @time prefix with a UTC timestamp, $msgstamp will return this value.
  • Extended /echo -tN where N is the UTC value you want to use as the timestamp.
  • Added support for ircs:// secure links.
  • Improved irc/ircs:// links support in the windows registry by adding the following entries: Class\mIRCURL, Software\Clients\IM\mIRC, and Software\RegisteredApplications\mIRC.
  • Changed /timer to display seconds in /timers and in $time().delay, if seconds are specified on command line.
  • Changed /window -c to not report an error if the non-@window it is closing does not exist.
  • Fixed status/channel/query right-click popup menu bug that caused clicked target not setting $1 correctly if /remote is off.
  • Fixed an SSL threading bug that may have caused SSL connections to crash in some situations.
  • Fixed scripts editor file change monitor bug that may have caused some file change notifications to be missed.
  • Changed $ticks so that it uses GetTickCount64() if it is available.
  • Fixed /list command bug that caused the channels list to be saved to the wrong filename in the channels folder if you were connected to multiple servers.
  • Fixed $read()/play random number bias.
  • Changed $shortfn()/$longfn() to use more reliable method.
  • Fixed $input() display bug with long strings.

New in mIRC 7.32 (May 24, 2013)

  • Fixed messages being text-wrapped incorrectly in some situations.
  • Fixed SSL certificate files specified in SSL options dialog not being loaded and used correctly when connecting to a server.
  • Fixed SSL disconnect bug where if an SSL connection failed, other SSL connections would be disconnected.
  • Updated libraries to zlib 1.2.8 and OpenSSL 1.0.1e.

New in mIRC 7.31 Beta (Apr 29, 2013)

  • Fixed editbox buffer bug that was not storing an edited line if you pressed the up key.
  • Fixed incremental search not working correctly in channels list window.
  • Changed email catcher to be more strict when determining whether something looks like an email address.
  • Fixed installer issue that may been the cause of popups.ini files being overwritten in some situations.
  • Added installer command line options /DESKTOP, /NODESKTOP, /STARTMENU and /NOSTARTMENU to enable/disable creation of shortcut icons.
  • Added "On Top" menu item to the View menu as users have difficulty finding it in the system menu when it is enabled.
  • Changed the "File changed" dialog so that it is closed automatically if a load/reload command applies to the same file.
  • Extended $encode/$decode to support blowfish. By default, the method is compatible with OpenSSL and uses CBC, key hashing, a random salt and PKCS#5 padding (see versions file for more details).
  • Fixed SSL caching bug that may have required repeat acceptance of certficates on some networks. The cache now stores the IP address of the associated certificate.
  • Changed connection retry method so that if a connection attempt to an SSL server fails, and the server is part of an IP pool, the next retry will use the same SSL port.
  • Enabled DPI awareness to prevent Windows applying display scaling to mIRC. This should resolve the blurry interface and font issues when non-standard DPI display settings are used. A number of GUI-related features needed to be updated to cater for this change, eg. fonts now use internal defaults of points versus logical sizes. This may affect scripts that use dialogs and /draw on systems with non-standard DPI settings.
  • Fixed drag-drop bug that may have caused a gpf when switching windows between MDI/desktop mode.
  • Added MONITOR protocol support for the notify list. mIRC will use MONITOR automatically if it is listed in the 005 numeric.
  • Fixed "Check for update" dialog display bug that occurred when the connection to the website timed out.
  • Fixed $& indentation bug in scripts editor dialog.
  • Changed notify list to dynamically switch between WATCH/MONITOR and ISON when the number of nicks in the notify list is within/beyond the WATCH/MONITOR limit set by the server.
  • Optimized switchbar and treebar display speed.
  • Fixed switchbar "auto" lines feature being disabled when switchbar is repositioned. It is now only disabled if switchbar is resized vertically.
  • Fixed timestamp bug that may have caused a gpf in some situations if your timestamp was very long.
  • Fixed timestamp part of a message not being wrapped correctly when message is initially displayed in a window.
  • Fixed mIRC not handling mouse buttons correctly in some situations if the user's system is configured to swap mouse buttons.
  • Changed the way the window buffer is trimmed when it reaches the maximum number of lines set in the Options/Other dialog.
  • Added /close -lk to close channels list and links list windows, however note that channels list window cannot be closed if it is currently listing.
  • Optimized SSL routines.
  • Added SSL identifiers $sslversion, $ssldll and $ssllibdll.
  • Added logging dialog option to enable/disable automatic logging of status windows.
  • Changed reload log feature so that it is enabled by default for channels and chats.

New in mIRC 7.29 (Jan 17, 2013)

  • SSL certificate hashes are now stored in the servers.ini file for all certificates and a warning is displayed if a certificate has changed since the last connection.
  • An issue with the /help command not displaying the correct location of a search term has been fixed.
  • The /run command has been changed to improve backward compatibility with older scripts.
  • The way the Escape key works has been changed so that it clears the contents of the current editbox if the "Escape key minimizes window" option is not enabled.
  • A /hotlink bug that prevented hotlink popup menus from being displayed has been fixed.
  • The maximized window position is now saved correctly when the "on startup minimize mIRC to tray" option is enabled.
  • Urls in your own messages are now once again saved to the urls list.
  • An issue with the "Hide tips when locked" option, that caused tips to flicker briefly in view, has been fixed.
  • The editbox buffer feature has been improved and should now work more reliably in different contexts.
  • The /vol -v command now correctly sets the master volume on newer versions of Windows.
  • Other changes and bug fixes.

New in mIRC 7.28 Beta (Dec 10, 2012)

  • Fixed help file issue that prevented /help command from jumping to the correct location on a help page
  • Fixed /run command issue that affected backward compatibility with ambiguous parameter formats used in older scripts
  • Fixed auto-hide nicklist not hiding when mouse is moved outside of the channel window in some contexts
  • Changed Escape key so that it clears the current editbox if the "Escape key minimizes window" option is not enabled
  • Fixed channel nicklist popup menu being wrongly displayed when right-clicking in nicklist area and nicklist is auto-hidden
  • Fixed /exit -r bug not restarting mIRC when scripts editor dialog is open with unsaved files
  • Updated libraries to zlib 127
  • Fixed tips bug that caused tips to flicker briefly in view when the "Hide tips when locked" option is enabled and a message is received while mIRC is minimized and locked
  • Fixed editbox buffer bugs that appeared in different contexts, such as when combinations of Control+Up/Down were pressed or the editbox contained multiple lines entered with the Alt+Enter key
  • Changed SSL feature to store SSL certificate hashes cache in the serversini file instead of mircini Also, hashes are now stored for all certificates, good or bad If a certificate is good but has changed since the last connection, a warning is now displayed
  • Fixed /hotlink bug that prevented hotlink popup menus from being displayed
  • Changed display bitmap cache to check if mIRC has been blocked from capturing screen buffer (which can happen with security software) If it has, mIRC reverts to slower, non-cache display method
  • Fixed full screen menu item not being checked when full screen mode is enabled
  • Fixed script editor bug that caused a freeze when saving popups to a non-ini file in certain situations
  • Changed font dialog so that when "set as default" is checked, "use default" is automatically checked as well
  • Fixed maximized window position not being saved when the "on startup minimize mIRC to tray" option is enabled

New in mIRC 7.27 (Oct 21, 2012)

  • A "Mark As Read" option has been added to the treebar, switchbar, toolbar and MDI popup menus to allow you to clear all flashing/highlighted windows.
  • The $hfind() identifier has been extended to allow results to be saved to a @window listbox or passed to a command.
  • An SSL connection issue has been fixed that prevented mIRC from connecting to servers with certificates that used unrecognized date formats.
  • A hotlink display issue has been fixed that caused text to flicker when hovering the mouse over a link.
  • SSL support for Subject Alternative Names (SAN) has been added when verifying whether a certificate is valid for the connection.
  • A number of issues with the reload logs feature have been fixed, including incorrect line indentation and missing lines at the end of a log in some situations.
  • An issue with the split long messages feature has been fixed which occurred when handling color formats in some contexts.
  • An Address Book bug that prevented removal of an existing timed unignore has been fixed.
  • The way incremental search works in channel nickname listboxes has been changed so that it behaves more like Windows explorer.
  • The /localinfo -p option has been changed to use a random UPnP port outside the first 1056 services port range as some routers block these ports.
  • An $inellipse() bug caused by a compiler optimization issue has been fixed.
  • Other changes and bug fixes.

New in mIRC 7.25 (Jun 14, 2012)

  • Portable support has been improved for when mIRC is used on more than one computer through file hosting services like dropbox.
  • A Treebar option has been added that allows you to choose a different font using the right-click popup menu.
  • The editbox now beeps at most ten times when the maximum message length is reached and respects the "enable sounds" option in the sounds dialog.
  • The log view window now allows you to set the default ontop state through the system menu as well as save the window position.
  • The SSL warning dialog has been improved and now includes SHA1 fingerprint and Bubble-babble text.
  • Incremental search has been added to listboxes that matches against start of text in listbox lines.
  • The Control+Break key issue that caused it to stick in some situations should now be resolved.
  • A display scrolling bug that occurred in windows that contained a large numbers of lines has been fixed.
  • A 10053 connection issue has been fixed that occurred when connecting to a server that closed the connection immediately.
  • Changed /timer handling so that it is now more precise/reliable.
  • Other changes and bug fixes.

New in mIRC 7.22 (Oct 14, 2011)

  • The Alt/AltGr keys should now work correctly for users with different keyboard layouts.
  • The "Minimize to tray" option now defaults to off under Windows 7 due to the way Windows 7 hides all tray icons by default.
  • The Channel Central dialog has been changed so that it can now be resized.
  • The /list command issue with min/max values not working on some networks has been fixed.
  • Added "Use compatibility mode" option to SSL dialog, which defaults to on. If turned off, OpenSSL will use the "empty fragment" feature which may make your connection more secure at the expense of less compatibility with some SSL servers.
  • The /dns command issue with results not being shown when a non-existent nickname is specified has been fixed.
  • The tray icon issue with mouse clicks not working in some situations has been fixed
  • The /timer -h recursion issue should now be resolved.
  • Other changes and bug fixes.

New in mIRC 7.19 (Mar 7, 2011)

  • The identd server issue that prevented identd from working correctly in some situations has been fixed.
  • The /window -a command now correctly sets the focus for maximized windows.
  • The time-out check that monitors the server connection has been changed so as to decrease the number of 10053 disconnection errors.
  • The $findfilen/$finddirn identifiers now return the correct results for large numbers of files and folders.
  • The SSL certificate validation issue that resulted in validation errors when connecting to a secure server should now be resolved.
  • Other changes and bug fixes.

New in mIRC 7.17 (Dec 18, 2010)

  • The active window now correctly receives the focus when maximized windows are switched or closed.
  • Hash table commands hadd/hinc/hdec when used with the -cuNz switches no longer cause data corruption in hash tables.
  • Custom DLLs that perform window/message hooking no longer cause mIRC to crash on exit.
  • The Alt+Minus key combination has been changed to allow the use of Alt+NumberPadMinus for zooming in screen readers.
  • The socket identifier $sock() now returns the correct saddr/sport values for UDP connections.
  • The Server and DCC connection issue that resulted in the "Address already in use" message should now be resolved.
  • Other changes and bug fixes.

New in mIRC 7.15 (Nov 9, 2010)

  • Fixed window focus bug when mIRC is restored from a minimized state.
  • Changed /ban to allow more channel user modes to use it.
  • Changed $mklogfn() to only return a partial path when the "Make folders" option is enabled in the Logging dialog.
  • Fixed $sfile() and other file dialogs not returning file extensions if "Hide file extensions" is enabled in Explorer in Windows 7.
  • Changed /sockwrite to send data immediately instead of queuing it which should speed up transfers.
  • Added scrollbar buttons back to switchbar when many windows are open.
  • Changed the way mIRC exits when Windows is shutdown which should prevent lost mirc.ini settings for some users.
  • Changed CAP command to not display error message during logon for servers that do not support it.
  • Fixed idle color not being reset immediately when using /msg command.
  • Fixed hadd/hinc/hdec -cuNz bugs, should now work like set/inc/dec.

New in mIRC 7.14 (Oct 14, 2010)

  • Fixed mouse drop menu event bug.
  • Fixed $isutf() bug.
  • Fixed /scon recursion gpf bug.
  • Changed /filter to halt only if an alias call returns an error.
  • Fixed /hadd -u bug.
  • Optimized text display caching.
  • Changed file handling to flush files to disk immediately.

New in mIRC 7.1 (Jul 31, 2010)

  • 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

New in mIRC 6.35 (Oct 18, 2008)

  • This version of mIRC is primarily a security release. mIRC users are advised to upgrade due to a security issue related to the use of very long nicknames on non-standard servers.
  • Several other small issues have also been fixed in this release.
  • Although this is a minor update, it includes important changes and all users are advised to upgrade.

New in mIRC 6.34 (Aug 8, 2008)

  • Resolves an important issue with 'if' statements being processed incorrectly in the scripting language.
  • Other small fixes.

New in mIRC 6.33 (Jul 18, 2008)

  • Added support for the transfer of files larger than four gigabytes.
  • Added /var -g switch to allow you to set global variable values.
  • Added $input() identifier combobox support.
  • Fixed UTF-8 text-wrapping display bug.
  • Fixed switchbar display button-sorting display bug.
  • Fixed window positions not being saved correctly for some windows.
  • Fixed server connection not remembering SSL status in some situations

New in mIRC 6.21 (Mar 10, 2007)

  • Fixed $timer().secs bug when used with /timer HH:MM.
  • Fixed right-click on disabled toolbar button popping up menu.
  • Fixed treebar and toolbar using same key accelerator in the view menu.
  • Changed wording in help file for /windows -D.
  • Changed /winhelp to allow help system to search for help file if it's not found in the mIRC folder.
  • Fixed /toolbar -z3 not loading actual icon size from an .ico file.
  • Fixed pressing spacebar in channel nicklist not popping up correct menu.
  • Fixed bug with popup menus displayed using spacebar in notify/url listboxes.
  • Fixed passive dcc send bug rejecting files in dcc ignore list.
  • Fixed /window -h not being able to hide status window switchbar buttons.
  • Fixed various tabbed text display bugs in @window text/listbox.
  • Fixed scripts reacting to superfuous windows mouse move messages.
  • Fixed display bug in reversed tabbed text in listbox @windows.
  • Fixed dcc get window not being auto-closed on time-out in some situations.
  • Improved /drawrot, now faster and supports float values.
  • Changed the way mIRC displays popup menus so that it triggers the WM_INITMENUPOPUP for plugin developers.
  • The LOADINFO structure now returns a minor version value that is right-padded with zeros, eg. "6 20".
  • Fixed /drawpic parameter parsing bug.
  • Fixed windows taking focus when mIRC is not the active application.
  • Fixed $regsubex() bug with parameter and various other characters.
  • Added $regsubex() A parameter, non-spaced version of a.
  • Fixed issue with $lactive not always returning a value.
  • Fixed horizontal scrollbar bug in tabbed listbox @windows.
  • Optimized display speed of text in windows and listboxes.
  • Improved /window -b speed.
  • Improved $network return value when connected/disconnected when on networks that use different network names in numerics 001/005.
  • Fixed $dialog().focus not working correctly with comboboxes.
  • Added on HOTLINK support for $() and %var in matchtext.
  • When drag-dropping files on listboxes the listbox item under the mouse is now highlighted.
  • Fixed query windows in treebar/switchbar not being re-sorted on a nickname change.
  • Added Minimize/Close All menu items to treebar folder menus.
  • Fixed script editor bug deleting very long lines instead of truncating them.
  • Fixed /window -c gpf bug when several status windows are open and the first status window is closed.
  • Fixed $window().state bug.
  • Added $window().sbstate/tbstate, return switchbar/treebar button state for a window.
  • Updated library to PCRE v6.7, fixes various bugs.
  • Updated support files to openssl v0.9.8b.
  • Fixed on WAVEEVEND event not being triggered correctly.
  • Fixed switchbar fill display bug.
  • Fixed $didwm() bug not handling blank lines in editboxes.
  • Fixed DCC Get behaviour if download folder does not exist.
  • Fixed logging bug where logfiles were being lost if "make folder" was enabled and the same status window was used to connect to different networks.
  • Fixed $eval() parsing bug when passed more than two parameters.
  • Fixed nested $regsubex() gpf bug.
  • Extended commandline -r and -i parameters to accept non-full paths.
  • IRC Servers dialog now uses a treeview to display the servers list.
  • Fixed $inellipse() bug.
  • Fixed kill event handling bug.
  • Fixed $regml() bug.
  • Fixed log filenames handling bug.