コード例 #1
0
        private static TerminalSequence ConsumeEscapeSequence(XTermInputBuffer stream)
        {
            stream.PushState();
            var next = stream.Read();

            switch (next)
            {
            case '[':
                return(ConsumeCSI(stream));

            case ']':
                return(ConsumeOSC(stream));

            case 'P':
                return(ConsumeDeviceControlStringSequence(stream));

            case '#':
                return(ConsumeCharacterSize(stream));

            case ' ':
                return(ConsumeCompliance(stream));

            case '%':
                return(ConsumeUnicode(stream));

            case '(':
            case ')':
            case '*':
            case '+':
            case '-':
            case '.':
            case '/':
                return(ConsumeCharacterSet(next, stream));

            case 'Y':
                var vt52mc = new Vt52MoveCursorSequence
                {
                    Row    = stream.ReadRaw() - ' ',
                    Column = stream.ReadRaw() - ' '
                };

                stream.Commit();

                System.Diagnostics.Debug.WriteLine(vt52mc.ToString());
                return(vt52mc);

            default:
                var esc = new EscapeSequence
                {
                    Command = next.ToString()
                };

                stream.Commit();

                //System.Diagnostics.Debug.WriteLine(esc.ToString());
                return(esc);
            }
        }
コード例 #2
0
        private static TerminalSequence ConsumeSS3Sequence(XTermInputBuffer stream)
        {
            var next = stream.ReadRaw();

            var ss3 = new SS3Sequence
            {
                Command = next.ToString()
            };

            stream.Commit();

            //System.Diagnostics.Debug.WriteLine(ss3.ToString());
            return(ss3);
        }