1
1
Fork 0
mirror of https://github.com/QB64-Phoenix-Edition/QB64pe.git synced 2024-09-09 17:30:19 +00:00
Commit graph

363 commits

Author SHA1 Message Date
Matthew Kilgore
fcec53e55b Fix text wrapping on last column with variable width fonts
Currently there is a bug where if a variable width font is in use and
text printed would exactly fit to the end of the row, it is instead
wrapped and printed on the next line.

Ex. You're printing a character that is 10 pixels wide, starting
from position 90 on an image that is 100 pixels wide. This should fix,
but instead your character will be printed on the next line.

The reason this happens is an off by one error, cursor_x (effectively
the X value passed to LOCATE) is one based even when using a variable
width font where cursor_x represents a pixel location. The location that
check if the next character can fit on the screen never handles the base
one, so it ends up treating the ending Y coordinate as one past where it
will actually end, which makes the code thing the print will go past the
edge of the screen.

To fix we simply subtract one before doing the comparison to give us the
actual ending pixel column.
2022-05-06 17:50:07 -04:00
Matthew Kilgore
55da5f4ce3 Format other various source files 2022-05-06 13:20:30 -04:00
Matthew Kilgore
1aa8d7a42f Run clang-format on ./internal/c/*cpp files 2022-05-06 13:20:30 -04:00
SteveMcNeill
50eb90f885 Update LodePNG library
from 2012 version to 2022 version, which has been quite improved and sped up.
2022-05-03 02:33:45 -04:00
Matthew Kilgore
77aced1b1c Rewrite distribution logic, download mingw*.exe 2022-04-28 17:21:56 -04:00
Matthew Kilgore
9315646e76 setup_win.bat: create internal/c/c_compiler
internal/c/c_compiler no longer contains anything, so git will not
create it. This change makes setup_win.bat create the directory if it's
not already there.
2022-04-28 17:15:35 -04:00
Matthew Kilgore
97240a0b46 Add standalone mingw32 and mingw64 installers 2022-04-28 13:43:09 -04:00
Matthew Kilgore
fbc580c9c5 Delete Mingw32 and Mingw64 2022-04-28 13:42:59 -04:00
phillvancejr
8f0c08e2ec Added global scope operator :: to the socket bind call to prevent clashes with <functional> std::bind in some builds 2021-11-01 10:21:16 -04:00
Roland Heyder
c48bf6776e Fixed LOC function for files
Will correctly return zero (0) now for just opened but yet untouched files.
2021-10-22 23:51:48 +02:00
Fellippe Heitor
0fac593dd6 Update libqb.cpp to allow manual compilation in WinXP
Oh, well... there's still life for XP.
2021-10-17 03:56:54 -03:00
FellippeHeitor
56aa5e7e53 Try harder to return window_handle 2021-10-16 23:08:13 -03:00
Roland Heyder
ce3c459dad Implements the _Bin$ function
Usage is analog to the legacy OCT$ and HEX$ functions.
2021-10-14 00:17:35 +02:00
Fellippe Heitor
ab1f20eb3b Allow PRINT to show content in console even without a new line
Closes #74
2021-10-04 00:17:21 -03:00
FellippeHeitor
8d9cd83f6a Prevent errors when doing internal lbound/ubound checks 2021-09-30 22:40:57 -03:00
FellippeHeitor
1a3f3f5ad1 Add binary name to error message dialog; closes #157 2021-09-29 23:25:47 -03:00
Fellippe Heitor
4995175a16
Exits if without dev or ctx. 2021-09-25 23:15:12 -03:00
KindOne
4e91e559dd
Don't exit if missing speakers when using SOUND/BEEP. 2021-09-23 00:57:49 -04:00
FellippeHeitor
5cab1880b5 Uses GetLogicalDrives() in Windows (file dialogs). Closes #183 2021-09-21 02:54:41 -03:00
FellippeHeitor
3e498df414 Fixes watching/sending values for _BIT arrays. 2021-09-20 22:04:24 -03:00
Ashish Kushwaha
8e69e8cf3b allow 'move' to treated as 'cycle' for _mouseshow 2021-09-14 19:37:08 +05:30
Ashish Kushwaha
0f1dbed8e3
Merge branch 'QB64Team:development' into development 2021-09-12 19:21:01 +05:30
FellippeHeitor
a02243455b Merge branch 'development' into watch-arrays 2021-09-04 23:57:22 -03:00
FellippeHeitor
7ba11565a5 Adds GetBytes so it's easier to add data to the packet ($DEBUG). 2021-09-03 00:03:28 -03:00
chlorophyll-zz
fcb714133b
Update libqb.h
this fixes PR #185
2021-09-02 14:45:10 +02:00
chlorophyll-zz
6c403db7f2
Fix: Ambigous 'data' in global scope
Fixes #184
Probably breaks another thing.
Ambigous 'data' in global scope
https://root-forum.cern.ch/t/ambiguous-data-in-global-scope/41490
2021-09-02 13:52:36 +02:00
FellippeHeitor
9aa166e4de Checks for array's lbound and ubound before fetching data. 2021-08-19 19:10:51 -03:00
FellippeHeitor
3e4d1fc430 Merge branch 'development' into var-export 2021-08-18 21:28:50 -03:00
Luke Ceddia
27e4ee4770
Detect non-x86 based architectures 2021-08-18 22:07:40 +10:00
FellippeHeitor
e791ca2001 Ensures _ConsoleTitle has time to do its thing. 2021-08-18 00:26:06 -03:00
FellippeHeitor
c2eb3c00bc Merge branch 'development' into var-export 2021-08-18 00:22:55 -03:00
FellippeHeitor
744bd19107 Fixes race condition between vWatch and _CONSOLETITLE
It was a love triangle with _WindowHandle in the end, it's complicated.
2021-08-18 00:21:03 -03:00
Luke Ceddia
30d67825bf
Detect aarch64 as 64 bit 2021-08-18 00:04:24 +10:00
FellippeHeitor
2af2f4e2a1 Improves handling/signaling of INPUT/LINE INPUT in $DEBUG mode. 2021-08-14 21:28:21 -03:00
FellippeHeitor
8dddefd002 Brings debuggee window to foreground when using INPUT. 2021-08-14 17:04:25 -03:00
FellippeHeitor
c41af6961f Prevents checking _WINDOWHANDLE from halting a $CONSOLE app.
Would happen when in conjunction with $SCREENHIDE.
2021-08-13 00:51:32 -03:00
FellippeHeitor
cca1593f79 Switches focus to IDE automatically when breakpoint is reached.
Windows-only.
2021-08-12 23:00:43 -03:00
FellippeHeitor
0bbc60e73e Allows reading program_stop without using _Exit. 2021-08-04 21:12:33 -03:00
FellippeHeitor
01a3c56685 Allows setting any length string variables from the IDE. 2021-08-03 00:36:21 -03:00
Ashish Kushwaha
7e3a60c50b added 'cycle' style in _mouseshow 2021-07-31 11:22:10 +05:30
Luke Ceddia
1e76f237de
Supress SIGPIPE on tcp send 2021-07-31 00:06:09 +10:00
Fellippe Heitor
7e5710a364 Allows _MK$/_CV to deal with _OFFSET
_UNSIGNED _OFFSET too.
2021-07-28 14:26:32 -03:00
FellippeHeitor
231e28c79b Adds method to allow closing the connection with the IDE.
In order to allow $DEBUG to work with programs that call CLEAR, the connection handle used to connect to the IDE is locked by default and cannot be CLOSEd. With this change, the debuggee itself can now unlock the handle and close the link.
2021-07-22 00:18:34 -03:00
FellippeHeitor
30348dd2db Allows a debuggee to call CLEAR while keeping connected to the IDE. 2021-07-21 23:54:30 -03:00
FellippeHeitor
1fa3781a12 Attempt at fixing ENVIRON for Windows.
'Works on my machine'.
2021-07-17 13:27:35 -03:00
Fellippe Heitor
ee4b611056 Adds _EnvironCount 2021-07-17 12:15:00 -03:00
Luke Ceddia
a866fec7f0
Rewrite ENVIRON 2021-07-17 17:56:42 +10:00
Fellippe Heitor
90461eb226 Fixes ENVIRON$() in *nix systems when passing a string. 2021-07-17 01:04:27 -03:00
Fellippe Heitor
ae887507c2 On error, report back to the IDE. ($DEBUG) 2021-07-16 23:18:46 -03:00
FellippeHeitor
af454940e4 Adds TIMER ON control over the debuggee. 2021-07-15 01:13:50 -03:00
Luke Ceddia
0f3909d955
Revert "Prevent zombie processes with Shell _Dontwait"
This reverts commit a94b738407.
It turns out that change stops the SHELL function returning the
child exit code, which is worse than having zombie processes.
2021-07-13 16:20:32 +10:00
Luke Ceddia
a94b738407
Prevent zombie processes with Shell _Dontwait 2021-07-13 13:08:27 +10:00
Fellippe Heitor
7b853bf9f2 First attempt at implementing Step. 2021-07-11 12:55:49 -03:00
Fellippe Heitor
b59aa4d7af Begins prototyping a $DEBUG metacommand. 2021-07-09 08:08:49 -03:00
what
c622ae9592
Remove 255 char limit for INPUT
Also affects `LINE INPUT`
2021-07-05 19:39:24 -04:00
Zachary Spriggs
f90a45a2cf Allow $CONSOLE:ONLY programs to return _WINDOWHANDLE
We previously only allowed GUI QB64 programs to return a value in _WINDOWHANDLE. Following Microsoft's recommendation for obtaining a console program's handle, we can now return the handle in a $CONSOLE:ONLY program https://docs.microsoft.com/en-us/troubleshoot/windows-server/performance/obtain-console-window-handle
2021-07-02 11:17:32 -04:00
Zachary Spriggs
e799e79012 Add %TEMP% to _DIR$() folder specifications
Adds the %TEMP% directory to `_DIR$()` folder specifications.
2021-06-21 20:25:21 -04:00
Zachary Spriggs
4a66dabf08 Add Program Files & Program Files (x86) to _DIR$()
This change adds the Program Files and Program Files (x86) folder specifications to the `_DIR$()` function.

`Print _Dir$("program files")
Print _Dir$("program files x86")`
2021-06-21 17:01:23 -04:00
Luke Ceddia
bf32a6a0fc
Explicitly set x87 fpu to extended precision mode 2021-06-17 23:51:08 +10:00
Fellippe Heitor
5e05664896 Removes Sleep(0) from qbs_inkey
Addresses #166
2021-05-24 16:19:55 -03:00
Fellippe Heitor
ec747a53c2
Merge pull request #156 from lstricklan/development
Fix writing to SCRN when opened as a file
2021-03-30 13:49:26 -03:00
Lynn Stricklan
445f11fd4c Update libqb.cpp 2021-03-26 11:51:21 -06:00
Zachary Spriggs
46e24587aa
FreeLibrary in func__newimage
Freeing the runtime linked library in `func__newimage` after the call
2021-03-26 08:34:55 -04:00
Zachary Spriggs
20a61cc474
Fix new bug with _Width and _Height
Where the previous bug would only return the console's image size when an image was passed, the new bug made it only ever return 80 for `_Width` and 25 for `_Height` when it should be returning the console's image size if there is no value passed and it is the `_Source`, which it is if we are in a `$Console:Only`.

Here is a code block that demonstrates the bug being fixed:
```Option _Explicit
$Console
Screen _NewImage(640, 480, 32)
_Dest _Console
Width 120, 5
_Dest 0

Print "Hello world"

Print _DesktopWidth, _DesktopHeight
Dim As Long i: i = _NewImage(1280, 720, 32)
Print _Width, _Height
Print _Width(0), _Height(0)
Print _Width(_Console), _Height(_Console)```
2021-03-24 09:38:44 -04:00
Fellippe Heitor
2a476e19e9
Merge pull request #153 from lstricklan/development
Fixes to libqb.cpp for random file record length and to msbin.c for MBF encoding
2021-03-24 01:28:31 -03:00
Zachary Spriggs
ad3afb56b8
Changed #if blocks to be greater than or equal to Vista version 2021-03-24 00:14:19 -04:00
Zachary Spriggs
c727abd667
Check for XP using WINVER in func__newimage and sub__consolefont
This can re-enable `_ConsoleFont` by checking if the version of Windows is greater than XP. Also, for the DPI awareness.
2021-03-24 00:09:33 -04:00
Lynn Stricklan
87c01d0bed Update libqb.cpp
When opening a file for random access, if the LEN is not supplied, it defaults the length correctly, but does not allocate the buffer correctly. The code should reference the record_length in the file struct.
2021-03-23 13:41:59 -06:00
Lynn Stricklan
69ab2d3327 Revert "Update libqb.cpp"
This reverts commit c38716f3b7.
2021-03-23 13:41:59 -06:00
Lynn Stricklan
f66559eed5 Update msbin.c
The processing for MKDMBF$ fails for numbers smaller than 1.  Basic cause is the check for exponent overflow is incorrect. Changed code to correctly check for exponent overflow
2021-03-23 13:41:59 -06:00
Lynn Stricklan
ac9664e312 Update libqb.cpp
2 changes here:
line 13062: When opening a file for random access, if the LEN is not supplied, it defaults the length correctly, but does not allocate the buffer correctly.  The code should reference the record_length in the file struct.

Changes in lines 15798-15853:  When printing text to the screen, carriage returns in the text are ignored.  In sub_file_print, the code for printing to the screen is modified to honor carriage returns.
2021-03-23 13:41:58 -06:00
Zachary Spriggs
189cdb8e39
Fix bug with DPI, Width, and Height (Win)
Fixes a bug that would make QB64 return the incorrect size monitor/desktop size when the resolution is scaled. Also, the last fix I added that set `_Source` to `_Console` automatically caused an issue with `_Width` and `_Height`, causing them to return only the console's image dimensions rather than the image that is passed.
2021-03-22 15:51:54 -04:00
Zachary Spriggs
3c58f611a3
Fixes bug that frees console_image handle in Clear
Fixes a bug that would free the console_image handle in the freeallimages() function
2021-03-16 15:34:43 -04:00
Doug Kearns
fee91e8c33 Fixes missing file messages when purging precompiled content 2021-03-11 11:27:56 +11:00
Zachary Spriggs
141d0db085
Fixed indentation of new commits 2021-02-24 17:07:02 -05:00
Zachary Spriggs
66ea2b794d
Removed "SPRAY" from _MOUSESHOW
"SPRAY" gives the same result as "CROSSHAIR" and so is unnecessary
2021-02-24 15:42:05 -05:00
Zachary Spriggs
a3141fc425
Adding "WAIT", "HELP", and "SPRAY" to _MOUSESHOW 2021-02-24 15:38:47 -05:00
Fellippe Heitor
0d92432fbf Fixes _SCREENY for the mac. 2021-02-09 13:52:58 -03:00
Fellippe Heitor
37ea325cfa Reenables _SCREENX/SCREENY for macOS only. 2021-02-09 09:08:57 -03:00
Luke Ceddia
bb3f5d3712
Revert "Enables _SCREENX/_SCREENY for macOS/Linux."
This reverts commit d4a3d7f721.
2021-02-09 17:34:10 +11:00
Fellippe Heitor
75642c31dc Merge branch 'development' into IdeTweaks 2021-02-07 22:55:58 -03:00
Roland Heyder
ac33be345d
Allow type symbols in numeric DATA constants.
Done for the sake of retrocompatibility. Although those symbols are simply ignored, as the type is determined by the variable types given at the respective READ statements.
2021-02-07 22:56:08 +01:00
Fellippe Heitor
d4a3d7f721 Enables _SCREENX/_SCREENY for macOS/Linux. 2021-02-07 11:54:52 -03:00
Fellippe Heitor
4824f9c67b Should be the same for Windows. 2021-01-27 22:19:32 -03:00
Fellippe Heitor
e273baa0dd Reset EOF when SEEK is used. 2021-01-27 22:17:26 -03:00
Luke Ceddia
3f2f35b546
Fix some error(7) that should be error(6) 2021-01-24 23:41:55 +11:00
FellippeHeitor
e45eed894d Indentation only. 2021-01-20 22:24:25 -03:00
FellippeHeitor
a75adfe519 Indentation only. 2021-01-20 22:18:08 -03:00
Luke Ceddia
c62568008d
Add _ERRORMESSAGE$ 2021-01-17 23:54:15 +11:00
Luke Ceddia
6d4878d643
Make linux installer not affect mingw files 2021-01-14 22:29:19 +11:00
Luke Ceddia
a23e8ce212 Use manual delta method for _mouseinputx/y on non-windows 2021-01-12 01:32:01 +11:00
Luke Ceddia
4060f8c046 Fix RAWINPUT struct size on 64 bit windows 2021-01-12 01:27:35 +11:00
Luke Ceddia
caa96bd614
Tidy up generation of ansi sequences 2021-01-09 00:07:27 +11:00
Luke Ceddia
9634243b95
Merge branch 'development' into nix-terminal 2021-01-08 23:59:51 +11:00
FellippeHeitor
fb2b916602 Frees mem lock for sound handles at _SNDCLOSE. 2021-01-01 23:16:49 -03:00
FellippeHeitor
bd54eb0f39 Attempts at implementing _MEMSOUND 2020-12-31 01:40:54 -03:00
Carlos A. Leguizamón
a6fcfd51b3 Replaced way to detect macOS version and screen configuration. This way removes any output from console. 2020-12-21 11:03:34 -03:00
Carlos A. Leguizamón
6d3fbe23a4 Fix for UI scale in macOS Catalina, running with 4K/Retina displays. 2020-12-07 00:57:22 -03:00
FellippeHeitor
1d07a3c802 Fixes ENVIRON$() to automatically add CHR$(0) to strings passed.
Closes #79
2020-10-18 01:14:25 -03:00
Luke Ceddia
860e6cad57 $CONSOLE:ONLY on Linux no longer pulls in GL/X11 libs 2020-07-15 22:25:57 +10:00