summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md2
-rw-r--r--crates/cli/src/pattern.rs11
2 files changed, 6 insertions, 7 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9c8c7b3b..4ce6ae7d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,8 @@ TBD
===
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):
Note how to escape a `$` when using `--replace`.
* [BUG #1537](https://github.com/BurntSushi/ripgrep/issues/1537):
diff --git a/crates/cli/src/pattern.rs b/crates/cli/src/pattern.rs
index 8341e4da..11e4a8b4 100644
--- a/crates/cli/src/pattern.rs
+++ b/crates/cli/src/pattern.rs
@@ -38,9 +38,9 @@ impl fmt::Display for InvalidPatternError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(
f,
- "found invalid UTF-8 in pattern at byte offset {} \
- (use hex escape sequences to match arbitrary bytes \
- in a pattern, e.g., \\xFF): '{}'",
+ "found invalid UTF-8 in pattern at byte offset {}: {} \
+ (disable Unicode mode and use hex escape sequences to match \
+ arbitrary bytes in a pattern, e.g., '(?-u)\\xFF')",
self.valid_up_to, self.original,
)
}
@@ -64,10 +64,7 @@ pub fn pattern_from_os(pattern: &OsStr) -> Result<&str, InvalidPatternError> {
.to_string_lossy()
.find('\u{FFFD}')
.expect("a Unicode replacement codepoint for invalid UTF-8");
- InvalidPatternError {
- original: escape_os(pattern),
- valid_up_to: valid_up_to,
- }
+ InvalidPatternError { original: escape_os(pattern), valid_up_to }
})
}