make_sneath_terminal_unix function

_SneathTerminalUnixImpl make_sneath_terminal_unix({
  1. required DynamicLibrary stdlib,
  2. required int IOCTL_TIOCGWINSZ,
})

Implementation

_SneathTerminalUnixImpl make_sneath_terminal_unix({
  required final DynamicLibrary stdlib,
  required final int IOCTL_TIOCGWINSZ,
}) {
  final _tcgetattr =
      stdlib.lookupFunction<_TERMIOS_tcgetattrNative, _TERMIOS_tcgetattrDart>(
    'tcgetattr',
  );
  final _orig_term_ios_pointer = calloc<_TermIOS>();
  _tcgetattr(
    _UnistdConstants.STDIN_FILENO,
    _orig_term_ios_pointer,
  );
  return _SneathTerminalUnixImpl._(
    stdlib: stdlib,
    orig_term_ios_pointer: _orig_term_ios_pointer,
    ioctl: stdlib.lookupFunction<_IOCTL_Native, _IOCTL_Dart>(
      'ioctl',
    ),
    tcgetattr: _tcgetattr,
    tcsetattr:
        stdlib.lookupFunction<_TERMIOS_tcsetattrNative, _TERMIOS_tcsetattrDart>(
      'tcsetattr',
    ),
    IOCTL_TIOCGWINSZ: IOCTL_TIOCGWINSZ,
  );
}