Skip to content

bug: AsgConverter.VisitParagraph フォールバックで改行正規化が欠落し Windows 形式入力でサイレントに誤データを生成する #162

@aetos382

Description

@aetos382

概要

AsgConverter.VisitParagraph のフォールバックパスで \r\n\n の改行正規化が欠落している。
VisitInlineText では正規化しているにもかかわらずフォールバックパスでは行われておらず、Windows 形式(\r\n)の改行を含む AsciiDoc 文書が未対応構文またはエラー回復でフォールバックに到達した場合、ASG の Value\r\n が残ったままになる。

再現条件

  • Windows 形式(\r\n)の改行を含む AsciiDoc 文書
  • かつ ParagraphSyntax.InlineElements が空(未対応構文・エラー回復)になる場合

問題のコード

Source/AsciiSharp.Asg/AsgConverter.csVisitParagraph フォールバック部分:

// 現状: 正規化なし
var paragraphText = node.ToString().Trim();

期待する修正

var paragraphText = node.ToString()
    .Replace("\r\n", "\n", StringComparison.Ordinal)
    .Replace("\r", "\n", StringComparison.Ordinal)
    .Trim();

また、フォールバックへの到達自体が完全にサイレントであり、パーサーのバグと意図的な未対応構文を区別できない。Debug.Assert または診断コードの追加を検討する。

発見経緯

PR 008-fix-multiline-paragraph のレビュー(silent-failure-hunter エージェント)にて検出。

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions