mIRC Home    About    Download    Register    News    Help

Active Threads | Unanswered Past 24 hours | Past 48 hours | Past Week | Past Month | Past Year
Scripts & Popups Jump to new posts
Re: Condition "if ()" to check parts of mask Fernet 16/08/25 01:08 PM
Thanks Simo. I'll test t as soon as I can. My main pc is on manteinance now :-P
3 214 Read More
Feature Suggestions Jump to new posts
/write - add switch to create path/directory Epic 16/08/25 09:45 AM

I propose to add a new switch -p for the command /write, which should help to automatically create a directory from the specified path to the file, before a new line of text is written to it. If the directory already exists, then a normal write is performed as if this switch had not been specified.

At the moment, if the directory is missing it returns the error "* /write: unable to open file", after which it is necessary to create the directory manually or with the command /mkdir, which is not always convenient and understandable for a beginner. My idea should help simplify this problem, so that you can simply add a switch to the command /write -p.


Syntax: /write [-p] <filename> [text]

Example: /write -p newdir\folder\file.txt New line text 1
0 31 Read More
General Discussion Jump to new posts
Re: what did these commands do ? RoCk 15/08/25 03:55 PM
I don't know what's going on with that 500000 in the 12th position your n5, but it should be either 1 or 0 (on or off)

The 10th position of your n3 looks correct with 1 (on).
7 435 Read More
Feature Suggestions Jump to new posts
Re: Editable Language Files WarPigs 14/08/25 05:04 PM
So, iv'e created a new german language DLL for mIRC 7.81 (Partly translated with an AI) that can downloaded here. I'll optimize that now with an further review of the dll.
24 23,175 Read More
Scripts & Popups Jump to new posts
Re: script for entropy abi 13/08/25 03:27 AM
Originally Posted by Epic
Here's what the combined code might look like, replace the necessary words and text with what you need:
Code
on *:INPUT:*:{
  if (/* !iswm $1) {
    if ($1 == word1) { say $1 your text $2- | halt }
    if ($1 == word2) { say $1 your text $2- | halt }
    if ($1 == word3) { say $1 your text $2- | halt }
    if ($1 == word4) { amsg $1 your text $2- | halt }
    if ($1 == word5) { me $1 your text $2- | halt }
    if ($1 == word6) { ame $1 your text $2- | halt }
  }
}

P.S. I hope that it is you who is learning, and not AI instead of you.

Thank you your response @epic as I said earlier they have a different script with a different name, which I ask how to combine it without changing the script and you change it if as you do the same
19 1,868 Read More
Scripts & Popups Jump to new posts
Re: Help with bans Mairel 12/08/25 06:46 AM
I didn't realize it came out like that...

It won't let me edit the post anyway, thanks for posting the right one.
33 2,729 Read More
Bug Reports Jump to new posts
mIRC beta Khaled 11/08/25 02:19 PM
The latest beta can be downloaded here and includes the following changes:

Quote
Beta v7.81.1739 changes:
1.Item 9, updated to LunaSVG 3.4.0.
2.Item 10, updated.
3.Item 9, updated to OpenSSL 3.5.2.
4.Item 11, fixed. Some features, eg. Switchbar, were using the
older Microsoft Sans Serif font on Windows 10 onwards when they
should have been using Segoe UI to match the rest of the
interface.
5.Item 12, fixed.

Beta v7.81.1533 changes:
1.Fixed https://forums.mirc.com/ubbthreads.php/topics/273507
Reverted changes to /drawsave.
2.Fixed https://forums.mirc.com/ubbthreads.php/topics/273514
Fixed PCRE configuration file.

Beta v7.81.1502 changes:
1.Item 1, updated. This looks like it is working correctly on XP
and onwards.
2.Item 2, added. The tray tip implementation is based on tips expiring
within a delay period and a maximum queue size. For this feature, the
way tips are ordered/expired had to be changed. For non-permanent
tips, the behaviour should still be identical to previous versions.
3.Item 3, updated. mIRC currently limits itself to the 7.0 SDK for
XP compatibility. But I occasionally test with newer SDKs which can
introduce changes to APIs/structs/etc.
4.Item 4, fixed https://forums.mirc.com/ubbthreads.php/topics/273408
5.Item 5, changed https://forums.mirc.com/ubbthreads.php/topics/273429
6.Item 6, fixed https://forums.mirc.com/ubbthreads.php/topics/273456
7.Item 7, changed. Previously, mIRC was loading the entire dialog from
the language DLL and using it as is. This allowed translators to
size/position controls to fit translated text. Unfortunately, this
lead to issues, eg. where a control style/size/position changes in
a subsequent version, and a translator would need to propagate all
of these changes to their language DLL, and re-test them for newer
releases. This makes updating language DLLs far more difficult.
8.Item 8, significant progress towards a 64bit version.

Note: this beta release is the standard 32bit mIRC that includes
the changes described below. A 64bit mIRC is not being released yet.

All external libraries have been updated to compile as both 32bit
and 64bit. This took some work as the existing solutions were created
and customized over many years for just 32bit builds. As multiple
builds are now needed for the external libraries that mIRC uses,
ie. debug/release 32bit/64bit/ARM64, I did not want to go through
the process of re-applying custom build changes every time
a new library is released. So I re-installed all libraries from
original sources and used their default configs, naming conventions,
paths, and other settings, where possible, and compared all of
these to the older configurations to ensure there were no critical
differences in build options. Most of the Cmake build files still
require tweaks, eg. for XP compatibility, so these have now been
documented per library and automated where possible. This setup
also makes it easier to add ARM64 builds at a later date.

I was then able to compile and test a full 64bit mIRC under Visual
Studio 2017/2022 and different SDK versions for testing. Reviewed
reports from Visual Studio 2022 static code analysis and cppcheck.
Most warnings were false positives but some related to pointers being
stored in INTs which required code changes. Mostly minor cast warning
changes to 180+ files. Repeated and reviewed the above process
several times, focusing on common 32/64 bit porting issues, with
the aim of minimizing code changes and hardening code.

Compiled 32bit/64bit mIRC with Address Sanitizer for testing.

Also tested 32bit mIRC with /largeaddressaware enabled, giving it
access to 4GB memory, and tested on Windows with top down memory
allocation enabled. This feature requires that all external 32bit
libraries, including custom DLLs, are capable of handling the full
32bit pointer range for shared memory, so it will not be enabled
in the 32bit version of mIRC as this could break backward
compatibility. The /largeaddressaware setting is just being used
for local testing.

No crashes or issues so far with various units tests.

Notes:
1) Although mIRC can now run as a 64bit application, it is still
internally limited by INT variables for most features, ie. limited to
two billion users in your notify list, lines in a window, etc. There
are no plans to change this as this limit is far beyond what mIRC
can practically handle in these contexts anyway.
2) For the scripting language, features that store binary data, such
as &binvars, are also limited to INT bytes. This means that the 64bit
is limited to, at most, 2 GB per &binvar. Changing this to an INT64
would require significant code changes, so has been left as it is for
now as I would like a stable 64bit that can be tested against a stable
32bit.
3) The way floating point errors are handled had to be changed
since the 64bit uses SSE2, whereas the 32bit was using IA32-specific
code that had been stable for decades. The code for both 32bit and
64bit has been standardized to SSE2 and to use a platform independent
method of checking for floating point errors for x86, x64, and ARM64
platforms.
4) Custom 32bit DLLs that currently work with the 32bit mIRC will
need to be updated to 64bit to work with the 64bit mIRC.
5) Performed more tests with mimalloc and the 64bit version. This may
be enabled in the 64bit for testing in the future.

9.Item 9, updated. The OpenSSL v3.0.17 branch is LTS to September 2026,
however, I tested OpenSSL v3.5.1 and this seemed to work without any
issues, and did not require code changes, so have decided to change
to it for LTS to 2030.
10.Switched from Windows 10 to 11 for development machine, so all of my
testing now takes place on Windows 11, with limited testing on VMs
for other Windows versions.

Changes:
1.Updated local host look up method to use a non-deprecated API.
2.Added $tip() support for delay of -1 to indicate a permanent tip
that does not expire until manually closed.
3.Updated $input() to size dialog correctly in newer versions of the
Windows SDK.
4.Fixed $urlget() crash bug when credentials are passed in URL.
5.Changed numeric 650/651 support to handle InspIRCd not sending 651
End of Services Messages numeric.
6.Fixed handling of swapped mouse buttons in different contexts.
7.Changed the way that dialogs are loaded from language DLLs. Only
the text in a dialog is now used, as opposed to loading and using
the entire dialog.
8.Updated all external libraries to support compilation as both 32bit
and 64bit, in preparation for a future 64bit release and possible
ARM64 support. Updated all routines to use 32bit/64bit compatible
types, performed static code analysis, compilation and testing under
different Visual Studio versions, SDKs, and platform toolsets,
focusing on common 32/64 bit porting issues, with the aim of
minimizing code changes and hardening code.
9.Updated libraries to LibZip v1.11.4, LunaSVG v3.4.0, and TagLib
v2.1.1. Also updated from the OpenSSL v3.0.x branch to v3.5.2.
10.Updated CA root certificates cacert.pem file.
11.Fixed features that were using the wrong default GUI font under
Windows 10/11.
12.Fixed various Aero theme bugs relating to Windows display scale
and text size options.
1 440,779 Read More