Beispiel #1
0
        private void Parser_SequenceReceived(object sender, SequenceReceivedEventArgs e)
        {
            bool handled = true;

            switch (e.Type)
            {
            case SequenceType.Text:
                Terminal.SetCharacters(e.Sequence, font, true, CurrentScreen == Screen);
                System.Diagnostics.Debug.WriteLine("got: " + e.Sequence);
                break;

            case SequenceType.Csi:
                handled = handleCsi(e.Sequence);
                break;

            case SequenceType.Osc:
                handled = handleOsc(e.Sequence);
                break;

            case SequenceType.SingleEscape:
                handled = handleSingleEscape(e.Sequence[0]);
                break;

            case SequenceType.ControlCode:
                if (e.Sequence[0] == '\n')
                {
                    lineFeed(false);
                }
                else if (e.Sequence[0] == '\b')
                {
                    if (CursorPos.Col == 0)
                    {
                        CursorPos = new Point(Size.Col - 1, CursorPos.Row - 1);
                    }
                    else
                    {
                        CursorPos = new Point(CursorPos.Col - 1, CursorPos.Row);
                    }
                }
                else if (e.Sequence[0] == '\t')
                {
                    tab(false);
                }
                else if (e.Sequence[0] == '\a')
                {
                    // Disabled because annoyance
                    //System.Media.SystemSounds.Beep.Play();
                }
                else
                {
                    handled = false;
                }
                break;
            }

/*#if !DEBUG
 *                      if (!handled)
 *                              System.Diagnostics.Debugger.Break();
 #else
 *                      if (!handled)
 *                              System.Diagnostics.Debugger.Break();
 #endif*/
        }
Beispiel #2
0
        private void Parser_SequenceReceived(object sender, SequenceReceivedEventArgs e)
        {
            bool handled = true;
            switch (e.Type)
            {
                case SequenceType.Text:
                    Terminal.SetCharacters(e.Sequence, font, true, CurrentScreen == Screen);
                    System.Diagnostics.Debug.WriteLine("got: " + e.Sequence);
                    break;

                case SequenceType.Csi:
                    handled = handleCsi(e.Sequence);
                    break;

                case SequenceType.Osc:
                    handled = handleOsc(e.Sequence);
                    break;

                case SequenceType.SingleEscape:
                    handled = handleSingleEscape(e.Sequence[0]);
                    break;

                case SequenceType.ControlCode:
                    if (e.Sequence[0] == '\n')
                    {
                        lineFeed(false);
                    }
                    else if (e.Sequence[0] == '\b')
                    {
                        if (CursorPos.Col == 0)
                            CursorPos = new Point(Size.Col - 1, CursorPos.Row - 1);
                        else
                            CursorPos = new Point(CursorPos.Col - 1, CursorPos.Row);
                    }
                    else if (e.Sequence[0] == '\t')
                    {
                        tab(false);
                    }
                    else if (e.Sequence[0] == '\a')
                    {
                        // Disabled because annoyance
                        //System.Media.SystemSounds.Beep.Play();
                    }
                    else
                        handled = false;
                    break;
            }

            /*#if !DEBUG
            if (!handled)
                System.Diagnostics.Debugger.Break();
            #else
            if (!handled)
                System.Diagnostics.Debugger.Break();
            #endif*/
        }