BBS:      TELESC.NET.BR
Assunto:  src/conio/ciolib.c ciolib.h cterm.adoc cterm.c cterm.h src/syncterm/te
De:       Deuc¨
Data:     Tue, 17 Mar 2026 22:37:37 -0700
-----------------------------------------------------------
https://gitlab.synchro.net/main/sbbs/-/commit/a9097117205e8010151f5c49
Modified Files:
	src/conio/ciolib.c ciolib.h cterm.adoc cterm.c cterm.h src/syncterm/term.c
Log Message:
Implement ECMA-48 screen content readback via SSA/ESA/STS

Standard ECMA-48 selected area transmission mechanism:
- ESC F (SSA): mark start of selected area
- ESC G (ESA): mark end of selected area (inclusive)
- ESC S (STS): trigger transmission of selected area content

Transmission modes (ANSI SM/RM):
- FETM (mode 14): INSERT=attributed stream with SGR, EXCLUDE=text only
- TTM (mode 16): CURSOR=end before cursor, ALL=full SSA-to-ESA region
- SATM/MATM/GATM permanently locked at recommended reset defaults

Response framed as SOS CTerm:STS::  ST where N=0 (INSERT)
or N=1 (EXCLUDE).  Content is linear cell sequence in presentation
order with SGR minimal diffs, doorway encoding for C0/DEL in cells,
and OSC 8 for hyperlink changes.

SSA/ESA invalidated by margin changes, origin mode toggle, and RIS.
Works with origin mode + margins for rectangular area readback.

Also adds:
- response_cb on cterm struct for unbounded response output
- cterm_respond()/cterm_respond_printf() helpers
- ciolib_get_hyperlink_params() API
- DECRQM for ANSI modes 1,14,15,16,17 (discoverability)
- retbuf flush before STS for correct response ordering
- Save/restore response_buf for re-entrant cterm_write

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

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