BBS:      TELESC.NET.BR
Assunto:  text/menu/boolsrch.msgctrl/text.dat src/sbbs3/prntfile.cpp readmail.cp
De:       Rob Swindell (on Windows 11)
Data:     Sun, 17 May 2026 18:45:24 -0700
-----------------------------------------------------------
https://gitlab.synchro.net/main/sbbs/-/commit/76dba467f3e2f89c579797cd
Added Files:
	text/menu/boolsrch.msg
Modified Files:
	ctrl/text.dat src/sbbs3/prntfile.cpp readmail.cpp readmsgs.cpp sbbs.h scandirs.cpp scansubs.cpp text_defaults.c
Log Message:
boolsrch: add inline help via '?' at search prompts

Sysops asked for a user-discoverable way to learn the boolean-search
syntax. Now: at any boolean-search prompt, entering a lone '?' displays
text/menu/boolsrch.msg (a one-screen quick reference covering the
operators, quoted whole-word match, grouping, and a few worked
examples), then re-prompts for the search query. Any other input is
treated as a normal query.

  SearchStringPrompt: "Text to search for (?=help): "  the prompt
  itself now hints at the binding so the help path is discoverable
  without needing to read the docs first.

  sbbs_t::get_search_string(buf, maxlen, kmode) wraps the
  bputs(SearchStringPrompt) / getstr() / strcmp(buf, "?") / menu()
  loop so the six call sites that prompt for a boolean query don't
  each have to reimplement it:

    scansubs.cpp     (2 sites - single sub, group/all)
    scandirs.cpp     (2 sites - single dir, group/all)
    readmsgs.cpp     ('F' rebind inside the message read loop)
    readmail.cpp     ('/' search at the mail-read prompt)

  Also caught a stale getstr(str, 40, ...) in scandirs.cpp:64 that
  the earlier buffer-size pass missed; now uses the helper's 120-byte
  cap like every other call site.

The file-pager '/' sub-prompt (P_SEEK in prntfile.cpp) intentionally
does NOT use the helper - displaying the help menu mid-pager would
scroll the screen and break the 'stay in place' invariant. The pager
already has its own '?' binding (SeekHelp) for in-pager help, and
its search sub-prompt continues to treat '?' as a literal character.

text.dat record 076 (SearchStringPrompt) updated; textgen regenerated
text_defaults.c. No new enum, so text.h / text_id.c / text.js are
unchanged.

Co-Authored-By: Claude Opus 4.7 (1M context) 
n
---
  mSynchronetn  hgVertrauen n hHome of Synchronet n gh[vert/cvs/bbs].synchro.net

-----------------------------------------------------------
[Voltar]