MCPcopy
hub / github.com/go-yaml/yaml / yaml_emitter_write_plain_scalar

Function yaml_emitter_write_plain_scalar

emitterc.go:1609–1666  ·  view source on GitHub ↗
(emitter *yaml_emitter_t, value []byte, allow_breaks bool)

Source from the content-addressed store, hash-verified

1607}
1608
1609func yaml_emitter_write_plain_scalar(emitter *yaml_emitter_t, value []byte, allow_breaks bool) bool {
1610 if len(value) > 0 && !emitter.whitespace {
1611 if !put(emitter, ' ') {
1612 return false
1613 }
1614 }
1615
1616 spaces := false
1617 breaks := false
1618 for i := 0; i < len(value); {
1619 if is_space(value, i) {
1620 if allow_breaks && !spaces && emitter.column > emitter.best_width && !is_space(value, i+1) {
1621 if !yaml_emitter_write_indent(emitter) {
1622 return false
1623 }
1624 i += width(value[i])
1625 } else {
1626 if !write(emitter, value, &i) {
1627 return false
1628 }
1629 }
1630 spaces = true
1631 } else if is_break(value, i) {
1632 if !breaks && value[i] == '\n' {
1633 if !put_break(emitter) {
1634 return false
1635 }
1636 }
1637 if !write_break(emitter, value, &i) {
1638 return false
1639 }
1640 //emitter.indention = true
1641 breaks = true
1642 } else {
1643 if breaks {
1644 if !yaml_emitter_write_indent(emitter) {
1645 return false
1646 }
1647 }
1648 if !write(emitter, value, &i) {
1649 return false
1650 }
1651 emitter.indention = false
1652 spaces = false
1653 breaks = false
1654 }
1655 }
1656
1657 if len(value) > 0 {
1658 emitter.whitespace = false
1659 }
1660 emitter.indention = false
1661 if emitter.root_context {
1662 emitter.open_ended = true
1663 }
1664
1665 return true
1666}

Callers 1

Calls 8

putFunction · 0.85
is_spaceFunction · 0.85
widthFunction · 0.85
writeFunction · 0.85
is_breakFunction · 0.85
put_breakFunction · 0.85
write_breakFunction · 0.85

Tested by

no test coverage detected