Skip to content

0.3.0 --- the keystrokes the host keeps for itself are a position now - #3

Merged
Sunrisepeak merged 2 commits into
mainfrom
openkal-0.14
Sep 20, 2026
Merged

Sunrisepeak merged 2 commits into
mainfrom
openkal-0.14

Conversation

@Sunrisepeak

Copy link
Copy Markdown
Member

跟随 openkal 0.14(mcpplibs/openkal#38):模式字第三个位 KAL_TERM_PASS_CONTROL 的读写,以及规范在 set_mode 旁新增的两条规则。

  • 位的映射取本环境保留按键机制的全集(termios: ISIG|IXON|IEXTEN;console: ENABLE_PROCESSED_INPUT),否则同一个模式字在两个系统上含义不同。
  • 请求值与当前值相同的位不写。
  • 关行组装时确立「读至少等一个字节」,否则 kal_stream_read 会报出一个不是输入结束的 0(条款 7.4)。

依赖:openkal 0.14.0。各仓库同名分支 openkal-0.14,CI 会检出同名规范分支。端到端验证(^C 以 0x03 到达、^S 不冻结、恢复后终端回到原样)在 openkal-musl 的 pty 探针里与宿主 C 库对照。

openkal 0.14 adds KAL_TERM_PASS_CONTROL, and this implementation forwards it
to the host's terminal exactly as it forwards the other two positions: ISIG,
IXON and IEXTEN together, because the position states that NO keystroke is
reserved.

Under node with a real terminal the three are the host's own. In a browser
there is no terminal at all, and the property word already says so before any
of this is reached --- which is the arrangement this package's terminal
source exists to demonstrate, and it needed no change for a third position.

A position whose requested value is the one in effect is not written, and
with line assembly off the least number of bytes a read waits for is
established, so that a terminal left at VMIN=0 does not make kal_stream_read
report the end of an input that has not ended (clause 7.4).
…he index floor

The check builds a program that calls kal_process_spawn and asserts that the
link fails naming it. It reached openkal by the version this package's
manifest asks for, so on the branch that raises that version it asked the
index for one not registered yet and reported 'the build did not fail naming
kal_process_spawn' for a build that never started. Both dependencies now name
the working trees, which is what the check is about; and MCPP_VERSION moves to
the engine the index requires, which the same step met as a second failure.
@Sunrisepeak
Sunrisepeak merged commit 9b5b17e into main Sep 20, 2026
2 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant