mirror of
https://github.com/BurntSushi/ripgrep.git
synced 2024-12-12 19:18:24 +02:00
cli: improve invalid UTF-8 pattern error message
When a pattern with invalid UTF-8 is given, the error message suggests unqualified use of hex escape sequences to match arbitrary bytes. But you *also* need to disable Unicode mode. So include that in the error message. Fixes #1339
This commit is contained in:
parent
50840ea43b
commit
64a4dee495
@ -2,6 +2,8 @@ TBD
|
|||||||
===
|
===
|
||||||
Bug fixes:
|
Bug fixes:
|
||||||
|
|
||||||
|
* [BUG #1339](https://github.com/BurntSushi/ripgrep/issues/1339):
|
||||||
|
Improve error message when a pattern with invalid UTF-8 is provided.
|
||||||
* [BUG #1524](https://github.com/BurntSushi/ripgrep/issues/1524):
|
* [BUG #1524](https://github.com/BurntSushi/ripgrep/issues/1524):
|
||||||
Note how to escape a `$` when using `--replace`.
|
Note how to escape a `$` when using `--replace`.
|
||||||
* [BUG #1537](https://github.com/BurntSushi/ripgrep/issues/1537):
|
* [BUG #1537](https://github.com/BurntSushi/ripgrep/issues/1537):
|
||||||
|
@ -38,9 +38,9 @@ impl fmt::Display for InvalidPatternError {
|
|||||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||||
write!(
|
write!(
|
||||||
f,
|
f,
|
||||||
"found invalid UTF-8 in pattern at byte offset {} \
|
"found invalid UTF-8 in pattern at byte offset {}: {} \
|
||||||
(use hex escape sequences to match arbitrary bytes \
|
(disable Unicode mode and use hex escape sequences to match \
|
||||||
in a pattern, e.g., \\xFF): '{}'",
|
arbitrary bytes in a pattern, e.g., '(?-u)\\xFF')",
|
||||||
self.valid_up_to, self.original,
|
self.valid_up_to, self.original,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@ -64,10 +64,7 @@ pub fn pattern_from_os(pattern: &OsStr) -> Result<&str, InvalidPatternError> {
|
|||||||
.to_string_lossy()
|
.to_string_lossy()
|
||||||
.find('\u{FFFD}')
|
.find('\u{FFFD}')
|
||||||
.expect("a Unicode replacement codepoint for invalid UTF-8");
|
.expect("a Unicode replacement codepoint for invalid UTF-8");
|
||||||
InvalidPatternError {
|
InvalidPatternError { original: escape_os(pattern), valid_up_to }
|
||||||
original: escape_os(pattern),
|
|
||||||
valid_up_to: valid_up_to,
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user