diff options
| author | 2023-08-13 14:27:29 +0100 | |
|---|---|---|
| committer | 2023-08-13 14:27:29 +0100 | |
| commit | 8ea7f551a094c3cecbdd58e9d867ef19c0c547d7 (patch) | |
| tree | eb501c8914c25dba21dbbffa8dc4302fd66a30ec /vendor/codeberg.org/gruf/go-kv/format | |
| parent | [bugfix] CSP policy fixes for S3/object storage (#2104) (diff) | |
| download | gotosocial-8ea7f551a094c3cecbdd58e9d867ef19c0c547d7.tar.xz | |
[bugfix] bump go-kv version with logfmt quote fix (#2108)
Diffstat (limited to 'vendor/codeberg.org/gruf/go-kv/format')
| -rw-r--r-- | vendor/codeberg.org/gruf/go-kv/format/README.md | 1 | ||||
| -rw-r--r-- | vendor/codeberg.org/gruf/go-kv/format/format.go | 2 | ||||
| -rw-r--r-- | vendor/codeberg.org/gruf/go-kv/format/util.go | 33 | 
3 files changed, 16 insertions, 20 deletions
| diff --git a/vendor/codeberg.org/gruf/go-kv/format/README.md b/vendor/codeberg.org/gruf/go-kv/format/README.md index fe7b2338d..f27e229ef 100644 --- a/vendor/codeberg.org/gruf/go-kv/format/README.md +++ b/vendor/codeberg.org/gruf/go-kv/format/README.md @@ -2,4 +2,3 @@ String formatting package using Rust-style formatting directives, geared specifc  Generally more visually friendly than `"fmt"` and performance is much improved. -
\ No newline at end of file diff --git a/vendor/codeberg.org/gruf/go-kv/format/format.go b/vendor/codeberg.org/gruf/go-kv/format/format.go index ab20e01f4..5027c7c06 100644 --- a/vendor/codeberg.org/gruf/go-kv/format/format.go +++ b/vendor/codeberg.org/gruf/go-kv/format/format.go @@ -316,7 +316,9 @@ func (f format) AppendStringSafe(s string) {  		f.Buffer.B = strconv.AppendQuote(f.Buffer.B, s)  	} else if ContainsDoubleQuote(s) {  		// Contains double quotes, needs escaping +		f.Buffer.B = append(f.Buffer.B, '"')  		f.Buffer.B = AppendEscape(f.Buffer.B, s) +		f.Buffer.B = append(f.Buffer.B, '"')  	} else if len(s) == 0 || ContainsSpaceOrTab(s) {  		// Contains space / empty, needs quotes  		f.Buffer.B = append(f.Buffer.B, '"') diff --git a/vendor/codeberg.org/gruf/go-kv/format/util.go b/vendor/codeberg.org/gruf/go-kv/format/util.go index b5c672ecb..f36727679 100644 --- a/vendor/codeberg.org/gruf/go-kv/format/util.go +++ b/vendor/codeberg.org/gruf/go-kv/format/util.go @@ -29,7 +29,7 @@ func IsSafeASCII(str string) bool {  	return true  } -// ContainsSpaceOrTab checks if "s" contains space or tabs. +// ContainsSpaceOrTab checks if "s" contains space or tabs. EXPECTS ASCII.  func ContainsSpaceOrTab(s string) bool {  	if i := strings.IndexByte(s, ' '); i >= 0 {  		return true // note using indexbyte as it is ASM. @@ -39,31 +39,26 @@ func ContainsSpaceOrTab(s string) bool {  	return false  } -// ContainsDoubleQuote checks if "s" contains a double quote. +// ContainsDoubleQuote checks if "s" contains a double quote. EXPECTS ASCII.  func ContainsDoubleQuote(s string) bool {  	return (strings.IndexByte(s, '"') >= 0)  } -// AppendEscape will append 's' to 'dst' and escape any double quotes. +// AppendEscape will append 's' to 'dst' and escape any double quotes. EXPECTS ASCII.  func AppendEscape(dst []byte, str string) []byte { -	var delim bool  	for i := range str { -		if str[i] == '\\' && !delim { -			// Set delim flag -			delim = true -			continue -		} else if str[i] == '"' && !delim { -			// Append escaped double quote -			dst = append(dst, `\"`...) -			continue -		} else if delim { -			// Append skipped slash -			dst = append(dst, `\`...) -			delim = false -		} +		switch str[i] { +		case '\\': +			// Append delimited '\' +			dst = append(dst, '\\', '\\') -		// Append char as-is -		dst = append(dst, str[i]) +		case '"': +			// Append delimited '"' +			dst = append(dst, '\\', '"') +		default: +			// Append char as-is +			dst = append(dst, str[i]) +		}  	}  	return dst  } | 
