mIRC Home    About    Download    Register    News    Help

Active Threads | Unanswered Past 24 hours | Past 48 hours | Past Week | Past Month | Past Year
Bug Reports Jump to new posts
mIRC beta Khaled Yesterday at 01:49 PM
The latest beta can be downloaded here and includes the following changes:

Quote
Beta v7.83.1573 changes:
1.Item 21, fixed gpf bug.
2.Item 26, updated.
3.Item 27, fixed https://forums.mirc.com/ubbthreads.php/topics/273809
4.Item 10, Microsoft has renamed "Trusted" to "Artifact" signing.

Beta v7.83.1558 changes:
1.Item 1, added. Required changes to how optional text is parsed in
custom dialogs. Also required changes to the (optional) feature
that is used by all dialogs.
2.Item 2, updated. A single secure RNG function has been created that
attempts in this order: BCryptGenRandom(), CryptGenRandom(), and
RtlGenRandom(). There are many online discussions about these APIs,
how they work on different versions of Windows, etc. BCryptGenRandom()
is the current recommended method, CryptGenRandom() is a deprecated
method, and RtlGenRandom() works on XP.
3.Item 3, fixed. This was resulting in a wave file being left in the
Windows Temp folder each time mIRC exits.
4.Item 4, changed.

The standard editbox performs better than riched20.dll at font
linking/fallback on Windows 7 onwards. mIRC did, at one point, switch
to using msftedit.dll, which is a newer richedit control, but this
was reverted in a subsequent release due to some users experiencing
backward compatibility issues.

The reason mIRC started using the richedit control was because 1) it
allowed more than 30k of text, which used to be a limitation of
standard editboxes, and 2) it handled Unicode characters better.
Technically, mIRC could switch back to using a standard editbox
except that richedit has one really useful other feature: undo
history. This beta is now using the more modern msftedit.dll
again for testing.

5.Item 5, fixed. This only happens if richedit editboxes are not
being used.
6.Item 6, updated. Experimental.

Added a new switch for blowfish and AES encryption. The number of
single-letter switches was running out, making it difficult to add
future ciphers/options, so has been changed to use named options.

The newer blowfish implemention is not compatible with the older
one because it:

1) Allows the use of both salt and iv, requiring changes to the
way these are applied
2) Performs many checks for incompatible switches/parameters

The older $encode()/$decode() blowfish has been left in place for
backward compatibility with scripts that use it but will no longer
be documented.

Openssl.exe and Perl's Crypt::CBC were used to test combinations of
options + inputs/outputs.

7.Item 7, updated.
8.Item 8, fixed https://forums.mirc.com/ubbthreads.php/topics/273726
9.Item 9, changed https://forums.mirc.com/ubbthreads.php/topics/273732
10.Item 10, updated.

The DigiCert code signing certificate was up for renewal. Due to
the high cost + signing now requires a Token/HSM, tested out
Microsoft's Azure Trusted Signing. Setting up Trusted Signing is...
arduous. Thankfully, several online guides made the process simpler
and it seems to be working. Notes:

1) Newer versions of signtool.exe, which are needed for Trusted
Signing, will not allow use of SHA1, which is required for XP. mIRC
has been dual signed with SHA1 and SHA256 for many years. This means
that, from this point on, mIRC will only be signed with SHA256.

2) Azure issues Trusted Signing certificates with very short
validity, so you'll notice that the Valid From/To date for the
certificate is only three days long. The validity of the signed exe
depends only on the timestamp counter signature which verifies
that the certificate was valid at the time of signing.

11.Item 11, updated.
12.Item 12, fixed https://forums.mirc.com/ubbthreads.php/topics/273753
13.Item 13, fixed https://forums.mirc.com/ubbthreads.php/topics/273777
14.Item 14, updated.

See the IRC URL draft at:
https://datatracker.ietf.org/doc/html/draft-butcher-irc-url-04

The fix in v7.55 for CVE-2019-6453 prevents the use of a channel
password after the channel name, so the key= URL parameter is
now used for this.

Also, some browsers now actively block opening some URL types with
some port numbers, ie. specifying :6667 after an address will
not work, so a port= URL parameter has been added.

Also added support for:
1) isserver/isnetwork: if isnetwork is specified, mIRC will not try
to connect if a matching group name is not found in servers.ini.
2) ischannel/isuser: if isuser is specified, mIRC will open a query
window to that user on connect and perform a /whois which is shown
in the query window.
3) channel name: if not prefixed with a known channel prefix ie.
#&+%! mIRC will prefix the name with #.
4) Support for IPv6 addresses enclosed in [] brackets.

The parser can be tested by enabling Chat links in the Options/IRC
/Catcher dialog and then using /run with various combinations of
parameters, eg.:

/run irc://user:pass@test.org:7001,isserver/#test,ischannel?key=test&port=1234
/run irc://EFnet,isnetwork/test,isuser

If a user/pass/port is specified, these will over-ride any settings
found in servers.ini for a matching network/server.

The old link request dialogs have also been updated. mIRC will now
decide whether it needs to open a new server window based on your
currently open status windows/connections.

15.Item 15, updated.
16.Item 16, fixed.
17.Item 17, updated.
18.Item 18, fixed.
19.Item 19, added.
20.Item 20, updated. It appears that irc.ircnet.com is now the official
address for connecting to an open server.
21.Item 21, fixed.
22.Item 22, added.
23.Item 23, fixed https://forums.mirc.com/ubbthreads.php/topics/273804
24.Item 24, changed.
25.Item 25, changed. Tested on XP to 11.

Changes:
1.Added custom dialog editbox option 'optional' for grayed out optional
text indicator. If followed by "quoted" text, this is used as the
optional text.
2.Updated all features that use secure RNG to standardize on a single
function that chooses between the best available method for the
Windows version being used.
3.Fixed DirectShow temporary wave file not being deleted on exit.
4.Changed editbox in Script Editor and Status/Channel/Query windows to
use the msftedit.dll richedit control editbox for improved Unicode
support.
5.Fixed standard editbox displaying blue line under editbox on Windows
11 in Script Editor.
6.Added $encode()/$decode() switch 'k' to support encryption using the
format:

$encode(&var,k,options,%key,%salt,%iv)

where options can be a combination of:

bf-cbc | bf-ecb | aes-cbc | aes-ecb | aes-gcm
salt text | binvar
iv text | binvar
header none | salt
hash md5 | sha256 | pbkdf2 iterations
padding none | pkcs7

For example, to use a binary variable, mime encoding, blowfish, cbc,
random salt, iv, and pbkdf2:

$encode(&var, bmk, bf-cbc iv hash pbkdf2, %key, %iv)

Notes:
1. For backward compatibility, the old $encode()/$decode() blowfish
support has been left in place but is no longer documented.
2. Salt and iv must be the correct length for the encryption being
used, ie. salt 8 and iv 8 characters for blowfish, and salt 8 and
iv 16 for AES. This is different from the older method that
zero-extended/chopped salts/ivs of the wrong length.
3. Hash, the key derivation method, can be md5, sha256, or pbkd2
for blowfish, and pbkdf2 for AES. For pbkdf2, an iteration count
can be specified (the default count is 10000 for OpenSSL
compatibility).
4. If a salt/iv is not specified a secure random salt/iv is
generated.
5. Incompatible/invalid combinations of parameters/switches will
halt a script and report an error, unlike the older method.

7.Updated SSL certificate dialog to include OpenSSH fingerprint and
extended $sslhash() with .ssh property.
8.Fixed $did().visible state not being set correctly for custom dialog
icons.
9.Changed $urlget() to retry a connection without compression in the
event of a WinINet decode error.
10.Updated code signing certificate to use Azure Artifact Signing.
11.Updated CA root certificates cacert.pem file.
12.Fixed Scripts Editor More dialog editbox display bug when in dark
mode.
13.Fixed menubar display bug when in dark mode and restoring mIRC from
its tray icon.
14.Updated irc/ircs link parser to support features in the IRC URL
draft specification.
15.Updated OpenSSL library to v3.5.5 that includes RCE fix.
16.Fixed $crc() and $crc64() not accepting not allowing a $null
parameter like other hash identifiers.
17.Updated ADA IDNA library to v0.4.0.
18.Fixed hotlinks not handling user@ipv6 address format.
19.Added hotlink support for more prefixes, such as signal, slack,
spotify, steam, viber, and whatsapp.
20.Changed IRCnet default server to irc.ircnet.com due to issues
with open.ircnet.net. mIRC will automatically update servers.ini
if it includes the old server.
21.Fixed /server -a not preserving existing entries codepage if not
specified as a parameter.
22.Extended most features/identifiers to support sha224.
23.Fixed XP/Wine gpf bug when older file dialogs are used to select
a file.
24.Changed irc/ircs links support so that, if enabled in the Options
Catcher dialog, mIRC in portable mode will add irc/ircs links
support to the registry on startup and remove it on exit.
25.Changed how mIRC handles signout/shutdown on Windows 11 to resolve
possible issues with not cleaning up/saving settings on exit.
26.Updated libraries to TagLib v2.2 and Zlib v1.3.2.
27.Fixed Address Book nick colors "idle time" display bug.
1 454,429 Read More
Bug Reports Jump to new posts
Re: Address Book / Colors Khaled Yesterday at 09:29 AM
Thanks for your bug report. This issue has been fixed for the next version.
1 52 Read More
Bug Reports Jump to new posts
Re: Wine Script Editor Select File Dialog Khaled 15/02/26 10:16 AM
Thanks for your bug report. I was able to reproduce the issue with the file dialog under XP/Wine (which need to use the older file dialogs). This has been fixed for the next version.

As for the appearance of the About dialog, and probably other dialogs, in Wine: this is probably due to not having the correct fonts installed. You will need to use Wine prefixes to install standard Windows fonts. I cannot remember for sure but I think an important one is Tahoma. Note that you may have difficulty with some fonts as Wine download/install fails with some of the font packs.
1 103 Read More
Bug Reports Jump to new posts
Re: update install 'bug'? Khaled 15/02/26 09:50 AM
Thanks for your bug report. I have not been able to reproduce this issue here so far. Which version of Windows are you using? Are you able to reproduce the issue with a specific set of steps or installer options? I tried various combinations of options here, including portable mode.
1 86 Read More
Feature Suggestions Jump to new posts
Line shading RoCk 14/02/26 09:08 PM
Could you add this option for custom windows, too? Maybe a switch for the /window command. Thanks!

5.Added Line shading option to Display/Options dialog that shades
alternate lines. Also added a system menu Shading option for
per-window settings.
0 49 Read More
Bug Reports Jump to new posts
Re: $iif() bug or? Wims 01/02/26 05:09 PM
Quote
I don't really want to waste my time changing everything because someone chose that the correct syntax should be like this (which I think the given option didn't improve scripting at all) instead of maybe creating something new. And now I'm afraid that in the future someone will suggest something again, and the author will change the option without considering that it might break existing scripts.
Your reaction is typical and is unfortunate.
Khaled has been careful and tried very hard, over the years, not to break backward compatibilities, quite successfuly in fact.
But doing so come with a very high price of preventing the scripting language from evolving correctly for people who wanted to see it evolve. Almost any of the backward compatible change are about preserving 'incorrect' (scripters knew what they were doing is incorrect but kept doing it instead of reporting it as a bug) behavior just to prevent older scripts from breaking. Which means adding layer of layer of unecessary code to keep the support for weird stuff (exactly like this one). Which ultimately means a lot of useless bloat in the code, meaning that 1000 if statements are checked for various thing instead of 1. This makes the language slower, and impossible to maintain/evolve and I've been fighting hard against Khaled to force him to break these compatiblities for the language to be faster and possible to enhance. While the language doesn't need to be enhanced much structurally speaking, having thousand of lines to change/maintain instead of 500 ultimately makes Khaled warry of doing changes which sounds easy on the surface.

In this case, one might be using something like this:

if (%prefix == !) var %com msg $chan
else var %com msg $nick
$iif(%somevar,%com = param1,%com = param2)


and expecting the command 'msg $chan = param1' to be executed if %prefix equals ! and if %somevar is *set*, which is ENTIRELY how mirc scripting works, there's no debate about this, but it's not hard either to understand while someone less experienced with the language would want %com = in that $iif to be seen as a variable assignment because that would be starting the line and starting a line with such fomat DOES a variable assigment. For that I blame the help file for not explaining how mirc scripting is supposed to work as a whole, but the language is meant to be simple and easy to access so the help file is always too simple on purpose.

So rest assured that Khaled is extremely considering whether or not to break compatiblities (aka to break scripts or not) and almost always goes against breaking them, but this case is just reaching a limit where the behavior goes against a fundamental rule of the scripting language.

Let me finish on this note, yes it's great that 20 yo scripts are still working without a change, but does that compare to having no new script written in general nowadays because of what I've explained above?
5 625 Read More
Scripts & Popups Jump to new posts
Re: I need help TECO 27/01/26 07:53 PM
Thank you Epic for your help wink
8 1,127 Read More
mIRC Help Jump to new posts
Re: Font size and font pick StGeorge 27/01/26 02:27 AM
Thanks but the only font offering under View in the mIRC client is Fixedsys and sizing is 5pt or 8pt ?? Why wouldn't there be larger sizing and different font types available ?
5 3,466 Read More
mIRC Help Jump to new posts
Re: Update / Custom install issues Wims 26/01/26 03:24 PM
There are two install types:

old : everything is installed in the same directory, your main setting file (mirc.ini) will be in the same directory as mirc.exe

new : mirc.exe is installed into the install directory you specify, but your setting/data are stored into the appropriate folder for the OS, which is the 'appdata' folder.

You can force an old install type by having a mirc.ini file in the install folder, which I don't believe is how you installed.

If your 7.58 was a 'new' install type, which I believe is the case, then your setting were stored in the appdata folder.
When you did the install of 7.83 in the new directory, a 'new' install type, it may have overwritten the file in the appdata, I'm not sure about that.

Inside mirc, you can type into the editbox //echo -ag $mircexe -- $mircini and if they point to the same directory, you have an old install, otherwise a new (it's possible to have a different directory and still have an old install but this is quite custom and unlikely to be your case). That's for identifying the type of install you have.

After identifying the type of install, you can search for a file "mirc.ini" from C:\ and it should find only one or two files, assuming you haven't installed mIRC other than that. If you find one and open that file, you will be able to tell it's your old mirc.ini file because it will have a lot of data compared to a new file from a fresh install, even if you added/edited back the option on the new install.

If you can find your old mirc.ini file with the above method, then check the folder in which that file is located.
Unfortunately I have the feeling you won't find your old setting (you did not state if you can get your old setting by running the 7.58 mirc.exe), but if you do, you can post a reply here and we can help further.

mIRC does not need to be installed in C:\, it can be installed anywhere you can read and write to. Newer version of windows ensure that program can write to their setting files by placing them in that 'appdata' folder while files which don't require modification (.exe and some others) are placed in the 'destination' folder, which is why mIRC followed this recommendation with the new install type, while letting you have everything in the same place if you want that, with the old install type.
1 219 Read More