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

Side by Side Diff: runtime/bin/process_patch.dart

Issue 22872012: Remove Encoding-enum from dart:io and add interface in dart:convert. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Fix typo. Created 7 years, 3 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 | Annotate | Revision Log
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 patch class _WindowsCodePageDecoder { 5 patch class _WindowsCodePageDecoder {
6 /* patch */ static String _decodeBytes(List<int> bytes) 6 /* patch */ static String _decodeBytes(List<int> bytes)
7 native "SystemEncodingToString"; 7 native "SystemEncodingToString";
8 } 8 }
9 9
10 10
(...skipping 20 matching lines...) Expand all
31 return process._start(); 31 return process._start();
32 } 32 }
33 33
34 /* patch */ static Future<ProcessResult> run( 34 /* patch */ static Future<ProcessResult> run(
35 String executable, 35 String executable,
36 List<String> arguments, 36 List<String> arguments,
37 {String workingDirectory, 37 {String workingDirectory,
38 Map<String, String> environment, 38 Map<String, String> environment,
39 bool includeParentEnvironment: true, 39 bool includeParentEnvironment: true,
40 bool runInShell: false, 40 bool runInShell: false,
41 Encoding stdoutEncoding: Encoding.SYSTEM, 41 Encoding stdoutEncoding: SYSTEM_ENCODING,
42 Encoding stderrEncoding: Encoding.SYSTEM}) { 42 Encoding stderrEncoding: SYSTEM_ENCODING}) {
43 return _runNonInteractiveProcess(executable, 43 return _runNonInteractiveProcess(executable,
44 arguments, 44 arguments,
45 workingDirectory, 45 workingDirectory,
46 environment, 46 environment,
47 includeParentEnvironment, 47 includeParentEnvironment,
48 runInShell, 48 runInShell,
49 stdoutEncoding, 49 stdoutEncoding,
50 stderrEncoding); 50 stderrEncoding);
51 } 51 }
52 52
53 /* patch */ static ProcessResult runSync( 53 /* patch */ static ProcessResult runSync(
54 String executable, 54 String executable,
55 List<String> arguments, 55 List<String> arguments,
56 {String workingDirectory, 56 {String workingDirectory,
57 Map<String, String> environment, 57 Map<String, String> environment,
58 bool includeParentEnvironment: true, 58 bool includeParentEnvironment: true,
59 bool runInShell: false, 59 bool runInShell: false,
60 Encoding stdoutEncoding: Encoding.SYSTEM, 60 Encoding stdoutEncoding: SYSTEM_ENCODING,
61 Encoding stderrEncoding: Encoding.SYSTEM}) { 61 Encoding stderrEncoding: SYSTEM_ENCODING}) {
62 return _runNonInteractiveProcessSync(executable, 62 return _runNonInteractiveProcessSync(executable,
63 arguments, 63 arguments,
64 workingDirectory, 64 workingDirectory,
65 environment, 65 environment,
66 includeParentEnvironment, 66 includeParentEnvironment,
67 runInShell, 67 runInShell,
68 stdoutEncoding, 68 stdoutEncoding,
69 stderrEncoding); 69 stderrEncoding);
70 } 70 }
71 } 71 }
(...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after
317 } 317 }
318 318
319 var result = _wait( 319 var result = _wait(
320 _stdin._sink._nativeSocket, 320 _stdin._sink._nativeSocket,
321 _stdout._stream._nativeSocket, 321 _stdout._stream._nativeSocket,
322 _stderr._stream._nativeSocket, 322 _stderr._stream._nativeSocket,
323 _exitHandler._nativeSocket); 323 _exitHandler._nativeSocket);
324 324
325 getOutput(output, encoding) { 325 getOutput(output, encoding) {
326 if (stderrEncoding == null) return output; 326 if (stderrEncoding == null) return output;
327 return _decodeString(output, encoding); 327 return encoding.decode(output);
328 } 328 }
329 329
330 return new _ProcessResult( 330 return new _ProcessResult(
331 result[0], 331 result[0],
332 result[1], 332 result[1],
333 getOutput(result[2], stdoutEncoding), 333 getOutput(result[2], stdoutEncoding),
334 getOutput(result[3], stderrEncoding)); 334 getOutput(result[3], stderrEncoding));
335 } 335 }
336 336
337 bool _startNative(String path, 337 bool _startNative(String path,
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
417 p.stdin.close(); 417 p.stdin.close();
418 418
419 // Setup stdout and stderr handling. 419 // Setup stdout and stderr handling.
420 Future foldStream(Stream<List<int>> stream, Encoding encoding) { 420 Future foldStream(Stream<List<int>> stream, Encoding encoding) {
421 if (encoding == null) { 421 if (encoding == null) {
422 return stream 422 return stream
423 .fold(new BytesBuilder(), (builder, data) => builder..add(data)) 423 .fold(new BytesBuilder(), (builder, data) => builder..add(data))
424 .then((builder) => builder.takeBytes()); 424 .then((builder) => builder.takeBytes());
425 } else { 425 } else {
426 return stream 426 return stream
427 .transform(new StringDecoder(encoding)) 427 .transform(encoding.decoder)
428 .fold( 428 .fold(
429 new StringBuffer(), 429 new StringBuffer(),
430 (buf, data) { 430 (buf, data) {
431 buf.write(data); 431 buf.write(data);
432 return buf; 432 return buf;
433 }) 433 })
434 .then((sb) => sb.toString()); 434 .then((sb) => sb.toString());
435 } 435 }
436 } 436 }
437 437
(...skipping 29 matching lines...) Expand all
467 const _ProcessResult(int this.pid, 467 const _ProcessResult(int this.pid,
468 int this.exitCode, 468 int this.exitCode,
469 this.stdout, 469 this.stdout,
470 this.stderr); 470 this.stderr);
471 471
472 final int pid; 472 final int pid;
473 final int exitCode; 473 final int exitCode;
474 final stdout; 474 final stdout;
475 final stderr; 475 final stderr;
476 } 476 }
OLDNEW
« no previous file with comments | « pkg/scheduled_test/test/scheduled_process_test.dart ('k') | sdk/lib/_internal/lib/io_patch.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698