The math here is wrong, it accounts for the extra quote when doing `-
2`, but obviously that quote is not there in this situation so it should
just be `- 1`. The result of the current logic is that it cuts off the
last character of the string.
Moves the qbs, command, and error handling APIs into separate .cpp files
in libqb/src/. This makes only minor changes to the actual code beyond
moving the logic, many global variables are left in place to be dealt
with in further changes.
Fixes: #146
Multiplication wasn't using the ParseNum helper methods and as a result
wasn't setting num.ui, resulting in the wrong answer when using
unsigned.
I additionally switch it to use the proper signed vs unsigned type when
doing the multiplication.
The math evaluator was not running the input through lineformat before
evaluation, resulting in Evaluate_Expression$() giving the wrong result
since the input wasn't tokenized.
- placing $INCLUDEONCE in any line in an include file will prevent including the file multiple times (BAS synonym for #pragma once)
- $INCLUDEONCE must be the only thing in the line
- using it in the main program has no effect and will be ignored without error
- adds filetype IDs
- now includes DECLARE LIBRARY files
- allows immediate recompile after error whitout the need to make a "fake" change to the program first
- tracks required external files for changes and triggers a rebuild if needed
- $EXEICON file
- $MIDISOUNDFONT (incl. the DEFAULT one)
- $INCLUDE (incl. nested ones)
- $EMBED files
- internal includes as forced by $COLOR or $DEBUG
- reduce memory impact
- fix $NOPREFIX issue
- improved checks to avoid faulty highligting of unquoted text in DATA lines and meta lines such as $VERSIONINFO or $ERROR
- fixed a wrong Wiki link (SHELL fucntion)
This moves the CONST replacement up before we turn the elements into a
single string. The advantage is that we don't have to worry about
splitting the string properly to find the CONST names as the elements
are already split for us.t
- better check if _EMBEDDED$ appears inside a string or after a REM or apostrophe
- make sure REM is a valid command and not just part of a variable name
- better enforcement for 'handle' being a single literal string, i.e. not allowing stuff before or after
- As suggested by @mkilgore , moved the embed list array reset out of the $EMBED block
- Imposed a 20% least ratio for compression
- Moved the handle comparison into `func__embedded()` to avoid some unnecessary function calls
When loading a font, and that font wasn't found, we were tossing an IDE Module Error at the users. This corrects that glitch and even pops up a notification letting them know that the font wasn't found, before reverting back to the old font handle.
String manipulation has too much overhead for larger files to write all at once. The best write speeds, from multiple testing experiments in various conditions, come from simply using PUT to place the data line by line to the drive.
This change reflects that method of file saving.