From c57d719a0a8aa3d0a56d2d96cbb2be36cbd539b2 Mon Sep 17 00:00:00 2001 From: Yash Karandikar Date: Tue, 19 Jul 2022 19:09:21 -0500 Subject: [PATCH] Add support for the "g" flag --- src/commands/sed.rs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/commands/sed.rs b/src/commands/sed.rs index ab124f8..386d77b 100644 --- a/src/commands/sed.rs +++ b/src/commands/sed.rs @@ -26,8 +26,16 @@ impl Trigger for Sed { }; if let (Some(find), Some(replace)) = (captures.name("r"), captures.name("w")) { // TODO: karx plz add flags - //let flags = matches.name("f").map(|m| m.as_str()); - let result = message.replace(find.as_str(), replace.as_str()); + let (global, ignore_case) = captures + .name("f") + .map(|m| m.as_str()) + .map(|s| (s.contains('g'), s.contains('i'))) + .unwrap_or_default(); + let result = if global { + message.replace(find.as_str(), replace.as_str()) + } else { + message.replacen(find.as_str(), replace.as_str(), 1) + }; if foreign_author { Ok(format!( "(edited by {}) <{}> {}",