증상 (사용자 제보)
기존 문서에 새 내용을 "구별되게 표시해서 추가"(변경추적 삽입 등)한 뒤 한컴에서 열면, 추가분이 기존 줄 위에 겹쳐 찍혀 읽을 수 없게 렌더됩니다.
원인
- 변경추적 insert/delete/replace는 run 교체(
HwpxOxmlRun.apply_model)로 텍스트를 바꾸는데, 이 경로가 편집 문단의 <hp:linesegarray>(한컴 줄배치 캐시)를 제거하지 않았습니다.
- 저장 시 stale 캐시 스윕은 트랙마크가 있는 문단을 "판정 불가"로 보존하므로 이중으로 통과됐습니다.
- 한컴은 남은 옛 캐시로 줄배치를 재사용해, 길어진 문단의 글자가 겹칩니다.
재현·검증
실한컴 렌더로 재현(수리 전: 편집 문단 둘째 줄 글리프 겹침) → 수리 후 정상 줄바꿈 render-checked. 편집 문단만 캐시를 제거하고 나머지 문단 캐시는 보존합니다(문서 전체 재배치 부작용 없음).
수리
apply_model이 run 교체 시 편집 문단의 lineseg 캐시를 제거 (charPrIDRef setter와 같은 원칙)
- 회귀 테스트 2건: 요소 경계·바이트 경계(저장→재열기) 모두 고정
- 커밋: a22342c (개발 트레인, 다음 릴리스에 포함 예정)
영향 범위: 변경추적 저작 도입(2.17.0) 이후 전 버전.
증상 (사용자 제보)
기존 문서에 새 내용을 "구별되게 표시해서 추가"(변경추적 삽입 등)한 뒤 한컴에서 열면, 추가분이 기존 줄 위에 겹쳐 찍혀 읽을 수 없게 렌더됩니다.
원인
HwpxOxmlRun.apply_model)로 텍스트를 바꾸는데, 이 경로가 편집 문단의<hp:linesegarray>(한컴 줄배치 캐시)를 제거하지 않았습니다.재현·검증
실한컴 렌더로 재현(수리 전: 편집 문단 둘째 줄 글리프 겹침) → 수리 후 정상 줄바꿈 render-checked. 편집 문단만 캐시를 제거하고 나머지 문단 캐시는 보존합니다(문서 전체 재배치 부작용 없음).
수리
apply_model이 run 교체 시 편집 문단의 lineseg 캐시를 제거 (charPrIDRef setter와 같은 원칙)영향 범위: 변경추적 저작 도입(2.17.0) 이후 전 버전.