diff --git a/cmd/cli/main.go b/cmd/cli/main.go index 4f2baea..d70c82a 100644 --- a/cmd/cli/main.go +++ b/cmd/cli/main.go @@ -171,21 +171,26 @@ func FPrintBalances(w io.Writer, linePrefix string, balances, cumulatives ledger } for i, key := range keys { printableKey := key - if !fullKey && i > 0 { - j := 0 - n := len(keys[i]) - if n2 := len(keys[i-1]); n2 < n { - n = n2 - } - for j = 0; j < n; j++ { - if keys[i-1][j] != keys[i][j] { - break + if fullKey { + } else if i == 0 { + } else { + commonPrefixLen := func() int { + j := 0 + n := len(keys[i]) + if n2 := len(keys[i-1]); n2 < n { + n = n2 } - } - for keys[i][j] != ':' && j > 0 { - j -= 1 - } - printableKey = strings.Repeat(" ", j) + keys[i][j:] + for j = 0; j < n; j++ { + if keys[i-1][j] != keys[i][j] { + break + } + } + for keys[i][j] != ':' && j > 0 { + j -= 1 + } + return j + }() + printableKey = strings.Repeat(" ", commonPrefixLen) + keys[i][commonPrefixLen:] } currencies := []ledger.Currency{}