mIRC Changelog

 mIRC Changelog


08/02/2019 - mIRC v7.55

Changes:
1.Fixed /onotice and related commands not working correctly in some
  contexts.
2.Fixed Clear History log files option not deleting empty nested
  folders in logs folder.
3.Fixed $sha1()/$hmac() bug that caused &binvar data to be overwritten.
4.Added support for AES encrypted ZIP files using the libzip library.

  $zip(file.zip,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.

5.Extended $rand() to allow negative number values.
6.Changed $rand() RNG algorithm to Bob Jenkins's JSF64.
7.Added $rands() identifier that returns a cryptographically secure
  random number using Microsoft's RtlGenRandom() API.
8.Changed all features that previously used the standard CRT rand() to
  use the new RNG algorithm.
9.Fixed $hfind() not reporting an error when the called alias returns
  an error.
10.Fixed $asctime() 'z' bug that returned whole numbers for timezones
   with 15/30/45 minute offsets.
11.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.
12.Fixed RCE vulnerability affecting all versions of mIRC (CVE-2019-6453).
13.Added $notify().sound2 property to return offline sound.
14.Updated CA root certificates cacert.pem file.
15.Fixed "Show nicks on join" option not working correctly.

21/12/2018 - mIRC v7.54

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

29/11/2018 - mIRC v7.53

Changes:
1.Added /set -g switch that makes /set change a global variable.
2.Added /unset -gl switches that make /unset change a global or local
  variable.
3.Changed udpate check/other features to avoid insecure SSL protocols in
  HTTP requests under Windows XP.
4.Changed all time-related features to use 64bit time values.
5.Fixed hotlink parsing of mailto: and similar.
6.Added hotlink parsing of xmpp:, teamspeak:, ssh:, and sftp:.
7.Extended /drawpic -o [N] to refer to frames in a GIF file.
8.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].
9.Extended $pic() to support properties .icons, .frames, .delay and
  to allow specifying N and M parameters.
10.Added voice selection to speech options.
11.Fixed $onpoly() not handling zero area polygons correctly.
12.Changed $onpoly()/$inpoly() implementations from regions to maths.
13.Updated PCRE regex library to v8.42.
14.Fixed script parser bug that caused mIRC to process Windows messages
   while a script was running.
15.Changed $encode() base32 to use 72 character chunks.
16.Fixed /ialfill not displaying channel name when fill completes.
17.Updated CA root certificates cacert.pem file.
18.Fixed $ctime() returning incorrect result at midnight before a new
   year begins.
19.Changed the way maximum server line lengths are applied to various
   commands and features.
20.Added /privmsg command.
21.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.
22.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.
23.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.

24.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.
25.Changed channel favorites dialog drag-resize method.
26.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.

27.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.
28.Increased the size of short, medium, and long string lengths used
   throughout mIRC that affect features such as variables, window names,
   and so on.
29.Increased stack reserve size from 2 to 8 megabytes.
30.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.

31.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.
32.Changed base64 implementation for $decode() to handle invalid input
   lengths better.
33.Added $eventparms identifer that returns the event-specific parameters
   passed to an executed command in a script.
34.Changed /ialfill to not issue a WHO if it thinks the IAL list is
   already filled or currently filling.
35.Changed $base() to only remove the 0x prefix from base16 input.
36.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.
37.Fixed while loop parsing bug when $& is used to separate comparison
   parameters.
38.Changed when the raw event for invite (as a channel notification)
   triggers to allow the /haltdef of default display text.
39.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.
42.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.
43.Fixed $hash() parsing bug that caused a break evaluation error.
44.Changed how mIRC manages its string pool memory to ensure that very
   large strings are freed immediately.
45.Changed $hfind() to allow $null text parameter.
46.Fixed on NOTIFY/UNOTIFY events not resetting print/halt state across
   events.
47.Changed the way long lines are displayed to get around ExtTextOut()
   timeout limitation.
48.Changed default hash table hash function to modified FNV-1A for
   improved distribution.
49.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.
50.Fixed $readini() reporting an evaluation error when reading a line
   that contains only empty spaces.
51.Changed the [dirs] section to always contain "getdir", refers to
   the default item in [extensions].
52.Updated TagLib sound library to latest fixes.
53.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.

28/02/2018 - mIRC v7.52

Changes:
1.Changed website/forums to use HTTPS/SSL connections.
2.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.
3.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 servers.ini file.
4.Added /server -u switch that makes the server connection ignore IRCv3
  STS directives.
5.Fixed SSL connect behaviour that prevented a retry connect attempt
  for non-critical SSL errors.
6.Extended $file() to include .path, .name, and .ext properties.
7.Updated code signing certificate.
8.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.
9.Fixed $chan().ibl/iel/iil/iql $inmode status not being reset when
  server returns numeric 482.
10.Added support for IRCv3 batch feature, however, as allowed by the
   spec, mIRC does not delay processing of batched lines.
11.Fixed online timer bug that caused mIRC to freeze once a minute the
   more connected status windows were open.
12.Extended Window menu status window items to include user mode.
13.Fixed /editbox -bNeN selection not being set if the text length
   resulted in auto-resizing of the multiline editbox.
14.Extended ^K color support for indexes 16 to 98.
15.Fixed $cb(N,u) not returning UTF-8 encoded text.
16.Updated libraries to OpenSSL 1.0.2n.
17.Fixed $window().tbtext not returning text for hidden windows.
18.Fixed font dialog not displaying sample text correctly for certain
   fonts.
19.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.
20.Added "Hide away reminders" option to IRC/Options dialog that hides
   repeat away messages in active query windows for ten minutes.
21.Fixed /timer -h bug that prevented a subsequent /timer -h request
   from using the multimedia timer.
22.Changed script editor file monitor to ignore daylight savings offset
   and to check file size changes.
23.Fixed window focus not being set correctly in some contexts when
   mIRC is made the active application.
24.Changed CAP cap-notify support for NEW/DEL so that mIRC no longer
   disconnects/reconnects for most CAP features unless necessary.
25.Fixed $encode() bug that caused it to report "line too long" with
   binary variables and certain combinations of switches.
26.Updated to TagLib library latest fixes.
27.Fixed $encode()/$decode() with e/c switches not handling short/long
   keys correctly.
28.Extended nickname, highlight, display, marker, and styles dialogs to
   support color indexes 16 to 98.
29.Changed JOIN events to no longer restore/activate channel windows
   that already exist when rejoining after a kick/hop/reconnect.
30.Fixed user/level commands, such as /auser, causing gpf with long
   parameters.
31.Extended highlight dialog to show line color.
32.Changed mouse wheel scrolling to scroll by page if this option is
   enabled for your mouse in Windows.
33.Added /savebuf -p switch that strips control codes from saved lines.
34.Extended $width() to support $true/$false parameters.
35.Extended /hload and /hadd to support -mN which creates the table,
   with N slots, if it does not already exist.
36.Extended $cb() to support output to a %var|&binvar as third parameter
   and to return length. If N == -1, stores entire clipboard.
37.Added /bwrite -c switch that chops file after appended bytes.
38.Extended /window -M -tN to allow N = 0 which enables leading text to
   be hidden.
39.Fixed $hotlink(match) bug that did not store nicknames correctly in
   some contexts.
40.Added $timer(N).name property that treats N parameter as timer name
   and returns position.
41.Added /debug -rNoN switch that sets the received and outgoing line
   colors.
42.Changed server dialog to update the connection details of any open
   status windows if you edit a matching server item.
43.Added $fromeditbox identifier that returns $true/$false if command
   or identifier called directly from an editbox.
44.Changed $encode()/$decode() with e/c switches to allow $null
   parameters.
45.Changed /debug colors to support the color 99 to use the default
   color.
46.Added $parms identifier that returns an untokenized $1- for events
   and other command/identifier calls.
47.Extended /splay to enable pause, seek, and resume with wave and midi
   files.
48.Added /fupdate [N] command that sets the display update rate when
   outputting text to windows.
49.Fixed MDI window maximize bug that caused a second copy of mIRC to
   not have a maximized window on startup.
50.Fixed $msfile() gpf when too many files are selected.
51.Fixed regular expression bug relating to \K escape sequence.
52.Added /ignore support for highlight, speech, and tips.
53.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.
54.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.
55.Fixed /window -t  T1 T2 ... Tn bug that caused it to not update
   the display immediately.
56.Fixed UDP server sockets being closed due to WSAECONNRESET error.
57.Fixed $com() not freeing returned dispatch pointers if they were not
   being saved for later use.
58.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.
59.Fixed List Channels dialog file not being set correctly after
   connecting to a different network.
60.Fixed scripts dialog using an invalid folder for new files if a user
   has deleted the folder outside of mIRC.
61.Fixed regex support for UTF-8 parsing and handling (*UTF8) prefix.
62.Added /flash -c switch to clear flash status of all windows.
63.Optimized switchbar in certain contexts when many windows are being
   displayed.
64.Added set/var -p switch to treat value as literal text, including
   quotes and spaces.
65.Added /savebuf -n switch to treat wrapped lines as single line.
66.Changed /join -i so that it will work in an event.
67.Added /join -md switches to set mdi/desktop for new windows.
68.Added /query -mdx switches to set mdi/desktop for new windows and
   to maximize a window.
69.Changed /raw to support @msgtag prefixes internally when parsing
   commands.
70.Changed "Split long channel/query messages" option to handle @msgtag
   prefixes.