summaryrefslogtreecommitdiff
path: root/vendor/codeberg.org/gruf/go-kv/format
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/codeberg.org/gruf/go-kv/format')
-rw-r--r--vendor/codeberg.org/gruf/go-kv/format/format.go4
-rw-r--r--vendor/codeberg.org/gruf/go-kv/format/util.go13
2 files changed, 15 insertions, 2 deletions
diff --git a/vendor/codeberg.org/gruf/go-kv/format/format.go b/vendor/codeberg.org/gruf/go-kv/format/format.go
index df5a94b7c..7edc4475f 100644
--- a/vendor/codeberg.org/gruf/go-kv/format/format.go
+++ b/vendor/codeberg.org/gruf/go-kv/format/format.go
@@ -311,7 +311,7 @@ func (f format) AppendString(s string) {
}
func (f format) AppendStringKey(s string) {
- if !strconv.CanBackquote(s) {
+ if len(s) > SingleTermLine || !strconv.CanBackquote(s) {
// Requires quoting AND escaping
f.Buffer.B = strconv.AppendQuote(f.Buffer.B, s)
} else if ContainsDoubleQuote(s) {
@@ -329,7 +329,7 @@ func (f format) AppendStringKey(s string) {
}
func (f format) AppendStringQuoted(s string) {
- if !strconv.CanBackquote(s) {
+ if len(s) > SingleTermLine || !strconv.CanBackquote(s) {
// Requires quoting AND escaping
f.Buffer.B = strconv.AppendQuote(f.Buffer.B, s)
} else if ContainsDoubleQuote(s) {
diff --git a/vendor/codeberg.org/gruf/go-kv/format/util.go b/vendor/codeberg.org/gruf/go-kv/format/util.go
index c4c42329e..674f81be5 100644
--- a/vendor/codeberg.org/gruf/go-kv/format/util.go
+++ b/vendor/codeberg.org/gruf/go-kv/format/util.go
@@ -5,6 +5,19 @@ import (
"unsafe"
)
+const (
+ // SingleTermLine: beyond a certain length of string, all of the
+ // extra checks to handle quoting/not-quoting add a significant
+ // amount of extra processing time. Quoting in this manner only really
+ // effects readability on a single line, so a max string length that
+ // encompasses the maximum number of columns on *most* terminals was
+ // selected. This was chosen using the metric that 1080p is one of the
+ // most common display resolutions, and that a relatively small font size
+ // of 7 requires 223 columns. So 256 should be >= $COLUMNS (fullscreen)
+ // in 99% of usecases (these figures all pulled out of my ass).
+ SingleTermLine = 256
+)
+
// ContainsSpaceOrTab checks if "s" contains space or tabs.
func ContainsSpaceOrTab(s string) bool {
if i := strings.IndexByte(s, ' '); i != -1 {