MCPcopy Create free account
hub / github.com/XmirrorSecurity/OpenSCA-cli / escapeText

Function escapeText

opensca/sca/java/xml/xml.go:1909–1952  ·  view source on GitHub ↗

escapeText writes to w the properly escaped XML equivalent of the plain text data s. If escapeNewline is true, newline characters will be escaped.

(w io.Writer, s []byte, escapeNewline bool)

Source from the content-addressed store, hash-verified

1907// of the plain text data s. If escapeNewline is true, newline
1908// characters will be escaped.
1909func escapeText(w io.Writer, s []byte, escapeNewline bool) error {
1910 var esc []byte
1911 last := 0
1912 for i := 0; i < len(s); {
1913 r, width := utf8.DecodeRune(s[i:])
1914 i += width
1915 switch r {
1916 case '"':
1917 esc = escQuot
1918 case '\'':
1919 esc = escApos
1920 case '&':
1921 esc = escAmp
1922 case '<':
1923 esc = escLT
1924 case '>':
1925 esc = escGT
1926 case '\t':
1927 esc = escTab
1928 case '\n':
1929 if !escapeNewline {
1930 continue
1931 }
1932 esc = escNL
1933 case '\r':
1934 esc = escCR
1935 default:
1936 if !isInCharacterRange(r) || (r == 0xFFFD && width == 1) {
1937 esc = escFFFD
1938 break
1939 }
1940 continue
1941 }
1942 if _, err := w.Write(s[last : i-width]); err != nil {
1943 return err
1944 }
1945 if _, err := w.Write(esc); err != nil {
1946 return err
1947 }
1948 last = i
1949 }
1950 _, err := w.Write(s[last:])
1951 return err
1952}
1953
1954// EscapeString writes to p the properly escaped XML equivalent
1955// of the plain text data s.

Callers 2

EscapeTextFunction · 0.85
EncodeTokenMethod · 0.85

Calls 2

isInCharacterRangeFunction · 0.85
WriteMethod · 0.80

Tested by

no test coverage detected