1//go:build !cgo
2
3package clib
4
5import "strings"
6
7// WrapBase64 wraps base64-encoded data at 76 characters per line with \r\n
8// separators, as required by MIME (RFC 2045).
9// This is the pure Go fallback used when cgo is not available.
10func WrapBase64(data string) string {
11 const lineLength = 76
12 if len(data) == 0 {
13 return ""
14 }
15 var result strings.Builder
16 for i := 0; i < len(data); i += lineLength {
17 end := i + lineLength
18 if end > len(data) {
19 end = len(data)
20 }
21 result.WriteString(data[i:end])
22 if end < len(data) {
23 result.WriteString("\r\n")
24 }
25 }
26 return result.String()
27}