-
Notifications
You must be signed in to change notification settings - Fork 19
Escape slash inside bracket expression #8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
Many AWK implementations appears to allow unescaped slashes inside a bracket expression in a regular expression literal, consistent with the way that most metacharacters lose their meaning inside bracket expressions (tested: GNU Awk 4.2.1, mawk 1.3.4, and BWK awk (nawk) 20121220, all on Arch Linux); however, some versions also appear to require such a slash to be escaped (tested: mawk 1.3.3 on Debian Stretch), and this appears to be consistent with POSIX, which in the Lexical Conventions, number 6, states that “[a]n ERE constant shall be terminated by the first unescaped occurrence of the <slash> character after the one that begins the ERE constant.” Escaping the slash appears to be safe in all tested versions (that is, it does not count the backslash as part of the bracket expression), so let’s do that to ensure the program also works with mawk 1.3.3 on Debian Stretch, fixing dspinellis#7.
@fanis can you check if this solves the problem for you? |
After escaping that slash:
Ensuring I got the change right:
|
I’m getting the same “FAIL pmonitor: expected 50, got ''” both on this commit and on the parent (current |
(#11 should fix the second error message.) |
This is yet to be merged! |
To clarify: it's not just the test suite that fails for me.
|
Yup:
|
Hm, then I’m not sure where this error could come from. Which shell is your |
|
Many AWK implementations appears to allow unescaped slashes inside a bracket expression in a regular expression literal, consistent with the way that most metacharacters lose their meaning inside bracket expressions (tested: GNU Awk 4.2.1, mawk 1.3.4, and BWK awk (nawk) 20121220, all on Arch Linux); however, some versions also appear to require such a slash to be escaped (tested: mawk 1.3.3 on Debian Stretch), and this appears to be consistent with POSIX, which in the Lexical Conventions, number 6, states that “[a]n ERE constant shall be terminated by the first unescaped occurrence of the character after the one that begins the ERE constant.” Escaping the slash appears to be safe in all tested versions (that is, it does not count the backslash as part of the bracket expression), so let’s do that to ensure the program also works with mawk 1.3.3 on Debian Stretch, fixing #7.