1
1
Fork 0
mirror of https://github.com/QB64-Phoenix-Edition/QB64pe.git synced 2024-07-10 00:45:13 +00:00
Commit graph

3036 commits

Author SHA1 Message Date
Samuel Gomes 9a48df5842 Remove dummy files from internal/c/parts/network 2023-03-04 09:39:09 +05:30
Samuel Gomes 4dcefd103e Satisfy -Wc++11-narrowing 2023-03-04 07:50:46 +05:30
github-actions[bot] 2cb0db1e28 Automatic update of ./internal/source 2023-02-19 15:11:28 +00:00
Matt Kilgore 51471e6a97
Merge pull request #310 from mkilgore/release-3.6.0
Version 3.6.0
2023-02-19 09:52:09 -05:00
Matthew Kilgore 07822586e8 Version 3.6.0 2023-02-19 03:40:00 -05:00
github-actions[bot] 8d64ca7a04 Automatic update of ./internal/source 2023-02-19 08:27:35 +00:00
Matt Kilgore 0dcce35923
Merge pull request #307 from mkilgore/fix-symbol-dynamic
Fix DECLARE LIBRARY against stripped .so file
2023-02-19 03:08:17 -05:00
Matthew Kilgore fac5375ea6 Fix DECLARE LIBRARY against stripped .so file
.so files can be stripped such that they contain no "regular" symbol
table but do still contain the "dynamic" symbol table, this is pretty
typical for .so files. QB64-PE is supposed to check both tables when
linking against a .so file, but a bug in ab0c2b18 meant that the second
run of nm with the -D flag to check the dynamic symbol table no longer
happens. The fix is to introduce a new output file for the dynamic run
so that they are handled separately in terms of caching the result.

A new test .so file that only contains a dynamic symbol table was added
to avoid this in the future.

Fixes: #301
2023-02-19 02:10:51 -05:00
github-actions[bot] 7cd5da3d41 Automatic update of ./internal/source 2023-02-18 20:56:37 +00:00
Matt Kilgore 2fe0dd3328
Merge pull request #306 from mkilgore/fix-o-flag-strip-extension
The -o flag should not strip extensions except for .exe
2023-02-18 15:34:51 -05:00
Matthew Kilgore 596a8d6092 Fix formatting 2023-02-18 14:50:31 -05:00
Matthew Kilgore df70f7e708 The -o flag should not strip extensions except for .exe
Current the -o flag will strip any "extension" on the provided filename,
which is fairly problimatic on Linux and Mac OS since those executes do
not have other extensions and names like "foobar.v1" will get the ".v1"
stripped off. This can happen on Windows as well if you leave off the
.exe (QB64-PE will add it for you, but also strip off the existing
extension).

QB64-PE stripping off the ".exe" when provided that on Linux and Mac OS
might actually be useful behavior people are relying on (so that they
don't need to provide different names when compiling on Linux/Mac OS) so
we are preserving that and still removing the extension if it is exactly
"EXE", otherwise we now leave it in place.

Fixes: #297
2023-02-18 14:50:31 -05:00
github-actions[bot] 09e854390d Automatic update of ./internal/source 2023-02-13 17:35:30 +00:00
Samuel Gomes fde4d195d7
Merge pull request #286 from a740g/image-load-from-memory-support
Image load from memory support
2023-02-13 22:48:31 +05:30
Samuel Gomes e1e6203db9
Merge branch 'QB64-Phoenix-Edition:main' into image-load-from-memory-support 2023-02-13 19:05:48 +05:30
github-actions[bot] 08e152635b Automatic update of ./internal/source 2023-02-13 12:57:38 +00:00
Matt Kilgore 87de12b43c
Merge pull request #309 from mkilgore/fix-rgb32-opt-args
Fix _RGB32() optional arguments
2023-02-13 07:35:47 -05:00
Samuel Gomes e79537e624
Merge branch 'main' into image-load-from-memory-support 2023-02-13 16:24:36 +05:30
Samuel Gomes 009eb67ac7 Update comments 2023-02-13 16:24:11 +05:30
Matthew Kilgore 3f0c4d9f9c Revert "Automatic update of ./internal/source"
This reverts commit a7ab521c91.
2023-02-13 00:50:00 -05:00
Matthew Kilgore e810229d11 Fix _RGB32() optional arguments
The new optional arguments for functions broke _RGB32() because it uses
some custom flags ('overloaded' and 'minargs' on the id Type) to control
its parameter passing. You are allowed passing any number from 1 to 4 args
to `func__rgb32` and there are 4 overloaded C++ functions that will get
picked from. This is different from how this typically would work, with
all 4 parameters always passed and an extra argument to specify the
parameters that were passed.

Rather than change `func__rgb32` I simply adjusted the optional argument
logic to account for the flags used by `_RGB32()` - if the `overloaded`
flag is set, then we don't need to add extra `NULL` parameters for any
parameter that wasn't specified in the argument list. Instead we simply
don't emit anything for those.
2023-02-13 00:25:51 -05:00
github-actions[bot] a7ab521c91 Automatic update of ./internal/source 2023-02-13 04:39:51 +00:00
Matt Kilgore f2171ccf34
Merge pull request #305 from mkilgore/allow-optional-arg-funcs
Add support for optional function arguments
2023-02-12 23:21:32 -05:00
Matthew Kilgore 0836cf31eb Format source, apply Option _Explicit in tests 2023-02-12 22:38:50 -05:00
Matthew Kilgore 83533dc319 Add support for optional function arguments
Currently functions only have very limited optional argument support,
this expands it so that we can have more complex sets of optional
arguments for functions, such as multiple arguments where not all need
to be provided. This will be used in the future for some upcoming
functionality.

Note that this does not support any generic optional argument format,
the commas always have to be provided unless an optional argument is at
the end of the parameter list. Thus, if you have a format with two
optional arguments and you want to omit the second, then you need to call
it as 'foo(2, , 3)`, rather than `foo(2, 3)`. This is important for
avoiding ambiguous situations, and is how many SUBs currently function.

The two functions that violate that requirement are INSTR() and
_INSTRREV(), which use the format `[?],?,?` and allow omitting the comma
for the first argument. This format is simply handled as a special case.

Fixes: #303
2023-02-12 22:38:50 -05:00
Matt Kilgore 47639507ff
Merge pull request #295 from mkilgore/fix-timer-first-run
Fix timers at program start, TIMER STOP, and Sleep with console
2023-02-12 22:08:55 -05:00
Matthew Kilgore d4ed371681 Stopped timers don't trigger on TIMER ON
If a timer expires while stopped, it should trigger when TIMER ON is
run. Instead, on QB64 it triggers randomly after the TIMER ON happens.

The basic issue is that `qbevent` needs to be set to trigger the timer,
but TIMER ON doesn't do that. The regular timer logic that does that
already set it when the timer expired while sleeping, so it won't set it
again. The simplest solution is to just alway set qbevent = 1 when TIMER
ON is done. It's slightly less efficent but doesn't hurt to set it even
when there are no timers that expired.

Fixes: #293
2023-02-12 21:27:25 -05:00
Matthew Kilgore f995f38e38 Using Sleep with Console programs does not trigger timers
The command Sleep is supposed to allow timers to trigger while the
program is sleeping on the delay. This is achieved in QB64 by having
commands that do delays manually call evnt() to trigger events if they
come up (of which timers are one).

Sleep has a custom implementation for console programs on Windows which
doesn't do this, so I redid the logic so that it calls evnt() at regular
intervals while waiting for input. Additionally, due to now calling
evnt() we also need to check if we should exit sleep early due to an
evnt() firing.

Fixes: #294
2023-02-12 21:27:25 -05:00
Matthew Kilgore 924472f5d6 Fix timers not firing at the start of the program
Timer's were not firing at the right time if they were started shortly
after the program started, instead they would fire at twice the interval
time (and then work correctly after that).

The issue was a mistaken assumption about `time_now`, with the idea that
if `last_time == 0` then `time_now` will be large enough such that the
interval check will pass. This is wrong because in most cases `time_now`
starts at zero at program start, so when `last_time == 0` it will take
one full interval of the timer before `time_now` is large enough for the
interval check to pass (at which point the timer is initialized and runs
normally).

This simply refactors the timer logic so that `last_time == 0` is
checked first, rather than if the interval has expired. This doesn't
change how the normal logic works, but ensures that the value of
`time_now` does not matter for initializing a timer.

Fixes: #273
2023-02-12 21:27:25 -05:00
github-actions[bot] a3ccfbc6db Automatic update of ./internal/source 2023-02-12 23:39:33 +00:00
Roland Heyder 0568d73fd8
Merge pull request #308 from QB64-Phoenix-Edition/wiki-dev 2023-02-13 00:21:15 +01:00
Samuel Gomes f86d566d7a Merge branch 'image-load-from-memory-support' of https://github.com/a740g/QB64pe into image-load-from-memory-support 2023-02-13 03:52:28 +05:30
Samuel Gomes 52d168ff00 Update to use #305 2023-02-13 03:52:16 +05:30
Roland Heyder 275ca24c9a General refactoring
- things not fitting into the previous commits
2023-02-12 19:47:01 +01:00
Roland Heyder b1c9733420 Removes old code
- unused (commented) code
- no longer needed HTML tag handling (eliminated from Wiki pages)
- #toc/#top link filters removed (those links are supported now)
2023-02-12 19:41:25 +01:00
Roland Heyder dacff9e1b8 Improve local linking for #toc/#top links
- designate the help page header as target for #toc/#top links (Return to Top, Return to Table of Contents in the Wiki)
- include bottom {{PageNavigation}} links
- implement <h4> headings (==== in the Wiki), used as letter anchors in the alphabetic index
2023-02-12 19:32:47 +01:00
Roland Heyder 08b000b71c Skip more useless line feeds
- ignore line feeds after HTML comments and <br> and <br /> tags
2023-02-12 19:20:50 +01:00
Roland Heyder dfa65b8fdd Add more Entities/UTF-8 chars
- adds some 20+ more chars to the list
- re-grouping and some comment changes
2023-02-12 19:13:05 +01:00
Roland Heyder 174a95b052 Change flow logic (Entity/UTF-8 related)
- targets especially links, templates and centered text
- every char must properly run through the Entity/UTF-8 substitution stage
2023-02-12 15:01:21 +01:00
Roland Heyder 6399068293 Change line end detection
- use color bit 7 instead of the CR char to mark the end of a help line
2023-02-12 14:37:51 +01:00
Samuel Gomes 18efb60cc3
Merge branch 'QB64-Phoenix-Edition:main' into image-load-from-memory-support 2023-02-07 18:32:03 +05:30
github-actions[bot] b3044016f7 Automatic update of ./internal/source 2023-02-06 18:26:09 +00:00
Samuel Gomes 75db7abd59
Merge pull request #304 from a740g/main
Tiny PR that corrects the arg. count for _SNDNEW and type for _COLORCHOOSERDIALOG
2023-02-06 23:38:40 +05:30
Samuel Gomes 4c548822d3 Fix arg count for _SNDNEW and type for _COLORCHOOSERDIALOG 2023-02-06 18:50:03 +05:30
github-actions[bot] 837eee255a Automatic update of ./internal/source 2023-02-02 10:25:48 +00:00
Roland Heyder 7020a5e7b4
Merge pull request #302 from QB64-Phoenix-Edition/wiki-dev
Wiki dev
2023-02-02 11:09:16 +01:00
Roland Heyder 9c7e067990 Improve Entity/UTF-8 handling
- UTF-8 handling changed to signal missing/unknown chars
- old entity handling (see 1st commit) removed and replaced by a similar method as UTF-8 handling incl. signalling missing/unknown entities
- added dynamic warnings at the top of pages which are using missing/unknown entities or UTF-8
2023-02-02 00:10:31 +01:00
Roland Heyder 01ed59c1d3 Add Interwiki link support
- wikipedia pages can be linked simply as Winkipedia:page instead of the full URL
- advantage: the new syntax can be used in internal links as well and will automatically expanded into external links when clicked
2023-02-02 00:02:05 +01:00
Roland Heyder ceb3d18c1e General refactoring 2023-02-01 23:52:13 +01:00
Roland Heyder 61513cbcd8 Remove obsolete code
- wiki pages have been fixed, so the handling for these old things is no longer required
2023-02-01 23:48:43 +01:00