just for me to keep track on it in next Miranda versions
MIM 08 will be released soon, and since 1.6.2009 feature freeze for stable 08 branch was declared. Unfortunately some of often requested features weren’t implemented. Here are some features, which, in my opinion, should be definitely addressed during 09 development:
- unicode in paths for file transfers
- unicode in profile path and filename
- unicode in contact search dialogs
- unicode in authorization requests
- unicode in status messages
- all types of authorization events in API (like auth grant, auth deny, auth request etc.) and appropriate sound events
- status change API should be able to set status message together with status change in one event
- in-core support of metacontacts (actually any way of joining of some contacts)
- current folder structure should be revised, because right now I see rather strange set of predefined subfolders that does not fit to my logical approach.
Any comments? Suggestions? Or, maybe, you think I forgot something, or there are more important things to implement?
Update aims mainly to fix broken compatibility with new ActMan (v 0.0.0.6+)
http://vasilich.org/mim/Updater/UseActions/UseActions.zip
version 0.0.0.2
+ added calling of action named “#Autostart” at start of Miranda
* fix for TTB detection
+ Updater support
+ added possibility to insert separators before contactmenuitems and mainmenuitems
* delete “Flags” from DB if =0
+ attempt to unregister all possible controls and erase all owned DB settings for an action before removing it.
* adaptation to new ActMan structures (v0.6+)
Today i will try to explain meaning of all internal (”core”) variables, stripped from latest SVN. You can use all these variables in received files path, and maybe later on – somewhere else in Miranda.
%nick% - nick of current contact (if defined).
%proto% – protocol you are talking to current contact via (if defined). Account name is used when protocol supports multiaccounts.
%userid% - UserID of current contact (if defined). It is like UIN Number for ICQ, JID for Jabber, etc.
%miranda_path% – path to root miranda folder.
%miranda_profile% – path to current miranda profile.
%miranda_profilename% – name of current miranda profile (filename, without extension).
%miranda_avatarcache% – will return parsed string %miranda_profile%\Profiles\%miranda_profilename%\AvatarCache
%miranda_logpath% – will return parsed string %miranda_profile%\Profiles\%miranda_profilename%\Logs
%miranda_userdata% – will return parsed string %miranda_profile%\Profiles\%miranda_profilename%
%appdata% – same as environment variable %APPDATA% for currently logged-on Windows user, but got directly from Windows (that should exclude possibility of hacking it).
%username% – username for currently logged-on Windows user. Same as Environment variable %USERNAME% (see %appdata% above)
%mydocuments% – “My Documents” folder for currently logged-on Windows user.
%desktop% – “Desktop” folder for currently logged-on Windows user.
%xxxxxxx% - all Environment variables that are defined in current Windows session (like %path%, %systemroot%, %allusersprofile%) etc.
All these variables existed in latest SVN when i wrote it, Rev.9314
Today I describe my way of daily using Miranda IM:
First of all – I start MirandaIM from USB Stick – it gives me freedom to use it on every PC with Windows, without any need to synchronize my chat history. I use several languages when chatting, so I have to use Unicode MirandaIM. Moreover, I haven’t seen any PC with Windows 9x last four years, so I don’t have any reason to use ANSI version.
Starting Miranda from USB has one (at least) disadvantage – start time drastically increases. I have profile about 50 Mbytes, and it takes about 15 seconds for Miranda to start (though simple copying of profile file in Explorer takes about 4 seconds); and, though I use dbx_mmap driver, it doesn’t really help to decrease start time.
One of things that disturbing me every time when starting Miranda – need to think about internet connection. So at home I have direct connection (via DSL router, with uPnP), and at work – via corporate proxy. Unfortunately, Miranda cannot read proxy settings from IE in Windows, so I need to go to options – network, and disable/enable proxy settings for all protos. Then I decided to automate it somehow. After some experiments I got what I need: just start Miranda without need to think if it is PC at work or at home. So here is the way I achieved it:
-
we have to start Miranda from batch file, because proxy settings are read only at Miranda start, and if we change proxy settings after all protos are started, then we have to restart Miranda anyway. In this batch file we check where we are – at work or at home. I did it checking hostname of computer. And depending on my defined location I copied appropriate *.ini file to Autoexec*.ini in Miranda folder. (more…)
i made support of TabSRMM ButtonBAr API, so you can add your own buttons to Tab Toolbar to call actions.

It requires TabSRMM 2.2.1.6 + (for now you can get it with MIM nightlies).
Get new UseActions, as always, HERE .
Today I would like to introduce to you the new way to achieve fast access to everyday actions you do in MIM (e.g. copy ID of contacts, insert some predefined text or clipboard content into message input area, read/write any key value in DB, call some services, etc.).
My idea was to have possibility to create “actions”, consisting of one or more subactions. Subactions should run in sequence and be able to exchange parameters between each other.
Once I told this idea to Awkward, creator of famous WaTrack and couple of other useful plugins for MIM. He was impressed of that, and, after some brainstorming, said, that his HotKeys plugin is already able to do similar things. So after some discussions ActMan (Actions Manager) was created. Actually it is a further development of his HotKeys plugin, but slightly reorganized in options, and much more powerful – now it can read/write to/from DB, call MIM services with virtually all types of input parameters, check conditions (IF operator), do simple loops, start applications with calculated parameters, call other actions, open message window for predefined contact, etc.
But Awkward removed configuration of hotkeys from ActMan – we decided that his new plugin will just create actions (it means that it cannot call actions created, so it is a service plugin).
For testing of ActMan I created simple tester plugin, UseActions. Then I extended it, and then extended again. And again… So now UseActions is plugin that make use the power of ActMan. It get list of all actions from ActMan, and makes possibility to call these actions – with menus, toolbar buttons, hotkeys, etc.
Current version of UseActions can call actions via creating of:
- TopToolBar and Clist_modern toolbar buttons
- Menu items (MainMenu, ContactMenu and TrayMeny currently implemented, with naming logic and show/hide logic through variables, root popups in testing phase)
- Core hotkeys
ToolBar buttons and Menuitems get icons, that you can change in icolib (one icon per action). Additional icons for root popups are also configurable in icolib.

Actual version of ActMan you always can get here http://awkward.mirandaim.ru/
Latest version of UseActions plugin I normally upload here http://vasilich.org/mim/UseActions.rar
It should work for MIM 0.7+.
UseActions plugin can also be compiled in ANSI version, but since ActMan is Unicode only, I didn’t even try to build ANSI configuration of my plugin.
Please, test it and leave your comments.
again…
this time – for privates. Some people have troubles to query with other persons which nick started with cyrillic “C”.
Also bugfixes for topmost “Add server” window and Cancel button on channel manager.
and + one feature – now IRC logs all bytes to NetLog – even if connected via SSL.
Link – as always.
Some people told me that even after recent fix for IRC to proper status check for contacts in CList (i did it last week) it sometimes doesn’t work as it should. So after investigating of this issue it came clear that status check doesn’t work properly (to be exact – contact appears online for a part of a second, but then goes back offline) for contacts who has same nick as in our CList, but with another letter cases somewhere in the nick.
Another bug – IRC doesn’t recognize server status answers for IRCOps as they have ‘*’ sign right behind the nick.
So – bugfixed version:
- fixed bug with status discovery for contacts in CList when contact uses different lettercase for nick that we saved it last time we have seen him. Moreover, new nick (reported by server as online) will be written in DB immediately;
- fixed bug with status discovery for contacts in CList when they are IRCOps (i.e. ignore last nick sign if it is ’*').
Special thanks goes to jcc as reporter and analyzer of these bugs.
Please, test it and write comments on it.
http://vasilich.org/mim/IRC.rar
In previous post I talk about small changes in IRC protocol for MIM.
After some additions it has been committed to MIM SVN and available in nightly 0.8.0.4. I post changelog here because there is no word about it in announcement for new nightly:
- + new menu items for Slap, Nickserv info and kill ghost for participants in userlist;
- + new menu items for Nickserv commands in chat log menu;
- + auto request for client version when adding it to clist or when opening private message window for already added contact (set byte “MirVerAutoRequest” in protocol settings in DB to 0 to disable);
- + save client version as MirVer to DB on any version answer from client (useful for FingerPrint plugin);
- + changed “WHOIS” request to get also client’s logon time, and show it in WhoIs window;
- + added 3 numerics recognition for secure connection and codepage (depends on server); shows in field “Other” of WhoIs window;
- * CTCP events are now shown in Server Window;
- * close all dialog windows on Esc;
- * clean shutdown (destroy all created functions and free hooks on shutdown);
- + changed QuickConnect window to enable manual input of server parameters without creating list entry first;
After some testing I found the bug – 2 new UserList menu items for NickServ are disabled. So here is corrected version. after additional testing it will be sent for commiting.
http://vasilich.org/mim/IRC.rar
As i use IRC very often, i decided to continue patching it (some old patches are already in stable branch/dev trunk in Miranda-im SVN).
So, new features for now:
- added contact login time (see WhoIs window)
- added some info about codepage and SSL connect to whois info (field “other”, server dependant)
- added “Slap” menuitem to user menu in userlist (”/slap” alias is called, so if you don’t like slap message – just change that alias in IRC settings)
- from now all CTCP answers should go to network log window instead of current opened window
- when someone joins channel, CTCP VERSION request happens for him. If answer received – then it will be written in DB (and FingerPrint can use it)
Test version is here: http://vasilich.org/mim/IRC.rar