Skip to content

Conversation

@edongashi
Copy link
Contributor

@edongashi edongashi commented Nov 3, 2024

Replaces regex with a simple state machine.

Since there is no test infrastructure, I ran the following snippet for a sanity check:

console.log([
  "Line1\\Line2",
  "Line1\\\\Line2",
  "Line1\\tLine2",
  "Line1\\nLine2",
  "Line1\\n\\nLine2",
  "Line1\\n\\\\nLine2",
  "Line1\\n\\\\\\nLine2",
].map(replaceLinebreakInString).join('\n======\n'))

And got:

Line1\Line2
======
Line1\Line2
======
Line1\tLine2
======
Line1
Line2
======
Line1

Line2
======
Line1
\nLine2
======
Line1
\
Line2

@vercel
Copy link

vercel bot commented Nov 3, 2024

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Updated (UTC)
quickadd ✅ Ready (Inspect) Visit Preview Jun 18, 2025 6:54pm

- Add tests covering basic linebreak replacement (\n -> newline)
- Add tests for escape sequence handling (\ -> \)
- Add tests for complex escape sequences like \n and \\n
- Add specific test cases from PR description to verify bug fix
- All tests pass, confirming the state machine implementation works correctly
@chhoumann
Copy link
Owner

Thanks for this fix! The state machine approach is nice! Your manual testing was thorough and helped validate the implementation.

I've added comprehensive automated tests to complement this PR, covering all your test cases plus additional edge cases. All tests pass, confirming the implementation handles the escape sequences correctly.

Appreciate you identifying and solving this bug with the linebreak handling.

@chhoumann chhoumann merged commit 1a02543 into chhoumann:master Jun 18, 2025
1 check passed
github-actions bot pushed a commit that referenced this pull request Jun 19, 2025
# [1.14.0](1.13.3...1.14.0) (2025-06-19)

### Bug Fixes

* handle undefined variables by returning empty string instead of 'undefined' ([#820](#820)) ([6048ef7](6048ef7)), closes [#209](#209)
* prevent crash when typing comma in VDATE syntax ([2e8939c](2e8939c)), closes [#455](#455)
* replaceLinebreakInString bug with double newlines ([#752](#752)) ([1a02543](1a02543))

### Features

* add canvas template support ([#831](#831)) ([ccfd936](ccfd936)), closes [#663](#663)
* add comma support in VDATE date formats ([6c65266](6c65266))
* add default values for {{VALUE:variable}} syntax ([#821](#821)) ([382294e](382294e)), closes [#569](#569) [#264](#264) [#569](#569)
* **docs:** enhance documentation with improved content, modern design, and framework upgrade ([ae003f8](ae003f8))
* enable VDATE reuse with different formats ([#822](#822)) ([fe1dcac](fe1dcac)), closes [#69](#69)
* enhance field suggestions with advanced filtering and smart defaults ([#826](#826)) ([7b09254](7b09254)), closes [#337](#337) [#337](#337)
@github-actions
Copy link

🎉 This PR is included in version 1.14.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants