Changes list

Added ability to include few script files by JMC itself. Files commonlib.scr and settings/<profile>.scr is loded by default (if exists). Besides of that there is a list of additional files that will be loaded after reload. List can be changed in two ways:

  • #use <filename>. Filename is set relative to settings folder. This command adds a file in the list of files which will be loaded at scripts reload. You may remove a file from the list by #unuse [<name>] command. If you omit parameter, the list of script files will be shown. List is kept in .set file as the sequence of commands #use.
  • Through a tab "Script files" in dialogue window Options→JMC Objects. Here, except for adding and removing files, you can change the order in which script files will be loaded.
#message command has been changed. #message uses OFF now can turn off messages from #use and #unuse commands.

#reloadscripts command was added for reloading of scripts directly from a command line

Mouse wheel
Mouse wheel support added. Now when scrolling with Ctrl main window will be splitted and scrolled by page like PageUp/PageDn buttons hit. If scrolling with Shift or Alt only one line will be scrolled.

Added built-in read-only variables $YEAR, $MONTH, $DAY, $HOUR, $MINUTE, $SECOND for date/time handling, and $INPUT for getting contents of command line.

Perl Compatible Regular Expressions updated to 5.0.

Option "leave last token" really leaves only one (first one) word in command line. After that option "clear one token" will work and clear command line if there is only one word in the line. This won't work though if there is a space or smth after word.

Shift+Enter, Ctrl+Enter
Shift+enter will always save command line and select it.
Ctrl+enter will always clear command line.
These rules work before "clear input" and token rules.

Status bars... will refresh every second.

ttcore messages
ttcore messages can be tuned now. You can set path to language file and it's section on 'Options→Setup...→Profile' page. The file is standard INI file and sections are of one format. Key is 'str%d' where %d is message number. You can see default values in English section of the file.

Colors dialogue
Added 'restore defaults' button

Buffer copying
Buffer won't be cleared if just clicked on ansiwnd and selected nothing.

Added 9 extra output windows and commands for handling:

  • #woutput <wnd> [color] <text>  —  puts text in wnd (texts can have ANSI codes or color set).
    Script engine analogue: Jmc.woutput(wnd, text [, color]);
  • #wlog <wnd> <file> [append|overwrite|html]  —  creates log for wnd; rules are the same as for #log;
  • #wshow <wnd> [toggle|show|hide]  —  show/hide the window. Undocked showed non-hidden closed window is count like shown;
  • #wname <wnd> [wnd_name]  —  sets new wnd title;
  • #wdock <wnd> [disable]  —  disables/enables wnd docking;
  • #wpos {wnd} {x} {y}  —  Undocked window will always fly here. The only way to make the window fly at one place.
Wnd 0 is oldstyle output window. others are from 1 to 10 Method Jmc.woutput() also can be used in scripts.

#logadd <string>
Adds string to main log

Disables logging a line (used in actions)

Sets focus on JMC window

Added #quit command and Jmc.Quit() method. Just imitates Fil→Quit click.

#system <command line> executes command and redirects process output into JMC main window (just like /system command in MMC). #ps (#tslist) shows a list of executed processes and their PID. #terminate (#tskill) <pid>|all|last closes active processes.

Added command #run <command line> for running applications and method Jmc.Run(cmdfile, cmdparams)
It's not CreateProcess, it's ShellExecute, if you understand what i mean.

JMC Objects dialogue now has substitutions page.

Now hotkeys are grouped too.
#hotkey command now has following syntax: #hot {key code} {action} [group]. 'default' is default group.

#play <wav file> - plays wav

Now supports else block
#if {conditions} {then}[ {else}]

#loop, #<num>, #break, #pinch, #tmlist
##<num>, #loop  —  now has [:delay] parameter. delay is in ds.
##<num>[:#<delay>]  —  1..num cycle.
#loop {#<num>[,#<num2>][:#<delay>]}  —  with 2 parameter set, num..num2, else num..0 cycle.
##<num>, #loop if using delay use also built-in 'cycle set's.
#break [all]  —  first call breaks cycle set, second kills.
#abort [all]  —  kills set.
#pinch (#resume) [all]  —  con