From 655c1aeb73256c2f74abd1d251b04909d8251f37 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bla=C5=BE=20Hrastnik?= <blaz@mxxn.io>
Date: Thu, 24 Jun 2021 00:50:52 +0900
Subject: [PATCH] fix: panic on O at the start of the file (fixes #354)

---
 helix-term/src/commands.rs | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/helix-term/src/commands.rs b/helix-term/src/commands.rs
index cf583953..941dc9a3 100644
--- a/helix-term/src/commands.rs
+++ b/helix-term/src/commands.rs
@@ -1826,10 +1826,11 @@ fn open(cx: &mut Context, open: Open) {
         };
 
         // insert newlines after this index for both Above and Below variants
-        let linend_index = doc.text().line_to_char(line)
-            - get_line_ending(&doc.text().line(line))
+        let linend_index = doc.text().line_to_char(line).saturating_sub(
+            get_line_ending(&doc.text().line(line))
                 .map(|le| le.len_chars())
-                .unwrap_or(0);
+                .unwrap_or(0),
+        );
 
         // TODO: share logic with insert_newline for indentation
         let indent_level = indent::suggested_indent_for_pos(