1
1
Fork 0
mirror of https://github.com/QB64-Phoenix-Edition/QB64pe.git synced 2024-07-25 20:55:52 +00:00
Commit graph

1268 commits

Author SHA1 Message Date
Matthew Kilgore 4a2808905c Delete qbx.o before every compile
This helps when compiling several files in a row very quickly, Mac OS
only has a one second accuracy on the file modification time which can
cause Make to not notice a file has been modified. With the changes to
avoid startup delays it's possible to have compiles happen that quickly
in succession now.
2023-01-08 20:24:25 -05:00
Samuel Gomes 061bf6af3d Rename _NEWSOUND to _SNDNEW to align with _SND* APIs 2022-12-31 12:00:38 +05:30
Samuel Gomes 4c80f6bcea Implement feature request #28 2022-12-31 01:49:23 +05:30
Roland Heyder 764996499c nm output buffering
- file is loaded on first access and then kept in buffer
2022-12-20 02:59:52 +01:00
Roland Heyder d243ff4b74 Wiki changes
- allow word wrap in text blocks
- add <pre> block handling
2022-12-20 01:18:56 +01:00
Luke Ceddia 4086cda00d
Clean up nm commands 2022-12-19 22:36:58 +11:00
Luke Ceddia ed0b6b12a5 Use tmpdir$ instead of internal/temp/ when invoking nm 2022-12-18 21:45:06 +11:00
Luke Ceddia ab0c2b189d Only run nm once per library 2022-12-18 20:45:58 +11:00
Steve McNeill 7894b8eec3
Merge branch 'main' into main 2022-11-27 14:50:00 -05:00
Matthew Kilgore 816126be08 Fix the Beginning C++ message being printed when using the IDE
This was overlooked in #258, previously this printing was being skipped
over via a check of idemode, but after changing where it was located so
it only prints once it now runs when using the IDE, which screwed up the
drawing of the IDE screen.

The simple fix is to check for idemode before doing the printing, which
is effectively what it was doing before anyway.

Fixes: #266
2022-11-27 12:41:07 -05:00
Steve McNeill d3f12be83b
Merge branch 'main' into main 2022-11-27 02:38:15 -05:00
SteveMcNeill 4e08c25057 Restore a little too much cut from last update. :P 2022-11-27 01:13:54 -05:00
SteveMcNeill 093396d538 Remove some redundancy in color dialog code 2022-11-27 01:06:25 -05:00
SteveMcNeill d0c7b5abb2 Bump to IDE size
As talked about in the Discord Chat, a bump up to 120x40 for the IDE size, if the user hasn't set something custom.
2022-11-27 00:33:48 -05:00
SteveMcNeill 4a078a1595 Add IDEErrorColor setting to config file 2022-11-27 00:26:46 -05:00
Matthew Kilgore 77c5e6c39c -x should create executable relative to _StartDir$ when -o is not provided
Starting with #201, source files relative to `_StartDir$` are allowed to
be passed to `-x` and compile as expected. Additionally as part of that
change, when the `-x` parameter is relative to `_StartDir$`, the `-o`
argument is _also_ treated relative to `_StartDir$`. This is simply the
behavior everyone using the compiler would expect - that the source file
and `-o` are relative to the same location.

An overlooked behavior was the executable location when `-o` is not
provided. It still writes to compiler directory, but it really should be
writing to `_Startdir$` since the output executable is intended to be
relative to the same location the source file is relative too. Overall
this is fairly straight forward to fix as the logic is the same, we just
need to make use of it when the `-o` flag is not provided.

Fixes: #257
2022-11-26 21:25:33 -05:00
Matthew Kilgore ae6602ecaf Prevent commands like NoPrefix duplicating commandline output
Some commands like NoPrefix trigger a complete "recompile" due to how
they work. This has the accidental effect of duplicating the command
line output, which should still only be printed once. Moving the
printing logic up a bit is a simple solution.

Fixes: #256
2022-11-26 21:25:33 -05:00
Steve McNeill 8bb2aefcb6
Merge branch 'main' into main 2022-11-26 20:33:48 -05:00
Roland Heyder ec6e648007 Simplify #include
Solving #119
2022-11-27 00:11:04 +01:00
SteveMcNeill 62cafd7a14 Redo and expand Version Compare Logic 2022-11-26 15:59:49 -05:00
SteveMcNeill 7576dc46fe Fix to Issue #233 with $IF and VERSION
https://github.com/QB64-Phoenix-Edition/QB64pe/issues/233

This should fix the comparisons with $IF and VERSION.   A few things of note here, which might affect future version labeling:

This expects to find version numbers which follow our current style -- ##.##.##   -- 3 numbers, separated by periods.

Adding in alphabetic characters will basically get ignored, and versions with less than 3 values will generate FALSE results in all comparisons.
2022-11-26 05:18:29 -05:00
SteveMcNeill b32059f155 Change to Open File Dialog
Change to open file dialog so that it initially opens in the user's StartDir$, and then from whatever folder they navigate to after that.
2022-11-26 03:06:36 -05:00
Roland Heyder 65371dad0f Wiki download finalized
- restore default back to https:
- ask user for fallback, if required
- final adjustments for new behavior
2022-11-23 22:54:04 +01:00
Roland Heyder b153a86d7e
Merge branch 'main' into wiki-dev 2022-11-23 11:02:28 +01:00
Roland Heyder 81d4983219 Wiki update refactoring
Some changes/fixes in the update flow.
2022-11-22 18:22:10 +01:00
Roland Heyder 87a234b45b Wiki download changes
Using built-in TCP/IP and HTTP protocol via manual request headers.
2022-11-22 18:20:48 +01:00
Matthew Kilgore 12c9c35db5 Add _StatusCode command for HTTP handles
The _StatusCode command returns the status code on the HTTP response
when given a HTTP handle from _OpenClient().
2022-11-20 04:04:02 -05:00
Matthew Kilgore 77e0a369af Add $Unstable entry for Http
This effectively adds Http support to QB64-PE via adding $Unstable:Http
which will trigger building with DEP_HTTP, which enables Http support in
libqb.
2022-11-19 15:13:26 -05:00
Matthew Kilgore 1aac3b1955 Version 3.4.1 2022-11-15 23:47:34 -05:00
Matthew Kilgore 65cfbda3b7 Rename 'New Dialogs' to 'GUI Dialogs', Persist setting
The 'New Dialogs' menu option was renamed to 'GUI Dialogs' to better
explain what it does. Additionally the setting of which dialogs to use
is saved to the config.ini file so that it presists across multiple runs
of QB64-PE.
2022-11-15 22:21:29 -05:00
SteveMcNeill 2147911ec3 Swap in Optional New Load File Dialog
And without screwing up the keyword casing this time!  ;)
2022-11-14 17:47:27 -05:00
Roland Heyder 7d66a171bc Simplebuffers refactoring
Implements the latest refactoring changes done in my Simplebuffers library.
2022-11-04 23:08:42 +01:00
Matthew Kilgore b57aede2a7 Version 3.4.0 2022-10-30 17:20:03 -04:00
Samuel Gomes 56c7936fb4 Address issues mentioned in #216 2022-10-25 04:24:01 +05:30
Samuel Gomes 93e58baa1d Common dialogs support 2022-10-23 12:57:02 +05:30
Matthew Kilgore bc6c7ebff8 Version 3.3.0 2022-10-09 22:03:39 -04:00
Samuel Gomes f49f8bdf06 Implement _SNDPLAYCOPY enhancement #185 2022-10-05 02:33:44 +05:30
Matt Kilgore 1fa5b8af10
Merge branch 'main' into generate-license-file 2022-10-02 16:25:57 -04:00
Matthew Kilgore 908585aa2e Generate .license.txt file with license information
This gives QB64-PE the ability to automatically generate a text file
comprising all of the licenses that apply to your QB64 program. This
file can then be distributed with your program to meet the requirements
of those licenses, and also examined to understand what licenses apply
to your program.

The generation is controlled via a configuration flag, settable either
via the `Run` dialog, or via a new `-f` setting on the comamnd line.

Fixes: #145
2022-10-01 14:46:00 -04:00
Matthew Kilgore 335ff451bc Fix 'Bit * n' syntax in some cases.
There's some logic for handling `Bit * n` types that doesn't properly
handle NoPrefix. There's both a faulty error check which only works for
the `_` version (It was using `OR` so it always failed), and then also
the code that pulls out the number only works if the `_` is present.
Both of those are fixed in this commit.
2022-10-01 14:18:53 -04:00
Matthew Kilgore 855b8dfce7 Fix declare Static array as 'String * n'
The original issue comes from b87dde8. Fellippe was fixing using
NoPrefix types with Declare Library, which uses some of the same logic
as Static arrays. Unfortunately, his change broke the `String *n` syntax
and `Bit * n` syntax because he stopped using LEFT$() to check only the
prefix of the type. Cory fixed the issue over in QB64Official/qb64#35
by reverting the code to use LEFT$() again and I pulled some of that
logic in here.

Note that I've modified his solution a bit. During testing of that fix I
noticed that `_Unsigned Integer64` no longer worked, because is because
it aliases with `_Unsigned Integer` and the shorter type gets checked
first. This may have been what Fellippe was trying to fix (since
removing the LEFT$() avoids this issue) but it's hard to say.

I addressed that issue by only applying $LEFT() to the two types that
are allowed to have text after them (`Bit` and `String`). The rest of
the types continue to use the direct string comparison that requires an
exact match. Additionally I reorganized the checks a bit to make them
easier to read and also easier to confirm all combinations are checked.
2022-10-01 14:18:53 -04:00
Matthew Kilgore 21b7d60f44 Fix -o to be relative to _STARTDIR$ when source file is
In 094a8c82 we added the ability to compile a source file relative to
_STARTDIR$ instead of the location of the qb64pe executable. This change
fixes `-o` so that it is also treated as relative to _STARTDIR$ when the
provided source file is.

Note that this is not a real behavior change because if the provided
source file is relative to the qb64pe executable then `-o` will be as
well, which matches the previous behavior. The cases where it is made
relative to _STARTDIR$ all produced errors until 094a8c82 was done, so
there was no previous defined behavior.
2022-10-01 04:24:54 -04:00
Matthew Kilgore 094a8c82b2 Fix compiling bas files relative to the CWD
Fix was pulled from QB64Official/qb64#17 by Cory Smith, I just added
tests around it.

Most (all?) compilers allow you to run the compiler from a separate
directory than the compiler itself is located in and compile source
files relative to that directory. QB64-PE however does not allow that,
for a variety of reasons it always search for the provided source file
relative to the location of the QB64-PE compiler rather than the CWD it
was run from. This is pretty unexpected behavior in a lot of cases, and
also doesn't give very helpful error messages either.

This change has us check if the source file exists at the given CWD
location, and if it does we will prepend the CWD to produce the correct
path to the file.

To test that this behavior works as expected I modified
`compile_test.sh` to compile from within the test directories using a
relative path directly to the test file, this fails with current QB64-PE
versions because it can't find the source file.

Additionally, I was unsure of whether this would impact the behavior of
`'$include`, so I added some tests around include that uses various
combinations of paths relative to QB64-PE and relative to the source
file being compiled, and they all find the files as expected so I think
it's fine.
2022-09-30 17:13:43 -04:00
Matthew Kilgore 59dd8d3c51 Fix undefined variables in CONST expressions to trigger an error
Overall this is fairly straight forward, `evaluateconst$` has type
information on the parameters for its expressions, but it's not actually
checking that both parameters have a proper type. The result is that
expressions with nonsense values such as undefined variable names end up
just trying to use that nonsense value as an integer.

Fixes: #177
2022-09-26 02:47:08 -04:00
Matthew Kilgore 47682e91c3 Fix _BLUE in CONST
_BLUE is one of the few functions that requires multiple parameters, but
it was not included in the list of functions that require them. The
result is that gets get parsed incorrectly and _BLUE did not work.
Adding it to the check of functions that accept multiple parameters
allows it to work as expected.

Fixes: #195
2022-09-26 02:46:37 -04:00
Matthew Kilgore 53dc4e0467 Fix using _RGBA in CONST
Fairly simple, the order of functions meant that `_RGBA` got picked up
as `_RGB` instead, with the `A` then considered invalid syntax. Fixing
the order allows `_RGBA` to work as expected.

Fixes: #194
2022-09-26 02:46:37 -04:00
Matthew Kilgore 191db3fb57 Version 3.2.1 2022-09-24 12:17:36 -04:00
Matthew Kilgore 581460abbc Remove unused variables 2022-09-17 03:06:24 -04:00
Matthew Kilgore 443838485e Version 3.2.0 2022-09-11 11:50:16 -04:00
Matthew Kilgore cebcb11646 Fix compiling source files with single quotes in name
Using single quotes in a file name wasn't working because the Makefile
was using single quotes itself to quote the filename when providing it
to the compiler. The Makefile was switched to use double quotes instead,
which work just as well but are allowed to contain single quotes inside
of them.

Since double quotes are a legal character to have in a file name on
Linux and Mac OS, I added extra logic to start escaping double quote
characters.

I added a test to verify that we can compile source files with single
quotes in the name. I could not add a test for double quotes since such
files cannot exist on Windows and thsu cannot easily be added to the
repository.
2022-09-09 09:59:43 -04:00