Rangi42
558d3ca0fc
Disallow labels before ENDC
2025-10-31 18:21:59 -04:00
Rangi42
df5162edca
Use loops instead of tail calls and musttail
...
gcc 15.2.1 20250813 complains "address of automatic variable can
escape to `musttail` call" from `-Wmaybe-musttail-local-addr`,
and guaranteeing tail-call optimization cross-platform is more
trouble than it's worth.
2025-10-27 12:05:27 -04:00
Rangi42
ca383c91ca
Revert "More accurate 8-bit <=> 5-bit RGB color conversion ( #1827 )"
...
This reverts commit 223b3d1921 .
2025-10-24 13:32:59 -04:00
Rangi
8bedd710d7
Simplify musl's getopt, including removing optind, optopt, opterr, idx, and longonly
2025-10-23 13:39:28 -04:00
Rangi
efb5a88edb
Show conventional colored "error:"/"FATAL:" for CLI option errors
2025-10-23 12:40:29 -04:00
Rangi
f065243cd2
Enable RGBGFX's CLI "at-files" for all programs ( #1848 )
2025-10-22 17:05:59 -04:00
Rangi
7462bccb72
Move struct Palette into its own file ( #1850 )
2025-10-20 16:59:24 -04:00
Rangi
2873e0b8c8
Use musttail attribute to guarantee tail recursion ( #1849 )
2025-10-20 15:56:22 -04:00
Rangi
1badba03d8
Clean up some #define callables
...
These are used where anonymous functions would not be sufficient
2025-10-13 13:14:49 -04:00
Rangi42
64bcef99bd
Lower default -Wtrunction= level to 1
2025-10-13 11:48:33 -04:00
Rangi42
aa672bbec9
Rephrase PURGE documentation and raise the default level to 2
...
Fixes #1847
2025-10-13 11:43:29 -04:00
Rangi42
651877e094
Avoid reusing a static local variable (too fragile)
2025-10-08 21:19:23 -04:00
Rangi
23b9039716
Give clearer names to template parameters
2025-10-08 14:55:43 -04:00
Rangi
089fc11e31
A local label starting with a keyword (e.g. jr.local) is an error
2025-10-08 12:23:08 -04:00
Rangi42
837f552987
Fix bank increment never happening due to unsigned overflow
2025-10-07 16:20:24 -04:00
Rangi
cca3794dd0
Mention libpng in its internal warning and error messages
2025-10-06 17:03:51 -04:00
Rangi
02c2408f58
Implement reversed template for reversing for-each loops
2025-10-06 16:50:47 -04:00
Rangi
fba0562650
Fix repeated REPT nodes in backtraces
2025-10-06 16:36:55 -04:00
Rangi
0c9920d4a6
Use C++ iterator for fragment/union "pieces" of RGBLINK sections
2025-10-05 15:07:25 -04:00
Rangi
7733ccdeb6
Implement __SCOPE__ ( #1845 )
2025-10-04 16:41:21 -04:00
Rangi
13e85b5151
Replace all ctype.h functions with locale-independent ones
2025-10-03 12:52:24 -04:00
Rangi
85d3b5df58
Add more RGBFIX tests
2025-09-30 18:20:53 -04:00
Rangi
eea277ae9c
Add more tests for RGBFIX
2025-09-29 22:43:16 -04:00
Rangi
538395b92c
Prevent simple syntax highlighters from breaking on /* in a string
2025-09-29 11:11:40 -04:00
Rangi42
0297da4d4c
Add more tests for RGBASM coverage
2025-09-25 13:30:30 -04:00
Rangi42
0670c03bc2
Add CLI tests for RGBASM
2025-09-25 11:57:56 -04:00
Rangi42
09ef5b7e06
Refactor error fix suggestions in fstk_RunMacro
2025-09-24 19:35:41 -04:00
Rangi42
d5bb462f25
Separate isLetter into isUpper and isLower
2025-09-24 19:19:50 -04:00
Rangi42
b0727e9779
Suggest removing space before colon to define a label instead of invoking a macro
2025-09-24 18:32:45 -04:00
Rangi42
ca4b890273
Consistently do & alignMask, not % alignSize
...
Also add more unrelated tests for coverage
2025-09-23 13:25:51 -04:00
Rangi
634fd853d1
Factor out a single parseNumber utility function ( #1839 )
2025-09-22 15:15:24 -04:00
Rangi42
c8d22d8744
Refactor some iterator template code in RGBGFX pal_packing.cpp
2025-09-21 10:59:59 -04:00
Rangi42
3ece61b103
Use fewer templates in RGBGFX pal_packing.cpp
2025-09-20 22:00:17 -04:00
Rangi42
a82fd17529
Simplify RGBGFX code by using fewer templates
2025-09-20 21:06:51 -04:00
Rangi42
e7f5ab3f55
Warn about rgbgfx -O without -o or any of -A -T -P -Q
2025-09-20 20:23:29 -04:00
Rangi
c49a7d1e2f
Make CLI and OPT options -p and -Q more consistent ( #1834 )
2025-09-20 13:54:28 -04:00
Rangi42
d8aff148bb
Factor out RRANGE macro like RANGE
2025-09-19 16:53:44 -04:00
Rangi
e31bcabbaa
Implement === and !== string comparison operators ( #1832 )
2025-09-19 14:06:36 -04:00
Rangi
67741ab428
Trim left space from macro args, even past block comments ( #1831 )
2025-09-19 13:44:18 -04:00
Rangi
e0a6199f83
Allow charmap to map 'characters' as well as "strings" ( #1830 )
2025-09-16 12:51:07 +02:00
Rangi42
9f16881d64
Use for-each loop
2025-09-10 21:18:33 -04:00
Rangi
223b3d1921
More accurate 8-bit <=> 5-bit RGB color conversion ( #1827 )
2025-09-08 15:13:25 -04:00
Rangi42
00b5077b2a
Make usage info output responsive to the terminal width
2025-09-05 21:58:17 -04:00
Rangi42
1fc9ba86c4
Some RGBLINK refactoring
...
- Consistently refer to `Section` fragments/unions as "pieces" (renaming `.nextu`)
- Remove `Symbol`'s `.label()` accessors (use `std::get<Label>`)
- Move some `Label`-related logic into `Symbol` methods
2025-09-05 16:34:51 -04:00
Rangi42
e569e0c200
Don't comment "; Next fragment/union" in .map files for empty section pieces
...
Fixes #1821
2025-09-05 15:31:46 -04:00
Rangi42
f7fb3af615
Run make tidy with Checks: '-*,misc-include-cleaner' in .clang-tidy (IWYU)
2025-09-04 13:39:23 -04:00
Rangi42
1dfc1d3231
Factor out isBinDigit and parseHexDigit utility functions
2025-09-04 13:23:10 -04:00
Rangi42
891e6f98df
Fix formatting of very long fixed-point numbers
2025-09-04 12:54:14 -04:00
Rangi42
bdc885bd69
Avoid UB when checking truncation range
...
Fixes #1818
2025-09-04 12:04:10 -04:00
Rangi42
5b67dc94b6
Add more test coverage
2025-09-04 01:29:50 -04:00