Repoint every stale TODO.md citation in the tree
Some checks failed
libakgl CI Build / cmake_build (push) Successful in 7m48s
libakgl CI Build / memory_check (push) Successful in 12m49s
libakgl CI Build / performance (push) Failing after 41m22s
libakgl CI Build / mutation_test (push) Successful in 27m0s

A sweep of all 265 tracked files, not just the ones the migration touched.

Two cross-repository citations named deps/libakerror/TODO.md item 8, a
numbering that has not existed for two releases; both now name libakerror
issue #18. Three tutorial and plan references pointed at TODO.md for defects
that are tracked: the invisible-on-frame-one actor is #39, the control map
traps are #81, and the pkg-config gap is #17.

plan.md is a live instruction document for writing the manual and still told
its reader to file findings in TODO.md; it says the tracker now.

Filed while sweeping: a zeroed akgl_ControlMap matches gamepad South, because
SDL_GAMEPAD_BUTTON_SOUTH is 0 and the two arms of the match are one
expression, and handler_on/handler_off are called without a NULL check. Both
are documented as workarounds in chapter 21 and neither had an issue. #81.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Andrew Kesterson <andrew@aklabs.net>
This commit is contained in:
2026-08-02 22:01:27 -04:00
parent ad71072cb3
commit 8477ea698b
5 changed files with 14 additions and 15 deletions

View File

@@ -997,10 +997,10 @@ Three things to get right, all of them cheap:
- **Zero the struct first.** A binding is a struct copied into the map, so a stack local is
fine — but an uninitialized field is a match against garbage.
- **`handler_off` must be non-`NULL`.** `akgl_controller_handle_event` calls it without
checking. `jrpg_cmhf_ignore` is a handler that does nothing, which is what you want on the
checking, which is the other half of issue #81. `jrpg_cmhf_ignore` is a handler that does nothing, which is what you want on the
release of a key whose press is the whole action.
- **Set `button` to `SDL_GAMEPAD_BUTTON_INVALID`.** The keyboard and gamepad arms of the
match are evaluated together, and 0 is a real button. Recorded in `TODO.md`; until it is
match are evaluated together, and 0 is a real button. That is issue #81; until it is
settled, name a button no gamepad reports.
Run now. Standing near the elder and pressing Space opens their line; pressing it again