• ctrl/text.dat docs/v322_new.md exec/load/text.js src/sbbs3/sbbs.h text

    From Rob Swindell (on Windows 11)@1:103/705 to Git commit to main/sbbs/master on Sat Jul 25 23:01:28 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/ef1f8026a4d5bb11b91165ee
    Modified Files:
    ctrl/text.dat docs/v322_new.md exec/load/text.js src/sbbs3/sbbs.h text.h text_defaults.c text_id.c useredit.cpp
    Log Message:
    Uedit: boolean 'T'ext search, dedicated prompt for the '/' ARS search

    The sysop user editor's T)ext search now compiles its query with
    boolsrch.c, like the message base, mail, file list and file pager
    searches: AND/OR/NOT, parenthesized grouping, "quoted phrase"
    whole-word terms, '?' for the textsrch help menu, and a diagnostic for
    a malformed expression. searchup()/searchdn() take the compiled
    expression rather than an upper-cased string, so the per-record
    strupr() goes away. The haystack is still the whole tab-delimited
    user.tab record, so bare one-word queries match as before and a quoted
    term gets a word boundary at each field edge.

    The '/' AR-string search prompted with text[SearchStringPrompt], which
    gained a "(?=help)" hint in 76dba467f3 (sheets-27-dance) when '?' was
    wired up at the boolean-search prompts -- a binding that prompt does
    not implement. It gets its own string now: text[UeditARSearchPrompt]
    (text.dat 949).

    Both prompts leave the previous search criteria intact when nothing is
    entered, and free what they replace; the compiled AR string leaked on
    every re-entry of '/' and on disconnect.

    Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
    --- SBBSecho 3.37-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)