• src/syncterm/ripper.c

    From Deuc¿@VERT to Git commit to main/sbbs/master on Wed Apr 1 23:54:25 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/679e5bae93abe08984256ab6
    Modified Files:
    src/syncterm/ripper.c
    Log Message:
    With the help of Claude, exactly match RIPTERM ellipses

    I had assumed they used McIlroy for Ellipses, so could only get
    close... they had actually used the two-region Bresenham, the reason
    I didn't get that to match was that they apparently scale by 100 to
    "avoid rounding", so my truncation was wildly different.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Thu Apr 2 01:31:45 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/d1c27d856bf669d666f637a8
    Modified Files:
    src/syncterm/ripper.c
    Log Message:
    And fix arcs too!

    We actually needed to extract the trig tables BGI uses to get this
    to work out right... fighting with floating point was not the way.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Thu Apr 2 15:55:01 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/7e79e2c43826ac8dedb24347
    Modified Files:
    src/syncterm/ripper.c
    Log Message:
    Much better bezier match

    replace per-iteration step/cnt division with accumulated
    t += 1.0/cnt.

    This produces the SAME ERROR I see from the RIPterm across obvious
    test vectors.

    The old code was "too correct", RIPterm appears to accumulate error
    and never correct for it.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Thu Apr 2 18:19:25 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/81b7dd81d2a640500ae7961f
    Modified Files:
    src/syncterm/ripper.c
    Log Message:
    Mostly cleanup stuff...

    Clean up old use of a hack bit, use the new polyfill for the RIP
    command, clean up some comments, and get XOR working properly
    everywhere.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¨@VERT to Git commit to main/sbbs/master on Thu Apr 2 19:20:37 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/179725429e08522795487d5f
    Modified Files:
    src/syncterm/ripper.c
    Log Message:
    Some more button fixups.

    1. !|1U missing <res> field - no longer draws the button (per RIPterm)
    2. Recessed inner corner pixels - removed explicit cc-colored corner
    pixels on inner recess border (RIPterm lets the bg lines overlap naturally) 3. Chisel inset height off-by-one Ä y2 - y1 + 1  y2 - y1 since box.y2 is
    exclusive

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Thu Apr 2 22:12:09 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/fadd8eb62fe426eee68a0964
    Modified Files:
    src/syncterm/ripper.c
    Log Message:
    Handle thick ellipses better.

    It looks like when drawing a thick ellipse, it draws multiple thick
    line segments. Now that we have the Borland cos/sin tables, we can
    do that ourselves as a special case.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Fri Apr 3 08:52:32 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/9684acff780621441b3c1194
    Modified Files:
    src/syncterm/ripper.c
    Log Message:
    Fix parse_mega() buffer overreads

    Many places were calling parse_mega() without checking the return
    value, then calling parse_mega() on the string AFTER the previous
    one. This means that on truncated invalid RIP sequences, ripper
    would read past the end of the allocation.

    This fix was complicated by the fact that the "last" item in a
    parameter list can be truncated as long as it has at least one
    valid byte in it.

    This now uses a vararg function and parses them all at once (mostly).

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Mon Apr 13 01:14:04 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/87ddc4046f27a9c51592941d
    Modified Files:
    src/syncterm/ripper.c
    Log Message:
    More fixes.

    RIPterm doesn't render \x0e or \x0f at all. (perseid.rip)
    Fixed size is ALWAYS used for plain buttons.
    Fix stroked-font tabs.
    The actual movement after a glyph is drawn comes from the stroke
    data, NOT the width data. In SANS.CHR at least, the table has TAB
    with a width of 0, but it's actually 24 based on the stroke.
    Only use npoints for |p, |P, and |l

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Mon Apr 13 20:15:12 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/2b59a74912e34419e35217eb
    Modified Files:
    src/syncterm/ripper.c
    Log Message:
    More RIP tweaks

    Correctly handle the "selected" flag.
    This also makes selecting buttons match the RIPterm rendering.

    Support "highlight icon" buttons.
    This is what you're expected to use with radio buttons and checkboxen

    Fix paste clipping
    It clips at the bottom of the screen, rejects at the right.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Tue Apr 14 00:49:52 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/412fcb168c8a5e4a7854d93c
    Modified Files:
    src/syncterm/ripper.c
    Log Message:
    Add support for justified text.

    Bug-compatible with RIPterm as usual.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Tue Apr 14 01:03:08 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/3c9429e9b886b357504661bb
    Modified Files:
    src/syncterm/ripper.c
    Log Message:
    Fix whitespace

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Tue Apr 14 01:04:49 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/3f3da7f1f946bc833f8c5763
    Modified Files:
    src/syncterm/ripper.c
    Log Message:
    Remove segment/offset references from comments.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Wed Apr 15 11:09:13 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/d00fb8a5a903062bed9355bb
    Modified Files:
    src/syncterm/ripper.c
    Log Message:
    Fix build for SyncVIEW

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Fri Apr 17 11:10:37 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/97b24908022f8f9b66219660
    Modified Files:
    src/syncterm/ripper.c
    Log Message:
    Don't set values that end up never used.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Fri Apr 17 11:10:37 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/60a1729c6607cc6dfbd4083f
    Modified Files:
    src/syncterm/ripper.c
    Log Message:
    Handle malloc() failure loading icons.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Fri Apr 17 11:10:37 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/9aec986dd3fceff2900775a6
    Modified Files:
    src/syncterm/ripper.c
    Log Message:
    Fix up arc_collect usage.

    size_t where appropriate, handle realloc() correctly.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Fri Apr 17 11:10:37 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/6f4e66c29f1828368daf9835
    Modified Files:
    src/syncterm/ripper.c
    Log Message:
    Fix possible strdup(NULL)

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Fri Apr 17 11:16:53 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/d626b0ea46f25e95455be770
    Modified Files:
    src/syncterm/ripper.c
    Log Message:
    Some more type twiddling

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Fri Apr 17 14:01:08 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/37b929e00df0ace04dcdac0b
    Modified Files:
    src/syncterm/ripper.c
    Log Message:
    Fix invalid ESC buffer expansion/stuffing

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Fri Apr 17 14:01:09 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/846d51fe947ce8e276793f2e
    Modified Files:
    src/syncterm/ripper.c
    Log Message:
    Save/restore CTerm receive callback when reiniting

    Otherwise ANSI responses stop flowing back to the BBS in RIP mode.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Fri Apr 17 14:36:01 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/9c50d542280c470b42f8c236
    Modified Files:
    src/syncterm/ripper.c
    Log Message:
    Save font when drawing buttons and use it.

    Black Flag RIP menus changed fonts after drawing buttons, and that
    made things look bad.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Fri Apr 17 22:38:54 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/6147bc695c037df28bc4c6e4
    Modified Files:
    src/syncterm/ripper.c
    Log Message:
    Avoid implying to Coverity that rip.stw.size belongs in a mutex

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Sat Apr 18 01:39:12 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/fadf3dfffe8df12876c622b1
    Modified Files:
    src/syncterm/ripper.c
    Log Message:
    Fix some Coverity warnings.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net