Line data Source code
1 : /* 2 : Mosh: the mobile shell 3 : Copyright 2012 Keith Winstein 4 : 5 : This program is free software: you can redistribute it and/or modify 6 : it under the terms of the GNU General Public License as published by 7 : the Free Software Foundation, either version 3 of the License, or 8 : (at your option) any later version. 9 : 10 : This program is distributed in the hope that it will be useful, 11 : but WITHOUT ANY WARRANTY; without even the implied warranty of 12 : MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 : GNU General Public License for more details. 14 : 15 : You should have received a copy of the GNU General Public License 16 : along with this program. If not, see <http://www.gnu.org/licenses/>. 17 : 18 : In addition, as a special exception, the copyright holders give 19 : permission to link the code of portions of this program with the 20 : OpenSSL library under certain conditions as described in each 21 : individual source file, and distribute linked combinations including 22 : the two. 23 : 24 : You must obey the GNU General Public License in all respects for all 25 : of the code used other than OpenSSL. If you modify file(s) with this 26 : exception, you may extend this exception to your version of the 27 : file(s), but you are not obligated to do so. If you do not wish to do 28 : so, delete this exception statement from your version. If you delete 29 : this exception statement from all source files in the program, then 30 : also delete it here. 31 : */ 32 : 33 : #include <stdio.h> 34 : #include <wctype.h> 35 : 36 : #include "parseraction.h" 37 : #include "terminal.h" 38 : 39 : using namespace Parser; 40 : 41 24028354 : void Print::act_on_terminal( Terminal::Emulator *emu ) const 42 : { 43 24028354 : emu->print( this ); 44 24028354 : } 45 : 46 47873448 : void Execute::act_on_terminal( Terminal::Emulator *emu ) const 47 : { 48 47873448 : emu->execute( this ); 49 47873448 : } 50 : 51 60038 : void Clear::act_on_terminal( Terminal::Emulator *emu ) const 52 : { 53 60038 : emu->dispatch.clear( this ); 54 60038 : } 55 : 56 187351 : void Param::act_on_terminal( Terminal::Emulator *emu ) const 57 : { 58 187351 : emu->dispatch.newparamchar( this ); 59 187351 : } 60 : 61 9232 : void Collect::act_on_terminal( Terminal::Emulator *emu ) const 62 : { 63 9232 : emu->dispatch.collect( this ); 64 9232 : } 65 : 66 30017 : void CSI_Dispatch::act_on_terminal( Terminal::Emulator *emu ) const 67 : { 68 30017 : emu->CSI_dispatch( this ); 69 30017 : } 70 : 71 4 : void Esc_Dispatch::act_on_terminal( Terminal::Emulator *emu ) const 72 : { 73 4 : emu->Esc_dispatch( this ); 74 4 : } 75 : 76 0 : void OSC_Put::act_on_terminal( Terminal::Emulator *emu ) const 77 : { 78 0 : emu->dispatch.OSC_put( this ); 79 0 : } 80 : 81 0 : void OSC_Start::act_on_terminal( Terminal::Emulator *emu ) const 82 : { 83 0 : emu->dispatch.OSC_start( this ); 84 0 : } 85 : 86 0 : void OSC_End::act_on_terminal( Terminal::Emulator *emu ) const 87 : { 88 0 : emu->OSC_end( this ); 89 0 : } 90 : 91 1181 : void UserByte::act_on_terminal( Terminal::Emulator *emu ) const 92 : { 93 1181 : emu->dispatch.terminal_to_host.append( emu->user.input( this, 94 1181 : emu->fb.ds.application_mode_cursor_keys ) ); 95 1181 : } 96 : 97 584 : void Resize::act_on_terminal( Terminal::Emulator *emu ) const 98 : { 99 584 : emu->resize( width, height ); 100 584 : }