mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-11-03 18:02:26 -06:00 
			
		
		
		
	* update dependencies, bump Go version to 1.19 * bump test image Go version * update golangci-lint * update gotosocial-drone-build * sign * linting, go fmt * update swagger docs * update swagger docs * whitespace * update contributing.md * fuckin whoopsie doopsie * linterino, linteroni * fix followrequest test not starting processor * fix other api/client tests not starting processor * fix remaining tests where processor not started * bump go-runners version * don't check last-webfingered-at, processor may have updated this * update swagger command * update bun to latest version * fix embed to work the same as before with new bun Signed-off-by: kim <grufwub@gmail.com> Co-authored-by: tsmethurst <tobi.smethurst@protonmail.com>
		
			
				
	
	
		
			71 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package kv
 | 
						|
 | 
						|
import (
 | 
						|
	"strconv"
 | 
						|
 | 
						|
	"codeberg.org/gruf/go-byteutil"
 | 
						|
	"codeberg.org/gruf/go-kv/format"
 | 
						|
)
 | 
						|
 | 
						|
// AppendQuoteKey will append and escape/quote a formatted key string.
 | 
						|
func AppendQuoteKey(buf *byteutil.Buffer, str string) {
 | 
						|
	switch {
 | 
						|
	case len(str) > format.SingleTermLine || !strconv.CanBackquote(str):
 | 
						|
		// Append quoted and escaped string
 | 
						|
		buf.B = strconv.AppendQuote(buf.B, str)
 | 
						|
	case format.ContainsDoubleQuote(str):
 | 
						|
		// Double quote and escape string
 | 
						|
		buf.B = append(buf.B, '"')
 | 
						|
		buf.B = format.AppendEscape(buf.B, str)
 | 
						|
		buf.B = append(buf.B, '"')
 | 
						|
	case len(str) < 1 || format.ContainsSpaceOrTab(str):
 | 
						|
		// Double quote this string as-is
 | 
						|
		buf.WriteString(`"` + str + `"`)
 | 
						|
	default:
 | 
						|
		// Append string as-is
 | 
						|
		buf.WriteString(str)
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
// AppendQuoteValue will append and escape/quote a formatted value string.
 | 
						|
func AppendQuoteValue(buf *byteutil.Buffer, str string) {
 | 
						|
	switch {
 | 
						|
	case len(str) > format.SingleTermLine || !strconv.CanBackquote(str):
 | 
						|
		// Append quoted and escaped string
 | 
						|
		buf.B = strconv.AppendQuote(buf.B, str)
 | 
						|
		return
 | 
						|
	case !doubleQuoted(str):
 | 
						|
		if format.ContainsDoubleQuote(str) {
 | 
						|
			// Double quote and escape string
 | 
						|
			buf.B = append(buf.B, '"')
 | 
						|
			buf.B = format.AppendEscape(buf.B, str)
 | 
						|
			buf.B = append(buf.B, '"')
 | 
						|
			return
 | 
						|
		} else if format.ContainsSpaceOrTab(str) {
 | 
						|
			// Double quote this string as-is
 | 
						|
			buf.WriteString(`"` + str + `"`)
 | 
						|
			return
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	// Append string as-is
 | 
						|
	buf.WriteString(str)
 | 
						|
}
 | 
						|
 | 
						|
// doubleQuoted will return whether 'str' is double quoted.
 | 
						|
func doubleQuoted(str string) bool {
 | 
						|
	if len(str) < 2 ||
 | 
						|
		str[0] != '"' || str[len(str)-1] != '"' {
 | 
						|
		return false
 | 
						|
	}
 | 
						|
	var delim bool
 | 
						|
	for i := len(str) - 2; i >= 0; i-- {
 | 
						|
		switch str[i] {
 | 
						|
		case '\\':
 | 
						|
			delim = !delim
 | 
						|
		default:
 | 
						|
			return !delim
 | 
						|
		}
 | 
						|
	}
 | 
						|
	return !delim
 | 
						|
}
 |