Skip to content

[R2][核心] 对齐主屏 ASCII DECAWM 与末列开关行为 #161

Closed

Description

@JavaZeroo

限定交付结果

已由 PR162 合入 main fb36648f0e13c5d4a27f2c2998736579acabbfc1,实际 runtime/test 源 2ed20754696ed8ed530c1fbddb5da262f1e5b2cb 与发布HEAD 79ed9242918cb6ac3bf63dcf81241db778c7b11a 均已核在 main 祖先链。Standards/Spec 各0发现;6个hosted工作流首次成功,PR默认Windows61/61(291.27s)、Linux41/41(21.25s),实际checkout f45abac。各配置身份独立,不拼成更大验收。

本项仅闭合下列主屏ASCII合同;宽/结合字、跨1049、resize及产品ConPTY/Qt/TUI/性能未作原版匹配结论,#27/R2继续开放。原RED、临时宽字guard及移除、定向首次8/9与补建后core31/31均在限定报告分列。

用户结果与依据

在自主 C++ 核心中对齐 WindTerm 2.7.0 已直接观察到的主屏 ASCII 自动换行开关与末列行为。父项 #27,R2;正式路线沿用自主 C++ / Qt Widgets / 固定微软 ConPTY。基线 main 6a10e5322a1bddeb038670e50f32ff6deac145cf。

前置 #151 已以 PR157 合入并限定关闭;固定原版报告阶段14–18提供本切片直接依据。#41/#56 运输缺口不阻塞独立 core feed,但仍阻塞完整产品/TUI 验收。

独立实施范围

新建25行91列主屏,ASCII,精确单参数 CSI ?7h/l;把模式解析与屏幕写入策略分开。新增许可位的容器属于内部工程选择,不把它视为已确认的原版跨屏保存规则。默认和既有1049行为继续回归。本项不增加 DSR 回复接口;阶段13的 CSI r 尚未实现,故抽取14–18的合成轨迹,不称完整25阶段回放。

以下坐标为1起始;C(r) 表示 CSI r;91H,每个模式操作均有CSI前缀:

输入 独立文字/位置预期
?7h C(8) AB (9,2),保留AB
?7l C(10) CD (10,91),仅D
?7h C(12) EF (13,2),保留EF
C(14) G ?7l H (14,91),仅H
?7l C(16) I ?7h J (17,2),保留IJ

模式开关不能一律清除末列已写状态;特别是最后一行需要关闭时写满末列后重新开启仍能继续换行。文字投影与位置为原版观察oracle;内部物理行、软连接、行版本属于独立工程不变量。

验证与交付

  • 先保留当前不支持这些序列的RED,再实现同源GREEN。
  • strict/recovery、各阶段前缀、所有二段分割点和逐字节feed;独立字面预期,不仅比较同实现整包与分块。
  • 混合/未知/畸形private参数不部分执行;取消/截断/重同步继续回归。
  • 保留已有1049 pending-wrap恢复、双帧历史隔离、ID/版本、复制/查找、Unicode与物理resize回归;宽字符边界至少有界不越界。
  • 固定source/build/测试身份,保留失败和跳过;两轴审查后合入main,更新FEATURES/EVIDENCE和父项。

未知且不由本项验收:wrap×1049、origin每屏位、margin返回下界、宽/结合字×wrap关闭、wrap×resize及完整style。若实现发现必须对未知目标作重要行为选择,先分离调查并保留未知,不按规范补成原版已匹配。完成只表示有限C++能力,不解除#27/#28/#29/#30/R2的完整出口。

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions