IronRuby.StandardLibrary.Yaml.Emitter.WriteLiteral C# (CSharp) Method

WriteLiteral() private method

private WriteLiteral ( string text, bool indent ) : void
text string
indent bool
return void
        private void WriteLiteral(string/*!*/ text, bool indent) {
            string chomp = DetermineChomp(text);
            WriteIndicator("|" + chomp, true, false, false);
            increaseIndent(false, false);
            WriteIndent();
            bool breaks = false;
            int start = 0, ending = 0;
            while (ending <= text.Length) {
                char c = '\0';
                if (ending < text.Length) {
                    c = text[ending];
                }
                if (breaks) {
                    if (c == 0 || c != '\n') {
                        // q sequence of eolns followed by non-eoln:
                        for (int i = start; i < ending; i++) {
                            WriteLineBreak();
                        }
                        if (c != 0) {
                            WriteIndent();
                        } else if (chomp.Length == 0) {
                            WriteLineBreak();
                        }
                        start = ending;
                    }
                } else if (c == 0 || c == '\n') {
                    // non-empty line:
                    _writer.Write(text.Substring(start, ending - start));
                    if (c == 0) {
                        WriteLineBreak();
                    }
                    start = ending;
                }

                if (c != 0) {
                    breaks = c == '\n';
                }
                ending++;
            }
            _indent = _indents.Pop();
        }