| Index: runtime/bin/stdio.cc
|
| diff --git a/runtime/bin/stdio.cc b/runtime/bin/stdio.cc
|
| index aa1c7c2288c52709efa432481f3bd31c5bea08cf..fec14b1c170cecd3f6063243271b761d34d8c1b6 100644
|
| --- a/runtime/bin/stdio.cc
|
| +++ b/runtime/bin/stdio.cc
|
| @@ -69,6 +69,16 @@ void FUNCTION_NAME(Stdin_SetLineMode)(Dart_NativeArguments args) {
|
| }
|
|
|
|
|
| +void FUNCTION_NAME(Stdin_AnsiSupported)(Dart_NativeArguments args) {
|
| + bool supported = false;
|
| + if (Stdin::AnsiSupported(&supported)) {
|
| + Dart_SetBooleanReturnValue(args, supported);
|
| + } else {
|
| + Dart_SetReturnValue(args, DartUtils::NewDartOSError());
|
| + }
|
| +}
|
| +
|
| +
|
| void FUNCTION_NAME(Stdout_GetTerminalSize)(Dart_NativeArguments args) {
|
| if (!Dart_IsInteger(Dart_GetNativeArgument(args, 0))) {
|
| OSError os_error(-1, "Invalid argument", OSError::kUnknown);
|
| @@ -92,6 +102,26 @@ void FUNCTION_NAME(Stdout_GetTerminalSize)(Dart_NativeArguments args) {
|
| }
|
| }
|
|
|
| +
|
| +void FUNCTION_NAME(Stdout_AnsiSupported)(Dart_NativeArguments args) {
|
| + if (!Dart_IsInteger(Dart_GetNativeArgument(args, 0))) {
|
| + OSError os_error(-1, "Invalid argument", OSError::kUnknown);
|
| + Dart_SetReturnValue(args, DartUtils::NewDartOSError(&os_error));
|
| + return;
|
| + }
|
| + intptr_t fd = DartUtils::GetIntptrValue(Dart_GetNativeArgument(args, 0));
|
| + if ((fd != 1) && (fd != 2)) {
|
| + Dart_SetReturnValue(args, Dart_NewApiError("Terminal fd must be 1 or 2"));
|
| + return;
|
| + }
|
| + bool supported = false;
|
| + if (Stdout::AnsiSupported(fd, &supported)) {
|
| + Dart_SetBooleanReturnValue(args, supported);
|
| + } else {
|
| + Dart_SetReturnValue(args, DartUtils::NewDartOSError());
|
| + }
|
| +}
|
| +
|
| } // namespace bin
|
| } // namespace dart
|
|
|
|
|