private Emitter WriteString(Emitter emitter) { if (Style == ScalarStyle.Plain) { if (emitter.IsFormatKeys && emitter.IsKey) { emitter.WriteFormat(m_string); } else { emitter.Write(m_string); } } else if (Style == ScalarStyle.SingleQuoted) { emitter.WriteDelayed(); for (int i = 0; i < m_string.Length; i++) { char c = m_string[i]; emitter.WriteRaw(c); if (c == '\'') { emitter.WriteRaw(c); } else if (c == '\n') { emitter.WriteRaw("\n "); } } } else if (Style == ScalarStyle.DoubleQuoted) { emitter.WriteDelayed(); for (int i = 0; i < m_string.Length; i++) { char c = m_string[i]; switch (c) { case '\\': emitter.WriteRaw('\\').WriteRaw('\\'); break; case '\n': emitter.WriteRaw('\\').WriteRaw('n'); break; case '\r': emitter.WriteRaw('\\').WriteRaw('r'); break; case '\t': emitter.WriteRaw('\\').WriteRaw('t'); break; case '"': emitter.WriteRaw('\\').WriteRaw('"'); break; default: emitter.WriteRaw(c); break; } } } else { throw new NotSupportedException(Style.ToString()); } return(emitter); }
private Emitter WriteString(Emitter emitter) { if (Style == ScalarStyle.Plain) { if (emitter.IsFormatKeys && emitter.IsKey) { emitter.WriteFormat(m_string); } else { emitter.Write(m_string); } } else if (Style == ScalarStyle.SingleQuoted) { emitter.WriteDelayed(); for (int i = 0; i < m_string.Length; i++) { char c = m_string[i]; emitter.WriteRaw(c); if (c == '\'') { emitter.WriteRaw(c); } else if (c == '\n') { emitter.WriteRaw("\n "); } } } else if (Style == ScalarStyle.DoubleQuoted) { emitter.WriteDelayed(); int lineLimit = MaxLineLength; for (int i = 0; i < m_string.Length; i++) { char c = m_string[i]; if (i >= lineLimit) { // space at the beginning of the line is discarded if (c != ' ') { emitter.WriteRaw('\\').WriteRaw('\n').WriteRaw(' '); lineLimit += MaxLineLength; } } switch (c) { case '\\': emitter.WriteRaw('\\').WriteRaw('\\'); break; case '\n': emitter.WriteRaw('\\').WriteRaw('n'); break; case '\r': emitter.WriteRaw('\\').WriteRaw('r'); break; case '\t': emitter.WriteRaw('\\').WriteRaw('t'); break; case '"': emitter.WriteRaw('\\').WriteRaw('"'); break; default: emitter.WriteRaw(c); break; } } } else { throw new NotSupportedException(Style.ToString()); } return(emitter); }