Please enable JavaScript to view this site.

Navigation: » No topics above this level «

Whats New in Version 34

Scroll Prev Top Next More

Take Command 34.0:

 

Many performance and security optimizations.

 

Take Command is using a new version of the GUI framework.

 

Take Command has added Windows 11 light and dark themes.

 

Take Command has more dark mode support, including dark scrollbars when using a dark theme.

 

 

TCC:

 

Many performance and security optimizations.

 

TCC now supports wide Unicode characters (including surrogate pairs) everywhere.

 

TCC now maps executables that it finds in the PATH, to speed up finding them on subsequent execution. The map contains the .exe filename and the full path+name retrieved from the PATH search. The map is specific to each shell, and is not saved / restored when a shell exits and restarts. The MAPEXE command (see below) provides access to the mapped executables if you need to display / add / modify / delete entries. Executable mapping is invisible to the user, and it is unlikely that anyone other than administrators or advanced users will need to (or want to) use MAPEXE. If you have a short PATH, a fast SSD, no PATHEXT or executable extensions, and you aren't loading small executables repeatedly (i.e., in a loop) you probably won't perceive a significant performance difference.

 

TCC has an embedded SQLite 3.47.1 to support various internal commands, variables, and functions. This will be be used for new variables, functions, and commands in future versions.

 

If a filename begins with $ and ends with $, TCC will first look to see if the file exists. If not, TCC will remove the enclosing $'s and see if the file exists. If it does, TCC will convert it to a WSL path (like the @WSLPATH variable function, but easier to type). For example, if your current directory is d:\foo:

 

grep $myfile.dat$

 

will be translated to:

 

grep //mnt/d/foo/myfile.dat

 

You can enable / disable the filename translation with the WSLPath=YES|no directive in TCMD.INI.

 

All of the TCC file handling commands that support ranges (for example, DIR, PDIR, TREE, COPY, MOVE, etc.) now support fuzzy filename matching using Levenshtein Distances if the filename begins with two asterisks (**filename). The Levenshtein Distance between two words is the minimum number of single-character edits (insertions, deletions or substitutions) required to change one word into the other.

 

The default Levenshtein Distance is 3; you can change the default with the LVSDistance .INI directive (see below). You can specify the maximum distance to use with an individual command with a new command option:

 

/LVS=n

 

where n is the maximum distance to match. If you do not use the /LVS option, the maximum distance will default to 3. For example, if you have three files:

 

bubbles

babble

bobble

 

Then:

 

dir **babble

 

will return all three (babble has a distance of  0, bobble a distance of 1, and bubbles a distance of 2). But:

 

dir /lvs=1 **babble

 

will only return:

 

babble

bobble

 

You cannot combine fuzzy name matching with regular expressions or the * ? [...] wildcards.

 

The Oniguruma regular expression library has been updated to version 6.9.10. This includes support for Unicode 16.0, and the *SKIP control verb.

 

 

IDE / Batch Debugger:

 

Many performance and security optimizations.

 

The IDE is using a new version of the GUI framework.

 

The Scintilla edit control has been updated to version 5.5.4.

 

The Lexilla syntax coloring control has been updated to version 5.4.2.

 

The "Save to HTML" option now saves the font name, point size, and foreground + background colors (including the syntax coloring).

 

 

TCEDIT:

 

Many performance and security optimizations.

 

TCEdit is using a new version of the GUI framework.

 

The Scintilla edit control has been updated to version 5.5.4.

 

The Lexilla syntax coloring control has been updated to version 5.4.2.

 

The "Save to HTML" option now saves the font name, point size, and foreground + background colors (including the syntax coloring).

 

 

Help:

 

The help system is using a new theme and a new (much faster) HTML / CSS rendering engine.

 

 

New TCMD.INI Directives:

 

CDSpell=n - Autocorrects CD & CDD directory name misspellings. If the specified directory name is not found (and doesn't contain wildcards), TCC will look for a match with a transposed character, a missing character, or an extra character. If the total number of transposed / missing / extra characters is <= n, TCC will display the matching directory name and switch to that directory. You can set the CDSpell directive in the OPTION command on the "Command Line" page.

 

LVSDistance=n - Set the maximum Levenshtein Difference (aka edit distance) for fuzzy filename matching. The default value is 3.

 

 

New Internal Variables:

 

_bttime - Date/time of last BTMONITOR event

 

_eventtime - Date/time of last EVENTMONITOR event

 

_firewiretime - Date/time of last FIREWIREMONITOR event

 

_nettime - Date/time of last NETMONITOR event

 

_outputdebugtime - Date/time of last DEBUGMONITOR event

 

_powertime - Date/time of last POWERMONITOR event

 

_processtime - Date/time of last PROCESSMONITOR event

 

_servicetime - Date/time of the last SERVICEMONITOR event

 

_sqlite - The version of SQLite included in TCC (for example, 3.47.1).

 

_usbtime - Date/time of the last USBMONITOR event

 

 

Updated Variable Functions:

 

@BPEEK - added an optional fourth parameter +, which indicates that the value to read is a signed number.

 

@BPOKE - added an optional fourth parameter +, which indicates that value is a signed number.

 

@EMAIL - added support for upper case & mixed case.

 

@PID[name,+] - Is much faster if you aren't using wildcards or paths in the file name.

 

 

New Variable Functions:

 

@DLLTYPE[dllname] - like @EXETYPE, but returns the type of a DLL.

 

Code

DLL type

0

Unknown

6

Win32 GUI

7

Win32 console

9

Windows x64 GUI

10

Windows x64 console

 

@LVS[string1,string2] - return the Levenshtein Distance for the two strings.

 

@WCWIDTH[string] - return the width of the string in columns. @WCWIDTH supports double-width Unicode characters, including surrogate pairs. It also supports zero-width characters.

 

 

Updated Commands:

 

ACTIVATE

 

Added the CENTER option to the command dialog.

 

ASSOC

 

/Pn - the /P(ause) option has an optional argument n that specifies the number of seconds to wait for a keystroke before continuing.

 

CD / CDD

 

If the CDSpell directive is set in TCMD.INI, TCC will autocorrect CD & CDD directory name misspellings. If the specified directory name is not found (and doesn't contain wildcards), TCC will look for a match (on the last pathname component only) with a transposed character, a missing character, or an extra character. If the total number of transposed / missing / extra characters is <= n, TCC will display the matching directory name and switch to that directory.

 

You can set the CDSpell directive in the OPTION dialog on the "Command Line" page.

 

CLS

 

Added a command dialog for CLS.

 

Added support for the COLOR / CMD.EXE hex color specification:

 

CLS bf

 

In this syntax, b is a hexadecimal digit that specifies the background color and f is a hexadecimal digit that specifies the foreground color.

 

COLOR

 

Added a command dialog for COLOR.

 

/A - change the text color of the entire console buffer

 

DIR

 

/32 - show a » before 32-bit module names (EXE's and DLL's). Only supported with the default single column & full info display (i.e., no /B, /W, /2, etc.).

 

DIRENV

 

Changed to more closely follow the Linux behavior. When you change directories, TCC will start at the root of the new directory and scan to the subdirectory looking for .envtc files. So if you have .envtc files in one or more of the parent directories, they will be processed as well as any .envtc in the new directory. (The priority is top-down, so you can specify variables to be removed that were defined in a parent directory.)

 

DIRHISTORY

 

/E"regex" - only display lines that match the regular expression, or if combined with /R, only save lines to the directory history that match the regular expression. /E"..." has been added to the DIRHISTORY command dialog.

 

/Tn has been added to the DIRHISTORY command dialog.

 

DIRS

 

Added a command dialog for DIRS.

 

FSEARCH

 

FSEARCH will read from STDIN (i.e., usually a pipe) if you don't specify path / filename. For example:

 

dir /s | fsearch /t"file47"

 

Added support for searching the CLIPn: and TMPn: pseudo-devices. For example:

 

dir /s | tmp5:

fsearch /t"file47" tmp5:

 

GOSUB

 

The optional subroutine filename now supports home directories, directory aliases, shell folders, extended parent directories ("..."), URLs, and UNCs.

 

HEAD

 

/E"regex" - only display lines that match the regular expression. /E"..." has been added to the HEAD command dialog.

 

/L - number the lines.

 

/L0 - number the lines, but don't number blank lines.

 

HELP

 

/I"string" - Open the help index and search for the specified string.

 

/H"string" - Open the help search pane and search for the specified string.

 

HISTORY

 

/E"regex" - only display lines that match the regular expression, or if combined with /R, only save lines to the history that match the regular expression. /E"..." has been added to the IHSTORY command dialog.

 

INKEY

 

/C can now be combined with other arguments.

 

INPUT

 

/C can now be combined with other arguments.

 

KEYSTACK

 

Added a command dialog for KEYSTACK.

 

PEE

 

/E"regex" - only output lines that match the regular expression.

 

/Unicode=[UTF-16LE | UTF-8 | ASCII] - specify the input encoding. The default is the current TCC output encoding.

 

PIPEVIEW

 

/E"regex" - only output lines that match the regular expression. /E"..." has been added to the PIPEVIEW command dialog.

 

/Unicode=[UTF-16LE | UTF-8 | ASCII] - specify the input encoding. The default is the current TCC output encoding.

 

RD

 

Added /Nj (don't follow junctions) to the command dialog.

 

RECYCLE

 

Added a command dialog for RECYCLE.

 

RESTOREPOINT

 

Added a command dialog for RESTOREPOINT.

 

START

 

/Env - Starts the new process with the default startup environment for the current user.

 

/P - Starts the new process suspended. Use %_startpid and PRIORITY to resume the process.

 

TAIL

 

/E"regex" - only display lines that match the regular expression. /E"..." has been added to the TAIL command dialog.

 

/L - number the lines.

 

/L0 - number the lines, but don't number blank lines.

 

TASKEND

 

Added a command dialog for TASKEND.

 

TASKLIST

 

The /D (display modules) option will now show a » before 32-bit module names (EXE's and DLL's).

 

TEE

 

/E"regex" - only output lines that match the regular expression. /E"..." has been added to the TEE command dialog.

 

/Unicode=[UTF-16LE | UTF-8 | ASCII] - specify the input encoding. The default is the current TCC output encoding.

 

TIME

 

Added a command dialog for TIME.

 

TIMER

 

Added a command dialog for TIMER.

 

TREE

 

/32 - show a » before 32-bit module names (EXE's and DLL's). Must be used with the /F option.

 

TS

 

/E"regex" - only output lines that match the regular expression.

 

/Unicode=[UTF-16LE | UTF-8 | ASCII] - specify the input encoding. The default is the current TCC output encoding.

 

TYPE

 

/E"regex" - only display lines that match the regular expression. /E"..." has been added to the TYPE command dialog.

 

/Q - Do not display a header for each file. This is the default behavior, but an explicit /Q may be needed to override an alias that forces /V.

 

/V - Display a header for each file.

 

VDESKTOP

 

Added a command dialog for VDESKTOP.

 

WATCH

 

Added a command dialog for WATCH.

 

/Qn - timeout WATCH after n seconds. The timeout is checked before each run; it will not interrupt the app while it is executing.

 

WHICH

 

WHICH now recognizes the pluginname$command format when searching for plugin commands.

 

WINDOW

 

Added the CENTER option to the command dialog.

 

WINSTATION

 

Added a command dialog for WINSTATION.

 

XHISTORY

 

Added a command dialog for XHISTORY.

 

XSORT

 

Added a command dialog for XSORT.

 

Y

 

Added a command dialog for Y.

 

/E"regex" - only output lines that match the regular expression.

 

/Unicode=[UTF-16LE | UTF-8 | ASCII] - specify the input encoding. The default is the current TCC output encoding.

 

 

New Commands:

 

MAPEXE

 

TCC now saves a map in memory of executables that it finds in the PATH, to speed up finding them on subsequent calls. The map contains the .exe filename and the full path+name retrieved from the PATH search. The map is specific to each shell, and is not saved / restored when a shell exits and restarts. The MAPEXE command provides access to the mapped executables if you need to display / add / modify / delete entries. This command is not necessary for normal use; it is intended for advanced users and administrators.

 

The syntax is:

 

MAPEXE [/Pn /A /D /F] command [pathname]

 

/Pn - Pause after displaying a page. The /P option has an optional argument n that specifies the number of seconds to wait for a keystroke before continuing.

 

/A - Add the command and its full path+name to the map. The command must have an .EXE extension.

 

/D - Delete the command from the map. You can use wildcards in command.

 

/F - Find and display the full path+name saved in the map for the specified command. You can use wildcards in command.

 

The MAPEXE options are mutually exclusive; you can only specify one of them on the MAPEXE command line.

 

If you don't specify any arguments (except /P), MAPEXE will display all of the mapped executables. That display and the /F option will show the number of times the executable has been retrieved from the map,