更新日誌 |
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 URIs. 6.Added hotlink parsing of URIs 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. |