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

1452 commits

Author SHA1 Message Date
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
Matthew Kilgore d928e5d8ba Add command line switches for compiler settings
This adds compiler settings for each of the settings in the
'Compiler Settings' IDE dialog. This makes it easy to supply the
settings per compile without needing to use the IDE to change them (or
edit the `config.ini`).

Fixes: #162
2022-09-04 23:35:14 -04:00
Matthew Kilgore b301e2acf5 Fix chmod +x when filename has spaces
We were missing some quotes in the command line strings, so if there
were spaces involved `chmod +x` would not work correctly.
2022-09-04 23:35:14 -04:00
Matthew Kilgore 2b3403745c Add initial MIDI language support
This adds MIDI support to the language as a new unstable feature. There
are two new metacommands that come with this:

$Unstable: Midi
$MidiSoundFont: [Default|"filename"]

The $Unstable command is required to be able to use any of the other
commands, and just signifies that this is not a full part of the
language yet and may change in breaking ways before the API is
finalized.

The $MidiSoundFont command enables MIDI support in the compiled program,
and also specifies what sound font to use to play MIDI files. "Default"
will make use of the soundfont placed at
'./internal/support/default_soundfont.sf2', and otherwise a filename can
be specified to use any soundfont wanted.

In either case, the selected sound font is compiled into the executable
and then loaded at runtime.

Fixes: #115
2022-09-04 23:35:14 -04:00
Matthew Kilgore fcc1444910 Version v3.1.0 2022-09-03 14:31:30 -04:00
Samuel Gomes a2cd317d6a Change SHR & SHL to camel case per discussion in https://github.com/QB64-Phoenix-Edition/QB64pe/pull/153 2022-09-01 21:39:30 +05:30
Samuel Gomes 028017b21a Change ROL and ROR names to Camel case per discission in https://github.com/QB64-Phoenix-Edition/QB64pe/pull/153 2022-09-01 21:30:23 +05:30
Samuel Gomes f99eb27717 Remove all _SHR & _SHL changes 2022-09-01 16:15:42 +05:30
Samuel Gomes 2ed17f6198 Add _ROR & _ROL support. Fix issues with _SHR & _SHL 2022-09-01 06:51:06 +05:30
Matthew Kilgore 333bc6231d Allow selecting audio backend in IDE
This change allows selecting the audio backend to use in your compiler
programs. The selection can be made via the 'Compiler Settings' dialog
in the IDE (renamed from the 'C++ Compiler Settings' dialog).

The new miniaudio backend is the default, a checkbox for "Use old audio
backend" exists in the IDE for switching back to the old backend (in the
event someone runs into compatibility issues or etc.). Eventually we'll
drop the old one.
2022-08-27 14:27:55 -04:00
Roland Heyder 2b967dc124 Update version.bas 2022-08-26 15:05:07 +02:00
Roland Heyder b7f2bb7199 Fixing sizing logic
- unveiled by MacOSX (Actions failure)
2022-08-25 02:58:50 +02:00
Roland Heyder 51667125c9 Avoid excessive disk access while typing
- No longer constantly (over)writes files in the `internal\temp` folder while typing in the IDE, as the generated C/C++ code is buffered internally now.
- Buffers are automatically written out to disk on a `Make` request (F5/F11).
2022-08-25 01:14:29 +02:00
Roland Heyder 46790c420f Step 22: There's always something else
- also removed changelog.md from make_dist.sh
- make `curl` really quiet with >NUL, --silent does suppress the progress display only
2022-08-19 00:26:13 +02:00
Roland Heyder b63478b602 Step 21: Finalize this PR for merge
- reset .gitignore to disallow any internal\help uploads again (folder is created during build now)
- get rid of old changelog (changes can better be summarized at release pages)
- added a change by @dkearns from the old QB64Team repository (comment highlighting after `REM`)
2022-08-18 23:41:13 +02:00
Roland Heyder 9c5664e788 Step 18: I'll KILL that damn Cat !! 2022-08-14 18:25:02 +02:00
Roland Heyder 312a24fea2 Step 17: All done !!!
Final adjustments in Wiki stuff.
2022-08-14 15:54:55 +02:00
Roland Heyder bee9f10bfd Step 16: More fixes
- the pure fact we're running the qb64pe executable causes creation of file tempfoldersearch.bin on LNX/OSX only, which must be deleted after run (this caused LNX/OSX checks to fail)
- Wiki parser: added $ to the list of critical file name chars (LNX/OSX doesn't like those)
2022-08-13 10:54:32 +02:00
Roland Heyder a402ae4429 Step 14: So all good things are three
- also switched curl to silent mode to shorten build logs
2022-08-13 02:44:11 +02:00
Roland Heyder 14f2cd29e0 Step 13: Fixing build errors 2022-08-13 01:58:16 +02:00
Roland Heyder 756eb6ac68 Step 12: Implement automatic help file update
- changes to update code (ignore static _GL pages as mentioned at Discord https://discord.com/channels/975381912350752819/975389657212805160/1007683254792507412 )
- dist script changes
- update internal/help to contain static _GL pages only
2022-08-12 22:54:59 +02:00
Roland Heyder 2ec897b75d Step 10: Update remaining stuff
- checks all remaining occurrences of the term 'qb64', some remain untouched, some are renamed according to context
- also added new logo for README.md
- this step does finalize the 'Phoenix Edition' re-branding
2022-08-12 02:54:12 +02:00
Roland Heyder db6081b1ae Step 8: Rename other involved file extensions
- qb64*.bat, .sh, .command, .desktop, .sym to qb64pe*.* respectively
- Excludes mentions in the help (*.txt) files
2022-08-11 22:53:01 +02:00
Roland Heyder e68582b6f2 Step 7: Rename qb64.exe to qb64pe.exe
- Includes related LNX/OSX files
- Excludes mentions in the help (*.txt) files
2022-08-11 18:07:57 +02:00
Roland Heyder 0bd6afd389 Step 6: Rename qb64.bas to qb64pe.bas
Mentions in the help (*.txt) files are excluded.
2022-08-11 02:11:35 +02:00
Roland Heyder 4dd8d8f5ec Step 4: Update Windows icon & resource file
- int/src/icon.ico (replaced image but same name, dynamically created from given $EXEICON)
- int/src/icon.rc (updated but same name, dynamically created from given $VERSIONINFO)
- int/src/qb64.ico and src/icon.rc removed (not used anymore since dynamic creation was implemented)
- src/qb64.bas updated (rename comes in a later step)
- src/qb64.ico replaced and renamed
2022-08-10 02:03:12 +02:00
Roland Heyder 9b4b7992d4 Step 2: Update Linux icon file
Replaced and renamed icon file and moved it into the regular source folder, adjusted references in setup_lnx.sh
2022-08-10 00:48:56 +02:00
Roland Heyder c9e709bc68 Adjust blockquote color
Will use the "Comment color" of the current color scheme.
2022-08-02 14:49:11 +02:00
Roland Heyder 73debad50e Add plugin exchange for tables
If a template plugin is available for a table, then use it in the IDE help.
2022-08-02 13:36:10 +02:00
Roland Heyder b25c8b55a9 Improved help rendering
Headings enforce a blank line before it as separation to the previous section. Definition lists are rendered in blockquote style as in the Wiki, also enforce blank line separation.
2022-07-31 23:31:42 +02:00
Roland Heyder decdde5cdc Some more tweaks
Beside local #toc links also ignore #top links (top of page).
2022-07-20 16:23:18 +02:00
Roland Heyder 5a4687f1b4 Added some comments 2022-07-17 18:59:27 +02:00
Roland Heyder 4aff0cc49c Update plugins recursively
Update current page must include all used plugin templates, hence ignoring the cache for the whole process.
2022-07-17 00:34:51 +02:00
Roland Heyder d6d9c15a14 Added plugin templates
Works like $INCLUDE, but for help text. Meant to outsource recurring text into a template and plug it in where needed.
2022-07-16 23:42:05 +02:00
Roland Heyder 11dae1ccbf Fixed headings
Makes headings detection more reliable, also revised syntax notes.
2022-07-16 23:34:26 +02:00
github-actions[bot] 72d801e0cd Fix linking static libraries on Windows
In QB64, when linking with an external static library `nm.exe` is used
to determine whether the symbol being used is either a C or C++ symbol,
which determines how the function should be declared in the C++ code.

Unfortunately on Windows the `SHELL` command for `nm.exe` is missing the
`cmd /c`, which means the redirection does not work and consequently
we're unable to find the function declaration via `nm.exe`, which causes
the compilation to fail.

In addition to fixing this, I added tests for `DECLARE STATIC LIBRARY`
for all supported platforms.

Fixes: #112
2022-07-09 14:59:33 -04:00
github-actions[bot] 863029ddfd Math evaluator: values that round to zero can crash QB64pe
The math evaluator already contains a few checks for zero when we're
executing operations that could cause a `Divide By Zero` error, but the
actual value input is floating point and can get rounded to zero when
the operation happens. This effectively allows zero values to bypass the
checks to prevent them from being evaluated.

To avoid the error completely we need to check that the rounded value is
not zero, rather than the initial value. FIX() is used to make sure
values such a `-.1` round to zero and are avoided. I also applied FIX()
when we actually execute the operation, just to ensure the same
behavior.
2022-07-09 03:23:20 -04:00
Roland Heyder 04b3d5e42a Semi-support local links
Rather than declining page local links completely, simply link to the top of the respective page, except if it's on the currently displayed page.
2022-07-06 16:13:02 +02:00
Roland Heyder c20d80235f Improves table info box with direct link 2022-06-23 23:50:56 +02:00
Roland Heyder 5f039415bf Add plus (+) to the list of critical chars 2022-06-15 11:19:26 +02:00
Roland Heyder e539497126 Fix command templates
This does fix the human readable syntax entries according to wiki issues #79 and #91.
2022-06-13 02:15:25 +02:00
Roland Heyder bfd12fc44f Add missing CRLF substitution 2022-06-12 17:06:13 +02:00
Roland Heyder 63c523ba38 Fix URLs containing ampersands
Escapes & in Wiki page URLs (eg. &B, &H, &O) and in external links (eg. many MSDN links)
2022-06-12 17:05:18 +02:00
Roland Heyder e01b29c9a2 Merge branch 'main' into wiki-dev 2022-06-11 23:27:25 +02:00
Roland Heyder 74ca4c9da6 Add apostrophe HTML entity 2022-06-11 17:52:18 +02:00
Roland Heyder 6efdd43a2a Avoid additional new line at EOF 2022-06-11 17:50:14 +02:00
Matthew Kilgore 58cccc19fa Update version to v0.8.2 2022-06-10 22:35:38 -04:00
Matthew Kilgore 931a9dd272 Fix C++ Compiler Settings menu 2022-06-10 22:31:56 -04:00
Matthew Kilgore 5bb2c7017c Update version to v0.8.1 2022-06-10 16:53:12 -04:00
Matthew Kilgore f7b1427a89 The C++ settings menu reuses existing shortcut key
The C++ compiler Settings menu uses the shortcut key 'o', but that's
actually already in use and thus creates a conflict. We're switching it
to use the option 'm', which does not conflict.

Fixes: #105
2022-06-10 12:51:35 -04:00
Matthew Kilgore d36edad30c Fix compilation of files with $ in the name
This is a bit of an odd one, but files with $ in the name don't compile
correctly due to expansion being done on the $.

The culprit here is `make`, as the syntax '$x' is interpreted to mean to
insert the expansion of the variable 'x'. To avoid this behavior we have
to replace every single $ with $$. Make will interpret the $$ to mean it
should insert a single $ and not do any expansion, which is what we
want.

Fixes: #96
2022-06-10 10:42:49 -04:00
Prajwal Borkar 23f45ea5cf
Fixed Typo 2022-06-08 12:25:31 +05:30
Matthew Kilgore 734f653ce8 Update version to 0.8.0 2022-06-07 16:57:33 -04:00
Roland Heyder f6d4e27b54 Different colors for bold/italic styles 2022-06-07 13:24:11 +02:00
Roland Heyder 8d8fc3b7fb Implement handling for 'Parameter' template 2022-06-07 00:50:13 +02:00
Roland Heyder a4ffe65525 Reset text styles on block entry
Avoid leaking of unclosed text styles from regular text into any block.
2022-06-07 00:46:43 +02:00
Roland Heyder 97c04c5552 Fixes to blank line checks. 2022-06-03 16:53:30 +02:00
Roland Heyder 021d8068c1 Merge branch 'main' into wiki-dev 2022-05-31 17:53:05 +02:00
Matthew Kilgore 738aed5fd1 Combined Advanced C++ with C++ Compiler settings
The "Advanced (C++)" dialog was removed, putting the single setting into
the new C++ Compiler Settings dialog.
2022-05-30 23:15:04 -04:00
Matthew Kilgore 2d919768ac Add C++ compiler settings dialog
The new dialogs includes 5 settings:

1. Flag to turn on Optimization (off by default)
2. Flag to strip symbols (On by default)
3. String for extra compiler flags
4. String for extra linker flags
5. Setting for max compiler processes (default of 3)

Fixes: #65
Fixes: #40
2022-05-30 23:15:04 -04:00
Roland Heyder a4d0347ce8 Add support for number (ordered) lists
The respective wiki tokens are recognized, but will be handled as simple dot list.
2022-05-31 01:31:01 +02:00
Roland Heyder 7b91fdc592 Add -u command line switch
- `qb64 -u` can be used during build to populate internal/help, it basically invokes the "Update all pages" action from the IDE's Help menu
- switch is not listed in -? usage help, as I consider it a hidden build-only option
2022-05-31 00:56:32 +02:00
Roland Heyder 24250e4ce2 Addressed issue #76
- Update loop is aborted on error.
- Instead of the error popup, a dynamically generated error page is shown with a link to the `curl` download page and some simple instructions.
2022-05-30 03:15:36 +02:00
Roland Heyder 7f66c30bb4 Do CRLF substitution once in download stage. 2022-05-28 10:26:49 +02:00
Matthew Kilgore 182a48db95 Bump version to v0.7.1 2022-05-22 23:59:16 -04:00
Matthew Kilgore 9e2177deff Allow EXE name to have spaces in it
Makefile's generally hate spaces in filenames, and it's largely
impossible to make them work. Due to that, with the change to use a
`Makefile` the `EXE=` parameter did not work with spaces, and programs
such as "foo bar.bas" would not compile because it produces "foo
bar.exe" which has a space in the name.

There were options here, but in this very specific case it is actually
possible to allow the Makefile to work with spaces. `EXE` is only a
single filename, so as long as we always quote it correctly and the
provided `EXE=` parameter escapes the spaces with `\` then it will work.

Thus, we modified the Makefile to always do the quoting, and modified
QB64 to automatically escape the spaces in the executable name provided
to the Makefile.

I also modified the `compile_tests` to test that spaces in filenames and
paths of the executable correctly compile.

Fixes: #80
2022-05-22 23:59:06 -04:00
Roland Heyder 77642ba91b Merge branch 'main' into wiki-dev 2022-05-22 01:04:02 +02:00
Roland Heyder 3304aab884 Fixes to pending PR issues
3. Fixed click sensibility, external links are not triggered randomly.
2022-05-22 00:40:03 +02:00
Roland Heyder c0a7ea1d85 Fixes to pending PR issues
1. Fix missing links.bin issue (pop up to request user choice).
2. Fix increasing number of files when selecting "Update all pages" multiple times.
2022-05-21 19:53:54 +02:00
SteveMcNeill c1d12259cb Added to win setup to clean up the mingw compiler after installation.
Fixed the issue where some Linux distros won't clean up the exe when Run Only is selected in the menu bar.

Fixes: #16
Fixes: #54
2022-05-21 12:25:41 -04:00
Roland Heyder bec7e9cdf4 Merge branch 'main' into wiki-dev 2022-05-21 00:23:32 +02:00
Roland Heyder 78a04387b3 New Wiki parser finished 2022-05-20 23:44:55 +02:00
Matthew Kilgore 95c57c182c Supply a default version label when no version has been calculated
When building directly from the repo (either from a git clone or a
download of the zip of the repository) the version reported is very
misleading because it will not have a version label, suggesting it is
actually a 'release' version when in fact it could be anything.

The ./.ci/calculate-version.sh logic is already setup to delete an
existing ./internal/version.txt during a detected release build, so we
can just place one in the repositroy and it won't impact the versioning
of CI and release builds, but will show up when building locally.

Fixes: #63
2022-05-20 16:57:45 -04:00
Roland Heyder f5dbe9bc17 Improved cache filename handling and external links
Cached wiki file names get a spelling label for case insensitive systems. External links are working (clickable) now and open in the standard application.
2022-05-20 01:41:05 +02:00
Roland Heyder 27a59e5b5e Useless style removal in blocks 2022-05-19 01:45:25 +02:00
Roland Heyder 4af4db7584 Merge branch 'main' into wiki-dev 2022-05-19 01:40:16 +02:00
Steve McNeill da1978915a
Merge branch 'main' into main 2022-05-18 12:14:17 -04:00
SteveMcNeill 459c8a216d Update ide_methods.bas 2022-05-18 11:12:49 -04:00
Matthew Kilgore 4a8a7ce594 Redirect stderr to compilelog rather than errorcompilelog
Having two separate files for the compile output is just too confusing,
and it adds an extra file users need to look at and give us when there
are issues. This change simply makes qb64.bas send both the stdout and
stderr output to compilelog.txt.

Fixes: #61
2022-05-18 09:20:30 -04:00
SteveMcNeill bd3b673996 test change to IdeAddSearched 2022-05-18 07:10:59 -04:00
Roland Heyder 3391b83682 Improve underline and list appearance
Also added a page header with title and last update.
2022-05-18 02:15:36 +02:00
SteveMcNeill 7420504f42 reorder ubound check 2022-05-17 09:25:21 -04:00
SteveMcNeill ef875607ff Fix to endless loop in retrieving search History
Replaced both instances with one single sub to reduce code and make things easier to maintain and upkeep.  It's always easier to work in one spot than it is in multiple.
2022-05-17 07:50:18 -04:00
Roland Heyder acf9e0ff02 Fixes to Blocks and centered text 2022-05-16 01:35:22 +02:00
Roland Heyder a62e74ae31 Merge branch 'main' into wiki-dev 2022-05-15 11:28:35 +02:00
Roland Heyder 40937c906d Tidy up wiki stuff
Moved code blocks into more logic order, added comments, almost done now
2022-05-15 02:45:45 +02:00
Matthew Kilgore 73c1c7245d Turn off optimization for now
We'll turn this on later when we have it better sorted out.
2022-05-14 12:15:35 -04:00
Roland Heyder eab0e4cd45 Add handling of InlineCode template 2022-05-13 22:49:53 +02:00
Roland Heyder 6266fab2bd Improves 'small' template handling
Also <span... inline elements got fixed + some minor code optimization
2022-05-13 13:53:58 +02:00
Roland Heyder 64fa73aab7 Improved wiki page/file name validation 2022-05-13 13:49:19 +02:00
Matthew Kilgore 4d61ff7995 Fix quoting on Windows Resource files 2022-05-12 00:53:24 -04:00
Matthew Kilgore 794f76a534 Provide CFLAGS_EXTRA 2022-05-12 00:21:02 -04:00
Matthew Kilgore 11ec9237a3 Add support for mylib$ and mylibopt$ 2022-05-12 00:21:02 -04:00
Matthew Kilgore 23ef0aeca8 Add more tests and dynamic library support 2022-05-12 00:21:02 -04:00
Matthew Kilgore d18fc78fcd Formatting 2022-05-12 00:21:02 -04:00
Matthew Kilgore 2a4b637412 Separate _ICON usage from icon.rc
The Makefile was incorrectly tying together _ICON and icon.rc, making it
impossible to use one without the other. To fix this we introduce a new
DEP_ICON_RC flag, which indicates we need to use the icon.rc file (in
addition to regular icon support). DEP_ICON now only indicates we need
to support _ICON, and does not attempt to build the resource
information.
2022-05-12 00:21:02 -04:00
Matthew Kilgore cfb86d2c8f Stop running windres from qb64.bas
Makefile does this
2022-05-12 00:21:02 -04:00
Matthew Kilgore 30c620cfda Initial qb64.bas changes 2022-05-12 00:21:02 -04:00
Roland Heyder da02b2aa61 Ignore custom TOC tables
No info box is generated for manual "TOC only" tables.
2022-05-11 15:49:00 +02:00
Roland Heyder 1babd153ef Fix template handling
Avoid optional template parameters (usually color specs) leaking into the help text.
2022-05-11 02:01:22 +02:00
Roland Heyder 1db84177f6 Add more UTF-8 replacements 2022-05-10 18:32:33 +02:00
Roland Heyder 965cb4de79 Wiki parser overhaul
Turned almost every stone, work still in progress.
2022-05-10 14:43:53 +02:00
Matthew Kilgore be814036ec Temporarally add build steps back 2022-05-07 19:57:38 -04:00
Matthew Kilgore 5a81e22879 Bump next version to 0.6.0 2022-05-07 19:57:38 -04:00
Matthew Kilgore 7d7d16c4f6 Use $EXEICON and $VERSIONINFO in qb64.bas 2022-05-07 19:57:38 -04:00
Matthew Kilgore a9fd9551af Allow numerical VersionInfo values to set corresponding string values
The resource file we create contains two separate values for FileVersion
and ProductVersion. Currently, they are actually represented by two
separate values in $VERSIONINFO and effectively require duplicating the
information between them.

My understanding is that the string values should always be the same as
the numerical versions, so to make $VERSIONINFO easier to use this
changes the logic so that setting the numerical version will
automatically also set the string version if values for them are not
provided.
2022-05-06 14:29:37 -04:00
Matthew Kilgore 0930d51b9c Move some file-related functions into utilities/file.bas 2022-05-06 13:42:35 -04:00
Matthew Kilgore c165476838 Create icon.rc file on all platforms, copy ico file into temp
Previously, the creation of the icon.rc file was restricted to be
Windows only because Windows is the only platform with a use for that
file. Unfortunately, this breaks a fundimental assumption about how the
QB64 C++ generation works, because we only have one set of
`./internal/source` files from which we build all versions of QB64 for
all platforms. Due to that, the built version needs to include all files
needed by all platforms, regardless of which one is doing the building.
So to that end, all platforms should produce the icon.rc, even if it
will not be used on that platform.

Additionally, the path to the icon file in `icon.rc` is problimatic
because it is made into an absolute path. This blocks `qb64.bas` from
using `$EXEICON` because the absolute path is not predictable, as
the location we create ./internal/source will be different from the
location we build ./internal/source. Effectively this means that the
`icon.rc` file in `./internal/source` would always be wrong.

The solution is to not use an absolute path, with the other option being
to have the icon in the same directory as the resource file. This is
actually relatively easy to acomplish since icon files are not terribly
large and we can simply copy it into the temp directory.

Thus, that is what this change does - the specified icon file is copied
into the temp directory as `icon.ico`, which allows use to use
`icon.ico` in the `icon.rc` file and have it always work regardless of
directory.

The internal logic was also cleaned up a bit. The creation of these
files is no longer Windows specific, and the $EXEICON parsing no longer
writes to the `icon.rc` file - rather, the entire thing is generated
together, with both the $VERSIONINFo and $EXEICON depending on which
were provided.
2022-05-06 13:42:35 -04:00
SteveMcNeill e0dea015fc include path in deleted filename 2022-05-01 19:26:48 -04:00
SteveMcNeill 40ed008e9f Fix to Incorrect flag name 2022-05-01 19:11:38 -04:00
SteveMcNeill 9b87eff34b Capitalize Keywords in QB64.bas 2022-05-01 18:02:15 -04:00
SteveMcNeill 65c75b0df6 Add option to menu to make temp files
It's working and tested in Windows.
Still needs to be tested in Linux and Mac, but I *think* it'll work for them as well.  ;)
2022-04-29 03:57:25 -04:00
Matthew Kilgore 2fdab9af4e Reintroduce wikiBaseAddress$ fix
This got dropped accidentally due to taking the wrong file during the
rebase to attach the previous history from qb64team/qb64.
2022-04-28 17:44:30 -04:00
SteveMcNeill 97ab4f4dc9 Update to version
Reset version number to 0.5.0.
Added "Phoenix Edition" to our name, so nobody will think we're still working with the old team of QB64, and mistakenly donate to the wrong Patreon, or buy merchandise wrongly thinking they were supporting us.  :)
2022-04-28 17:21:22 -04:00
Matthew Kilgore 0847b970b1 Don't ignore .bas files in source directory 2022-04-28 17:20:45 -04:00
Matthew Kilgore 7be379c39d Add version calculation and separate label vs. commit
This slightly changes how the versioning works.
2022-04-28 17:19:37 -04:00
MaxineHelsel c0da4caa49 made it so it doesnt say created .exe file on macos 2022-04-28 13:41:57 -04:00
Fellippe Heitor 6e385df280 Fix alignment issues in listbox controls 2022-03-10 13:04:36 -03:00
Fellippe Heitor b2f35b9e98 Reenable line selection when debug is off
Clicking line numbers when not in Debug mode and
when "auto-add debug" is disabled will select the
clicked line
2022-03-10 10:30:06 -03:00
Fellippe Heitor fd5ba476b5 Add 'don't show again' to 'Add ' dialog 2022-03-10 09:48:57 -03:00
Fellippe Heitor 20cc9808c2 Fix issue of ghost variables between edits ($Debug)
Removing a variable between $Debug sessions would
cause occasional crashes on some systems. This fix
invokes the variable watch dialog with a special parameter
so it'll regenerate the list between edits.
2022-03-10 01:47:03 -03:00
Fellippe Heitor 2c0f892e4e Improve displayFormat for Watch Panel and dialog
Replicated the button from the Watch Panel in the Watch List dialog.
Indicators added when content goes beyond window limits.
2022-03-10 00:55:46 -03:00
Fellippe Heitor 627b85c4bd Add support to number formats in Watch Panel
Allows changing display format of numbers
between decimal, hex, octal and binary.
2022-03-09 14:31:55 -03:00
Fellippe Heitor 937df8823c Revert "Fix assignments involving arrays (closes #216)"
This reverts commit 39f7d8f07b.
2022-03-01 23:18:33 -03:00
Fellippe Heitor 42c9e7327f Revert "Reset flag wholearrayreference as needed"
This reverts commit 4e41877eb0.
2022-03-01 23:17:45 -03:00
Fellippe Heitor 4e41877eb0 Reset flag wholearrayreference as needed 2022-03-01 22:34:36 -03:00
Fellippe Heitor 39f7d8f07b Fix assignments involving arrays (closes #216)
Array index could be omitted in cases where
it was actually needed
2022-03-01 22:10:28 -03:00
Fellippe Heitor 52c25d6077 Allow changing color of menu+dialogs (Closes #221)
New item in Options->IDE Colors allows customizing the color
that's used to draw menu items and dialogs (`Color 7`).
2022-03-01 20:49:38 -03:00
Fellippe Heitor 2926fea0e9 Fix indentation in disabled precompiler blocks 2022-02-24 22:57:33 -03:00
Fellippe Heitor 6b7fda9b15 Remove unused variable in ide_methods 2022-02-24 17:48:37 -03:00
Fellippe Heitor 84873f88d8 Revert "Make indent level only increase once..."
This reverts commit 1e679627f4.
2022-02-23 01:27:59 -03:00
Fellippe Heitor 55c365763c Fix capitalization of arrays in U/LBound calls
Previous fix needed to be reverted; this is the new
attempt at fixing the issue.
2022-02-22 23:51:04 -03:00
Fellippe Heitor 02af89c94d Fix capitalization of 'to' in Case statements 2022-02-22 22:54:12 -03:00
FellippeHeitor c30120ee46 Fix building static libraries in Linux
With QB64 stored in a path with spaces in it,
building static libraries on demand would
fail silently.
2022-02-13 09:53:30 -03:00
FellippeHeitor 31adc2361e Adjust var name in GetBytes 2022-01-23 22:26:56 -03:00
FellippeHeitor b87dde8d89 Fix issue with $NoPrefix in Declare Library blocks 2022-01-23 22:03:13 -03:00
FellippeHeitor 03982022dc Fix error with stray As in Sub parameters
Things like this used to be treated as valid:
```
Sub foo(bar As)
End Sub
```
2022-01-21 13:16:57 -03:00
FellippeHeitor 26c7521171 Fix link to the online wiki (IDE) 2022-01-20 20:00:53 -03:00
FellippeHeitor f64c882bc6 Comment out Download function from IDE code
Method is no longer used in this version, due to
changes in qb64.org
2022-01-20 19:55:58 -03:00
Fellippe Heitor e70fb238f6 Fix wiki update on *nix systems 2022-01-20 19:51:44 -03:00
FellippeHeitor 3660383f3c Fix wiki updates
Requires 'curl' to be system-wide available.
Will show 'Cannot find curl' message if not
found.
2022-01-20 19:38:34 -03:00
FellippeHeitor f10b36db6a Disable/hide 'Check for newer version' feature
Incompatible with new website.
2022-01-18 21:28:26 -03:00
FellippeHeitor f489d05755 Display follow-up message when F4 is unavailable 2022-01-18 21:26:10 -03:00
FellippeHeitor 2a41b06a34 Fix incorrect behavior of 'Add all' button
When using the Add All button, the list would
sometimes behave as if not filtered.
2022-01-18 21:12:06 -03:00
FellippeHeitor 8096ac4e1f Scientific notation highlight fix
Yearly tradition. Affects negative variable names
which could look like scientific notation.
2022-01-18 20:31:14 -03:00
Fellippe Heitor 9f81ba1e1f Update qb64.bas
Fix critical regression in `FUNCTION fixoperationorder$()`

Using UBound/LBound in an expression would cause issues with other functions.
2021-11-06 17:55:48 -03:00
Kit 72126a1289
Make $NOPREFIX-friendly versions of $COLOR includes (#206)
* Create `$NOPREFIX`-friendly version of `color0.bi`

* Create color32_noprefix.bi

* add conditional for noprefix $color

* oh. it was that easy?

* Update CHANGELOG.md

* Update help files [ci-skip]

Co-authored-by: all-other-usernames-were-taken <74026992+all-other-usernames-were-taken@users.noreply.github.com>
2021-11-05 01:46:28 -03:00
FellippeHeitor f48b0b252b Save Watch Panel position and size across sessions 2021-10-17 22:37:24 -03:00
FellippeHeitor c0aa5e48f8 Add option to Help menu to check for updates 2021-10-17 20:37:11 -03:00
FellippeHeitor b206739a1f Merge branch 'development' into patches 2021-10-14 12:34:10 -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 b59e1a8088
Update icon.rc 2021-10-13 10:49:17 -03:00
FellippeHeitor b8c0763b70 Replace "..." with String$(3, 250) for status indicator 2021-10-12 16:03:58 -03:00
FellippeHeitor bbf931d3ee Fix UDT internal arrays retaining values after loading files 2021-10-12 01:07:23 -03:00
FellippeHeitor 65e6f44a2f Fix "Duplicate definition" error with ON ERROR
Long-standing issue involving static arrays in subs/functions
with ON ERROR trapping active.
2021-10-12 00:36:52 -03:00
FellippeHeitor 41e85a989c Begin v2.1 development 2021-10-09 23:08:56 -03:00
FellippeHeitor 6801e08f2f Fix scientific notation; yearly tradition 2021-10-03 21:13:56 -03:00
FellippeHeitor f175fd2846 Fix contextual menu return actions (DebugMode) 2021-10-03 20:09:18 -03:00
FellippeHeitor b85d128faa Reset visible list to the first item when filteringwatch list
Now properly.
2021-10-03 12:27:33 -03:00
FellippeHeitor 7f49d223cd Show progress bar if building var list takes too long 2021-10-03 11:58:15 -03:00
FellippeHeitor bb49863f39 Reset visible list to the first item when filteringwatch list 2021-10-03 11:57:55 -03:00
FellippeHeitor 151d68ddcc Fix Input$() from file/port switching focus to the debuggee 2021-10-03 11:20:18 -03:00
FellippeHeitor a5b2727de4 Stop importing breakpoint/skip line data if > ubound(arrays) 2021-10-03 11:08:17 -03:00
Fellippe Heitor 005697e115 Add space before the watchpoint condition
Mere visual glitch.
2021-10-02 13:00:16 -03:00
FellippeHeitor 48e8f38108 Auto save/load breakpoint and skip line data ($Debug) 2021-10-02 04:20:58 -03:00
FellippeHeitor 7ab98a5a9e Remove previous variables from Watch List if TYPEs change 2021-10-02 03:52:40 -03:00
FellippeHeitor 7c17c987cb Keep watch list selection across edits (same session) 2021-10-02 02:38:12 -03:00
FellippeHeitor 4face3fc55 Allow closing the Watch Panel while keeping the Watch List 2021-10-02 02:28:37 -03:00
FellippeHeitor 6a7635aa25 Keep version info visible in $Debug mode 2021-10-02 00:15:37 -03:00
Fellippe Heitor 84571d8900 Fix order of duplicate GET/PUT subs in id list 2021-09-30 09:57:15 -03:00
FellippeHeitor 1e679627f4 Make indent level only increase once per line; closes #176 2021-09-30 00:48:38 -03:00
FellippeHeitor fcceba182c Fix procedure to clear existing watchpoint 2021-09-29 21:23:59 -03:00
FellippeHeitor 53c4d8ee56 Fix minor visual aspects of debug-related dialogs 2021-09-29 21:08:01 -03:00
FellippeHeitor fdec5d253c Show full variable name/array/udt in Watch Panel popups. 2021-09-29 20:28:00 -03:00
FellippeHeitor dec20c96a2 Add hover popup with Watchpoint expression (Watch Panel) 2021-09-29 20:12:04 -03:00
FellippeHeitor 17686ee09c Add temporary error reporting through the console. 2021-09-29 20:11:33 -03:00
FellippeHeitor c48f4cff94 Version bump. 2021-09-28 04:07:45 -03:00
FellippeHeitor a5c2b130a5 Fix bad pointer arithmetic on void (macOS). 2021-09-28 04:00:43 -03:00
FellippeHeitor 1d51c41b53 Fix watching regular fixed-length string variables 2021-09-28 02:19:27 -03:00
FellippeHeitor 765b77c9bb Fix watchpoints for fixed-length strings in UDTs. 2021-09-28 01:52:16 -03:00
FellippeHeitor ca9737c465 Fix UDT single element selection. 2021-09-28 01:10:51 -03:00
FellippeHeitor aff7199253 Fetch storage slot when setting variables. 2021-09-28 00:00:39 -03:00
FellippeHeitor 8079fc3d07 Add ClearMouse method to ide_methods.bas
Allows exiting dialog boxes without stray clicks.
2021-09-27 23:29:59 -03:00
FellippeHeitor 8e09f14e7f Fix get global/local for fixed-length strings in UDTs 2021-09-27 23:09:05 -03:00
FellippeHeitor 7413e2fe6f Adapt CLEAR to deal with var-length UDT variables. 2021-09-27 22:55:01 -03:00
FellippeHeitor 5c9cc96ca7 Prevent crash when using CLEAR with var-len string UDTs
Still doesn't fix it, but prevents the crash.
Variables won't be cleared with this temporary patch.
2021-09-26 21:06:44 -03:00
FellippeHeitor 64306e4e10 Remove unnecessary REDIM in SUB increaseUDTArrays
A properly formed Git commit subject line should always be able to
complete the following sentence:

- If applied, this commit will...

Do not end the subject line with a period.

Wrap the body at 72 characters.

One day people learn.

Apologies for years of not following the above.
2021-09-25 23:34:59 -03:00
FellippeHeitor 2e32de2615 Dynamically resizes internal UDT arrays. Closes #180. 2021-09-25 22:27:14 -03:00
FellippeHeitor edb4d40ffa Fixes var=function assignment without parameters (recursion).
As reported at https://www.qb64.org/forum/index.php?topic=704.msg5775#msg5775
2021-09-25 00:34:55 -03:00
FellippeHeitor 1d638a8399 Auto-set "use custom font" if a new path is entered. 2021-09-23 01:05:58 -03:00
FellippeHeitor 2cf9f0d48e Adds extra explanation in Language dialog.
"(affects the display of TTF fonts set in Options-Display)"
2021-09-23 00:47:41 -03:00
FellippeHeitor 688ab96c34 Minor tweaks to Display Dialog. Closes #177. 2021-09-23 00:28:43 -03:00
FellippeHeitor 560978434b Redesigns "Display" dialog to customize cursor size. 2021-09-23 00:10:04 -03:00
FellippeHeitor 5cab1880b5 Uses GetLogicalDrives() in Windows (file dialogs). Closes #183 2021-09-21 02:54:41 -03:00
FellippeHeitor 5f9a58a620 Fixes "Add All" in Watch List (_Bit variables + $NoPrefix). 2021-09-21 02:22:46 -03:00
FellippeHeitor a6672058ff Properly deals with _BIT variables when $NoPrefix is active. 2021-09-21 02:14:06 -03:00
FellippeHeitor dd302b0b5f Sends focus to debuggee when function INPUT$() is called. 2021-09-21 01:28:50 -03:00
FellippeHeitor bb77168127 Properly recovers after an error in DebugMode. 2021-09-20 23:33:38 -03:00
FellippeHeitor 3e498df414 Fixes watching/sending values for _BIT arrays. 2021-09-20 22:04:24 -03:00
FellippeHeitor f6f8a254a7 Fixes focus switching in Add Watch dialog. 2021-09-20 17:11:37 -03:00
FellippeHeitor e30f7a1691 Fix CONST failing with anything containing a NOT 2021-09-19 21:22:08 -03:00
FellippeHeitor 42208832f5 Fixes evaluation of valid var/flag names for $LET/$IF 2021-09-19 15:25:39 -03:00
FellippeHeitor 34138cead6 Fixes parsing in TYPE blocks (new AS syntax) 2021-09-19 14:56:16 -03:00
FellippeHeitor 2f33522d27 Indicate in the Watch Panel that a condition was met. 2021-09-18 21:40:06 -03:00
FellippeHeitor cb050b2c0b Tries harder to prevent invalid values for watchpoints. 2021-09-18 20:33:57 -03:00
FellippeHeitor 3be8a806f8 Fixes watchpoints for strings 2021-09-18 19:30:55 -03:00
FellippeHeitor ce16f79f04 Improves visual indication of existing watchpoints. 2021-09-18 16:35:14 -03:00
FellippeHeitor a67dccae5b Allows setting watchpoints regardless of scope.
Adds "Clear Watchpoint" functionality.
Allows watching more than one array index/element.
2021-09-16 22:49:43 -03:00
FellippeHeitor 833e28aaf3 Removes test print lines. 2021-09-16 00:40:07 -03:00
FellippeHeitor 926b631f3b Implements watchpoints. 2021-09-16 00:04:20 -03:00
FellippeHeitor 71c291a7f1 Adjusts case of menu item. 2021-09-15 17:19:08 -03:00
FellippeHeitor e76041aa3f New toggle in Debug menu to "Auto-add $Debug metacommand" 2021-09-15 17:15:16 -03:00
Fellippe Heitor 1788a77379
Merge pull request #190 from QB64Team/debug-mode [ci-skip]
Debug mode tweaks
2021-09-11 23:26:14 -03:00
FellippeHeitor 3d5f115eba Improves handling of _BIT variables ($Debug). Allows setting values. 2021-09-11 23:06:05 -03:00
FellippeHeitor 27c84393ec Allows variables up to _BIT * 64 2021-09-11 23:05:26 -03:00
FellippeHeitor 619a8fb603 Highlights line number with execution pointer ($debug). 2021-09-11 23:03:11 -03:00
FellippeHeitor 9a963b70f8 Fixes doubleClickThreshold in Watch List dialog. 2021-09-11 20:05:04 -03:00