diff --git a/tools/src/hwpod-node-lib.ts b/tools/src/hwpod-node-lib.ts index 541d9bf5..53160174 100644 --- a/tools/src/hwpod-node-lib.ts +++ b/tools/src/hwpod-node-lib.ts @@ -701,7 +701,8 @@ function lineEndingFromArgs(args: any, fallback: string) { } function normalizeContentLineEndings(content: string, lineEnding: string, finalNewline: boolean) { - const normalized = String(content).replace(/\r\n?/gu, "\n"); + const unescaped = String(content).replace(/\\r\\n/gu, "\r\n").replace(/\\n/gu, "\n").replace(/\\r(?!\n)/gu, "\r"); + const normalized = unescaped.replace(/\r\n?/gu, "\n"); const withFinal = finalNewline && !normalized.endsWith("\n") ? `${normalized}\n` : normalized; return lineEnding === "\r\n" ? withFinal.replace(/\n/gu, "\r\n") : withFinal; }