Without a parameter, it clears all buffers. A numeric parameter will
clear only a specific buffer: 1 = INKEY$ buffer (and other traditional
QB input commands), 2 = _KEYHIT buffer, 3 = INP(&H60) buffer. The last
one is not actually cleared, but we pretend we've read all the data from
it.
To ensure no stray characters, use this command immediately before the
code you wish to sanitise. You never know when the user might bang on
the keyboard, and this also helps to avoid stray key release values
persisting in the _KEYHIT buffer.
Added new _STRCMP and _STRICMP commands for quick string comparisons.
Cleaned up QB64 to finish removing the QUI (quick user insert) code and folders.
Altered UCASE and LCASE routines to be faster in some situations for us.
Deleted makedat_win.txt, and created makedat_win32.txt and makedat_win64.txt which we toggle between according to compiler now.
Made change inside QB64.bas so it automatically adjusts output for DATA statements according to OS.
It's not true cross-program clipboard support, but the clipboard now functions
within a QB64 program. Importantly, this means you can copy/paste code around
in the IDE.
[{_CLOCKWISE|_ANTICLOCKWISE}][{_SEAMLESS}](?,?)-(?,?)-(?,?)[,?]{TO}(?,?[,?])-(?,?[,?])-(?,?[,?])[,[?][,{_SMOOTH|_SMOOTHSHRUNK|_SMOOTHSTRETCHED}]]
Refactor/rewrite of how OpenGL state is monitored/maintained
Critical fix to stop _MAPTRIANGLE (2D hardware version) not freeing old commands in the pipeline
Critical fix to stop intermittent QB64 crashing in 32-bit mode when screen size expanded
Removed the ad-hoc system and insert ParseCMDLineArgs$(), which
should be easily extensible. Also supports the -- option for using
a filename that looks like an option (I would have liked to just be
able to use quotes on the command line, but COMMAND$ doesn't preserve
that information unfortunately.
LINE INPUT will now use the faster method if passed a file handle
that has been opened FOR BINARY. As such, the _BLINEINPUT command
has been removed.
qb64.bas now takes advantage of this for reading from '$include files,
at least in Include Manager 1. Some tweaking of internal/source/main.txt
was required to get things into a sane state, so I'm holing off changing
the compiler any further so the auto-builder can make sure everything's
smoothed over.
Note: Everything should still compile as normal; I'm just being overcautious.
_SEAMLESS option is not available for hardware yet and will generate an Illegal Func Call error. This is due to it failing to be pixel-perfect with the non-hardware version.
Glut commands _SCREENX, _SCREENY, _SCREENMOVE, _DESKTOPHEIGHT, _DESKTOPWIDTH,
_SCREENICON now wait for the screen to be created before trying to work.
Change to QB64.bas source to use _BLINEINPUT instead of LINE INPUT for INCLUDE$.
This should make the IDE much more responsive when Includes are used from now on.
Split qb64.bas into $included components: notably settings, version, gloabal, ide (& wiki downloader), subs/functions (and extensions including user mods and opengl)
Moved 'user mods' to source\subs_functions\extensions
Removed legacy functionality of the QB64 update system (including compression functions)
QB64.BAS can be compiled independent of its IDE $includes (just comment them out)
QUI commeted out (needs minor revision)
Updated version to 1.000 (just ran out of numbers)
Pushed changes introduced by LUKE (Johny B on the QB64 forums) as follows :
Fixed setup_lnx.sh, added _CWD$, fixed handling of errno.
Converted setup_lnx.sh to Linux line endings (was preventing the script from running).
We now include <errno.h>, so the errno variable actually works - before it was just a regular variable that wasn't being set on error.
Added a _CWD$ function that returns the current working directory. Should work on all 3 systems, but testing is needed on Win/Mac.
Can cause the following runtime errors: 7 (Out of memory), 51 (Internal error).