Skip to content

v0.5.0

Pre-release
Pre-release

Choose a tag to compare

@rforzachamp821 rforzachamp821 released this 16 Feb 16:29
· 40 commits to main_ZeeTerminal since this release
b43f6c0

ZeeTerminal v0.5.0. Find release notes, source code and binaries in the .zip OR .7z file.

You can also find the release notes below:

ZeeTerminal v0.5.0 Release Notes


New Features

  • 9 NEW COMMANDS: FileParse, Disp, SystemInfo, Einstein, Edison, Tesla, Cow, Cat, Bunny and Copy.
  • 3 new sounds in the BeepSounds command have been added! There are now 8 sounds in total, and the new ones include: a RickRoll song, Tetris Theme, and a Dramatic Song.
  • The current Copy command has been renamed to 'CopyFile' to outline what it really does (copy file contents), and a new Copy command has been introduced to replace it.
  • Comment support has officially been added for all of ZeeTerminal! Comments are denoted at the beginning of the string, with the character '#'.
  • A scripting system for ZeeTerminal has finally been integrated, and it's called FileParse! You can now execute commands from a file line-by-line, as if ZeeTerminal was an interpreter. You can also drag-and-drop the script onto the program executable, which would automatically run the script for you. You can also run the script from the new FileParse command.
  • You can now run individual ZeeTerminal commands from a terminal! Just type in the filepath to ZeeTerminal, then append the '-c' argument to that, followed by the command. If spaces are involved, quote the command in speechmarks.
  • The Calculator command now supports European math notation and thousands separators! You can now use the '-e' argument to use the European notation, that uses the '.' character for the thousands separator and the ',' character for the decimal point. Without the argument, the calculator uses the default ',' for the thousands separator and the '.' character for the decimal point.
  • You can now adjust the volume of audio output in the AudioPlayer command! Press the W/up arrow key to amplify the volume, and S/down arrow key to lower the volume.
  • A new OptionSelect Engine style has been integrated! This one has been based on the input style from the previous version of ZeeTerminal, the TerminalAppGen2, and it is why it is referred to as the 'old' OptionSelect Engine style. It is very fast, lightweight and reliable, and still looks relatively good compared to the one that was first integrated, now referred to as the 'new' style. It features a system where each option is given a number from 1 to n, and the user has to input the number that is wanted to choose an option.
  • A new settings page called "LogFile System Settings" has been integrated, and contains the following options: Fully Enable/Disable ZeeTerminal Logging, Toggle Verbose Message Logging, Toggle User-Space Error Logging, Toggle Command Input Info Logging, and Toggle User Input Info Logging. The Settings command also allows these to be set with new arguments, which can be viewed with the command 'settings -h'.
  • A new setting that enables changing the OptionSelect Engine style has been integrated! You can manually change which style you want.
  • Each setting in the Settings command will now display the currently-set setting! You no longer need to guess what setting you set beforehand to which option. On most command, you can find it just below the prompt message.
  • A logging system for ZeeTerminal has finally been built and integrated, and it's called the LogFile System! With the tweaking of some settings in the new dedicated LogFile System settings page, you can create log files of your current ZeeTerminal setup with ease. Multiple logging options are available - you can log: verbose messages, user-space error messages, command input, and user input. It uses millisecond-accurate time, and uses the ISO format for the date.
  • Each object now has a unique identifier! This is actively used to denote the object type in the new LogFile System logs, and might be used for new features coming soon.
  • All slowchar functions that do not centre output text support word wrapping now! Any word-wrapping spaces disable any wait/sleep mechanisms in the functions, and they are intelligently detected.

Changes and Bugfixes

  • Fixed a rounding error in the Calculator command, where performing operations on infinitely recurring decimals would give an answer very close to the correct answer, but not quite the correct one. This has been fixed by increasing the precision of the algorithm from 15dp to 19dp and keeping the output set to 14-15dp, to help with rounding. For example, the expression (10/3)*1.8 would previously equate to 5.999[...] instead of 6, which is the correct answer.
  • Fixed other rounding errors in the Calculator command resulting in the last decimal digit being incorrect.
  • The Calculator command, when in working-out mode, will now not display extra unnecessary zeroes in the numbers in the expression.
  • The Calulator command now uses a new system where the internal algorithm can process at 19dp, and display will format to 15dp.
  • All help messages are now in specific functions in a central, unified source file. This should neaten up source code and reduce lengths, as the CommandsFile file will get very big if something isn't removed.
  • The Calculator command will no longer output in scientific notation. It will use a fixed digit notation. This is to prevent rounding errors when outputting to the display, as the decimal to represent the scientific notation can be incorrect by a few decimal places.
  • Tabs at the beginning of the command string will be ignored now, just like spaces. Tabs shouldn't be treated as part of a command, but rather as indentation for the command, hence the reason why tab characters will be ignored.
  • Fixed a bug where the option string "0" would be included in the end display process in both the OptionSelect Engine Tester and the ScreenNavigate Engine Tester in the DevTools command. This is not meant to be included.
  • Added a new argument to the read command: '-b'. This allows for opening and outputting a file in binary mode, rather than the default text mode. This can be useful in many cases, however can cause undefined behaviour and instability in the terminal in some very small number of cases.
  • Revamped the read command to: use less lines of code, and have a much simpler and more efficient design structure.
  • In the AudioPlayer command, the audio session stats (e.g if paused, unpaused, repeat activated, etc) will now all be displayed right on startup.
  • The BASS libraries, used for the AudioPlayer command, have been updated to v2.4.17.
  • Applied a possible fix to a lockup in the AudioPlayer command, where while unpaused, fast-forwarding to the end of the file will lock up the player.
  • Fixed a bug in the OptionSelectEngine system where the first option in any selection list would sometimes glitch under the last option when exiting or pressing ENTER, on any console with terminal VT bug #14774 on the Windows Terminal GitHub.
  • Added an extra FAQ question and answer in the Help command, discussing the new and old OptionSelect Session styles.
  • Titles on all commands have been reconfigured to appear only when any user input is required in the command, and in the HELP page of each command. This should ensure titles don't appear at the most annoying times. This change does not include the colournumbers and sysinfo commands, as I (as the developer) believe that even though they don't require any later user input, they would do better with a title.
  • All descriptive text that usually appears under the title on some commands only show in the HELP page of each command, for the same reason as configuring the title appearance rate.
  • Lightly cleaned up old command code and fixed general grammar, word inconsistency and punctuation mistakes in them.
  • Fixed many errors in all command help messages.
  • Increased speed and performance of ZeeTerminal startup. It should now start up with little to no noticeable delay.
  • After some conducted research on the topic, all existing algorithms that detect and act on the #14774 Windows Terminal bug have been swapped out with algorithms that are based solely on the terminal screen buffer height. As other terminals (even Conhost.exe terminals) can experience similar bugs based on terminal screen buffer height, this change was necessary, even though those bugs are rarer on those terminals. This also simplifies the system, only requiring one custom-designed function that does not involve outputting to the display.
  • Fixed issues with text colours being completely messed up and terminal attributes being impaired when ZeeTerminal is executed and exited manually within a terminal. This was fixed by recording all text and terminal attributes/values before execution, and resetting the terminal to these values/attributes when exiting. The console cursor style is not reset to its original values, however, for technical reasons.
  • Fixed an issue where a forkbomb would occur when the colour parameters to the colour() function are incorrect, and when WIN32 colours are being used. It involved an infinite cycle of failing to change the colour, sending a message about it and attempting to change the colour again. Verbose messages were sent over and over until the stack filled and the program crashed.
  • Fixed an issue when loading an RGB preset, where default colours weren't set when the RGB preset values in a ZeeTerminal configuration file are tampered with in a specific way, and the bSetByUser value is set to 0.
  • Increased resillience to incorrect values when WIN32 colours are being used, especially when the ZeeTerminal configuration file is tampered with. Only colour values of up to 8192 are allowed now. If these limits are exceeded, default colours are set and the config file is updated. A message may be displayed or logged to indicate this. A similar fix for ANSI colours may be coming soon, involving maximum values of up to 255.
  • Fixed an issue with RGB colour preset loading causing undefined behaviour because of the lack of checks for correct colour formats. Only WIN32 colours are checked for now, and a similar fix for ANSI colours may be coming soon. Only colour values of up to 8192 are allowed to be loaded now.
  • When changing the background colour, the whole background should change colour instead of just the text background.
  • Fixed an issue where RGB colour presets were being defaulted to ANSI colour codes, even when running in a WIN32 environment. This caused issues when trying to load presets, as they were being detected as invalid for the current terminal (which they were), causing UB. On configuration file write operations (including at startup), this is now checked upon and fixed automatically, removing the existence of such an issue.
  • Loading an undefined, unset RGB preset will no longer result in default colours being set. It just doesn't make any sense to keep it like this.