BBS:      TELESC.NET.BR
Assunto:  src/syncterm/scripts/auto/connected/keys_default.wren status_default.w
De:       Deuc¨
Data:     Sun, 3 May 2026 21:13:41 -0700
-----------------------------------------------------------
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.
n
---
  mSynchronetn  hgVertrauen n hHome of Synchronet n gh[vert/cvs/bbs].synchro.net

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