Repository navigation
v2.3.2
v2.3.2
会话恢复的「看不到效果」这一类补三处:session 默认改成开、快照按最新那份发现(换 exe 文件名不再等于丢历史)、没读回来时在屏上说一行。
| # | 内容 |
|---|---|
| 默认开 | 用户连着两轮说「没有成功恢复」。现场里最常见的一种解释根本不是 bug:session 默认 off,没手动开过就一个字节都不写,而「没开」与「坏了」在屏上一模一样。v2.3.0 当时按「不碰任何人的现有行为」选了默认关,这一版反过来:功能默认生效,ini 里 session = off 照样能关(值写坏也当开,因为那行存在就说明想开)。 |
| 快照发现 | 写仍然只写 exe 同目录的 termux.session 一份(「退出只写一次盘」这条口径没变);读的时候改成拿「exe 目录里所有 *.session + 主目录 .termux.session」比最后修改时间取最新。动机:Release 的产物名带版本号(termux-2.3.1-windows-x64.exe),换版本 = 换文件名 = 快照落在上一个名字旁边,下一次启动按固定名字找不到 ⇒ 看着像「没存」。POSIX 侧用 opendir/stat,Windows 侧用 FindFirstFileW/GetFileAttributesExW,同一套判定。 |
| 说了再走 | 三种「什么都没恢复」以前都是静悄悄的:没有快照、快照读不认(版本不认 / 结构坏 / 空档)、目录写不动。现在前两种各打一行说明(── 会话:…──),并且这类说明行存盘时剔掉,不会被当成历史一轮轮攒下去。判据把「提示行只出现一次、且下一轮不会被当成历史」钉住。 |
| 默认开顺手暴露的 CI 互污 | session 默认开之后,凡是【直接跑仓库那支 exe】的判据都会在 exe 旁边留下/读到 termux.session:make check-posix 里的 lastcol(「满宽行必须原样发到宿主」)就因为多出来的两行把渲染分块位置挪了而红 —— 上一轮跑剩的快照被下一轮灌回屏上。加了个与 TERMUX_DUMP 同族的把手 TERMUX_NO_SESSION=1(src/config.c,只有显式设上才生效,产品路径不动),lastcol / smoke / 非会话那几组跑之前设它;会话那几组用自己的临时目录 + ini,不受影响。termux.session / *.session 同时进 .gitignore(判据跑在仓库根时它真的会出现)。 |