Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(66)

Side by Side Diff: runtime/bin/stdio.cc

Issue 2753233002: [dart:io] Move Platform.ansiSupported to {Stdin,Stdout}.supportsAnsiEscapes (Closed)
Patch Set: Fix typo Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #if !defined(DART_IO_DISABLED) 5 #if !defined(DART_IO_DISABLED)
6 6
7 #include "bin/stdio.h" 7 #include "bin/stdio.h"
8 8
9 #include "bin/builtin.h" 9 #include "bin/builtin.h"
10 #include "bin/dartutils.h" 10 #include "bin/dartutils.h"
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
62 void FUNCTION_NAME(Stdin_SetLineMode)(Dart_NativeArguments args) { 62 void FUNCTION_NAME(Stdin_SetLineMode)(Dart_NativeArguments args) {
63 bool enabled = DartUtils::GetBooleanValue(Dart_GetNativeArgument(args, 0)); 63 bool enabled = DartUtils::GetBooleanValue(Dart_GetNativeArgument(args, 0));
64 if (Stdin::SetLineMode(enabled)) { 64 if (Stdin::SetLineMode(enabled)) {
65 Dart_SetReturnValue(args, Dart_True()); 65 Dart_SetReturnValue(args, Dart_True());
66 } else { 66 } else {
67 Dart_SetReturnValue(args, DartUtils::NewDartOSError()); 67 Dart_SetReturnValue(args, DartUtils::NewDartOSError());
68 } 68 }
69 } 69 }
70 70
71 71
72 void FUNCTION_NAME(Stdin_AnsiSupported)(Dart_NativeArguments args) {
73 bool supported = false;
74 if (Stdin::AnsiSupported(&supported)) {
75 Dart_SetBooleanReturnValue(args, supported);
76 } else {
77 Dart_SetReturnValue(args, DartUtils::NewDartOSError());
78 }
79 }
80
81
72 void FUNCTION_NAME(Stdout_GetTerminalSize)(Dart_NativeArguments args) { 82 void FUNCTION_NAME(Stdout_GetTerminalSize)(Dart_NativeArguments args) {
73 if (!Dart_IsInteger(Dart_GetNativeArgument(args, 0))) { 83 if (!Dart_IsInteger(Dart_GetNativeArgument(args, 0))) {
74 OSError os_error(-1, "Invalid argument", OSError::kUnknown); 84 OSError os_error(-1, "Invalid argument", OSError::kUnknown);
75 Dart_SetReturnValue(args, DartUtils::NewDartOSError(&os_error)); 85 Dart_SetReturnValue(args, DartUtils::NewDartOSError(&os_error));
76 return; 86 return;
77 } 87 }
78 intptr_t fd = DartUtils::GetIntptrValue(Dart_GetNativeArgument(args, 0)); 88 intptr_t fd = DartUtils::GetIntptrValue(Dart_GetNativeArgument(args, 0));
79 if ((fd != 1) && (fd != 2)) { 89 if ((fd != 1) && (fd != 2)) {
80 Dart_SetReturnValue(args, Dart_NewApiError("Terminal fd must be 1 or 2")); 90 Dart_SetReturnValue(args, Dart_NewApiError("Terminal fd must be 1 or 2"));
81 return; 91 return;
82 } 92 }
83 93
84 int size[2]; 94 int size[2];
85 if (Stdout::GetTerminalSize(fd, size)) { 95 if (Stdout::GetTerminalSize(fd, size)) {
86 Dart_Handle list = Dart_NewList(2); 96 Dart_Handle list = Dart_NewList(2);
87 Dart_ListSetAt(list, 0, Dart_NewInteger(size[0])); 97 Dart_ListSetAt(list, 0, Dart_NewInteger(size[0]));
88 Dart_ListSetAt(list, 1, Dart_NewInteger(size[1])); 98 Dart_ListSetAt(list, 1, Dart_NewInteger(size[1]));
89 Dart_SetReturnValue(args, list); 99 Dart_SetReturnValue(args, list);
90 } else { 100 } else {
91 Dart_SetReturnValue(args, DartUtils::NewDartOSError()); 101 Dart_SetReturnValue(args, DartUtils::NewDartOSError());
92 } 102 }
93 } 103 }
94 104
105
106 void FUNCTION_NAME(Stdout_AnsiSupported)(Dart_NativeArguments args) {
107 if (!Dart_IsInteger(Dart_GetNativeArgument(args, 0))) {
108 OSError os_error(-1, "Invalid argument", OSError::kUnknown);
109 Dart_SetReturnValue(args, DartUtils::NewDartOSError(&os_error));
110 return;
111 }
112 intptr_t fd = DartUtils::GetIntptrValue(Dart_GetNativeArgument(args, 0));
113 if ((fd != 1) && (fd != 2)) {
114 Dart_SetReturnValue(args, Dart_NewApiError("Terminal fd must be 1 or 2"));
115 return;
116 }
siva 2017/03/17 23:54:24 The above chunk could be written as (avoids multip
117 bool supported = false;
118 if (Stdout::AnsiSupported(fd, &supported)) {
119 Dart_SetBooleanReturnValue(args, supported);
120 } else {
121 Dart_SetReturnValue(args, DartUtils::NewDartOSError());
122 }
123 }
124
95 } // namespace bin 125 } // namespace bin
96 } // namespace dart 126 } // namespace dart
97 127
98 #endif // !defined(DART_IO_DISABLED) 128 #endif // !defined(DART_IO_DISABLED)
OLDNEW
« no previous file with comments | « runtime/bin/stdio.h ('k') | runtime/bin/stdio_android.cc » ('j') | runtime/bin/stdio_patch.dart » ('J')

Powered by Google App Engine
This is Rietveld 408576698