From 84715b90d000292e4e4fbe081e00a583acf0dada Mon Sep 17 00:00:00 2001 From: Jim Myhrberg Date: Mon, 21 Oct 2024 01:43:49 +0100 Subject: [PATCH] fix(perf): minor improvement when no indent is found --- undent.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/undent.go b/undent.go index 859a9d9..b6bd011 100644 --- a/undent.go +++ b/undent.go @@ -22,7 +22,7 @@ func Bytes(s string) []byte { } // find smallest indent relative to each line-feed - min := 99999999999 + min := -1 count := 0 lfs := make([]int, 0, strings.Count(s, "\n")) @@ -35,7 +35,7 @@ func Bytes(s string) []byte { if s[i] == lf { lfs = append(lfs, i) indent = 0 - } else if indent < min { + } else if indent < min || min == -1 { switch s[i] { case spc, tab: indent++ @@ -43,13 +43,17 @@ func Bytes(s string) []byte { if indent > 0 { count++ } - if indent < min { + if indent < min || min == -1 { min = indent } } } } + if min == -1 { + return []byte(s) + } + // extract each line without indentation out := make([]byte, 0, len(s)-(min*count))