https://gitlab.synchro.net/main/sbbs/-/commit/b2bd173caf3a0aafb9d9b370
Added Files:
src/sbbs3/scfg/.gitignore gen_option_index.py scfgindex.h scfgsrch.c scfgsrch.h
Modified Files:
src/sbbs3/scfg/CMakeLists.txt GNUmakefile objects.mk scfg.c scfg.vcxproj
Log Message:
scfg: Ctrl-F searches every configuration option by name
Adds a cross-menu option search to SCFG. From the main "Configure"
menu, Ctrl-F (or Ctrl-G) opens an overlay where the sysop types a
substring; results show every matching option label paired with the
menu it lives in, and selecting one displays the full path the sysop
would navigate from "Configure" down to that option, rendered as a
CP437 box-drawing tree.
The index data (scfgindex.h) is auto-generated by gen_option_index.py,
which walks the scfg*.c sources and extracts:
* snprintf(opt[..],..,"Label",..) and strcpy(opt[..],"Label") option
labels, plus static char* mopt[] arrays;
* uifc.list(..,"Title",..) navigable menus (via a depth-aware
reassignment guard that distinguishes real menus from one-shot
pickers that happen to share the dispatch variable);
* the call graph between menu functions, including inline sub-navs.
Each call site's option label (the case index in the enclosing
switch -> opt[case_idx]) is recorded as the navigation step the user
clicks, so a search result like "Allow Bounce Transfers" shows up
under the path "Servers > FTP Server > Allow Bounce Transfers" -
the labels the sysop actually clicks, not the underlying screen
titles.
scfgindex.h is checked in so end users do not need Python to build
SCFG; the GNUmakefile only regenerates it under SBBS_OFFICIAL.
Designed and implemented by Claude (Opus 4.7).
Co-Authored-By: Claude Opus 4.7 <
noreply@anthropic.com>
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net