https://gitlab.synchro.net/main/sbbs/-/commit/807b7337725a5f9bb11ae23d
Modified Files:
src/sbbs3/scfg/gen_option_index.py scfgindex.h
Log Message:
scfg: index helper-menu options under every caller's path
The Ctrl-F search index generator only attributed shared config helpers (rate_limit_cfg, login_attempt_cfg, js_startup_cfg, edit_sys_timezone, choose_io_method, dir_toggle_options, edit_fixed_event) to the single alphabetically-first caller. Options reachable from multiple servers
were therefore missing from the search index for all but one server -
e.g. "Failed Login Threshold" only appeared under FTP Server even
though it exists under Global Settings, Terminal, Web, Mail, and
Services too.
Two fixes in gen_option_index.py:
1. Filter cfg_wizard out of the caller graph. It runs once at
first-install, before main's Configure-menu loop, so its callees
aren't reachable via Ctrl-F search. Indexing them produced bare
path entries with no "Configure >" anchor AND stole attribution
from sys_cfg (the real caller) via the alphabetical-first heuristic
-- e.g. timezone choices were filed under "Non-U.S. Time Zone >
Australian Central" instead of "System > Local Time Zone > ...".
2. Replace build_path's single-caller walk with build_paths, which
DFS-enumerates every distinct caller chain from option_func up to
main and returns one path per chain. The existing dedup-by-(label,
menu, path) at the entries level collapses identical chains.
Regenerated index grows from 800 to 2077 entries. Audit (against the
parser's own option extraction plus an independent raw-source grep for
opt[] writes and string-array initializers) confirms every navigable
SCFG option reachable from main is indexed at least once.
---
■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net