Chromium Code Reviews| 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; |
| + } |
|
siva
2017/03/17 23:54:24
The above chunk could be written as (avoids multip
|
| + bool supported = false; |
| + if (Stdout::AnsiSupported(fd, &supported)) { |
| + Dart_SetBooleanReturnValue(args, supported); |
| + } else { |
| + Dart_SetReturnValue(args, DartUtils::NewDartOSError()); |
| + } |
| +} |
| + |
| } // namespace bin |
| } // namespace dart |