Skip to content

Commit 681171c

Browse files
ecliptikclaude
andcommitted
Version 1.9.6: finger protocol, configurable build flags, rendering improvements
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent a9f30dd commit 681171c

File tree

5 files changed

+40
-6
lines changed

5 files changed

+40
-6
lines changed

CHANGELOG.md

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ All notable changes to this project will be documented in this file.
44

55
## [Unreleased]
66

7+
## [1.9.6] - 2026-03-16
8+
79
### Added
810
- Finger protocol client (RFC 1288) — File > Finger... (Cmd+F)
911
- Query user information on remote hosts via TCP port 79
@@ -14,23 +16,55 @@ All notable changes to this project will be documented in this file.
1416
- Window title includes "(finger)" suffix
1517
- Per-bookmark protocol selection (Telnet or Finger) in bookmark editor
1618
- Favorites submenu dispatches finger bookmarks correctly
17-
- Scrollback buffer increased from 96 to 192 lines (8 pages of history)
19+
- Configurable build system with 16 compile-time feature flags
20+
- 3 build presets: minimal (~256KB), macplus/lite (~384KB), full (~768KB)
21+
- Every major feature can be toggled: `--finger`, `--color`, `--glyphs`,
22+
`--cp437`, `--clipboard`, `--savefile`, `--bookmarks`, `--darkmode`,
23+
`--dblwidth`, `--altscreen`, `--offscreen`, `--statusbar`,
24+
`--cursorstyles`, `--tabstops`
25+
- Configurable sessions (1-4) and scrollback lines (0-256)
26+
- SIZE resource (Finder memory partition) dynamically computed from
27+
enabled features
28+
- Presets applied first, individual flags override:
29+
`--preset minimal --finger --bookmarks`
30+
- Three-layer guard pattern: CMake source exclusion, header no-op stubs,
31+
inline #ifdef guards (~163 guard sites across 26 files)
32+
- FlynnPrefs struct unchanged for cross-build prefs compatibility
33+
- Three release editions: Flynn (full), Flynn Lite (macplus), Flynn Minimal
34+
- Build documentation: `docs/BUILD.md` with complete flag reference,
35+
memory costs, presets, and examples
36+
- Direct offscreen memory writes bypass QuickDraw traps for rendering
37+
(font bitmap cache, direct glyph blit, direct erase/fill)
38+
- Shadow buffer skips unchanged rows via memcmp
39+
- Scroll sync uses memmove instead of CopyBits
40+
- Color GWorld offscreen buffer eliminates flicker on System 7
1841
- Optimized scrollbar arrow scrolling: ScrollRect + offscreen memmove
1942
renders only 1 row per arrow click instead of full 24-row redraw
2043

2144
### Fixed
45+
- Dark mode rendering bugs: white bar at window bottom, status bar
46+
artifacts, stale offscreen content
2247
- Offscreen buffer reuse: clear pixel data when reusing for different
2348
window with same dimensions (prevented stale session content bleed)
2449
- Scrollback ring buffer index: corrected formula for partially-filled
2550
buffers (was sb_head+sb_count+sb_row, now sb_head+sb_row)
2651
- Drain loop data race: process pending TCP data before checking for
2752
disconnect state transition
53+
- System 7 GWorld rendering stability and artifact fixes
54+
- icl8/ics8 icon polarity for System 7 color displays
55+
- 68000 address error in offscreen_fill_rect
2856

2957
### Changed
58+
- Default build uses macplus preset: 1 session, 96-line scrollback, ~384KB
59+
partition (was 4 sessions, 192-line scrollback, ~768KB)
60+
- Binary size: 91KB minimal, 125KB default, 130KB full
61+
- Release script builds all 3 presets and uploads 6 artifacts per release
3062
- FlynnPrefs v12 (finger_host, finger_user, bookmark_protocol[])
3163
- File menu: Finger... inserted at position 2, items renumbered
3264
- Control menu disabled for finger sessions
3365
- Bookmark edit dialog: protocol popup (Telnet/Finger), dialog enlarged
66+
- Performance and security review: hardening, leak fixes, dead code
67+
removal, optimizations, and refactoring
3468

3569
## [1.9.5] - 2026-03-14
3670

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
cmake_minimum_required(VERSION 3.9)
2-
project(Flynn VERSION 1.9.5)
2+
project(Flynn VERSION 1.9.6)
33

44
# --- Feature flags with defaults ---
55
option(FLYNN_FINGER "Enable Finger protocol" ON)

docs/About Flynn

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
=====================================================
22
Flynn
33
Telnet and Finger Client for Macintosh
4-
Version 1.9.5
4+
Version 1.9.6
55
=====================================================
66

77
Connect your classic Macintosh to the modern world.

docs/BUILD.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -253,14 +253,14 @@ The build produces three artifacts in the `build/` directory:
253253
- **Flynn.dsk** — 800K floppy disk image (bootable, includes About Flynn)
254254
- **Flynn.hqx** — BinHex archive (for email/BBS distribution, requires `macutils`)
255255

256-
Versioned copies are also created (e.g., `Flynn-1.9.5.bin`).
256+
Versioned copies are also created (e.g., `Flynn-1.9.6.bin`).
257257

258258
## Build Summary
259259

260260
After building, a summary shows the configuration:
261261

262262
```
263-
Build complete (v1.9.5, macplus preset):
263+
Build complete (v1.9.6, macplus preset):
264264
Sessions: 1, Scrollback: 96 lines
265265
Features: finger glyphs cp437 clipboard savefile bookmarks
266266
darkmode altscreen offscreen statusbar cursorstyles tabstops

resources/telnet.r

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ resource 'DITL' (130, "About Flynn") {
206206

207207
/* 3: App name + version */
208208
{10, 55, 30, 280},
209-
StaticText { disabled, "Flynn 1.9.5" };
209+
StaticText { disabled, "Flynn 1.9.6" };
210210

211211
/* 4: Machine type (set at runtime) */
212212
{33, 55, 49, 280},

0 commit comments

Comments
 (0)