fix: reject incomplete \c escape at end of pattern#48
Draft
toddr-bot wants to merge 1 commit intocpan-authors:mainfrom
Draft
fix: reject incomplete \c escape at end of pattern#48toddr-bot wants to merge 1 commit intocpan-authors:mainfrom
toddr-bot wants to merge 1 commit intocpan-authors:mainfrom
Conversation
\c requires a following character (the control character argument). When \c appeared at end of string, the handler silently produced @ (chr(64)) instead of an error. Perl rejects this as "Character following \c must be printable ASCII". Now errors with RPe_ESLASH. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
\cat end of pattern now errors instead of silently producing@(chr 64).Why
Perl requires a character after
\cand rejects bare\cwith "Character following \c must be printable ASCII". The parser's handler used(.?)which matched zero characters at end of string, silently computingchr(64 ^ ord(""))=chr(64)=@.How
Changed the handler regex from
(.?)to(.)and added an error check usingRPe_ESLASHwhen no character follows.Testing
t/11errors.t🤖 Generated with Claude Code