Skip to content

AsciiDoc: Some regexes are too greedy - #3481

Merged
RunDevelopment merged 1 commit into
PrismJS:masterfrom
RunDevelopment:issue3480
Jun 25, 2022
Merged

RunDevelopment merged 1 commit into
PrismJS:masterfrom
RunDevelopment:issue3480

Conversation

@RunDevelopment

Copy link
Copy Markdown
Member

Fixes #3480.

We had a few regexes of the form /^(some prefix)(?:\r?\n|\r)(?:[\s\S]*(?:\r?\n|\r))??\1$/m. This is incorrect as the greedy [\s\S]* will overrun all occurrences of the captured prefix until the last occurrence is found. I replaced it with /^(some prefix)$[\s\S]*?^\1$/m.

@github-actions

Copy link
Copy Markdown

JS File Size Changes (gzipped)

A total of 1 files have changed, with a combined diff of -10 B (-0.6%).

Details
file master pull size diff % diff
components/prism-asciidoc.min.js 1.62 KB 1.61 KB -10 B -0.6%

Generated by 🚫 dangerJS against 3c772e0

@JaKXz JaKXz left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice! My only nit would be to break up the large test file for readability but that's not a blocker.

@RunDevelopment

Copy link
Copy Markdown
Member Author

My only nit would be to break up the large test file for readability but that's not a blocker.

I see what you mean, but that was intentional. Regexes that are too greedy might come up again, and long test snippets are more likely to include examples that trigger these bugs.

@RunDevelopment
RunDevelopment merged commit c4cbeea into PrismJS:master Jun 25, 2022
@RunDevelopment
RunDevelopment deleted the issue3480 branch June 25, 2022 10:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Asciidoc processing fails on [source]

2 participants