Repository navigation
Conversation
Without -t, join split fields only at space, tab and newline. In a UTF-8 locale GNU join also splits at multi-byte blanks such as U+3000 IDEOGRAPHIC SPACE, so a line like "root<U+3000>/bin/sh" took the whole line as its key and never paired with "root" in the other file. Walk non-ASCII lines by character with Encoding::blank_len(), the class cut -w already uses. Single-byte locales and ASCII lines keep the memchr loop. Fixes uutils#15771 Co-authored-by: Sylvestre Ledru <733326+sylvestre@users.noreply.github.com>
There was a problem hiding this comment.
Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.
An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing. Review the Copilot code review billing settings.
Merging this PR will degrade performance by 3.3%
Warning Please fix the performance issues or acknowledge them on CodSpeed. Performance Changes
Tip Investigate this regression by commenting Comparing Footnotes
|
…anks Only lines that contain a 0xE1, 0xE2 or 0xE3 byte can hold a multi-byte blank, so other non-ASCII lines (accented Latin text, for example) no longer go through the per-character scan.
There was a problem hiding this comment.
Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.
An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing. Review the Copilot code review billing settings.
There was a problem hiding this comment.
Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.
An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing. Review the Copilot code review billing settings.
There was a problem hiding this comment.
Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.
An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing. Review the Copilot code review billing settings.
Without -t, join split fields only at space, tab and newline. In a UTF-8 locale GNU join also splits at multi-byte blanks such as U+3000 IDEOGRAPHIC SPACE, so a line like "root<U+3000>/bin/sh" took the whole line as its key and never paired with "root" in the other file.
Walk non-ASCII lines by character with Encoding::blank_len(), the class cut -w already uses. Single-byte locales and ASCII lines keep the memchr loop.
Fixes #15771