02/02/2000 - mIRC v5.7

Fixes/Additions:
1.Fixed $ord() bug.
2.Corrected parts of help file.
3.Changed identd server behaviour.
4.Fixed custom dialog icons bug in tab control.
5.Fixed Control-Q/N minimizing windows.
6./raw quit now won't trigger the "reconnect on disconnect" switch
  in the IRC options dialog.
7.Fixed bug in custom identifiers where the 255 character was being
  interpreted as a separator.
8.Fixed custom dialogs Tab control display bug.
9.Added network listbox to connect dialog.
10.Fixed "max remotely initiated dcc sends" allowing one more dcc
   than specified.
11.Fixed bug in !nick filename, when filename is an LFN containing
   spaces.
12.Fixed mIRC not remembering minimized state if closed while it
   was minimized to tray.
13.Fixed custom dialog tab control button sizes in "pixels" mode.
14.Added $didwm(name,id,wildtext,N) which returns the number of the
   line that matches wildtext, with the search starting at line N,
   N is optional.
15./identd now saves the settings to mirc.ini.
16.The % helper mode on channels is now recognized on all servers,
   not just on IRCnet servers. Note: this will inevitably cause
   problems with scripts, since % is the %variable prefix.
17.Editor dialog now warns you if files haven't changed when you
   exit the dialog without saving. Also added option to turn this
   behaviour on or off.
18.Can now /clipboard -a to append text to existing text in the
   clipboard.
19.The custom timestamp set in options dialog, messages section, is
   now used for time-stamping all messages/logs/etc.
20.Fixed cursor not being set properly when using Tab key to evaluate
   an item in an editbox.
21.Channels in channels folder are now stored in chanfldr.ini file.
22.The ircx prop MEMBERKEY event is now interpreted as mode +k and an
   on MODE event, and the prop TOPIC event is interpreted as on TOPIC.
23.The "not connected" message displayed for commands that need a
   connection to a server now contains script/line number info.
24.If connected to a server, you can now hold down shift-key when
   pressing OK in Options dialog to set selected server.
25.Added "sort files by nickname into own folders" feature in DCC
   Folders dialog.
26.The "date logfiles" logging option now closes all logfiles with
   dated filenames at 12am and re-opens them with the new date.
27.Invalid table error for custom dialogs now provides more info.
28.Fixed bug in /background command updating mirc.ini incorrectly.
29.Can now specify negative index in $gettok(), eg.
   $gettok(a.b.c.d.e.f,-3,46) returns d
   $gettok(a.b.c.d.e.f,-3-,46) returns d.e.f
30.Fixed bug in $did() not being able to read the "text" control in
   custom dialogs if it had the "center" style set.
31.Extended editbox handling in custom dialogs:

   $did().seltext    returns selected text in an editbox
   $did().selstart   returns select start character in editbox line
   $did().selend     returns select end character in editbox line

   /did -c name id [n] [start [end]]

   This selects line N in editbox, and sets selection to specified
   range of characters.

32.Added option to Messages dialog to strip codes section only if
   there are more than N codes in a messages.
33.Extended $strip(text,burcmo), where m = strip codes according to
   settings in Messages dialog, and o = strip codes using the "only"
   setting in the messages dialog if it is turned on.
34.Can now hold down Control key while copying text in a window with
   the mouse if you want control codes included.
35.Fixed finger server bug, was leaving CR appended to nickname.
36.Added "on top" setting to editor dialog.
37.Fixed bug in DCC Send dialog not displaying file size info properly
   if "hide file extensions for known file types" was turned on in
   windows.
38.Added $sorttok(text,C,ncr) identifier, default is alphabetic sort,
   optional parameters n = numeric sort, c = channel nick prefix sort,
   r = reverse sort.
39.The "search all files" option in the find dialog in editor now
   works when you are replacing text.
40.Added $ini(file,topic/N,item/N), where item/N is optional, and can
   specify N = 0 for total, or item name to see if it exists, etc.
   It replaces $initopic() which is still supported but removed from
   documentation.
41.Added $ctrlenter identifier, returns $true if Control-Enter was
   pressed when entering a message/command.
42.Date/time format spec. now allows TT for uppercase AM/PM, and ZZZ
   for a timezone with GMT appended.
43.Fixed $hotline, now returns the full line where a link occurs, even
   if the line wraps.
44.Fixed $isdir() not working on NT network drives.
45.Fixed /did -f not working in custom dialog init event.
46.Added $didtok(name,id,C), creates tokenized list from list/combo/edit
   box, and /didtok name id C text, adds tokenized list to list/combo/
   edit box. 
47.If "tooltips" are turned off, tooltips won't appear over switchbar
   buttons any longer.
48.Quotes around filenames are now removed before the filename is used
   in $isfile/isdir/file/ini/findfile/finddir/getdir/lines/nofile/nopath
   shortfn/dccignore/dll.
49.Fixed bug in /sockwrite -n only appended an LF instead of CRLF.
50.Fixed /close -cgsf only closing the first window.
51.Fixed nickname highlight bug in dcc chat windows.
52.Right-click on alias/popup/remote/send toolbar buttons now pops up
   quick access menus.
53.Control+L in Editor now opens the Load file dialog, Control+S now
   saves the current file, and Control+H now checks the brackets.
54.Added support for while loops. Repeats a loop while the expression
   in brackets is true. Multiple while loops can be embedded. You can
   use /break to break out of the current loop. You can also use the
   /continue command to jump to the beginning of the loop.

   var %i = 1
   while (%i <= 10) {
     echo 2 %i
     inc %i
     if (%i > 5) break
   }

55.Fixed bug with /filter, was displaying a hidden control in a
   custom dialog when outputting to it.
56.$numtok(text,C) now returns zero if text is empty.
57./if comparions now handle $null values properly. In the case of
   a string comparison $null is treated as an empty string. In the
   case of a number comparison, if either of the values is $null
   the comparison fails.
58.Added $send().secs and $get().secs, returns number of seconds
   that the connection has been open.
59.Added "max cps per user" option to Options/fserve dialog. Allows
   you to limit max cps used by a dcc send to a user in a Fileserver.
   This is also applied to /dcc sends initiated in a remote script.

   You can override this by using /dcc send -lN switch, limits
   transfer speed for a dcc send to N cps. If you specify zero, no
   limit is applied.

   The /dcc maxcps <N> command can be used to changed the Max Cps
   value on the fly.
60.Custom /dialogs created on the desktop can now be minimized. Can
   use /dialog -ie <name> to minimize or restore the dialog.
61.Added /localinfo -uh command, looks up and sets your local info
   settings. The -u switch performs a /userhost lookup, the -h switch
   does a normal lookup.
62.Fixed channel /mode +k bug.
63.Fixed bug with "show whois in active window" feature.
64.Added $did().edited returns $true/$false depending on whether text
   in an editbox was modified. Can reset the modify flag using the
   /did -j switch.
65.Added two colour listboxes to Options/display dialog, the message
   listbox for normal messages, the highlight listbox for messages
   that match your highlight settings.
66.Added $prop property identifier for custom identifiers which use
   properties, eg. $test(value).help, in this case, $prop will return
   the value "help".
67.Can now specify a range in the Ports section of an IRC server
   entry, eg. 6665-7000
68.Added titlebar right-click option in General dialog.
69.Added /if isalpha comparison, evaluates true if the specified
   parameter is all text.
70.Fixed drive a:\ access bug.
71.Installer now sets up support for .chat files in registry.
72.Custom dialogs now allow Id numbers from 1 to 3000.
73.Fixed on NOSOUND event bug.
74.Control+V/Shift+Insert now allow you to hold down the keys to
   paste repeatedly.
75.mIRC now allows you to select the script for a font in the font
   dialog, to support arabic, cyrillic, etc. characters. The script
   selection is stored along with the normal font info in mirc.ini.
76.Added support for Microsoft Agent in mIRC 32bit under win95 or
   greater. I downloaded all of the files on:

     http://msdn.microsoft.com/workshop/imedia/agent/agentdl.asp

   /gload <name> <filename | N | default>
   /gunload <name>

   /gshow <name> [x y]
   /ghide <name>

   /gmove <name> <x> <y> [speed]
   /gsize <name> <w> <h>

   /gtalk -kw <name> <text | <wavefile | text>>
          -k   - think text
          -w   - play wave file

   /gplay <name> <animname | N> [timeout]
   /gpoint <name> <x y>

   /gstop -c <name> [talk play]
          -c   - stops only the current anim/talk instead of all

   /gopts -bieq <name> <on off size pace hide>
          -b   - balloons: <on size pace hide | off>
          -i   - idle effects: <on off>
          -e   - sound effects: <on off>

   /gqreq <on off>
          - turns queuing of messages on or off, default on.

   $agentver   - returns Agent version, 0 if not installed
   $agentstat  - returns 1 if Agent ready, or 0 if busy/speaking

   $agent(name).name, fname, visible, x, y, w, h, ow, oh,
                speed, pitch, idle, effects, active, langid,
                balloon

   name    - the name you gave to this agent
   fname   - the filename of the agent, ie. merlin.acs, or "default"
             if you didn't specify a filename
   visible - returns $true or $false
   x,y,w,h - left/top position, width/height.
   ow, oh  - original width/height
   speed   - speaking speed
   pitch   - speaking pitch
   idle    - if idle behaviour is on or off
   effects - if sound effects are on or off
   active  - if this agent is active/topmost
   langid  - language id of system
   balloon - current setting: on off size pace hide

   $agent(N).char

   char    - returns filename of Nth available agent, if you specify 0
             returns total number of installed agents.

   $agent(name,N).anim, line

   anim    - returns the names of the animations available for playing
             for this agent. If you specify 0, returns the total number
             of animations. If you specify N, returns the name of the
             Nth animation.

   line    - returns the list of lines currently queued to be spoken
             for this character. If you specify 0, returns total number
             of queued lines. If you specify N, returns the Nth line.

   You can also use tags in /gtalk in <text> which may be recognized by
   the text-to-speech engine, these are a few:

   \spd=nnn\      - set speed of spoken text
   \pit=nnn\      - set pitch of spoken text
   \vol=nnn\      - set volume of spoken text
   \chr="string"\ - where string is normal, monotone, or whisper
   \ctx="string"\ - address, email, unknown
   \emp\          - emphasize next word
   \pau=nnn\      - pause speech nnn milliseconds
   \rst\          - reset settings to default

   $notags(text)  - removes the above tags from text, but only if the
                    tags are correctly written as above.

   Notes:
   1. mIRC queues all requests and plays them one after the other
      to ensure that even if you use multiple agents at the same
      time, all messages will be heard, and all agents will act in
      the order that you requested.

      You can turn queuing on/off using /gqreq <on | off> on the
      fly.

   2. You can't load more than one of the same agent, ie. if you
      load Genie, you can't load a second Genie. You can however
      load Genie, Merlin, Peedy, and any other custom characters
      all at the same time.

   3. Looping animations prevent an agent from doing anything else
      until you /gstop the agent. The [timeout] value in /gplay
      allows you to specify a maximum time-limit for an animation
      after which it is automatically stopped, and the agent will
      then perform the remaining queued requests. If you don't
      specify a timeout value, the default is 5 seconds. If no
      play or talk requests are pending, the looping animation
      continues beyond the timeout until there are.

77.The $filename identifier can now be used in the on PLAYEND event
   to refer to the filename that was just played.
78.Added .logfile property to $chan(), $chat(), $query(), and
   $window(), returns logfile name if a log is open for the window,
   otherwise returns $null.
79.Changed channel central dialog, uses a tabbed dialog, and adds
   support for the +e and +I IRCnet channel modes. Also added a
   display section for redirecting channels events.
80.If you have Speech Recognition (SR) software installed, mIRC can
   be made to listen to voice commands by using:

     /vcmd -lc <on | off | sleep>
           -c      - clears the command list
           -l      - lists current commands
           sleep   - ignores commands temporarily

     /vcadd <command1,command2,...>
     /vcrem <command1,command2,...>

   If the SR software matches a word you've spoken to a word in your
   commands list, mIRC triggers the VCMD event:

     on 1:VCMD:<matchtext>:<*/#/?/@>:/echo 3 Recognized: $1-

   The $vcmd(N) identifier returns the Nth item in the voice commands
   list.

   $vcmdver  - returns version of SR software, $null if not installed

   $vcmdstat - returns 0 not available
                       1 currently off
                       2 ignoring commands
                       3 listening

   Notes:
   1. Your SR software may have very large speech files/dictionaries,
      it could take 10 or more seconds for your SR software to load
      or unload, and may be slow while processing your speech, causing
      short pauses in mIRC.
   2. Adding or removing commands can be done on the fly, however if
      your SR software is slow at updating the commands list, mIRC
      has to wait until it finishes.

81.Fixed custom dialogs DBU bug in dialog "size" item, was creating
   dialogs that were 10 or so pixels taller than they should be.
82.If a new window opens while you are in a dialog, eg. script editor,
   the new window no longer takes away the focus from the dialog.

   If you want to force a custom window to take focus, you can use the
   /window -a switch when creating the window.

83.The message highlight section in the Options/IRC dialog now matches
   against whole words, or words enclosed in non-alphabetic characters.
   You can use wildcards *? to make a word match non-whole words.
84./unset now evaluates variables inside [] brackets, this allows you to
   unset variables with dynamically created names:

   test  {
     set %a [ $+ b ] 1
     set %a [ $+ c ] 2
     set %a [ $+ d ] 3
     unset %a [ $+ b ] %a [ $+ c ] %a [ $+ d ]
   }

85./part can now close an open channel window while not connected.
87.Changed behaviour of /disconnect and /quit, can now cancel a connect
   in progress.
88.You can now remove a nick from your Tab Key list with Control-D.
89.Added $mklogfn(filename) identifier, returns the filename format that
   the logging feature uses, $mknickfn(nickname) fixes a nickname for use
   as a filename, and $mkfn(filename), removes invalid characters.
90.You can now prevent a command from being processed as an alias by
   prefixing it with a ! character, eg. /!command etc.
91.Added event: on 1:PONG:echo pong reply: $1-, note: you can't use this
   to intercept /pings to your own nickname, this is used internally by
   mIRC.
92.Can now use $editbox(=name) for dcc chat editboxes.
93.Fixed a bug in sclick event for comboboxes in custom dialogs.
94.Made a change to the way sockets are closed throught-out mIRC.
95.Fixed bug in /did command causing hidden controls to become visible.
96.The "photo" display method of background pictures can now display
   pictures properly regardless of their height/width ratio.
97.The problem with the + character being changed to & in custom dialogs
   is now fixed.
98.Added .stamp property to $chan(), $chat(), $query(), and $window(),
   returns timestamp setting.
99.Added $dbuw and $dbuh, return dbu per pixel width and height.
100.Changed parsing method for most identifiers so that your custom
    identifiers will now work even if they begin with the same letters
    as internal identifiers.

    Directory related identifiers have not been updated, eg. $mircdir,
    $getdir, $cd, etc. since many widely used scripts append text
    directly to them, ie.:

      //splay $file="Select wave:" $mircdirsounds\

    Instead of using the (better) format:

      //splay $file="Select wave:" $mircdir $+ sounds\

101.Removed support for the very old $parm and *N identifiers.
102.Fixed bug in /drawrect, sizing was slightly off. You can now
    also specify negative values for the width/height.
103.Extended "Date filenames" feature to allow you to date filenames
    by day, week, or month. If dated by week, log files begin on days
    1, 7, 14, and 21, and if dated by month, they begin on day 1.
104.Added support for single/double/paragraph line spacing in windows,
    can set default in Options/Display section, and for each window
    via the system menu.
105.Fixed bug in socket-related routines which may have affected IRC
    server connection, DCC Send/Get, and Custom sockets.
106.Changing the desktop/mdi setting of a window no longer makes mIRC
    forget the previously saved window position.
107.Fixed bug where mIRC was leaving tmpN.$$$ files in mIRC directory
    in certain situations.
108.Can now stop a /list on Undernet servers by selecting the "stop
    listing" item in the Channels List window menu.
109.Hotlink feature should be a bit smarter when matching nicknames
    to a link now.
110.$os now recognizes 2000.
111.mIRC now re-adds its icon to the tray if the tray is reset/crashes.
112.Added "copy messages to query" option in IRC dialog; if you're
    talking to a user in the dedicated message window and then decide
    to open a query to them, this copies the conversation you've had
    so far from the dedicated message window to the query window.
113.Can now specify a negative index in token identifiers, eg.

    //echo $puttok(a b c d, e, -2, 32)  =  a b e d
    //echo $instok(a b c d, e, -2, 32)  =  a b c e d
    //echo $deltok(a b c d, -2, 32)     =  a b d

114.$len() now returns 0 if passed an empty value.
115.Added $base(N,inbase,outbase,zeropad,precision) to convert number
    N from inbase to outbase. The last two parameters are optional.
116.Added $bfind(&binvar, N, M), searches a &binvar for a matching
    value, starting from position N. M can be a character value, ie.
    0 to 255, or text. The search is case-insensitive.

    $bfind(&test, 1, mirc)     finds "mirc" starting from pos 1
    $bfind(&test, 5, 32)       finds char 32 (a space) from pos 5
    $bfind(&test, 1, 87 65 86) finds WAV from pos 1

    You can use $bfind().text to force a text search if the search
    text is a number.
117.Sockets now have the "keep alive" setting turned on which should
    help keep a connection alive over extended periods.
118.Ctcp messages are now time-stamped.
119.$date now returns the full four-digit year. $ctime now also assumes
    the year 2000 if you specify a year <= 38.
120.$menu now works in mouse events in menu {} definitions.
121.Added "hide ping? pong!" option to IRC dialog.
122.Windows can now have their own timestamp setting independent of the
    global timestamp setting in the IRC/Messages dialog.

    You can now use /timestamp on|off|default, where default uses the
    global setting.

    You can also set the timestamp format using /timestamp -f [format].

123.Hotlinks now work on Tab-key nicknames that have messaged you in
    the message window.
124.Fixed bug in Display/Windows dialog when changing the MDI/Desktop
    setting for windows.
125.Added $dialog().active property, returns $true if dialog is the
    active window, $false otherwise.
126.Added $longfn(), returns LFN version of a short filename, works
    only in 32bit mIRC.
127.Added /bcopy [-zc] <&binvar> <N> <&binvar> <S> <M>

    This copies M bytes from position S in the second &binvar to
    the first &binvar at position N. This can also be used to copy
    overlapping parts of a &binvar to itself. If M = -1, all of
    the bytes from position S onwards are copied.

    If you specify the -z switch, the bytes in the source &binvar
    that were copied are zero-filled after the copy.

    If you specify the -c switch, the first &binvar is chopped to
    length N + M.

    Also added /bunset <&binvar> ... <&binvar> command to unset the
    specified list of &binvars.

128.Fixed bug with /did -i adding CRLF when inserting into a single
    line editbox.
129.Fixed bug in /dccserver command.
130.Can now use $mid() without specifying the third parameter.
131.Added $appstate, returns minimized, maximized, normal, hidden,
    or tray, to indicate state of mIRC window.
132.Function keys in the message window work all the time now.
133.Made a change to the way $portfree() works.
134.If you try to use DCC Send/Chat/Fserve while they are locked
    in the lock dialog, you now see a lock message.

-

The full versions.txt has become too large to include in the
distribution, so only the version information for the current
version is being included from now on. You can however still
download the full versions.txt file from the mIRC website at
http://www.mirc.co.uk

-

28/02/95 - mIRC v2.1a

First public release.

