Repository navigation
Turn the extended data stream off when Extended is unchecked (#200) - #201
Conversation
The profile's Extended box only dropped the -E from b3270's -model, which b3270 4.5 ignores: common_model_init reads the model number and colour and nothing else, so an unchecked box still told the host IBM-3279-2-E. The stream is the extendedDataStream resource, and BuildArguments now sends -set extendedDataStream=false for it. b3270 drops -oversize without the stream, so a custom size keeps it on whatever the box says (TerminalType.IsExtended). The editor before this let Other be saved with Extended unchecked, and those profiles keep their custom size. Under Other the editor shows the box checked and greyed out, with the reason under it, and choosing a model brings the user's choice back. A new engine test asks the bundled engine what it will tell the host. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Save writes the user's own Extended rather than what the greyed box shows under Other. TerminalType.IsExtended already keeps the stream on for any custom size, so the session is unchanged, and an unchecked choice now survives a save and comes back when the profile returns to a model. The user guide's row said the host is always told an -E terminal type; a custom size is told IBM-DYNAMIC, which the row now says. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Review fixes (db26db4)A high review found six things; two are fixed here, four skipped by choice. Fixed
Skipped
Full suite green (integration lane skipped here, no bundled engine); 🤖 Generated with Claude Code |
The review had Save write the user's hidden Extended choice under Other, so it came back when the profile returned to a model. Robert prefers the rule he chose for the editor: like the size boxes, nothing the editor is not showing survives a save, so a custom size saves Extended on. The session is the same either way, since TerminalType.IsExtended keeps the stream on for any custom size. docs/development.md now says the bundled engine is the one LizTerm chose, and that an override older than 4.4 has no extendedDataStream resource, so an unchecked box does nothing with one. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Review follow-up (87bd911)Robert went through the review's fixes and skips (comment above) with me. Fix 1 reverted. Save writes what the Extended box shows again: under Other, Extended on. That is the rule Fix 2 kept. With any oversize the engine reports The four skips stand.
Added: Full suite green locally (the live-host tests skip); 🤖 Generated with Claude Code |
Closes #200.
The profile editor's Extended data stream box only added or dropped the
-Eon b3270's-model. b3270 4.5ignores that suffix:
common_model_initreads only the model number and colour from the name, and the stream is theseparate
extendedDataStreamresource, on by default. So a profile with the box unchecked still told the hostIBM-3279-2-E.What changes
BuildArgumentssends-set extendedDataStream=falsewhen theprofile runs without it, and nothing otherwise, since on is b3270's default.
-oversizewithout the stream (oversize_init), soTerminalType.IsExtended(profile)(Core) is the profile's Extended, or true for any oversize, even one the enginewould refuse (the command line refuses that by name). This differs from the plan in the issue, which had
OversizeGeometry.TryForanswer "no oversize" without the stream. The editor before this let Other be savedwith Extended unchecked, and those sessions always ran with the stream on. Under the issue's plan they would drop
to 24x80 after the upgrade; with this rule they keep their size, and
TryForis unchanged.TerminalType.For, thestatus bar's spelling, follows
IsExtendedtoo.under it. Choosing a model again brings back the user's own choice.
ExtendedDisplayfollows theColumnsDisplaypattern, and Save writes what the box shows.and test notes are updated.
Engine behaviour
Measured with the bundled 4.5ga6 and Homebrew's, which agree:
TerminalNameextendedDataStream-model 3279-2IBM-3279-2-E-model 3279-2 -set extendedDataStream=falseIBM-3279-2-model 3279-2 -oversize 132x60IBM-DYNAMIC-model 3279-2 -set extendedDataStream=false -oversize 132x60IBM-3279-2In the x3270 source,
extended_data_streamis read in only two places: the-Eon the terminal name and theoversize.
Tests
EngineExtendedDataStreamTests(integration) starts the bundled engine for three profiles, asks it forTerminalNameandextendedDataStream, and checks its starting screen againstScreenSize.AlternateFor. Beforethe fix the unchecked case failed with
IBM-3279-2-E.TerminalTypeTests,ScreenSizeTests, theBuildArgumentscases inB3270SessionLifecycleTests, twoProfileViewModelsTestsandProfileEditorWindowTests.The_extended_box_is_locked_on_under_other.dotnet build LizTerm.slnx --no-incrementalreports 0warnings.
Hands-on
IBM-3279-2) as withit on. Not signed on.
Not in this PR
b3270 names a colour model 4 or 5
IBM-3278-nto the host (create_3270_termtypeuses 3279 only for models 2and 3), so the status bar's
3279-4-Eis not what the host sees. That was already true before this change, and itis not filed.
🤖 Generated with Claude Code