Link to SemWare

The Semware Editor

Context

TSE (The Semware Editor) is a general purpose plain text editor from Semware Corporation.

Me, I am just an active user of their editor. On this page I mirror public Semware releases, and share TSE-related information and opinions as well as tools and extensions I created for it. The tools and extensions are provided "as is" in the form of installable source code. Feel free to use and change them as you like. For editor-related topics you can email me by adressing its three letters at eCarlo.nl.

Claimer: My tools and extensions contain no ads, no tracking (*), and no functionality built with malicious intent.

(*) For macro debugging, macro programmers can install the KeyboardLogger macro or EventLogger macro to log keys or events from within TSE out to a local log file.

Disclaimer: Despite my best efforts and good intentions I make mistakes, and my intentions might not match your expectations. My tools and extensions on this page are not professional software and are provided "as is" without any warranty. They may contain errors, and they may damage files and thereby anything depending on those files. Use them at your own risk, or simply do not use them.

Privacy: This web page does not use cookies. It does not contain ads. No tracking is done for marketing purposes. No user-specific data is shared with others unless permitted by the user or required by the GDPR or other Dutch or EU-level law, which typically requires an order by a judge. I have never received such an order. Meta data of website traffic is stored for at most ten years specifically for the limited purpose of security and general usage analysis.

About the editor

The editor's key feature is, that its makers created a procedural programming language of editing commands, wrote the editor in that language, and made the language available to users. This makes the editor itself quite extendible and adaptable, and allows for creating text oriented tools more easily and quickly than with a generic programming language.

The programming language is called the Semware Application Language (SAL) and is referred to as the editor's macro language. Up to and including TSE 4.4 it is well documented in the editor's internal Help system, which is a delight to use. The language is compiled into intermediate code that is interpreted by the editor's core, and comes with a good interactive debugger.

Alas, while TSE is mostly still being maintained, it is no longer actively being developed. Despite lots of small functional changes being added since then, its built-in documentation is mostly still that of its last commercial release of TSE Pro v4.4 in 2005. (I can offer a glimmer of hope for a future improvement.) There have been lots of bug fixes since 2005, but in later years not every known bug has been fixed any more, though most still have been. From 2005 to 2021 there was a closed beta of TSE. Just before 2022 it became publicly available, with a new license that grants broad permissions for its use and distribution and disclaims any warranty and liability. The former beta brought non-beta users 15 years of bug fixes and small improvements. The editor still does not natively support Unicode and paths/files longer than 255 characters, and has other, more minor functional and programming language limitations.

Using its macro programming language users have written extensions for its standard functionality (including Unicode extensions), as well as tools to perform both small and major editing tasks.

About tools and extensions

My tools and extensions

can be found further on on this page.

Nowadays when I create and maintain tools and extensions I default make them compatible with Windows TSE Pro v4.0 upwards for both the GUI and Console versions of the editor, unless stated otherwise, and I do not support them for older versions of TSE.

Other people's tools and extensions

can be found on SemWare's macro download page.

On the bright side, those macros are distributed as source code too.

On the dark side, those macros

  • are old (January 2012 and older),
  • have not been maintained,
  • might be for old versions of TSE Pro,
  • have a wide range of quality.

Though some of those old macros may not compile in newer TSE versions because of now obsolete statements, the ones that do have a reasonable chance of being upwards compatible.

When browsing those ancient macros it might be good to know TSE's history.

Editor history

Windows editor history

TSE Pro v2.5
and below were 16-bit editor versions. Macros written for it might contain 16-bit-specific code that will not run on 32-bit and 64-bit computers and operating systems. TSE Pro 2.5 ran in Dos, and in Windows versions up to and including Windows 98.

TSE Pro v2.6
and above were 32-bit editor versions.

v2.6 was a beta release, with lots of quirks.

TSE Pro v2.8
was the first stable 32-bit editor version. Macros written for TSE Pro v2.8 and above are likelier to be compatible with current TSE versions.

TSE Pro v3.0
added undo/redo capability and lots of other features.

TSE Pro v4.0
added a GUI version of the editor, besides still fully supporting its old Console version. These are now two separate editor executables.
Older TSE versions were all Console programs, meaning the editor runs in a Windows console, just like the cmd prompt.
The GUI version of the editor adds better Windows integration.
The main TSE GUI-specific features are:
  • TSE runs in its own window with GUI window properties. The window is resizable by dragging the borders.
  • Fonts can be modified from the editor.
  • It has a user-friendly Close button, that no longer just aborts the editor, but now asks to save unsaved files, and can be cancelled if you want to check them first.
  • A vertical bar cursor. (Optional)
  • ANSI support for ANSI-compatible fonts!
    The GUI's default font is "Courier New", which is ANSI-compatible.
    ANSI, formally known as Windows-1252 and CP1252, is a character set that is natively supported by Windows, which gives TSE much better compatibility with other software and people.
    ANSI fully supports the alphabets of these languages: Danish, Dutch, English, Finnish, French, German, Hungarian, Icelandic, Indonesian, Italian, Norwegian, Portuguese, Spanish, Swedish.
  • Alas, ANSI does not support line drawing.
Newer extensions sometimes rely on the advantages of the new GUI features, making them incompatible with the Console version.

TSE Pro v4.2
added small functional and programming language features. My favorite is the programmatic access to TSE's colors: Instead of being limited to 16 colors with unchangeable values, macro programmers could now set 16 foreground colors and 16 background colors, the values of which are changeable 24-bit RGB colors. It is hard to do, but this also allows for tricks to temporarily display more than 32 colors concurrently, up to tens of thousands.

TSE Pro v4.4
added small functional and programming language features. The most visible new feature was TSE's ability to show line numbers. Of the new macro language features a substantial amount was cosmetic bloatware, allowing us to use one command for what already could be programmed with old commands.

TSE Pro v4.40.5 - v4.41.45
were closed beta releases, only available to invitees, with a separate mailing list for comments and feedback. The changes that happened during that period can be read back in an installed TSE's read.me file.

TSE Pro v4.41.46 and upwards
are public releases.
As of TSE v4.42 all references to being a beta version have been removed. Because new releases are no longer broadly tested by beta users any more, we have all become its unofficial beta users, so the public releases do carry some higher risk of errors.
These releases come with a new license that makes them broadly usable and distributable and disclaims any warranty and liability.
The built-in Help system is still almost completely that of TSE Pro v4.4 (2005). Newer features and changes are described in the installed TSE's read.me file.

About Linux TSE

There is a Linux TSE

As of Linux TSE v4.41.35 it supports ANSI and the Unicode and Keys extensions, which in my opinion makes it work OK.

That said, there are some things that do not work in Linux TSE.

As a Windows user I mostly notice its lack of support for some Alt and Ctrl key combinations that I am used to from Windows. I think this does not work because Linux TSE is a console application, and that this makes it unlikely to be fixable.

As a macro programmer I painfully notice that TSE's debugger malfunctions in Linux, and that I therefore have to revert to old-school methods for debugging.

WSL v1

Linux TSE is not compatible with the Windows Subsystem for Linux version 1, because TSE is a 32-bit program.

WSL v2

The latest Linux TSE is compatible with "WSL2" with one known exception:

From a WSL distribution Linux TSE cannot browse a Windows folder. It can open a Windows file using its fully qualified name. For example, from Linux TSE you cannot browse to see what files are in the folder /mnt/c/Windows, but you can open a file like /mnt/c/Windows/win.ini by providing its fully qualified name yourself.

One WSL file-browsing work-around: You can start the Windows version of TSE from a WSL distribution, for example by executing /mnt/c/Users/Carlo/Tse/g32.exe

Another WSL file-browsing work-around: You can access a WSL distribution's file system from a Windows version of TSE, for example by opening the root directory \\wsl$\Debian\ . The 4th backslash is mandatory too!

Default my tools and extensions are not intended to be compatible with Linux TSE, unless stated otherwise. Only some are, though those include some of the most useful ones.

Windows TSE Download

General pre-download info

Windows TSE installs both the GUI and Console version of the editor.

Its license gives broad permissions for use and distribution, and makes extreme disclaimers of warranty and liability.

You can simply install the latest TSE version over any previous TSE version since TSE 2.8. In other words, you do not need to install intermediate versions to upgrade TSE.

Often Semware does not supply the installation zip file on their website with the helper files "setup_as_administrator.cmd", "setup_as_user.cmd", and "readme.txt": In such cases I do add them to the installation zip file on my website to provide a better user experience.

TSE's built-in Help system is almost completely that of TSE Pro 4.4 (2005). There have been lots of fixes and new features since then, which are listed in the installed read.me file instead.

Windows TSE 4.49f  -  24 Feb 2023

tse-setup-4.49f.zip

Release notes:

  • EditFile(" ") - loaded a file with garbage in the name. It should produce a picklist. Fixed.
  • Templates were being expanded even when not found for the current file extension. Fixed. Added template expansion on/off to the menu.
  • File Manager macro: allow to view buffers. ListFile() did not always allow viewing unloaded files.

Origin:

Installation and update tips
Before installation

ALWAYS MAKE A BACK-UP OF YOUR EXISTING TSE FOLDER BEFORE INSTALLING A NEW TSE VERSION!

The installation mostly works by simply overwriting TSE's own files, although for those files it will overwrite, it will first make a back-up in a new <bak999> folder in the TSE folder.

In practice a lot of users have changed one of Semware's user interface files (brief.ui, tse.ui, tsejr.ui, win.ui, ws.ui), which will be overwritten by the installation. Here are some ways to cope with this.

A solution I do not advise is to after the installation compare the new Semware file with your old one in the <bak999> folder, copy your own changes to the new file, and recompile the new user interface file as a macro to reinstall it.
The dowsides of this solution are, that you would have to do this for every TSE upgrade, and will probably have to spend this extra time when it is inconvenient.

The solution I advise is to copy your Semware user interface file to a new .ui name, and install that UI instead by recompiling the new .ui file as a macro.
Benefits are, that this way your user interface never gets overwritten, and is automatically recompiled and reinstalled by future TSE installations if your old TSE installation is newer than v4.41.44.
You do not get Semware's rare fixes and improvements to their .ui files, but you can compare their relevant .ui file to yours whenever it is convenient to you.
For example, I could one time copy win.ui to win_carlo.ui, and compile win_carlo.ui. From then on win_carlo.ui will not be overwritten by TSE updates, and newer TSE versions will recompile it during their installation.
The new installation will immediately work with your own UI, and you can check for any Semware changes if and when it suits you.
Important tip: If you made your changes in as few places as possible and as additions instead of changes to Semware's code, then it is relatively easy to compare your own user interface to Semware's new one, and to copy those Semware changes you want to your own .ui file.

The installation

Unzip the zip file into a separate folder.

Read the readme.txt file, and select a run command.

The installation will ask you which folder to install to.

If you install to your existing TSE folder, then the installation tries to keep many of your settings!

If your old TSE is version v4.41.44 or higher, then the installation can see what your old user interface file was and reinstalls it automatically.
Otherwise you will be asked for the last time which Semware user interface to install. The default is the Windows one (win.ui).

The installation will keep all settings from TSE's "Full Configuration" menu except those from the sub-sub-menu "Configure SyntaxHilite Mapping Sets".

The installation will keep the Potpourri menu's descriptions for those macros, for which Semware does not distribute its own description.

Linux TSE Download

Linux TSE 4.49f  -  24 Feb 2023

tse-linux-4.49f.tgz

Release notes:

  • EditFile(" ") - loaded a file with garbage in the name. It should produce a picklist. Fixed.
  • Templates were being expanded even when not found for the current file extension. Fixed. Added template expansion on/off to the menu.
  • File Manager macro: allow to view buffers. ListFile() did not always allow viewing unloaded files.
  • The Linux version did not correctly load files as expected, if a wildcard was used, and it matched both files and directories.

Origin:

Installation tips

Linux TSE does not come with an installation program or installation instructions.

Here are my tips to get you started.

First time installers

In this example the release file "tse-linux-4.48.tgz" is installed in the user's home directory.

Note: The .tgz file contains a top "tse" directory that contains all other files and subdirectories of a probably already working TSE installation.

Copy the tse-linux-4.48.tgz file to the /home/<username> directory.

Extract the file's content:

cd /home/<username>
tar xvfz tse-linux-4.48.tgz

Make sure that:
Either you have "rwx" permissions on "tse" and all its subdirectories, that you have "rw" permissions on all its files, that you have "rwx" permissions on the files "e" and "sc32", and that that people who are not allowed to change your TSE have no permissions.
Or bluntly give yourself all permissions and others no permissions on the "tse" directory and everything within:

chmod -R u+rwx,go-rwx /home/<username>/tse

In an exceptional case Semware did forget to precompile some of their own distributed macros. If TSE ever gives you a "Macro compiled with wrong sc" error, then you need to execute the following commands:

cd /home/<username>/tse
./sc32 'mac/*.s'
./sc32 'mac/*.si'

You can now start TSE:

/home/<username>/tse/e

Next time installers

In this example description the bash shell is used to upgrade the user's existing TSE installation in directory "/home/<username>/tse" using the release file "tse-linux-4.48.tgz".

Start TSE, and go to the menu Options, Full Configuration, Write Settings to ASCII file, and enter a filename like "tse_settings_<today's date>.s".
Default it is saved to the user's home directory.

MAKE AT LEAST A COPY AND OPTIONALLY A BACK-UP OF YOUR EXISTING LINUX TSE DIRECTORY!

cd /home/<username>
cp -R tse tse_<today's date>

Extract the .tgz file in a temporary directory:

cd /home/<username>
mkdir tmp
cp tse-linux-4.48.tgz tmp
cd tmp
tar xvf tse-linux-4.48.tgz

Copy the new "tse" directory over your old "tse" directory:

cd /home/<username>
cp -R tmp/tse/* tse

Assume that TSE got an updated compiler version, and recompile all your own macros:

cd /home/<username>
tse/sc32 'tse/mac/*.s'

In an exceptional case Semware forgot to recompile some of their own distributed macros. If TSE ever gives you an "Macro compiled with wrong sc" error, then you should also recompile Semware's "inhouse" macros:

cd /home/<username>
tse/sc32 'tse/mac/*.si'

Start TSE and open the saved settings file:

cd /home/<username>
tse/e tse_settings_<today's date>.s

Compile and execute the file with the Macro, Compile menu,
save your reinstalled settings with the menu: Options, Save Current Settings,
and close TSE.

If you tweaked your old TSE by modifying Semware files, then you probably need to copy those files from the copy of your old TSE installation and recompile them in the new tse installation.

Any other tweaks you made might need additional steps. Let me know if I missed a step that applies to everyone.

Windows/Linux TSE compatibility

You cannot exchange or share .mac files between Windows TSE and Linux TSE.

It usually works when you copy .s and .ui files between Windows TSE and Linux TSE and recompile them on the target system.

While Linux TSE is largely a reimplementation of the Windows version, there are some unresolved and unresolvable incompatibilities. Most remarked upon has been, probably by Windows users, that Linux TSE has no mouse support and that lots of combined keys do not work.

Dos TSE Download

tse250e.zip

This is TSE 2.5e for Dos and 16-bit Windows versions (i.e. up to and including the Windows 98 variants), as originally sold by Semware in 1997, and since 2022 made available as freeware.

Installation tips

TSE 2.5e is a Dos program. Such programs run in ms-dos and in Windows versions up to and including Windows 98. Dos programs do not run directly in modern operation systems, because they require a 16-bit processor. The way to run a 16-bit Dos program in a newer Windows version is by running it indirectly through a virtual machine. Here I will describe a simplistic way and a robust way to do that, based on Windows 10 being my host operating system.

  • The simplistic way uses DosBox, which is a virtual machine and Dos in one program. Its advantages are, that it is very easy to install and use and that it is very easy to exchange files between Windows and Dos. Its disadvantage is, that its Dos shell is not helpful.
  • The robust way uses VirtualBox and FreeDOS.
    The advantages of VirtualBox are, that it safely separates your host computer from its virtual computers, and that you can save and restore "snapshots" of any state of a virtual computer. Its disadvantage is, that it is (with a Dos client a lot) more work to exchange files with it.
    The advantages of FreeDOS are, that it is user friendly, well documented, and support tools are available for it.

None of these programs costs money.

Install TSE 2.5e in DosBox 0.74-3 in Windows 10

1. Install TSE 2.5e

  • First create a Windows folder where you want to store your future DosBox programs, including TSE.
    Here we will use "D:\DosBox".
  • Because the ancient Dos must understand all this too, be aware, that all the folder and file names we use for this must be at most 8 ASCII characters long, with extensions of at most 3 ASCII characters, and none may contain spaces.
  • Unzip tse250e.zip to D:\DosBox.
  • This creates a subfolder "D:\DosBox\tse250e".

2. Install DosBox

  • Go to DosBox -> Downloads, and download the Windows version.
  • Run the downloaded "DOSBox0.74-3-win32-installer.exe", and answer its few simple questions.
  • Either select Windows Start menu -> DosBox -> DosBox Options, or run "C:\Program Files (x86)\DOSBox-0.74-3\DOSBox 0.74-3 Options.bat".
  • These will open an unsaved file "C:\Users\<UserName>\AppData\Local\DOSBox\dosbox-0.74-3.conf" in Notepad.
  • Either make DosBox configuration changes here directtly, or do a File, Save from Notepad, and then use TSE to edit the file.
  • Go to the bottom of the .conf file, and add the following lines to the "[autoexec]" section:
    mount C D:\DosBox
    PATH=%PATH%;C:\tse250e
    C:
  • The "mount" command will create a simulated "C:" drive in DosBox that will actually be the "D:\DosBox" folder.
  • Warning: Near the beginning of the file there is a line "fullscreen=false". If you set this to "fullscreen=true", or use <Alt Enter> during DosBox to toggle fullscreen mode, then in my experience DosBox and TSE 2.5e will look awesome, but the windows of all my other open applications were resized to really small sizes!
  • Save the the .conf file.
  • You can now start DosBox, either from the Windows Start menu or from its Desktop shortcut.
    In DosBox type "e" to start TSE 2.5e.
    Type "exit" to leave DosBox.
  • Note: DosBox starts a "DosBox Status Window" in the background that you can ignore.

Bibliography

Install TSE 2.5e in VirtualBox in FreeDOS in Windows 10

1. Install VirtualBox

  • VirtualBox has significant requirements to be able to install and run it. Read them.
  • Download VirtualBox , here select the version for "Windows hosts", which as I write this downloads "VirtualBox-7.0.4-154605-Win.exe".
  • Install VirtualBox with its default selections.
  • You can ignore the warning about Python bindings. If you do not know what those are, then you do not need them. Proceed: Yes.
  • Finish.

2. Download FreeDOS

  • Go to the FreeDOS home page.
  • Download the LiveCD version, as I write this "FD13-LiveCD.zip"
  • Above the download link there is a link named "Verify your downloaded files".
    It leads to a a page with various checksums for each downloadable file.
    For example, it lists a "sha512sum" for the "FD13-LiveCD.zip" file.
    After you download the file, it must have the same checksum, or the download went wrong.
    You can determine the "sha512sum" of the downloaded file from the commandline from the file's folder with:
    certutil -hashfile FD13-LiveCD.zip SHA512
    For other checksums see "certutil -hashfile -?".
    The certutil command comes with Windows 10. If you have 7-zip installed, then you can right-click on the file to get its SHA256 checksum.

3. Install FreeDOS in VirtualBox

  • Unzip the downloaded "FD13-LiveCD".
    Here we will create the folder "D:\FD13-LiveCD", and unzip "FD13-LiveCD.zip" to it.
  • Create a folder where VirtualBox may store its future virtual machines.
    Here we will create the folder "D:\VirtualBox".
  • Start VirtualBox.
  • Select the "New" button to start creating a new virtual machine.
  • At the bottom of the popped-up window, select "Expert Mode" instead of "Guided Mode".
  • Under "Name and Operating System" we here enter:
    Name: FReeDOS
    Folder: D:\VirtualBox
    ISO Image: D:\FD13-LiveCD\FD13LIVE.iso
    (You can browse to the .iso file by selecting the down-arrow-head on the right, followed by "Other".)
    Type: Other
    Version: DOS
  • Under "Hard Disk" change the "Hard Disk File Type and Variant" to "VHD (Virtual Hard Disk)".
    (We need this later to be able to access the virtual hard disk from Windows.)
    (Do not worry about the large hard disk size of the virtual machine. Because "Pre-allocate Full Size" is not selected, the virtual hard disk will only use as much of the physical hard disk as it actually needs for its files.)
  • Finish. The window closes.
  • On the left "FreeDos (Powered Off)" is selected.
  • Select "Start".
  • A FreeDos installation window pops up.
    This installation program is already running in the virtual machine.
    Use the right Ctrl key to leave this virtual machine window.
    Use standard Windows methods to return to it.
  • Select "Install to harddisk".
  • Select respectively:
    English (or whatever you prefer).
    Yes - Continue with the installation.
    Yes - Partition drive C:
    (This is the C: drive of the virtual machine, not the C: drive of your actual computer.)
    Yes - Please reboot now
  • Select "Install to harddisk" again.
  • Select respectively:
    English.
    Yes - Continue with the installation.
    Yes - Please erase and format drive C:
    (Still the C: drive of the virtual machine.)
    Yes - Please reboot now
  • Select respectively:
    US English (Default)
    Full installation including applications and games
    Yes - Please install FreeDOS 1.3
    Yes - Please reboot now
  • Select "Boot from system harddisk".
  • On the "C:\>" prompt type "shutdown".
    The virtual machine window closes.
  • Select the "Settings" button, then "Storage" on the left, then right-click in the middle pane on the .iso file, and select "Remove Attachment", "Remove", and the "OK" button.
  • Done!
    The next time FreeDOS is started, it will boot from its virtual harddisk without asking.

4. Install TSE 2.5e in FreeDOS in VirtualBox

  • VirtualBox shows us all kinds of connections we can theoretically make to our virtual machines, like through a network, a serial port, a USB drive, or shared folders, but a basic DOS installation does not understand any of these!
  • There is however this awesome trick to copy files between a host Windows 10 machine and a virtual machine, IF the virtual machine is implemented as a .vhd (virtual hard disk) file. (Like we did earlier!)
  • The following steps make a .vhd file acessible in Windows' File Explorer as a drive:
    SHUTDOWN THE VIRTUAL MACHINE IF IT IS RUNNING!
    Accessing a virtual machine's harddisk from the host computer is incompatible with the virtual machine running at the same time!
    Right-click Start or press <Windows X>.
    Select "Disk Management" (<k>).
    In the "Disk Management" window, select "Action", "Attach VHD". Select "Browse", and browse to and select the "D:\VirtualBox\FreeDOS\FreeDOS.vhd" file.
    "OK".
    For example using Windows File Explorer you can now copy files between Windows and the virtual harddisk of the virtual machine.
    WARNING again: DOS is not case-sensitive, but it only understands file names of at most 8 ASCII characters, extensions of at most 3 ASCII characters, and no spaces in either of them.
  • Unzip "tse250e.zip" file somewhere in the host computer, and for example using Windows File Explorer copy the resulting "tse250e" directory to the virtual computer's drive.
  • When you are done, then in Windows File Explorer right-click the virtual drive, and select "Eject".
  • Done!
    It is now safe to start the virtual machine.
  • When started and the "c:\>" prompt shows, the command "tse250e\e" will start TSE 2.5e.
  • FreeDOS has cool configuration options and possible extensions. It can be fun to delve into them. I got the FTP server working with a tiny bug that had an annoying but simple work-around.

Bibliography

Old TSE Downloads

Windows TSE 4.49e  -  4 Feb 2023

tse-setup-4.49e.zip

Release notes:

  • Templates updated to handle longer file extensions.
  • "where" tool updated to try and fix broken drive processing.
  • FileManager updated to not load files already loaded; to be able to view <unnamed> files.
  • Experimental: added xbutton1, xbutton2 mouse keys.
  • New assignments to <shift wheelup> and <shift wheeldown> now work in e32. Keys show in showkey.
  • A Help index provided by an external help system is now correctly browsable.
  • find&do updates to move to column.
  • Fix find&do copy append bug.

Linux TSE 4.49  -  3 Jan 2023

tse-linux-4.49.tgz

Bug: Installing this release "as administrator" fails with the warning "Error 740 on ...\setup.dat".
Installing it "as user" works, but will skip a few installation options that are usually only relevant for first-time installers.
The bug will be fixed in the next release.

Release notes:

  • More work on getting fonts working correctly
  • Removed warnings from the .ui files
  • Added additional mouse chords to the .ui files
  • Updated the syncfg macro
  • Updates to listopen
  • Fixed numeric underscore not highlighting after decimal places
  • Added GetSynQuote(), GetSynMultiLnDlmt()
  • Updated the help engine
  • See the read.me file for details

Windows TSE 4.49  -  3 Jan 2023

tse-setup-4.49.zip

Release notes:

  • More work on getting fonts working correctly
  • Removed warnings from the .ui files
  • Added additional mouse chords to the .ui files
  • Updated the syncfg macro
  • Updates to listopen
  • Fixed numeric underscore not highlighting after decimal places
  • Added GetSynQuote(), GetSynMultiLnDlmt()
  • Updated the help engine
  • See the read.me file for details

Linux TSE 4.48  -  29 November 2022

tse-linux-4.48.tgz

Release notes:

  • All ui files have been updated.
  • In all ui's, the editor now merges the recent files list with the disk version, if the file on disk has changed relative to the one in memory. It isn't perfect, but it is (I think) better than losing recent filenames when you run multiple instances of the editor.
  • grep: Fixed a bug in grep-list processing that could crash the editor.
  • listopen: updated sort, now uses <alt w> to write (save), <alt s> to sort.
  • sort: fixed a bug where the ignore case option was ignored with kill dupes. Thanks to Knud Van Eeden for the report.
  • compile: doesn't work on a read-only drive.
  • Several (or a dozen) keywords added to SAL syntax highlighting.
  • GetShortPath(): Should not remove quotes from files with spaces in the name
  • f (filemanager): Did not support viewing zip files on UNC paths
  • Added "Program" to signon screen.
  • UpdateBufferDaTmAttr([string filename]) changed to support an optional filename. If passed, the current buffer's info is updated from that filename. Useful when you have a system buffer backing a diskfile, but the name of the buffer is not the same as the diskfile.
  • _STATE_BUSY_: new built-in constant, returned by QueryEditState().
  • Fixed a bug in the Linux version, where ExecMacro() on a non-existing macro returns TRUE.
  • The Linux version did not correctly handle filenames with multiple embedded dots, as in: "foo...bar".

Windows TSE 4.48  -  24 Nov 2022

tse-setup-4.48.zip

Release notes:

  • All ui files have been updated.
  • In all ui's, the editor now merges the recent files list with the disk version, if the file on disk has changed relative to the one in memory. It isn't perfect, but it is (I think) better than losing recent filenames when you run multiple instances of the editor.
  • grep: Fixed a bug in grep-list processing that could crash the editor.
  • listopen: updated sort, now uses <alt w> to write (save), <alt s> to sort.
  • sort: fixed a bug where the ignore case option was ignored with kill dupes. Thanks to Knud Van Eeden for the report.
  • compile: doesn't work on a read-only drive.
  • Several (or a dozen) keywords added to SAL syntax highlighting.
  • GetShortPath(): Should not remove quotes from files with spaces in the name
  • f (filemanager): Did not support viewing zip files on UNC paths
  • Added "Program" to signon screen.
  • UpdateBufferDaTmAttr([string filename]) changed to support an optional filename. If passed, the current buffer's info is updated from that filename. Useful when you have a system buffer backing a diskfile, but the name of the buffer is not the same as the diskfile.
  • _STATE_BUSY_: new built-in constant, returned by QueryEditState().

Windows TSE 4.47  -  21 Sep 2022

tse-setup-4.47.zip

Release notes:

  • Updated copying to the Windows clipboard, to make it compatible with VirtualBox guests.

Linux TSE 4.46  -  17 September 2022

tse-linux-4.46.tgz

Release notes: See the Windows version.

Windows TSE 4.46  -  17 Sep 2022

tse-setup-4.46.zip

Release notes:

  • cmpfiles macro updated: now uses built-in CompareLines() function, so files to check are no longer limited by 255 character lines.
  • where macro: in certain cases, the "~\..." name is passed externally, when it should be using the full-path. Fixed.
  • filemanager (f) macro: ExpandTilde() needed to be used when called with command line parameters.
  • random([lo [, hi]]) now accepts > 16 bit integers. Bug fixed if lo and hi are non-zero and equal.
  • compile macro updated to work when the -i switch is in operation.
  • Editor updated to better handle tseload.dat and tsesynhi.dat when the -i switch is in operation.

Windows TSE 4.45  -  11 July 2022

tse-setup-4.45.zip

Release notes:

  • Grep updated, to better handle long filenames.
  • Font handling updated when using non OEM fonts.

Windows TSE 4.44  -  18 June 2022

tse-setup-4.44.zip

Release notes:

  • Fix problem involving SetFont(...), that appears to only occur on asian-language systems. The problem kept the Fixedsys font from being selected via SetFont("Fixedsys", 9, 0).
  • Semware fixed the ugly way TSE displayed the Unifont font, with too small characters with too much horizontal and vertical distance between them.

Linux TSE 4.43  -  7 June 2022

tse-linux-4.43.zip

This is Linux TSE as distributed by Semware on 7 June 2022.

Release notes:

  • Fixed menu alignment problem.
  • Updated the macro syntax highlighting keywords.
  • Updated the BigIntSum tool.
  • Fixed Search&Do's Count option again.
  • If file-to-compile contains "&" and ";", force quoting it.
  • "Where" tool: Add zip tagged files. Requires a zip.exe to be in the path.

Windows TSE 4.43  -  23 May 2022

tse-setup-4.43.zip

Release notes:

  • Fixed menu alignment problem.
  • Updated the macro syntax highlighting keywords.
  • Updated the BigIntSum tool.
  • Fixed Search&Do's Count option again.
  • If file-to-compile contains "&" and ";", force quoting it.
  • "Where" tool: Add zip tagged files. Requires a zip.exe to be in the path.

Linux TSE 4.42  -  8 January 2022

tse-linux-4.42.zip

Release notes:

  • ";" added back to keywords2 in sal.syn.
  • Removed eula.txt from install.zip
  • Updated license in the help.
  • Changed the internal version number.

Windows TSE 4.42  -  6 January 2022

tse-setup-4.42.zip

Release notes:

  • ";" added back to keywords2 in sal.syn.
  • Removed eula.txt from install.zip
  • Updated license in the help.
  • Changed the internal version number.

It installs both the GUI and Console version of the editor.

Its license gives broad permissions for use and distribution, and makes extreme disclaimers of warranty and liability.

TSE's built-in Help system is almost completely that of TSE Pro 4.4 (2005).

There have been lots of fixes and new features since then, which are listed in a read.me file.

Windows TSE 4.41.46  -  24 December 2021

tse-beta-setup-4.41.46.zip

Shortened release notes:

  • New license agreement.
  • Fixed error opening a file from File Explorer.
  • Fixed a bug in the compiler.
  • Added another dark theme.
  • Corrected a spelling error.
  • Fixed browse mode for EditFile("-y *").
  • Fixed _ON_ABANDON_EDITOR_ not being called by the GUI's close button.
  • Updated the BigIntSum tool and the fState extension.
  • Reverted sal.syn to a previous version. (Syntax highlighting of macros.)
  • Fixed bug in syncfg2. (Helper tool for menu that modifies syntax highlighting.)






My TSE Pro documentation

TSE Pro Generated Manual

This manual was generated from the latest editor's built-in interactive Help system (*) by using the Hlp2txt tool.

(*) Note that this is still mostly the Help for TSE 4.4 (2005), as later TSE fixes and features are mostly documented in the installed TSE's read.me file.

The manual was generated as a list of topics based on TSE's built-in Help's Index. The content of the manual is very complete, probably containing all topics that formerly occurred in TSE's "The User's Guide" and "The Macro Reference Guide", but ordered alphabetically instead of the manuals' order.

A nice benefit of the online version of this generated manual is, that selecting a topic provides its URL in the browser's address bar. You can copy and use that URL to provide a link to the topic from an email or other document.

Contents of TSE's compile.hlp file

This short manual is an addendum to the "Generated Manual", that is solely based on TSE's tsehelp.hlp file.

This additional web page contains the 40 advanced compilation topics from TSE's compile.hlp file.

In TSE you can access these Help topics by pressing the F1 key on the submenu options of TSE's Macro -> "Compile Menu" menu.

TSE Pro 4.4 Undocumented Features (Old)

Date: 6 Feb 2022

This document describes undocumented features and errata for TSE Pro v4.4 (2005).

Frozen: This document is frozen, meaning it will no longer receive updates. Since December 2021 public versions of TSE have become available. They contain lots of bug fixes for earlier issues, so it does not make sense to describe solved bugs. Everybody can upgrade to a new public version, the latest of which I now consider to be TSE's new main version.






My TSE tools and extensions

v1.0.4
7 May 2023
Windows TSE Pro v4.0 upwards
Linux TSE Beta v4.41.31 upwards

This TSE extension allows you to assign an editing action to a quickly typed sequence of defined keys or mouseclicks.

It uses a Keys.ui interface definition file in TSE's "mac" folder. Its syntax is like a standard TSE .ui file with some minor restrictions. It does not compile with Macro Compile, but is compiled when you save the file.

For example, I use it in the Windows GUI version of TSE to assign a triple tap of the <.> key to the "…" (ellipsis) character, a triple tap of the <e> key to the "€" (euro) character, a triple tap of the <?> key to the "¿" character, and the tapping of <1></><2> to the "½" character.

Likewise you could for example assign different actions to a double, triple and quadruple tap of the <Home> key.

In Linux it is ideal for typing characters with diacritical marks in the same way Windows does for "international" keyboards. For example, you can enter an "é" by quickly typing the <'> and <e> keys.

More such examples are given in the example Keys.ui file that is included with the macro.

v1.0.4 Fixed a rare bug that almost nobody but me would run into, namely the extension disabling itself during editing of a file containg TSE Help codes.

v1.1
30 Apr 2023
TSE Pro v4.0 upwards, all variants

This tool uses a TSE-like search command to create a list of each unique search result with its count.

If you search without a regular expression, then there is typically only one unique search result which gets counted.

If you search with a regular expression, then there are typically multiple unique search results, which each get counted.

Example usages:

  • List and count all unique ip addresses, email addresses or URLs.
  • List and count all unique values of the Nth field of a log or .csv file.
  • List and count all unique usages of syntax in software programs.
  • List and count all unique words, characters, names or abbreviations.

Read its documentation for more about its power options.

v1.1
Implemented search option "a".
The Options prompt is now more self-explanatory.
Made search option "g" redundant: it is always used.
Improved the documentation.

v1.1.1
6 Apr 2023
TSE v4 upwards, all variants

This tool generates a TSE WordSet, based on the characters that it finds in the current buffer.

It presents the generated WordSet in a prompt, from which you can copy it.

v1.1 Usually when a space character occurs in the buffer, it needs to be omitted from the WordSet, so I added this as a question with the usual case as its default answer.

v1.1.1 Fixed: If the buffer contained a backslash character, then the WordSet could miss an unrelated character.

v1
3 Apr 2023
TSE v4.41.37a upwards, all variants

This tool generates a random string of letters, numbers or both, of a selectable length.

You can copy the generated string from the result-prompt.

v1
23 Mar 2023
Compatibility: Untested

TSE is incapable of perfectly syntax hiliting HTML, because TSE's hiliting syntax is too limited for that.

That said, I came up with an HTML syntax hiliting solution that works well for me by rarely giving me hiliting errors.

For me it works much better than TSE's standard HTML syntax hiliting. Your milage may vary.

v2.0.1
20 Jan 2023
TSE Pro 2.5e upwards, all TSE variants

This tool can interactively run a TSE command or a whole line of TSE commands without you having to program a macro for it.

New in v2:

  • Now supports all TSE versions and variants from TSE 2.5e upwards.
  • Can now be installed in and started from the Potpourri menu, and then supplies its own prompt and history list.
  • For compilation errors it now provides a fancy error window with a pointer to the error (TSE v3 upwards).
  • Breaking change: Removed the Dos command line capability.
  • Fixed: Now also works if TSELOADDIR is set and the original load directory is not writable, perhaps because it is on a write-protected network drive.

v2.0.1 Fixed: NextFile() could not be used as a TSE command.

v1
12 Jan 2023
TSE v3 upwards, all variants

This tool allows you to add keyboard definitions for handier versions of upper, lower, flip, and capitalize to your user interface file.

"upper", "lower" and "capitalize" advance the cursor to the next word when they are not used in a block.

"flip" advances the cursor to the next character when it is not used in a block.

"capitalize" also works outside a block.

v1.0.2
9 Dec 2022
TSE Pro v4.0 upwards

This extension makes the use of TSE history lists a lot more efficient.

When in a history list, just start typing a part what you search for to reduce the list to matches of what you typed.

Example 1: This often allows me to only type a file's name without having to supply its folder.

Example 2: By typing "-a" in the history list I can quickly select the previously entered string again that opens all TSE macros.

v1.0.2 adds the left mouse button to select a history entry.

v0.6   BETA
8 Dec 2022
TSE 4.41.44 upwards; GUI, Console, Linux

This extension shrinks a TSE picklist to only those files, that contain the search string you type.

In TSE a picklist is a file list with a known TSE format. Picklists are used by the File Open menu, TSE's file manager, and more.

This extension hacks TSE's picklists. While so far it seems to work really well, I have cause to first release it as a beta.

PickList default does not work for regular lists, because in general it can damage some of them permanently. However, you can configure PickList for regular lists. Read the documentation for more details about for which regular lists it is safe to do so. Known safe regular lists: List Open, View Finds. Known unsafe regular lists: List Recent, Potpourri.

Installation note
There is an older extension PickListFind. PickList and PickListFind should not both be installed.

In my superior opinion, PickList is vastly superior to PickListFind. 😉

v0.4:

  • Fixed: If (re)entering a picklist by typing a menu letter, the menu letter no longer becomes a picklist search letter.
  • Fixed: When selecting a subfolder in a picklist, that was shrunk by a search string, the subfolder's picklist no longer inherits the search string.
  • Fixed: The search string hiliting in a picklist no longer disappears if you perform an action on the picklist that does not leave it. For example: Sorting a shrunken picklist in the TSE File Manager.

v0.5: Allows configuration of the shrink-as-you type behavior for SOME regular lists too. This potentially dangerous feature is default not configured. Read the documentation!

v0.6: Fixed: Typing any letter in one of the EditFile macro's prompts (typically y/n), no longer adds that letter to PickList's search string.

(no version number)
27 Nov 2022
TSE 4.42 upwards; GUI, Console, Linux.

This is the TSE macro that handles the SynTaxHilite Mapping menu.

Its major improvement is that the "Overlay Settings from Mapping Text File" menu option now default proposes to read the same text file as the "Write Settings to Mapping Text File" menu option proposes to write to.

Minor improvement: The .syn file shown in the menu is now 2 characters longer, and if the path\filename is too long, then its end instead of its front is shown.

v1.0.2
20 Nov 2022
Compatibility: untested

This extension enhances incrementally searching in a TSE picklist by also searching in the middle of filenames.

A TSE picklist is used by the File Open menu, TSE's file manager, and more.

This functionality was requested by two users.

Installation note: I strongly recommend to instead install the newer extension PickList, which shrinks a picklist to only those files that match the typed search string.

The new PickList and the old PickListFind must not be installed together.

v1.0.2 Fixed that PickListFind did nothing in someone else's TSE installation.

v1
16 Nov 2022
TSE v4 upwards (GUI, Console, Linux)

This extension repairs or enhances the bullet character in TSE's Help.

It makes TSE's Help show its bullet character if it did not, and for all code pages it makes the Console variant of TSE show a BIG bullet character.

TSE's Help contains a lot of bullet-pointed text, but newer TSE GUI users will never have seen that, and other TSE versions and variants have issues with the bullet character as well.

The main reason for this extension was, that in newer GUI TSE versions, its Help shows a bullet character as a space character, making what should have been bullet-pointed text look like cluelessly indented paragraphs.

v1.0.1
31 Oct 2022
Windows GUI TSE v4.0 upwards,
with an ANSI-compatible font (like Courier New).

TSE itself only supports 256 characters, 218 of which are displayable ANSI characters.

Unicode supports 144,697 characters.

The Uniview extension lets TSE display a text's Unicode characters.

Installation note:
The Uniview extension requires the Unicode extension, which requires the Status extension.

Courier New
Despite the fact that the Courier New font itself supports only about 2700 characters, you can configure TSE to make Windows augment that to almost all Unicode characters, and displayed in a high quality at that! See Uniview's documentation.

Unifont
I do not recommend the Unifont font, but it is a logical alternative to want to try for users who decide to try other fonts. I did, and I found no better alternatives to Courier New. I urge you to first read Uniview's documentation about Unifont's pros and cons, and for a link to a monospace version of the font.

v1.0.1 fixes the bug, that at start-up Uniview left a marked block open in a system buffer. This caused users, who have the TSE option "Use Current Line If No Block" turned on, to get the error "Block not in current file" for trying to copy a not marked line.

v1.0.4
14 Oct 2022
Windows TSE Pro GUI v4.2 upwards

This extension brightens or dims all the cursor line's existing foreground or background colors by a configurable percentage.

I use it to give the cursorline a subtle slightly different background color.

This extension requires, that in TSE's editing colors configuration, the text cursorline color is the same as the text color, and that the block cursor line color is the same as the block color.

Because TSE can be configured with light text on a dark background or dark text on a light background, the extension can brighten or dim both separately.

It turns out that brightening and dimming foreground colors requires a large percentage to be visible, and brightening and dimming background colors requires only a tiny percentage.

v1.0.3 Fixed incompatibility with TSE's '-i' command line option and the TSELOADDIR environment variable.

v1.0.4 Fixed a future problem: CursurLine now disables itself during _DISPLAY_HELP_ display mode, so it no longer overwrites OEM characters with ANSI characters there. Currently nobody edits files in _DISPLAY_HELP_ display mode, but in the future some of us might.

v7.1
6 Oct 2022
Windows and Linux TSE Pro v4 upwards

Out of the box this TSE extension enhances the editing of TSE macro source code by setting keywords to their default predefined UPPER, lower, and CamelCase as you type.

SynCase v7 was rewritten to make use of the latest TSE capabilities and is compatible with Linux TSE.

Its configuration reuses the delimiters and keywords from TSE's syntax hiliting configuration to determine the casing of keywords.

For TSE's macro language it can set keyword casing back to its default values if you ever lost them, which unfortunately a sneaky TSE feature can trick you into doing.

It can be turned on and off per mapping set of TSE extensions. As this implies you can configure it for other languages as well.

You can configure non-keywords to be UPPER or lower cased.

For Linux TSE and for SynCase's full features you need at least TSE v4.41.19 upwards. For older Windows TSE versions from v4 upwards an old version of SynCase is included.

v7.0.2 Fixed an incompatibility with TSE's '-i' command line option and the TSELOADDIR environment variable.

v7.1 Added 38 missing SAL keywords to case. All of them occur in Semware's distributed TSE macros. As of this date (6 Oct 2022) they are missing in TSE's syntax hiliting too, and need to be added there too to hilite and case them. Details are in SynCase.s's "HISTORY" section at 7.1.
The missing keywords are:
Keywords 4: DetabColumnBlocks. Keywords 5: GERMAN, COPYTO_CURR, LINUX, LOCKFIX, MORE_KEYWORDS, _DONTLOAD_, _PICK_BUFFER_FN_COL_. Keywords 6: ax, bx, cx, dx, height, Cleanup, Default, Flags, Prologue, Startup, Black, Blink, Blue, Bright, Cyan, Green, Intense, Magenta, Red, White, Yellow. Keywords 7: FindInfoPtr, GetOutputDriver, SetOutputDriver, HookDebugger, Interp, intr, LockMacroId, UnLockMacroId. Keywords 9: KeyPad0.

v1.3.1
2 Oct 2022
Windows TSE 4.0 upwards

This macro logs changes in TSE settings.

At any time you can execute the macro for a report of the history of changes in your settings.

v1.3 Default no longer automatically restores TSE settings after a TSE upgrade, because new TSE releases will do that themselves.

v1.3.1 Fixed a case-sensitivity bug, when Windows TSE is started from a network drive, that is implemented by a Linux machine, that enforces addressing its files case-sensitively.

v1
1 Oct 2022
TSE v2.5e upwards, all TSE variants

zz_log implements old-school debugging!

If a target macro source file is current, then this tool adds zz_log lines, that, when the target macro is run, log what parts of the target macro are actually executing.

You can add your own zz_log_write() lines.

Afterwards all zz_log lines are easily removed with TSE's Find&Do menu.

v2.6
24 Sep 2022
Windows GUI TSE PRo v4 upwards with an ANSI compatible font,
Linux TSE Beta v4.41.35 upwards

This extension enables TSE to recognize and edit files for all major Unicode encodings: UTF-8, UTF-16, UTF-32, including their variants; big endian (BE) and little endian (LE), and with or without a byte order mark (BOM).

Installation: The Unicode extension requires the Status extension to be installed.

If you are a user of the EolType extension, then you need to upgrade it to EolType v7. The older EolType versions do not understand the newline characters in the UTF-16 and UTF-32 files we can now edit.

Key features:

  • For Unicode characters that have an ANSI equivalent the ANSI character is shown. Typically this already covers the most frequently used Unicode characters that are not ASCII characters:
    € ‚ ƒ „ … † ‡ ˆ ‰ Š ‹ Œ Ž ‘ ’ “ ” • – — ˜ ™ š › œ ž Ÿ ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ­ ® ¯ ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß à á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ
  • Other Unicode characters are shown as quoted hexadecimal Unicode codepoints, using the DELETE character (shown as a square-like character) as quotes.
  • You do not have to remember these hexadecimal codes:
    • The character's Unicode description is shown as a status.
    • You can insert any character into your text by typing part of its Unicode name or description in a shrink-as-you-type list of characters.
  • Viewing the current character in its real Unicode form is possible but default disabled because it works imperfectly.
  • A file's character encoding (ASCII, ANSI, UTF-8/16/32[BE/LE][+BOM]) is shown as a status.
  • You can explicitly change a file's character encoding by right-clicking or pressing [Shift] F10 on the status. Note that this allows you to convert any ASCII, ANSI or Unicode character encoding to any (other) Unicode character encoding.
  • Conversions of character encodings are lossless!
  • ASCII or ANSI files are semi-automatically upgraded to another character encoding when you type a non-ASCII or non-ANSI character.
A lot of the above features can be tweaked in the configuration.

Key lacking features:

  • It does not display non-ANSI characters graphically. ANSI only covers the alphabets of languages like Danish, Dutch, English, Finnish, French, German, Hungarian, Icelandic, Indonesian, Italian, Norwegian, Portuguese, Spanish, and Swedish. To view a text's non-ANSI characters you can install the Uniview extension.
  • It only supports Unicode for the content of files and ADSes. To access Unicode folder, file and ADS names use the Edit2 tool.

Unicode info
The Unicode Consortium has a fun 6 minute intro video.
Tom Scott has an a bit more technical 9½ minute intro video about UTF-8 specifically.
The Unicode Consortium is Unicode's source of truth. Scroll all the way down their page for useful technical links.
Wikipedia has helpful articles on Unicode in general, as well as on the specifics of UTF-8 , UTF-16 and UTF-32 .

v2.5 New copy, cut and paste functions, that support ASCII, ANSI, and Unicode-encoded text to and from the Windows clipboard.

v2.5.1 Fixed incompatibility with TSE's "-i" command line option and the TSELOADDIR environment variable.

v2.6 Updated the data files to Unicode 15, which was released 13 Sep 2022.
Fixed, that Unicode text copied to the Windows clipboard could not be pasted in a VirtualBox guest system.

v2
23 Sep 2022
Windows TSE v4 upwards

This tool makes ("mak") one file or all files in a folder read-only ("ro") or not read-only.

Note that the read-only attribute is a very light protection in Windows: It is often and easily ignored. Occasionally it is honored, which makes it slightly better than no protection at all.

v2
Now generates an unsaved .cmd file with the necessary commands, so you can check and even modify the command file before executing it. Now also adds or removes a folder's read-only attribute.

v1.0.1
17 Sep 2022
Windows TSE v4 upwards,,
Linux TSE v4.41.12 upwards

I have written and downloaded lots of macros for Windows with upper case letters in their names. My user interface file has lots of ExecMacro commands that reference them. And lots of those macros reference each other with ExecMacro commands. Whether these references were in the same case did not matter, because Windows is case-insensitive.

Now there is a case-sensitive Linux TSE beta.   Oops!   Porting problem!

This tool repairs ExecMacro commands in all opened files that contain an ExecMacro with a differently cased macro name than its disk filename.

Linux-specific example:
In a UI or macro file the command ExecMacro('Adjust') does not work if the macro's disk name is tse/mac/adjust.s .

With this macro you can repair one or all ui and macro files in one go, check its report and unsaved changed files first, and if you are satisfied with the result, then you can save them all and e.g. use the Recompile macro to recompile them all.

v1.0.1 Fixed incompatibility with TSE's '-i' command line option and the TSELOADDIR environment variable.

v1.0.1
17 Sep 2022
Windows TSE v4 upwards
Linux TSE probably all versions

This tool lists TSE's internal editor version number for one specific file or for all files in a folder.

Fair warning: Even for uber-TSE-nerds it takes an exceptional situation for this tool to be of any practical use.

Context: For different but close TSE releases, the editor and compiler executables and .mac files might still be compatible with each other. This means that macros do not always need to be recompiled for a new release, as is currently already sometimes skipped for .si macros. Whether this is the case is administratively determined by the "internal editor version number" of these executables and .mac files. This tool can list the internal editor version numbers of these files.

v2.0.1 Fixed incompatibility with TSE's '-i' command line option and the TSELOADDIR environment variable.

v2.0.1
17 Sep 2022
TSE v4 upwards

This TSE extension logs all your TSE keystrokes and which file you did them in, default to a Log\Tse\KeyboardLogger folder in your personal folder.

Each TSE session creates a unique logfile YYYYMMDD_HHMMSS_WWWWW.txt based on the start-time of the session.

v2
Instead of first logging keystrokes to a buffer and afterwards copying the buffer to a file, now keystrokes are immediately logged to a file on disk.
The formerly proscribed method of autoloading the macro is loosened and enhanced with intermediate options.
Executing the macro now provides a menu with run-time and configuration options.
Added Linux compatibility.

v2.0.1
Fixed incompatibility with TSE's '-i' command line option and the TSELOADDIR environment variable.

v1.1.1
17 Sep 2022
Windows TSE v4 upwards,,
Linux TSE v4.41.44 upwards

This TSE extension logs selected TSE events to a file and/or to the screen.

This helps macro programmers understand how TSE's hooks work.

File logging is technically the best way, because it works fast and gives detailed timing information. You need to afterwards match your actions with the log entries.

Visual logging to the title bar or the message line can be more problematical, because it can interfere with and be interfered by the editor. It can be really helpful though to see events as they happen in the context they happen in. It slows the editor a lot, because it pauses for you to read the logging.

v1 There was a published beta-version. In this non-beta version hardcoded configuration constants were replaced by user-friendly configuration menus, all remaining TSE events were added, and you can now select which TSE events to log.

v1.1 Now logs the editor's process id instead of Windows handle, because Linux TSE does not have a Windows handle, and now logs can be linked with other process id showing tools like Windows' Task Manager and Linux commands like top and ps.

v1.1.1 Fixed incompatibility with TSE's '-i' command line option and the TSELOADDIR environment variable.

v3.0.3
17 Sep 2022
Windows TSE PRo v4 upwards,
Linux TSE Beta v4.41.12 upwards

Hlp2txt generates a readable help file from TSE's built-in Help system, either in HTML or PLAIN TEXT format, and either using UTF-8, ASCII or OEM character encoding.

The main changes for version 3 are:

  • In the HTML version of the manual links are now identical to those of TSE's Help. This means no more missing links and no more excessive linking wherever a topic's name, word or phrase is used.
  • The HTML manual now has actual bold and italic text where the Help uses colors for these.
  • The manual now includes the Help's InfoBoxes as "Info->..." topics.
  • The manual now also includes those not-indexed topics that are linked to from indexed topics.
  • The tool no longer supports the unused "Word" and "Generic" text formats. You can still open the full HTML file in Word.

Macro programmers: Technical notes about what I discovered about the insides of the Help are described in the source coude in a "technical info" section, and here on the site are two tools that helped with this discovery and with verification of its correctness.

v3.0.3 Fixed incompatibility with TSE's '-i' command line option and the TSELOADDIR environment variable.

v1.1.2
17 Sep 2022
Windows TSE Pro GUI v4.2 upwards

TSE's color configuration menus refer to 1 fixed palette of 16 fixed foreground colors and 16 fixed background colors.

This extension allows you to make any number of named palettes of 16 foreground and 16 background colors, which each can be any of 16,777,216 RGB colors.

A selected palette is persistent across TSE sessions.

So, if you just want a different shade of red, or you want to match your TSE border and menu colors with your Windows theme colors, or you want to make your own TSE nature or party theme, or you want to create an old green, amber or black-and-white monitor theme, then this is the extension for you.

v1.1 If the ColorPicker tool is installed, then the Palette extension now uses it as its internal color picker.
Palette's submenu now uses the <Ctrl I> and <Ctrl E> keys to differentiate between using its internal and external color picker.

v1.1.2 Fixed incompatibility with TSE's '-i' command line option and the TSELOADDIR environment variable.

v5.0.8
17 Sep 2022
TSE v4 upwards

Features:

  • Avoid history lists deleting each other.
  • Get an overview of all history lists with their names.
  • Delete an entire history list.
  • Define cleanup-rules per history list.

v5.0.8 Fixed incompatibility with TSE's '-i' command line option and the TSELOADDIR environment variable.

v1.1.1
17 Sep 2022
Windows TSE PRo v4.0 upwards
Linux TSE Beta v4.41.35 upwards

This extension will be included in TSE versions released after 30 April 2019. For older TSE versions down to TSE Pro v4.0 you can download it here.

Functionality:

  • When a Find or Replace hilites one of its matches, then all other matches currently on the screen are hilited too.
  • It does so as a side effect to using existing Find and Replace keys without interfering with their functionality.
  • It can hilite once, or it can keep hiliting the last search while you continue editing, and stop hiliting when a configured "stop key" is pressed.

Strong points:

  • It also hilites during a Replace's (Yes/No/...) prompts.
  • You can configure different hiliting colours for the extra matches.
  • It hilites a Replace with the Replace search options.

Weak point:

  • It only hilites for commands started with a configured key.

v1.1 Added Linux TSE compatibility. Increased the existing backwards compatibility with TSE 4.0 upwards.

v1.1.1 Fixed incompatibility with TSE's '-i' command line option and the TSELOADDIR environment variable.

v1.4.3
17 Sep 2022
TSE PRo v4 upwards

This extension will be included in TSE versions released after 23 May 2020. For older TSE versions down to TSE Pro v4.0 you can download it here.

When reopening a file this TSE extension restores the file's previous cursor position.

A regular file is remembered based on its full path and file name.

A temporary file is remembered just based on its file name. This makes it work with tools, that give access to a file outside the local file system by copying the file to an each time differently named temporary subfolder and then call the editor.

The macro is an expanded version of the former TmpState macro, that only remembered cursor positions for temporary files. If you previously installed the TmpState macro, then you are advised to uninstall it in favour of this macro.

v1.4.3 Fixed incompatibility with TSE's '-i' command line option and the TSELOADDIR environment variable.

v1.1.1
17 Sep 2022
Windows TSE Pro v4.0 upwards
Linux TSE Beta v4.41.35 upwards

This TSE extension enhances TSE by displaying the lengths of the current line, string and word on the right hand side of the screen.

Which of these lengths you want to see can be configured.

The Lengths macro requires the Status macro to be installed.

v1.1 Added Linux compatibility. Added direct access to the status colour in the configuration menu.

v1.1.1 Fixed incompatibility with TSE's '-i' command line option and the TSELOADDIR environment variable.

v1.4.4
17 Sep 2022
Windows TSE Pro v4.0 upwards
Linux TSE Pro v4.41.43 upwards

This extension integrates some basic git functionality into TSE.

It requires that git is pre-installed on the computer and that the Status macro is pre-installed in TSE.

If the current file is in a git directory, then the its git status is shown on the right-hand side of the screen.

In Windows right-clicking the status (or in any OS executing the Git macro) pops up a menu, from which you can do explicit commits and list and open old versions of the current file.

You can configure the extension to automatically do a "git add" or "git add+commit" after each file save.

v1.4
New: Open an old version of the current file by selecting it from a commit list.

v1.4.3
Fixed incompatibility with TSE's '-i' command line option and the TSELOADDIR environment variable.

v1.1.1
17 Sep 2022
Windows TSE Pro v4.0 upwards
Windows TSE Beta v4.41.37a upwards

This TSE extension now has two functions.

1. For each TSE session that was open during a (Windows) crash, it automatically offers to recover one of those sessions each next time TSE is started.

2. At any time you can access the recent back-ups it made through a shrink-as-you-type list, and thereby retrieve deleted and previous versions of recent files.

I created this extension because historically all my Windows home PCs have tended to occasionally crash, especially during the summer months.

Then in practice I found out that I also used it to retrieve (old versions of) files.

v1.1 Added a user-friendly interface to at any time list and retrieve UnCrash's backup files.
Fixed Uncrash v1.0.7 showing a system buffer if it was started manually.
Undid the change in v1.0.7 to not report a crash if the Close button of the GUI version of an older TSE version than v4.41.46 was used. Semware improved the Close button in TSE v4.41.46, so UnCrash's fix is no longer necessary for newer versions of TSE and even hampered it, and it was too much work to make UnCrash support both the fixed and older versions of TSE when there is a free public newer TSE version available.

v1.1.1 Fixed incompatibility with TSE's '-i' command line option and the TSELOADDIR environment variable.

v7.1.1
17 Sep 2022
TSE PRo v4.0 upwards

This is a TSE extension that enhances TSE's end of line type handling when editing non-Windows files with TSE.

The EolType macro requires the Status macro to be installed.

TSE itself already does a reasonable job of handling end of lines for those non-Windows files that:

  • AND exist on disc,
  • AND are not empty,
  • AND have a correct end of line type.
It does so implicitly: You don't know a file's end of line type.

This macro fills the gaps:

  • It also lets you CREATE non-Windows files,
  • it adds the correct end of line type to files that were empty,
  • it can be configured to repair files with the wrong end of line type,
  • it lets you change a file's end of line type.
It does so explicitly: Default it shows you everything concerning a file's end of line type.

You might edit non-Windows files for instance:

  • on a network drive that is mapped to a Unix, Linux or Mac machine.
  • by using a remote-machine-browsing-tool like WinSCP or Total Commander, which you have configured to use TSE as its editor.
  • when editing a file you downloaded from the internet.

v7 Added understanding the newline characters in UTF-16 and UTF-32 files.

v7.1 Added support for Linux TSE Beta v4.41.34 upwards.

v7.1.1 Fixed incompatibility with TSE's '-i' command line option and the TSELOADDIR environment variable.

v1.2.1
17 Sep 2022
Windows TSE Pro v4.0 upwards,
Linux TSE Beta v4.41.35 upwards

This TSE extension enhances TSE by enabling other macros to display extra statuses on the right hand side of the screen, and by enabling them to handle typing and clicking on such a displayed status.

The colour for these statuses, which defaults to the menu colour, can be configured.

The "other macros" should explicitly inform you, that for them to work they require you to install the Status macro first.

v1.2 Added Linux compatibility and some minor improvements, bug fixes and tweaks.

v1.2.1 Fixed incompatibility with TSE's "-i" command line option and the TSELOADDIR environment variable.

v1
20 Jul 2022
Windows TSE v4.0 upwards

This TSE extension syntax-hilites characters in a marked block with the same syntax-hilited foreground colors they would get without a marked block.

This can look great or horrible depending on your TSE color settings, so you might have to change those for a pleasing result.

The idea for this TSE extension came from Zhao Zhong.

v1.1
21 May 2022
TSE 4.0 upwards

The tool's name stands for "Find across lines".

It works like TSE's Find command, but with these differences:

  • The search string can match a text string that spans across lines.
  • Only the search options g, i, m, v, x, + and digits are used.
  • When searching it sees each line end as a line feed character.
  • In a regular expression "^" and "$" match a line end, "." now includes matching a line end, and "\s" matches any whitespace character (space, tab, line end, …).
  • Default it matches a search range of at most 255 characters.
  • In the search options you may specify a different search range, or "m" for the maximum range of 31,998 characters.
  • Parameters can also be supplied as macro command line parameters.
  • In the text it marks a found string as a block, and in a View Finds list it colors each found string.

v1.0.1
Fixed a display bug in the View Finds list.

v1.1
Made the documentation Potpourri-compliant, so you can easily Windows-copy/paste it to create a new Potpourri entry.

v1
13 May 2022
Windows 10,
Windows GUI TSE 4.0 upwards

Edit2 is a tool that implements some of TSE's File Open functionality with the added capability to browse and edit files and alternate data streams (ADS) with non-ANSI names too.

Note this distinction: For the names of folders, files and ADSes with non-ANSI characters use this Edit2 tool. For the content of files and ADSes with non-ANSI characters use the Unicode extension.

An ADS is an optional, invisible, file-like attachment to a file or folder. There are a few command line tools that can show them. As far as I know Edit2 is the only file browser that does. An example of where an ADS occurs is, that when you download a file, for example "Edit2.zip", your web browser will typically add an ADS to it, in this example a tiny text ADS called "Edit2.zip:Zone.Identifier".

An included example of a filename containing non-ANSI characters is "Edit2 - The α and ω of Tools.txt".

Edit2 features:

  • For its input and output it requires and default displays non-ANSI characters as their hexadecimal Unicode codepoint quoted with character 127 (usually a square).
  • Luckily you can browse to such folders, files and ADSes, and the browser's current line is redisplayed above the list using the current font's full character range.
  • As the tool's parameters you can enter a folder or file or ADS, optionally with non-ANSI characters or wildcards or preceded by the options "-a" (load all) or "-c" (configure) or "-d" (only ADSes) or "-f [filename]" (load files listed in file or current buffer) or "-s" (include subfolders).
  • These options work much like they do for TSE's File Open command, but with the additional access to non-ANSI names and ADSes.
  • Files and ADSes opened by Edit2 can be edited and saved.

v1
14 Mar 2021
Windows TSE PRo v4.0 upwards,
Linux TSE 4.42 upwards

This tool helps macro programmers to easily create a log file and write time-stamped lines to it.

It just requires simple commands like:

ExecMacro('Log open <filename>')
ExecMacro('Log write <some text>')
ExecMacro('Log write <some other text>')
...
ExecMacro('Log close')

Every logged line of text will be prefixed with its date and time.

It logs to one file at a time. This is a limitation if you want to debug two macros independently. This is a feature if you want to debug one problem that has dependencies in multiple macros.

v1.3.1
4 Mar 2022
Windows TSE PRo v4.0 upwards,
Linux TSE Pro - tested with v4.42

This tool shows a list of all TSE buffers in memory, those of files as well as hidden and system buffers.

You can select a hidden or system buffer to safely view a copy of its content, or select a normal buffer to switch to it.

v1.3.1 Bug fixed: Now you can select a system or hidden buffer more than once, which refreshes its copy-buffer.

v1.2.1
9 Feb 2022
TSE PRo v4.0 upwards

This tool is included in TSE Pro v4.41.37a upwards. For older TSE versions or for the latest BigIntSum version you can download it here.

Given a marked column block of integers of at most 255 characters wide, this tool will add a line below the block with the sum of the integers.

The integers may contain grouping charcters and may be separated by empty columns.

v1.2 Summarized, it does 3 new things: It adds a "=====+" line between the block and the sum, matching the width of the block. It puts a formatted sum before the sum if it recognizes consistent block number formatting. It aligns the (formatted) sum with the column block.

v1.2.1 Fixes a bug that in some situations caused BigIntSum to hang or the sum to be placed shifted away from the column. Thanks to Fred H Olson for finding the bug and the fix.

v1.1
13 Jan 2022
Windows TSE Pro v4.0 upwards,
Linux TSE Pro probably all versions

This tool sorts all lines from the current buffer on their length into a new unnamed buffer.

v1.1 No longer modifies the current buffer. Improved the progress messages for very large buffers.

v1.2.3
31 Dec 2021
Windows TSE Pro GUI v4.0 upwards with an ANSI compatible font.
It only partially works in other Windows TSE Pro v4 versions.

This tool converts a text buffer to an unsaved HTML page including TSE's syntax highlighting.

The result can be used as (a snippet in) a web page or an email.

For an HTML example with style attributes, see how the following text is embedded in this HTML page. This is not a picture, but text, that can be marked and copied as text:

// Example highlighted code snippet
// generated with this tool.
proc Main()
  string  response [10] = ''
  integer number        = 0
  while Ask('Number?', response)
    number = Val(response)
    Warn('The square of'; number;
         'is'; number * number)
  endwhile
end Main

For an HTML example of class attributes referring to a stylesheet, see the code snippets in TSE PRO Undocumented Features .

For use in an email your email client needs to support the necessary HTML formatting.
Use in an email works by saving the generated HTML page, opening the saved file in a web browser, and copying the highlighted text from the web browser into an email.
If an email receiver's email client does not support this highlighting, they still tend to see the text, just not highlighted.

Email clients that have been reported to support this highlighting:

  • Outlook
  • iOS mail
  • Pegasus (if a message wrap option is set)
  • eM Client
  • Thunderbird

v1.2 Added a choice whether to generate "style attributes" or "class attributes with a stylesheet" for the HTML colors.

v1.2.3 Fixed: Now also works if TSE's cursor line is configured to be colored differently from other text lines.

v1
22 Dec 2021
Windows TSE PRo v4.0 upwards
Linux TSE Beta ? - v4.41.46 upwards

TSE's menu options have a static helpline.

This is a demo for macro programmers, that shows how to program a TSE menu option with a variable helpline.

On the bright side, it is well documented and helper procedures are provided.

On the dark side, it uses a dirty trick to work around TSE's static menu option helplines, and might not be future-proof.

v1.0.1
30 Sep 2021
Windows TSE Pro GUI v4.2 upwards

This tool lets you or your macro pick an RGB color by clicking in a palette of colors.

Theoretically there are 16,777,216 RGB colors. On my monitor the tool will only show about 200,000 colors.

The tool is very slow to start up. If that is not an acceptable price for its awesomeness, then you might want to use an online color picker instead.

Color picker

v1.0.1 Only tweaked the documentation.

v1.7.1
28 Aug 2021
TSE Pro v4.0 upwards

This include-file for macro programmers contains compiler directives and procedures that help us create "TSE Pro v4.2 and above"-specific macros that are backwards compatible down to TSE Pro v4.0.

It does so by implementing some of the new TSE Pro v4.2 and TSE Pro v4.4 macro COMMANDS as macro PROCEDURES, and by using compiler directives to only use those macro procedures for the TSE versions that do not support the new macro commands yet, and to use the faster macro commands for the TSE versions that do support them.

Additionally this file contains a group of compiler directives that make the compiler give a clear and specific message if someone compiles the macro with a TSE version before TSE Pro v4.0.

Also it adds backwards compatible names for the component bits of the return value of QueryEditState().

TSE commands implemented as procedures:   -   Their procedure versions:

  • integer proc isAutoLoaded() - 1.0
  • integer proc MkDir (string dir) - 1.0
  • integer proc RmDir (string dir) - 1.0
  • integer proc StartPgm (string pgm_name, string args, string start_dir, integer startup_flags) - 1.0
  • integer proc StrCount (string needle, string haystack) - 1.0
  • integer proc StrFind (string needle, string haystack, string options) - 1.0
  • integer proc StrFind5 (string needle, string haystack, string options, integer occurrence, var integer found_length) - 1.0
  • string proc StrReplace (string needle, string haystack, string replacer, string options) - 1.0
  • string proc VersionStr () - 1.1

Support procedures - Their procedure versions:
  • integer proc compare_versions(string version1, string version2) - 2.0
  • integer proc wurn(string text) - 1.0

v1.7 Added StrCount().

v1.7.1 Bug fix: For Linux WIN32 should be defined, but as FALSE.

v1
25 Aug 2021
TSE Pro v4.0 upwards

This tool can be used to navigate and gain insight into large recursive lists and program source code.

It accomplishes this by compressing text into a list of lines with a certain maximum indentation, which you can control with the Right and Left keys.

For example, it compresses a shopping / todo / notes list of increasingly indented topics and subtopics into a new list of only the (sub)topic lines, where you control which level of subtopics you want to see.

As another example, programs typically use indentation to clarify their structure.
Top-down this tool works somewhat like TSE's "Function List" menu, but with the added capability that it can then include lines with ever increasing indentation, which gives some insight into the program's structure.
Bottom-up this tool shows lines with the current line's indentation or less, which gives insight into what the current line's place in the program structure is.

v1
24 Aug 2021
TSE Pro v4.0 upwards

This is a tool for macro programmers to determine a buffer's best tab size.

Here tab size means how many SPACE and TAB characters are the most consistently used to increase the indentation of a next line. A TAB character is treated as one SPACE character.

For testing you can run it interactively to create a report of found tab sizes and the determined tab size.

It also comes with a GetTabSize_Test tool, which tests and demonstrates GetTabSize by listing the tab sizes for all text files in a folder, defaulting to your TSE folder.
(Aside: GetTabSize_Test has a neat is_text_file(filename) procedure.)

v1
11 Jun 2021
Windows TSE Pro v4.0 upwards,
Linux TSE Beta v4.41.35 upwards

This tool lists recent files' names into an editable buffer.

It shows the same content as TSE's "File List Recent" menu, but not as an interactive list from which you can pick and open a file, but as an editable buffer.

v1.0.1
11 Jun 2021
Windows TSE Pro v4.0 upwards,
Linux TSE Beta v4.41.35 upwards

This tool lists all open files' names into an editable buffer.

More specifically, it creates a new TSE buffer, that contains a sorted list of the same files' and buffers' names that are interactively shown by TSE's "File List Open" menu.

v1.0.1 Gave the new buffer a significant name. Improved the documentation.

v1
5 Apr 2021
Windows TSE Pro v4.0 upwards,
Linux TSE Beta v4.41.41 upwards

This tool encodes (compresses) or decodes (decompresses) the current buffer to a new buffer it creates.

Its main feature is, that it does so solely with TSE's capabilities, i.e. without any dependency on a non-TSE third-party tool.

It is not compatible with with any other compression tool. It is intended as a helper tool for TSE-specific applications.

v1 There was a v0.2 beta release of this tool. Here is what is new in the v1 version:

  • Changed: After an encoding or decoding error the tool no longer produces a new buffer.
  • Changed: Calling the "Huffman" macro (usage 1) no longer names the new buffer it creates, which pulls its behaviour in line with the other three usages.
  • Added: If their input buffer is 10,000 or more lines, then encoding and decoding show a progress message.
  • Fixed: Encoding plus decoding added an empty line to the end of a non-binary buffer.
  • Fixed: No error was given for the fact that the tool cannot encode a buffer with less than two different characters.
  • Fixed: No errors were given if the number of encoded and decoded/decodable characters did not match.
  • And: Various small tweaks.

v1
11 Mar 2021
TSE PRo v4.0 upwards

This include-file provides macro programmers with the get_drive_type() function, which returns a drive's or a file's drive type, like whether it is on a removable disk, local disk, network drive, compact disk or RAM disk.

Because it uses a Windows function it has the same limits as Windows in recognizing drive types. My personal pet peeve is that Windows sees my harddisks and USB drives (not sticks) as the same drive type.

A get_drive_type_test macro is provided to test and demonstrate get_drive_type()'s use. It lists all your drives and their type.

v1
13 Feb 2021
TSE PRo v4.4 upwards

This include-file for macro programmers provides us with the FastStrFind() procedure as a much faster (*) alternative to TSE 4.4's built-in StrFind() function.

(*) Qualifier 1: Much faster in computer terms. Only macros that use StrFind() thousands of times might become faster to us humans by the use of FastStrFind(). I use FastStrFind() to speed up some file conversions.

(*) Qualifier 2: FastStrFind() is just as fast as StrFind() when searching for a regular expression or a word; it is a lot faster when only using other search options.

A FastStrFind_Test macro is provided to demonstrate FastStrFind()'s use and speed.

v1.0
22 Dec 2020
TSE PRo v4.0 upwards

This tool asks for a directory and generates a TSE buffer with "rmdir" commands for those directories there that contain no files. Directories containing only empty directories are listed too.

You can examine and edit the resulting TSE buffer, and rename it to a .cmd file to execute it to remove the listed directories.

v1.3
24 Jul 2018
Windows GUI versions of TSE Pro v4.0 upwards with a not maximized screen

This TSE extension allows you to temporarily zoom in and out by using Ctrl MouseWheel up and down, and to go back to the original size by clicking Ctrl MouseWheel.

While zooming, the screen size is kept as much the same as possible.

To make a screen zoom size permanent, use the TSE menu "Options -> Save Current Settings".

Zooming out is limited to where letters (have) become to small to read.

Zooming in is limited to where a screensize of 80 x 25 characters would no longer fit, because that might stop TSE's menus from working.

v1.3 Allows disabling its incompatibility warning for TSE's Console version.

v1.2.1
27 May 2020
TSE Pro v2.80h upwards

An implementation of Conway's "Game of Life".

v1.2.1 It makes Life also compatible with TSE Pro v4.41.38 upwards.

v1.0.1
27 May 2020
GUI versions of TSE Pro v4.2 upwards

This tool tries to lock access to Windows until a password is re-entered.

It has a screensaver!

v1.0.1 It makes ScreenLocker also compatible with TSE Pro v4.41.38 upwards.

v1.0.2
27 May 2020
TSE Pro v4.0 upwards

When executed it draws a Christmassy picture.

A.k.a. an experiment in programmed fine-textured drawing with TSE.

Based on a user's input I have extended its claimed compatibility to also include the Console version of TSE, but be aware that unless you yourself pre-set a large screen size and a small font size, the generated picture will have a too low resolution in the Console version of TSE.

v1.0.2 It makes Xmas also compatible with TSE Pro v4.41.38 upwards.

v1.0.2
25 Apr 2020
Windows TSE Pro v4.0 upwards,
Linux TSE Beta v4.41.12 upwards

This tool recompiles all macros in TSE's "mac" folder.

With the exception of macros with an ampersand or parentheses in their name. SemWare has one such macro: "find&do".

v1.0.1 Solves a Linux bug.

v1.0.2 Solves a Linux bug in solving the Linux bug :-(.

v2.0
21 Mar 2020
TSE Pro v4.0 upwards

For a folder or for a space separated list of folders this tool creates a list of groups of those files, the names of which only differ by a version suffix in the name.

This tool was requested by one user. I created it in the hope that it might have general benefits, but my conclusion is that it does not.

In v2.0 the recognition of versions was rewritten. This was much improved, and is expected to function much better for its requested purpose and type of folders. That said, for general usage it functions slightly better but still poorly.

v1.0.1
3 Feb 2020
Windows TSE Pro v4.0 upwards
Linux TSE Beta v4.41.24 upwards

This power tool searches for a list of search terms in a list of files or in all open files.

v1.0 No more known bugs, no new features planned: Out of beta.

v1.0.1 Semware fixed a TSE Linux bug. I fixed BulkFind to no longer work around it. For Linux BulkFind now requires TSE Beta v4.41.24 upwards.

v1.0.2
16 Jan 2020
Windows TSE Pro v4.0 upwards
Linux TSE Beta v4.41.20 upwards

This tool is an TEST and EXAMPLE macro for the epoch_to_datetime() procedure, that given a time zone in hours can convert unix's epoch seconds (seconds since 1 Jan 1970 0:00:00) to a year, day, month, hours, minutes and seconds.

v1.0.1 Fixed: Apparently only February can have a leap day.

v1.0.2 Fixed: Apparently November 2019 has no 31st day for 1 second.

v3.1
8 Jan 2020
TSE Pro v4.0 upwards

This tool asks for a space separated list of folder paths, and creates a new file inside TSE containing a list of the full paths and names of all files in those folders and their subfolders.

v3.0:
Explicitly annotates those top folders and files as "inacessible", that it cannot access because of TSE's 255 character path limit or because a folder or file name is not ANSI compatible. As this implies, the contents of inaccessible folders remain unlisted.

v3.1
Groups the digits of file sizes.
Now shows the correct size for files larger than 2,147,483,647 bytes for TSE versions from v4.40.95 upwards.

v1.3
6 Jan 2020
TSE PRo v4.0 upwards

This tool can be used as a simple calculator for signed integers of up to 255 characters.

It supports addition, subtraction, multiplication, division, and comparison.

It also contains a separate file for macro programmers, the content of which can be copied as a whole into our own macros to do calculations on big integers.

v1.3 is a finished version.

v1.0
29 Dec 2019
GUI version of TSE PRo v4.4 upwards

This TSE extension allows you to use the ampersand ("&") as a menu quick-key.

Included is a test macro to test and demonstrate this functionality.

This is a very niche extension for a very, very specific "problem".

v1.0
19 Dec 2019
TSE PRo v4.0 upwards

This extension lets macros receive parameters from the command line, without TSE trying to load them as files.

Also included is a macro to test and demonstrate this functionality.

v1.0
11 Dec 2019
TSE Pro v4.0 upwards

This tool assumes that you want to subtract the lines in the current file case-insensitively from the lines in the previous file, putting the result in a new file.

v2.1
13 Nov 2019
TSE PRo v4.0 upwards

This tool changes a file's indentation primarily by changing its tab size.

Note that the program name has become 1 letter shorter from version 1.

This macro refuses to work for a file with tab characters. If a file has them, then first use any of the many other solutions to get rid of those pesky things.

Some indentation theory I made up:
Indentation can be tab-size-based or alignment-based.
In natural text tab-size-based indentation is typically used for lists of points or to make a block of text stand out as a block.
In programming tab-size-based indentation is typically used to visually group a sequence of statements as the subject of a condition or iteration by indenting lines one single extra tab-size unit.
Alignment-based indentation however can have any size, including not conforming to any multiple of the current tab-size. Alignment-based indentation is generally used to align the first character of a line with a character on a previous line to visually indicate a semantic similarity between the content at those two positions. A rule of alignment-based indentation is, that between the alignment-indented line and the line of the content it aligns with there can be no lines with a lesser indentation.
Based on this theory this tool (and we) can reasonably recognize these two types of indentation and differentiate between them.
However, if a text uses tab characters instead of space characters, then we would at the same time have to recognize both alignment types and the tab size. That would be non-trivial.
Luckily the days that computer memory was so expensive that the tab character's disadvantages were acceptable have passed. Modern plain text editors default to inserting the appropriate amount of space characters when we use the tab key.
Therefore I chose for this tool not to cater to tab characters and their users.

v2.0 adds, that (typically in program source code) aligned lines are correctly reindented too.

v2.1 changes no functionality. It adjusts the source file extension from .si back to the standard .s. Also its array implementation was completely rewritten to, while more verbose, to be usable in normal macros.

v1.0.1
31 Oct 2019
TSE Pro v4.0 upwards

With this TSE extension you can better see control characters, like null, bell, backspace, tab, line feed, form feed, carriage return, and others.

Better: Default the GUI version of TSE with an ANSI compatible font "hides" control characters by showing them as spaces. The Console version of TSE and e.g. the Terminal font show most control characters as regular characters, which is better but does not differentiate them from those regular characters. This TSE extension always shows all control characters and always makes them recognizable and distinguishable.

Note, that in normal/non-binary mode TSE has stripped carriage returns and line feeds from lines, and what is not there will not be shown. Open a file in binary mode -3 (prefix opening a file with " -b-3 ") to see any carriage returns and line feeds too.

In the TSE menu "ASCII Chart" you see control characters 0, 1, 2, 3 ... 31 also as the column "^@", "^A", "^B", "^C", ..., "^Z", ..., "^_". This TSE extension consistently shows a control character as the second character from that last column in the inverted text colour. This way you can always reference the ASCII Chart for the now visible control characters.

v1.0.1 Improved the documentation.

v1.0
8 Sep 2019
Windows TSE Pro v4.0 upwards,,
Linux TSE Beta v4.41.12 upwards

This TSE extension makes TSE more user-friendly with regard to the case of a file's folder and name.

For Windows it makes TSE show a file's path as it is cased on disk. For example, in Windows TSE has no problem opening "tse\MAC\adjust.s", but by itself it would keep showing "MAC" in upper case.

Its first Linux feature allows you to case-insensitively open a specific folder or file.

Its second Linux feature adds, that if you renamed only a file's case in the editor, then upon saving it to disk the disk file is renamed too, just like in Windows.

v1.0
14 Jun 2019
TSE Pro v4.0 upwards
Without this TSE extension, if you do not type for some seconds, then the cursor stops blinking.

The problem is not TSE-specific. It was introduced by a new Windows version, and occurs in other applications as well unless they started compensating for it. For instance, Notepad still has the same problem.

v1.0
17 May 2019
TSE PRo v4.0 upwards

ReplaceUnCom emulates TSE's Replace command but only replaces in uncommented text.

v0.2 == v1.0:

- Optimized the comment colour check with a regular expression.

- Added the three ToEOL attributes as comment attributes too.

- Added the check that comment colours must differ from other editing colours.

9 May 2019
9 May 2019
TSE PRo v4.0 upwards

This tool will be included in TSE versions released after 9 May 2019. For older versions down to TSE Pro v4.0 you can download it here.

This tool is a minor update to SemWare's standard Potpourr macro that implements TSE's Potpourri menu.

This version of the tool only differs in that it accepts macro names of up to 12 characters instead of 8.

v1.0
21 Jan 2019
TSE PRo v3.0 upwards

This tool creates a new file from the current file, where every line containing a supplied regular expression is put before itself and before every next line that does not contain that regular expression.

Afterwards you can use existing TSE functionality to search all lines in combination with their tag lines, or to sort the now ubiquitous tag lines on their columns.

When you are done you have the option to remove the inserted tag lines with a column block to get the original file format back.

For example, given the file content:
  id=1
  name="Bob"
  street="Main street"
  city="Metropolis"
  id=2
  name="Alice"
  street="Station street"
  city="Gotham"
It can create the new file content:
  id=1 id=1
  id=1 name="Bob"
  id=1 street="Main street"
  id=1 city="Metropolis"
  id=2 id=2
  id=2 name="Alice"
  id=2 street="Station street"
  id=2 city="Gotham"

v1.0.1
16 Jan 2019
TSE PRo v4.0 upwards

This tool is included in TSE Pro v4.41.37a upwards. For older TSE versions down to TSE Pro v4.0 you can download it here.

This tool is an alternative to TSE's built-in List() and lList() commands.

As you type the list shrinks to those lines matching what you typed.

It also works as a stand-alone macro or command to dynamically search the current file.

In my humble opinion it is a more useful alternative to TSE's own incremental search functionality.

What you type is interpreted as a TSE regular expression.

v1.0.1 Solves the problem of how to supply a list title when using the macro as an include-file.

v1
8 Nov 2018
Windows GUI versions of TSE PRo 4.0 upwards

This TSE extension is a near-perfect solution to the problem, that if you access many files at once, and many or all of them have longer lines than TSE's limit, then TSE forces you to press "OK" on a separatete warning for each such file.

With this macro installed you only get a warning for the first such file, after which ALL warnings are disabled, but only for the duration of the current user command.

For instance, if you open a 100 files using the "-a" option and a wildcard character, and you then search them all at once using the "a" search option; then this macro ensures that that you have to press OK at most once on a "Long lines split: ..." warning, even if all 100 files have them.

v1.0.1
29 jun 2017
TSE Pro v4.0 upwards

This TSE extension does the following:

When you double tap the F1 key when editing a TSE program, then TSE's Help is called for the word at the cursor, otherwise the F1 key works as usual.

v1.0.1 Fixed: It did not work in .ui files.

v1.0
21 apr 2017
TSE Pro v4.0 upwards

QuickSort.inc include-file

TSE itself is "only" capable of sorting lines by sorting them alphabetically on a marked block of text.

With the help of this include-file it is relatively easy to create or modify your own macro to sort lines on any criteria.

All you need to do, is to write a "quicksort_compare" function that accepts two line numbers, and returns -1, 0, or 1 whether you want the first line to be before, whereever or after the second line.

The include-file contains a "quicksort(line_from, line_to)" function that by calling your function sorts ALL requested lines.

An example macro QuickSortTest.s is included.

Warning Later usage revealed, that TSE runs into irregularly occurring memory problems when quick-sorting large files.

1 jan 2010
1 jan 2010
Unknown
This macro takes the current column-position, and uses this for the rest of the file.

If two consecutive lines have case-insensitive the same word overlapping the above column-position, then the second line is deleted, from the current line onwards.

If there is no word on the column-position, then no line is deleted.

v1.3
4 oct 2009
TSE Pro v2.5e upwards
This search-macro will show a list of the found lines, with additional lines before and after the found lines.

v1.3 adds hiliting the search-results and some minor improvements.
5 jun 2008
5 jun 2008
Not tested, but at least TSE Pro v4.0 (GUI) upwards
This is not a stand-alone macro.

It could be used by other macros to browse directories and select one.

Its source is useful as an example of what a macro can achive with mouse clicks.

v1.0.1
6 apr 2008
TSE Pro v2.5 upwards
Find double lines case- and whitespace-insensitive in an unsorted current file, and report them in a "ViewFinds buffer", leaving the current file unchanged.

Here whitespace-insensitive means that any non-empty string of consecutive whitespace-characters matches any other such string.

Here the whitespace characters are space, horizontal tab, and formfeed.

FndDubLn ignores characters past column 255.

v1.0.1 Fixed: The macro could not handle empty lines, resulting in erroneous reports. The macro now ignores empty lines and lines containing only whitespaces.

28 oct 2007
TSE Pro v3.0 upwards
This macro changes the date/time of all files in a given directory and all its subdirectories by adding or subtracting an amount of time.

It was originally written to make the files on a LAN server an hour older (by adding -1 hour) to solve a synchronization problem when the outside world was about to switch from summertime to wintertime.

When the outside world switched from summertime to wintertime, and clocks went an hour back, then file-times on Windows pcs also went an hour back (*), but file-times on a LAN did not. So if files on Windows pcs were synchronized from a LAN-directory based on date/time, then the switch to wintertime suddenly made files on Windows pcs appear one hour older than the same files on a LAN, which inadvertenly triggered synchronization.

(*) There are also advantages to this: A running Windows process doesn't see a just created file suddenly becoming an hour older or newer. Which for instance also means that a process cannot create files "in the future" :-)

The macro prompts for:
  • The directory.
  • The type of time-unit: years, months, days, hours, minutes, seconds.
  • The positive or negative number of time-units to add.
  • Whether to Simulate or Make the changes.
DISCLAIMER!
Use this macro at your own risk. It is not perfect.
Always do a simulation first, and especially search the resulting report for "overflow", which means that a certain date/time will not be changed.
v1.0
12 aug 2007
TSE Pro v3.0 upwards
This macro protects you against (accidentally) opening unwanted files, like "*.bak" files, or like files in Subversion's "\.svn\" meta-directories, or whatever.

Especially when you use TSE's -a and -s options and wildcards you can and want to open whole direcories or directory trees of files, but without those pesky exceptions.

This macro notices it when you try to open such files, and asks your confirmation to NOT open them.

You get one question for each File Open command that results in opening such files, and your answer applies to all files opened by that specific File Open command.

You are asked the question only when the editor is otherwise idle, so that the macro doesn't interfere with other macros.

For the same reason the macro internally works by letting TSE open the files, and then closing the unwanted ones.

The macro works by matching the names of opened files against a TSE regular expression, and asks the user a question to confirm to not open the matching files.

You can configure your own regular expression and question by executing the macro. The default configuration is for .bak and Subversion metafiles.
v3.0.2
3 aug 2007
TSE Pro 2.5e upwards
When executed it abandons or keeps opened files based on a certain string in their drive, path and/or filename.

v3.0.1 Improves the warning if too many files were opened. v3.0.2 Solves a nasty bug which sometimes caused AbanName to incorrectly load one file as if it were an empty file.
v2.0.2
1 jul 2007
TSE Pro 2.5e upwards
This macro allows you to search in a gigantic amount of files.

TSE lets you open files without loading them, thus avoiding a memory limit. Contrary to TSE's own Find command, this macro can search across files only temporarily loading one file at a time, thus also avoiding a memory limit.

The macro can also "Find and Do" to Keep or Abandon files containing a certain string: You can do this multiple times, thus step by step zeroing in on a smaller and smaller selection of opened files.

v2.0.2
Improves the warning if too many files were opened.

v2.01
Removed the dependency on global.zip and macpar3.zip.
Added a pre-emptive check (including for regular expressions) to warn the user, that there is no use in searching for an empty string.




Beta versions

v0.1
7 May 2020
Windows TSE Pro v4.4 upwards

This TSE extension allows us to open URLs that occur in the text.

This is a very early beta with known imperfections and lots of missing features.

Planned features include: Opening URLs that do not start with "http", opening files, highlighting openable URLs and files in the text, some backwards compatibility, some Linux compatibility.





In development

v0.0.0.2
22 Apr 2023
TSE v4 upwards, all variants

This tool sorts the lines of a buffer or block, either on a regular expression's matches, or on a sort key of regular expression tags.

Syntax: SortOnRegExp [ [-i] <regular expression> [sort key] ]

You can provide the parameter(s) immediately on the macro command line or as a next step in a prompt.

From a technical viewpoint this is an exciting tool to build out. See its todo list for the considered functionality.
From a user viewpoint I wonder if anyone would ever use it. Yes, it could sort a file on fields that need not be column-aligned, but the occasions that I have ever needed such functionality were rare. Yes, it could be an alternative to TSE's sort programs without their flaws , but in practice I have been able to live with those flaws.
For now I am going to give building out this tool a low priority. Let me know if you do want the built-out version of this tool for some practical purpose.

v0.0.0.2 Still the same too slow prototype with limited functionality. However, the documentation was improved a LOT!

Because TSE's Help has not been properly maintained since TSE 4.4 was released in 2005, I want to be able to add my own notes to TSE's Help or even edit a copy of it, to enable others to do the same, and to provide a way to easily exchange them.

!!! Extending TSE's Help with eHelp is still in development !!!

  • (15 May 2023) Blog about implementing TSE's extended Help.

  • (23 Mar 2023, v0.22) eHelp.zip
    Easy installation and update:
    • Extract the eHelp.zip file to TSE's root directory, including extracting subdirectories to subdirectories.
      If your extract-tool did so, it will immediately place eHelp.zip's 6 files in their correct 3 subdirectories.
      Otherwise read the installation instructions in eHelp.s.
    • Open "mac\eHelp.s", and compile and execute it.
    • <Escape> the configuration menu.
    • Done!
    • To check: Go to TSE's Help, look up AbandonEditor(), and for example use <Alt N> and <Alt P> to switch between .ehelp files.
    Functionality:
    • A tsehelp.ehelp copy of TSE's built-in Help is generated and kept up-to-date automatically.
    • The top left corner of a Help screen shows a shortened name, that indicates from which .ehelp file the help comes, or no name if TSE's built-in Help is shown.
    • If a topic occurs in multiple .ehelp files, then you can switch between .ehelp files with these keys: <Alt GreyCursorLeft>, <Alt GreyCursorRight>, <Alt CursorLeft>, <Alt CursorRight>, <Alt P>, <Alt N>.
    • Currently tsehelp_eCarlo.ehelp makes this possible for 159 topics.
    • You can create and edit your own tsehelp_<name>.ehelp text files, and configure eHelp to use them.
    • During editing .ehelp files will be syntax hilited, and their line-drawing, shadow, and block characters will be shown.
    • Saving a .ehelp file syntax checks it, still roughly.
    This is still far from a finished product!
    Read the blog for status and plans.

  • (3 Sep 2022) Preliminary brainstorm about extending TSE's Help.

I welcome suggestions and criticisms!





Possible Future Projects

ViewFindsHi

This is a possible future project.

Syntax highlight the View Finds list.

A TSE extension should be able to do this. The biggest hurdle would be multi-line comments. That hurts, because seeing which View Finds lines are commented and which are not would be a huge improvement! But accounting for them is a mountain of extra work, so I might just do a simple version that does not syntax-highlight multi-line comments correctly, and maybe do a full version later.

English

This is a possible future project.

In the dawn of time Sammy noticed, that, given enough hiliting keywords, TSE's syntax hiliting can somewhat be used to instantaneously check English text for spelling errors. He was still trying it out, and referred to his upload of english.zip, as the basis for his try. It contains an "english.syn" TSE syntax hiliting file.

I accidentally came across it again, and I think it has potential. In TSE I attached the english.syn hiliting file to the .txt file extension. Pros: It did immediately catch my spelling errors. Cons: Of course english.syn does not know all English words, and an English text also contains numbers, names, abbreviations, and domain-specific and user-specific terminology.

With numbers and puctuation marks added, and with a tool or extension that would make it easy to add unknown keywords to english.syn, perhaps with one keyword group for English, one keyword group for user terminology, etc(?), then I guestimate just extension-based syntax hiliting would already be a useful addition to TSE to check for spelling errors, and not hard to implement.

Base64

This is a possible future project.

I needed and created a quick & dirty version of the tool that can convert a base64-encoded text to readable text.

It "works", but is currently so user-unfriendly, that I do not consider it publishable. To do.

UniView v2

This is a possible future project.

I realised two major improvements might be possible:

  • It might be possible to get rid of UniView's flickering line updates by using TSE's HookDisplay() command.
  • It might be possible to make UniView work for the current line too.

These improvements would again bring TSE major steps closer to being a full Unicode editor.

SmoothScroll

This is a possible future project.

In creating the Uniview extension I noticed how the parameters of the Windows TextOut API might be used to implement smooth scrolling in TSE.

One day I would like to try if this works, just for the fun of it. It does not have any priority because it lacks functional advantages.





Demo TSE macros

v1.0.1
28 Jan 2023
Tool compatibility: TSE v4.41.35 upwards
GetLongPath() compatibility: TSE v2.6 upwards
All TSE variants, but short names not tested in Linux.

This tool implements and tests the included function GetLongPath(), which implements the opposite of TSE v4.41.35's GetShortPath() function.

v1.0.1 Fixed: GetLongPath() now returns the input file specification if it refers to a file that no longer exists.

v1
16 Dec 2022
TSE v4 upwards (intended, not tested)

This tool shows how many Hook()s are currently free, and, assuming the maximum available amount of Hook()s is 158, how many Hook()s TSE is currently using.

When running this tool in Windows GUI TSE 4.48 with all macros purged, it says that 158 Hook()s are free.

v1
11 Nov 2022
Windows TSE GUI v4 upwards

This tool asks for a file or files, and gets their last-written dates and times to the millisecond.

Context: As opposed to TSE, which shows file times rounded up to the next even second.

v1
11 Nov 2022
Windows TSE GUI v4 upwards

This tool demonstrates, that when you save a file and immediately spawn a second TSE instance to process it, the spawned process appears to have an earlier start time than the saved file's time.

This can be up to two seconds earlier.

The tool's source explains the phenomenon.

v1
14 Sep 2022
Windows TSE v4 upwards

This tool demonstrates downloading web pages and the downloadable files on them using two Semware download pages as an example:

Latest TSE macro sources from Semware

Old Semware page with user uploads

Note that downloading 112 + 378 files might take about 9 minutes.

v1.2.1
30 Mar 2022
Windows GUI TSE v4.2 upwards

This tool demonstrates how to write Unicode characters to TSE's screen, and explores and documents its capabilities and limitations.

v1.1 Documented additional things I learned. Speculated some more about possible usages.

v1.2 Documented that I learned that "Arial Unicode MS" is not a standard Windows font, so a tool cannot rely on its presence.

4 Mar 2022
Windows TSE v4.4 upwards; tests OK with Linux TSE 4.42

This is a tool for macro programmers, that helps to examine what extra topics TSE's Help contains, that are not shown from its its index.

Summarized answer: Menu-help topics, indirectly linked-to topics, obsolete topics, and InfoBoxes.

Here is a look at its report.

28 Dec 2021
Windows TSE Beta v4.41.42 (probably)

This test macro reveals the correct parameter formats for TSE Beta v4.41.42's new and incorrectly documented CompareLines() function.

13 Dec 2021
Windows TSE Pro GUI v4.2 - v4.41.45

NOTA BENE This TSE extension addresses a bug that was solved in TSE v4.41.46!

This TSE extension demonstrates a fix for the _ON_ABANDON_EDITOR_ hook not being called when the GUI version of TSE is closed with the "X" close button in its upper right corner if the TSE option "Empty Command-Line Action" has one of these values: Menu (default), Restore State, Also Restore State.

A test macro is included too.

26 Feb 2021
Windows TSE Pro v4.4 upwards
Linux TSE Beta probably any version

This is an include-file for macro programmers, that provides the functions repeatable_lFind() and repeatable_lRepeatFind(), that unlike their TSE counterparts do not loop infinitely for a search with the "a" search option.

A demo/test macro is included too.

v1.0 - 20 May 2020
Windows TSE Pro v4.0 upwards
Linux TSE Beta probably any version

This tool lists what keys TSE can send to itself, when it is not interfered by an operating system or other software, and without the limitations of a keyboard.

It gives some insight into TSE's internal key capabilities and limitations, but otherwise has no practical use.

v0.1 - 6 Apr 2020
TSE Pro v4.4 upwards

This is a quick&dirty adaptation of Semware's "match" macro dd 6 Apr 2020.

Like the Match macro, for the bracket under the cursor it jumps to its counterpart, but as requested by a user it ignores any in between commented brackets. So it "matches uncommented" brackets. [Is that even English?]

I do NOT recommend substituting Match by MatchUnCom. MatchUncom has known flaws:

  • It blindly assumes that comment colours are always delimiter colours, which for some configurations might be false.
  • It is badly tested. The user's example test case worked on the first try, and I didn't test any further.

Version: Unknown
4 may 2006
Compatibility: Unknown

This example macro asks for a regular expression, and calculates the minimum length it can match.

The usefulness of this macro lies primarily in that it contains a procedure which can be copied into your own macros.

Often regular expressions that can match an empty string are not useful. Worse, they can also be dangerous when used for searching inside a loop, which can then become infinite because the empty string always matches without advancing the cursor. This macro [procedure] returns zero for such regular expressions, and thus helps you and your macro recognize and avoid useless and dangerous searches.





Not maintained and experimental TSE macros, in various states

v1.0
23 Jul 2021
TSE PRo v4.0 upwards

This tool was created for one specific user at their request. I generalized their request a bit, but I doubt this tool is useful to others.

From a file with search-recognizable keywords, generate keyword-named files, each containing the lines with their keywords.

v0.1
13 Sep 2019
TSE PRo v4.0 upwards

This is neither a finished nor a well-working macro.

I do not see a way forward, so I am abandoning this one.

The intention was to show "best matches first" for a search string applied to the current file, BUT:

  • Intentions turned out to be hard to catch in programming logic. I experimented with applying a weight to results, but this did not work satisfactory.
  • Implementing intentions turned unavoidably into implementing my own biases, and worse, my current biases based on my current purposes. That made it impossible to make this a generic tool.
  • For larger files it worked too slowly. I reduced the searched number of results, but that reduced the results. Sadness and pun intended.

6 jan 2008
The LoadTime macro.       Compatibility:   TSE Pro 4.0 upwards.

Shows not only the current date/time of the current file on disk, but also the date/time the current file had on disk at the time it was loaded.

If TSE warns a user "Disk file has been changed by another program. Save Anyway?", then this macro lets a user verify that warning.

29 mar 2009
v1.1 of the WinWrap macro.       Compatibility:   TSE Pro 4.0 upwards.

This macro lets you view long lines window-wrapped while still editing the original unwrapped lines.

Disclaimer: No it doesn't. This macro works imperfectly.



History:

v1.1       29 March 2009
A tilde indicator in the statusline shows if the file is in WinWrap mode. That only means that the file contains wrapped lines somewhere, not necessarily in the visible window.

v1.0.2       26 March 2009
Solved: Auto-wrapping wasn't delayed when the macro was autoloaded and TSE was started with a file.

v1.0.1       26 March 2009
Solved: The macro didn't compile for TSE Pro 4.0: the isAutoloaded() function doesn't exist yet in that version of TSE.

16 mar 2009
The CurColr macro.       Compatibility:   TSE Pro 4.0 upwards.

This macro changes the color of the cursor position: if the background color equals the one configured for TSE's cursorline, and: either only when the cursor is not on a visible character, or always.

The occasion for this macro was a user who uses a TSE color "intense ... ... on black" (which means a dark grey background): for this background color TSE doesn't show the cursor if the cursor position is a whitespace.

10 mar 2009
Version 1.1 of the CblComnt macro.       Compatibility:   TSE Pro 2.8 upwards.

This macro remedies three potential Cobol issues:
  • All TSE Pro versions are not capable of coloring columns, neither column 1 thru 6, nor column 73 to the end of line.
  • Cobol versions up to and including Cobol-85 indicate comments by putting an asterisk or a slash on column 7. Since version 3.0 TSE Pro supports this with to-end-of-line syntax hiliting if a configurable character is present at a configurable column. TSE Pro 2.8 users need this macro to do the same.
  • For old versions of TSE (but >= 2.8), which don't have a Cobol syntax hiliting file yet, you can install one.
Note: the macro can also be configured for syntax-hiliting Fortran comments.

25 Feb 2013
An incomplete but fast Subversion browser.       Compatibility:   TSE Pro 4.0 upwards.

I consider this macro OBSOLETE. It was written because TortoiseSVN versions prior to 1.8 needed minutes to open a folder with thousands of files in it. This macro could do it immediately.

In TortoiseSVN 1.8 this problem was solved, so I saw and see no reason to finish or maintain this macro.

For Subversion repositories I recommend TortoiseSVN instead of this macro.

13 dec 2009
v1.3.9.1 (not-working failure) of the eVwFinds macro.       Compatibility:   None.

The idea was to create a menu with both fillable fields and normal menu lines, but I cannot get it to work correctly. Usually I like the challenge of taking a tool past its intended use, but this has by now wasted way too much of my time, so I'm dropping it indefinitely.
26 nov 2009
v1.3.9 (working beta) of the eVwFinds macro.       Compatibility:   TSE Pro 2.5e upwards.

It isn't even a real beta: it is just a half-built version 1.4.

You could also look upon it as a progress report.
1 apr 2007
NOTE THAT THERE IS A NEWER VERSION OF THIS MACRO ON THIS SAME PAGE!

v5.1 (beta) of the EolType macro.       Compatibility:   TSE Pro 2.5e upwards.

This OLD macro version is kept for OLD TSE versions.

I downgraded this macro to beta status, because the 5.0 to 5.1 changes were not tested yet. Please report any reproducible errors you might find.

Purpose:
Save files with a unix/microsoft end-of-file-type based on configurable substrings that do/don't occur in the files' full filenames.
Possibly handy when working with a Samba drive, Total Commander, WinSCP and other such tools.

Version 5.1:
Since the previously to SemWare's website released version was 1.0, the "new" features are:
  • The substrings no longer have to start with a drive letter.
  • Configuration file tse32\eoltype.dat became tse32\mac\eoltype.cfg.
  • You can now configure what end-of-line-type warnings and questions you want when saving a file whose end-of-line-type is as configured being changed by the EolType macro.
7 dec 2006
v0.1.0 of the SyncDir macro.       Compatibility:   TSE Pro 2.8b upwards (probably).

This macro synchronizes (by ftp) directories from a pc to a server and/or back.

I use it after changing my offline website to update my identical online website. I have a syncdir.bat file that simply contains:
      @call \tse32\g32.exe -eSyncDir

The macro needs macpar3.zip from SemWare's website to be installed first.

Like the version number indicates, the macro was and is a bit of a hack for my personal use, and is provided as is, with no garanty whatsoever.
12 nov 2006
v0.0.1 of the sFind macro.

Purpose:   Search for a string which might span lines.

This is not a working macro! It is only half built. I am just sharing what I have been working on.

This macro's theory is, that you can search for a string which spans lines by putting a "slide" of lines under a "microscope", and moving the slide from the beginning to the end of the file in such a way, that the macro can use TSE's own Find command search each slide as if it was one line!

Well, the slide part is largely implemented, the search part not at all. When implementing the search part, it will have impact on the slide part, which probably needs a little extending then.
9 nov 2006
v0.10 of the MLformat macro.   Actually, this is a not implemented macro!   It is just a documented plan of attack for a first version of an HTML and XML formatter.

Given Tidy as an alternative, I won't proceed with building this macro.
13 sep 2005
Database v0.01 for TSE Pro 4.0 upwards.   Specific perpose: allows TSE to be configured as an external tool of PL/SQL Developer .   For starters for the viewing or editing of a package (body) that is active in the browser-pane of PL/SQL Developer.   Requirement: the macro needs an Oracle MsDos SqlPlus client.
5 sep 2005
NOTE THAT THERE IS A NEWER VERSION OF THIS MACRO ON THIS SAME PAGE!

This version is for historical purposes while the new version is being developed.

V0.5 (a buggy beta) of the WinWrap macro, formerly known as the ScrnWrap and LongLine macro.   This is a windowwrapper, as opposed to a filewrapper.   It wraps lines that are longer than the current window is wide, but it only wraps them on-screen, not in the editing buffer or the disk-file.   It therefore does not interfere with most editor functions.   However, it therefore does interfere with syntax hiliting, block marking, find marking, the "[End of File]" indicator, and the WhtSpc macro.

New in Version 0.5:   Made the macro deactivate itself when there is blockmarking in the current window, and reactivate itself as soon as there isn't any more.   If the WhtSpc macro is loaded, then it is deactivated during wrapping, and reactivated as soon as there is no more wrapping.   Executing the macro now toggles it on and off. Alas, turning it on again is subject to a known bug.

I will not not develop this macro any further, because I have concluded that the current approch is not fully compatible with TSE's implementation. TSE has a (for this macro's purpose) nasty habit. "Normal" screen updates can immediately be corrected and overwritten by hooks, but screen updates as the result of scrolling can only be corrected with the _idle_ hook, which happens so much later that it causes the screen to flicker. Besides that there is a "no screen updating" bug.   I have concluded that the current approach of creating a reformatted screen over the image of the original file will never work satisfactory. Another approach might be temporarily formatting the file itself, and (e.g. before saving) being able to reformat it back. A second alternative might be to show a formatted shadow-file to the user.   That said, this macro's functionality is so low on my list of priorities, that its development is hereby stopped.
7 jun 2005
ReadReg macro.   This is not a practical macro, just a demo for macro programmers.   It demonstrates how to read the values of a Windows registry key from TSE.
18 apr 2005
Just an exchange of ideas, this macro has no permanent value.   This zipfile contains new2.ui, based on Sammy's new.ui from his test2.zip.   New2.ui does not have fixed menus for menu_styles and key_bindings, but those menus are generated based on the existence of *.menus.s and *-keys.s files.   All a user has to do is copy a *-menus.s or *-keys.s file to another *-menus.s or *-keys.s file (with a new name of course), and TSE will instantly offer it as a new menu choice.
14 jan 2003
Example of User Interface adjustment outside .ui file.
30 mar 2001
Convert EBCD to ASCII, or back.
16 nov 1998
Sorts an ASCII file in EBCD order.



These webpages are created and maintained with The SemWare Editor Professional