Position -1 is the last character of a string
Make the `len` parameter optional in `STRSUB(str, pos, len)`
STRSUB and CHARSUB allow zero or negative positions
Update some whitespace after Hungarian prefixes were removed
Get rid of Hungarian notation for good
Avoid generating CRLF'd release tarballs
Only update documentation for gbdev/rgbds
Implement SIZEOF("Section") and STARTOF("Section") (#766)
Let charmap_ConvertNext advance its output pointer
Implement CHARLEN and CHARSUB
Allow OPT to modify -W
Allow OPT to modify -L
Fix expansions that start from the end of another expansion (#839)
Fix interpolation/STRFMT overflow issues (#838)
Revert "Fix interpolation/STRFMT overflow issues"
Fix interpolation/STRFMT overflow issues
`readIdentifier` does not process characters that get truncated
`readInterpolation` is limited by `nMaxRecursionDepth`
Remove unused function `hash_ReplaceElement`
Make tests work on NixOS
charmap: Store hashmap nodes in charmap stack
hash_AddElement: return the new node
Don't report hashmap collisions
hashmap: add hash_GetNode
Add an .editorconfig
Store the nested expansions starting from the deepest one (#829)
LexerState's 'size' and 'offset' for mmapped files are unsigned
Get rid of `skip` in struct Expansion
expansionOfs cannot be negative
`peek(0)` => `peek()`
`shiftChars(1)` => `shiftChar()`
Lex `$ff00+c` without needing large `peek` lookahead
Document the release process in RELEASE.rst
Mention alternative mnemonics in gbz80(7)
Use a `lookupExpansion`, but not as an X macro
Refactor the lexer to not use the `lookupExpansion` X macro
Remove the unused `calchash` djb2 hash function
Rename `print` to `printChar`
Change how `print(c)` formats reported characters
Report garbage chars as their bytes; don't try decoding them as UTF-8
Remove 'inline' from functions not in headers
Remove unused function `removeLeadingZeros`
Define the UTC time components as EQU, not EQUS
Merge branch 'master' of https://github.com/gbdev/rgbds
fstk_FindFile checks for sprintf failure
Fix an unclosed file and unfreed memory in out_BinaryFileSlice
Add contact info for potential contributors
Define `__RGBDS_VERSION__` as the output of `rgbasm --version` (sans "rgbasm")
Add assertion that an expansion's total len doesn't overflow
Comment on REG_SP and REG_AF both being 3
Add a test case for unattainable SECTION UNION alignment
Fix unattainable alignments to address 0
Factor out a common `strlen` into `beginExpansion`
Warn about backwards FOR loops with -Wbackwards-for (-Wall)
Robustly disallow overwriting builtin symbols (#817)
Some tests use the new `macro <name>` syntax
Handle errors when opening source file
Require a plus sign in `ld hl, sp + <e8>`
Remove support for `ld bc/de/hl/sp` for `ld hl, bc/de/hl/sp`
Update man page copyrights to 2021
Report "1 error", not "1 errors", when assembly is aborted
Output USED space, not FREE space, in the .map file
Assign section locations to all UNIONs/FRAGMENTs
Add LOAD FRAGMENT pc test (#800)
Merge pull request #804 from Rangi42/normal-backslash
Backslash in normal lexer mode must be a line continuation
Init top-level fstack node line number
Do not evaluate an untaken ELIF's condition
Fix missing .sym/.map symbols in SECTION UNION/FRAGMENTs
Install groff to build PDFs correctly in CI
Make docs update script also produce PDFs
Replace UTF-8 hyphens with ASCII ones in man pages
Use sub-sections for the different symbol types
Revise rgbasm(5) string symbol documentation
Don't expand string symbols in MACRO and FOR symbol names
New definition syntax with leading DEF keyword
rgblink identifies patches' PC sections after reading all sections
Add a missing newline to a verbosePrint
Fix verbose messages claiming non-existent errors
Add verbose messages for early exit from -MG
Alignment mask was incorrectly checked for 1 instead of 0
Add forgotten __RGBDS_RC__ symbol
Make some INCBIN errors non-fatal
Add INCBIN tests
Change the start position check on INCBIN
Compute fallback version string at compile time
Add workflow to auto-prepare a release