Skip to content

Diffing of escaped/unescaped characters #18

Description

@JKRhb

While using typdiff, I ran into an edge case where I replaced an unescaped * with an escaped one. The two documents are technically equivalent (the unescaped * is interpreted as is), but typdiff produces a diff document that does not compile.

Maybe there is a way to determine whether a * actually equals \* that allows the tool to skip this particular comparison (which probably applies to other instances of escaped charaters as well).

Test Documents

Document 1

#set text(lang: "de")

Tester*innen testen Tests.

Document 2

#set text(lang: "de")

Tester\*innen testen Tests.

Result

Due to Tester#diff-added[\ ]*innen, this document does not compile (error message: error: unclosed delimiter).

#let diff-added(body) = {
  set text(fill: rgb("#0000ff"))
  underline(body)
}
#let diff-deleted(body) = {
  set text(fill: rgb("#cc0000"))
  strike(body)
}

#set text(lang: "de")

Tester#diff-added[\ ]*innen testen Tests.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions