From 1b5d8f3efebe0920ff73f1c335b2d338877ee4cb Mon Sep 17 00:00:00 2001
From: Daniel Hofstetter <daniel.hofstetter@42dh.com>
Date: Tue, 30 Jul 2024 09:17:19 +0200
Subject: [PATCH 1/2] rev: use "==" instead of "!="

---
 src/uu/rev/src/rev.rs | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/uu/rev/src/rev.rs b/src/uu/rev/src/rev.rs
index b06d377..9cf1f37 100644
--- a/src/uu/rev/src/rev.rs
+++ b/src/uu/rev/src/rev.rs
@@ -54,15 +54,15 @@ fn rev_stream(stream: impl Read, sep: u8) -> std::io::Result<()> {
     loop {
         buf.clear();
         stream.read_until(sep, &mut buf)?;
-        if buf.last().copied() != Some(sep) {
-            buf.reverse();
-            stdout.write_all(&buf)?;
-            break;
-        } else {
+        if buf.last().copied() == Some(sep) {
             buf.pop();
             buf.reverse();
             buf.push(sep);
             stdout.write_all(&buf)?;
+        } else {
+            buf.reverse();
+            stdout.write_all(&buf)?;
+            break;
         }
     }
     Ok(())

From ecd3cdba8095ce2aba002cfbd3428c7c55c720e4 Mon Sep 17 00:00:00 2001
From: Daniel Hofstetter <daniel.hofstetter@42dh.com>
Date: Tue, 30 Jul 2024 09:22:24 +0200
Subject: [PATCH 2/2] rev: use "if let" instead of match

---
 src/uu/rev/src/rev.rs | 30 ++++++++++++++----------------
 1 file changed, 14 insertions(+), 16 deletions(-)

diff --git a/src/uu/rev/src/rev.rs b/src/uu/rev/src/rev.rs
index 9cf1f37..b980d16 100644
--- a/src/uu/rev/src/rev.rs
+++ b/src/uu/rev/src/rev.rs
@@ -24,24 +24,22 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> {
     let zero = matches.get_flag(options::ZERO);
 
     let sep = if zero { b'\0' } else { b'\n' };
-    match files {
-        Some(files) => {
-            for path in files {
-                let Ok(file) = std::fs::File::open(path) else {
-                    uucore::error::set_exit_code(1);
-                    uucore::show_error!("cannot open {path}: No such file or directory");
-                    continue;
-                };
-                if let Err(err) = rev_stream(file, sep) {
-                    uucore::error::set_exit_code(1);
-                    uucore::show_error!("cannot read {path}: {err}");
-                }
+
+    if let Some(files) = files {
+        for path in files {
+            let Ok(file) = std::fs::File::open(path) else {
+                uucore::error::set_exit_code(1);
+                uucore::show_error!("cannot open {path}: No such file or directory");
+                continue;
+            };
+            if let Err(err) = rev_stream(file, sep) {
+                uucore::error::set_exit_code(1);
+                uucore::show_error!("cannot read {path}: {err}");
             }
         }
-        None => {
-            let stdin = std::io::stdin().lock();
-            let _ = rev_stream(stdin, sep);
-        }
+    } else {
+        let stdin = std::io::stdin().lock();
+        let _ = rev_stream(stdin, sep);
     }
 
     Ok(())