sbc.dart 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import 'package:xterm/terminal/terminal.dart';
  2. typedef SbcHandler = void Function(int, Terminal);
  3. final sbcHandlers = <int, SbcHandler>{
  4. 0x05: _voidHandler,
  5. 0x07: _bellHandler,
  6. 0x08: _backspaceReturnHandler,
  7. 0x09: _tabHandler,
  8. 0x0a: _newLineHandler,
  9. 0x0b: _newLineHandler,
  10. 0x0c: _newLineHandler,
  11. 0x0d: _carriageReturnHandler,
  12. 0x0e: _shiftOutHandler,
  13. 0x0f: _shiftInHandler,
  14. };
  15. void _bellHandler(int code, Terminal terminal) {
  16. if (terminal.onBell != null) {
  17. terminal.onBell();
  18. }
  19. }
  20. void _voidHandler(int code, Terminal terminal) {
  21. // unsupported.
  22. }
  23. void _newLineHandler(int code, Terminal terminal) {
  24. terminal.buffer.newLine();
  25. }
  26. void _carriageReturnHandler(int code, Terminal terminal) {
  27. terminal.buffer.carriageReturn();
  28. }
  29. void _backspaceReturnHandler(int code, Terminal terminal) {
  30. terminal.buffer.backspace();
  31. }
  32. void _shiftOutHandler(int code, Terminal terminal) {
  33. terminal.buffer.charset.use(1);
  34. }
  35. void _shiftInHandler(int code, Terminal terminal) {
  36. terminal.buffer.charset.use(0);
  37. }
  38. void _tabHandler(int code, Terminal terminal) {
  39. terminal.tab();
  40. }