测试:新增 cfg_file 主机侧单测并修复外科手术保存死码缺陷(S1-b+S2)
CI / L0 静态门禁 (pre-commit) (push) Successful in 49s
CI / L0.5 主机侧单测 (MSVC) (push) Successful in 17s

This commit is contained in:
2026-10-02 13:00:54 +08:00
parent f3befaed08
commit fe963e7d91
11 changed files with 1254 additions and 9 deletions
+10 -3
View File
@@ -731,8 +731,11 @@ static int s_surgical(char *p_in, size_t in_len, char *p_out, size_t out_cap, si
if (s_key_line[idx][k] == 0xFFFFu) {
const cfg_key_def_t *p_key = &s_sections[idx].p_keys[k];
char v[80];
/* s_encode 成功返回文本长度(≥1),失败返回 -1:
* 故判成功必须 `< 0` 取反,不能写 `== 0`(恒假,
* 使补写路径沦为死码,见 2026-10-02 L0.5 修复) */
if (s_encode(p_key, (const uint8_t *)s_sections[idx].p_data + p_key->offset,
v, sizeof(v)) == 0) {
v, sizeof(v)) >= 0) {
if (s_emit_kv(p_out, out_cap, &off, p_key->name, v) != 0) {
return -1;
}
@@ -759,8 +762,11 @@ static int s_surgical(char *p_in, size_t in_len, char *p_out, size_t out_cap, si
if (is_key) {
const cfg_key_def_t *p_key = &s_sections[i_sec].p_keys[k];
char v[80];
/* s_encode 成功返回文本长度(≥1),失败返回 -1:判成功用 `>= 0`。
* 旧代码写 `== 0`(恒假)→ 受管键行永远走下面 else 原样输出 →
* 对已存在文件保存时**受管值从不改写**(静默不落盘,2026-10-02 修复) */
if (s_encode(p_key, (const uint8_t *)s_sections[i_sec].p_data + p_key->offset,
v, sizeof(v)) == 0) {
v, sizeof(v)) >= 0) {
if (s_emit_kv(p_out, out_cap, &off, p_key->name, v) != 0) {
return -1;
}
@@ -801,8 +807,9 @@ static int s_surgical(char *p_in, size_t in_len, char *p_out, size_t out_cap, si
for (k = 0; k < (int)p_sec->key_count; k++) {
const cfg_key_def_t *p_key = &p_sec->p_keys[k];
char v[80];
/* 同上:s_encode 成功 = 文本长度(≥1),判成功用 `>= 0` */
if (s_encode(p_key, (const uint8_t *)p_sec->p_data + p_key->offset,
v, sizeof(v)) == 0) {
v, sizeof(v)) >= 0) {
if (s_emit_kv(p_out, out_cap, &off, p_key->name, v) != 0) {
return -1;
}