| Index: tools/ddbg/lib/terminfo.dart
|
| ===================================================================
|
| --- tools/ddbg/lib/terminfo.dart (revision 0)
|
| +++ tools/ddbg/lib/terminfo.dart (revision 0)
|
| @@ -0,0 +1,57 @@
|
| +// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
|
| +// for details. All rights reserved. Use of this source code is governed by a
|
| +// BSD-style license that can be found in the LICENSE file.
|
| +
|
| +import 'dart:convert';
|
| +import 'dart:io';
|
| +
|
| +int _tputGetInteger(String capName) {
|
| + var result = Process.runSync('tput', ['$capName'], stdoutEncoding:UTF8);
|
| + if (result.exitCode != 0) {
|
| + return 0;
|
| + }
|
| + return int.parse(result.stdout);
|
| +}
|
| +
|
| +String _tputGetSequence(String capName) {
|
| + var result = Process.runSync('tput', ['$capName'], stdoutEncoding:UTF8);
|
| + if (result.exitCode != 0) {
|
| + return '';
|
| + }
|
| + return result.stdout;
|
| +}
|
| +
|
| +class TermInfo {
|
| + TermInfo() {
|
| + resize();
|
| + }
|
| +
|
| + int get lines => _lines;
|
| + int get cols => _cols;
|
| +
|
| + int _lines;
|
| + int _cols;
|
| +
|
| + void resize() {
|
| + _lines = _tputGetInteger('lines');
|
| + _cols = _tputGetInteger('cols');
|
| + }
|
| +
|
| + // Back one character.
|
| + final String cursorBack = _tputGetSequence('cub1');
|
| +
|
| + // Forward one character.
|
| + final String cursorForward = _tputGetSequence('cuf1');
|
| +
|
| + // Up one character.
|
| + final String cursorUp = _tputGetSequence('cuu1');
|
| +
|
| + // Down one character.
|
| + final String cursorDown = _tputGetSequence('cud1');
|
| +
|
| + // Clear to end of line.
|
| + final String clrEOL = _tputGetSequence('el');
|
| +
|
| + // Clear screen and home cursor.
|
| + final String clear = _tputGetSequence('clear');
|
| +}
|
|
|