https://gitlab.synchro.net/main/sbbs/-/commit/b6aa4e17a78368397616d347
Modified Files:
src/syncterm/scripts/auto/connected/keys_default.wren status_default.wren src/syncterm/scripts/syncterm.wren src/syncterm/wren_bind.c wren_bind_conn.c wren_bind_conn.h wren_host.c
Log Message:
SyncTERM: fix and polish the Wren-driven status bar
A handful of bugs in the initial cut, plus a layout rework in
response to first impressions.
Bugs:
* wren_status_render gated surface-class capture on
`wrenGetSlotType != WREN_TYPE_UNKNOWN`, which is exactly the case
the API returns for class objects -- so the handle was never
cached and every render fell through to the C blank fallback,
leaving an empty blue row.
* BBS.connTypeName / BBS.elapsedSeconds were registered in
BINDINGS but had no `foreign static` declaration on the BBS
class, so the script crashed at first read.
* keys_default.wren had `;` separators inside its single-line
Hook.onKey block bodies (Wren rejects ';' as a token), and used
`return` inside single-line `{ ... }` blocks (which are
expression-mode and reject statements).
* status_default.wren had the same `;` issue inside writeSep_.
* throttle_step_'s ALT-Up path guarded `if (next != 0)`, dropping
the rates[] sentinel that doubles as "unthrottled". ALT-Up from
115200 now correctly cycles back to 0 (matching ALT-Down from 0
wrapping to 115200).
Layout rework:
* Right-anchored: name field expands so "ALT-Z menu" ends one cell
from the right edge, instead of trailing 4 cells of dead space.
* "Connected: " label restored. Dropped only when keeping it
would force the BBS name to truncate -- the label is decoration,
the name is information.
* Speed back inline with the name, matching the C original's flag
order (SAFE, Logging, (speed), DrWy, OOTerm*, INV). The
per-slot "115200 bps" rendering was an unnecessary divergence.
* Indicator block (log , SFTP , SFTP , mouse M) painted at the
right end of the name area instead of fixed columns 27..30, so
it doesn't waste 3-4 cells of name space when the name area is
wider than the original avail=30 cap. Mouse 'M' sits one cell
in from the name-area edge so a padding space buffers it from
the " ³ Conn " separator.
* REPL log indicator wired up via new Host.logUnread /
Host.logUnreadError bindings (the original C wires were
unbound; the indicator was permanently blank).
The Status callable now also reads the live CTerm.throttleSpeed
that Alt-Up/Down adjusts, instead of the static BBS.bpsRate.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net