| OLD | NEW |
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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 class _Platform { | 5 class _Platform { |
| 6 static int _numberOfProcessors() native "Platform_NumberOfProcessors"; | 6 static int _numberOfProcessors() native "Platform_NumberOfProcessors"; |
| 7 static String _pathSeparator() native "Platform_PathSeparator"; | 7 static String _pathSeparator() native "Platform_PathSeparator"; |
| 8 static String _operatingSystem() native "Platform_OperatingSystem"; | 8 static String _operatingSystem() native "Platform_OperatingSystem"; |
| 9 static _localHostname() native "Platform_LocalHostname"; | 9 static _localHostname() native "Platform_LocalHostname"; |
| 10 static _environment() native "Platform_Environment"; | 10 static _environment() native "Platform_Environment"; |
| 11 | 11 |
| 12 static int get numberOfProcessors() { | 12 static int get numberOfProcessors { |
| 13 return _numberOfProcessors(); | 13 return _numberOfProcessors(); |
| 14 } | 14 } |
| 15 | 15 |
| 16 static String get pathSeparator() { | 16 static String get pathSeparator { |
| 17 return _pathSeparator(); | 17 return _pathSeparator(); |
| 18 } | 18 } |
| 19 | 19 |
| 20 static String get operatingSystem() { | 20 static String get operatingSystem { |
| 21 return _operatingSystem(); | 21 return _operatingSystem(); |
| 22 } | 22 } |
| 23 | 23 |
| 24 static String get localHostname() { | 24 static String get localHostname { |
| 25 var result = _localHostname(); | 25 var result = _localHostname(); |
| 26 if (result is OSError) { | 26 if (result is OSError) { |
| 27 throw result; | 27 throw result; |
| 28 } else { | 28 } else { |
| 29 return result; | 29 return result; |
| 30 } | 30 } |
| 31 } | 31 } |
| 32 | 32 |
| 33 static Map<String, String> get environment() { | 33 static Map<String, String> get environment { |
| 34 var env = _environment(); | 34 var env = _environment(); |
| 35 if (env is OSError) { | 35 if (env is OSError) { |
| 36 throw env; | 36 throw env; |
| 37 } else { | 37 } else { |
| 38 var result = new Map(); | 38 var result = new Map(); |
| 39 for (var str in env) { | 39 for (var str in env) { |
| 40 // When running on Windows through cmd.exe there are strange | 40 // When running on Windows through cmd.exe there are strange |
| 41 // environment variables that are used to record the current | 41 // environment variables that are used to record the current |
| 42 // working directory for each drive and the exit code for the | 42 // working directory for each drive and the exit code for the |
| 43 // last command. As an example: '=A:=A:\subdir' records the | 43 // last command. As an example: '=A:=A:\subdir' records the |
| 44 // current working directory on the 'A' drive. In order to | 44 // current working directory on the 'A' drive. In order to |
| 45 // handle these correctly we search for a second occurrence of | 45 // handle these correctly we search for a second occurrence of |
| 46 // of '=' in the string if the first occurrence is at index 0. | 46 // of '=' in the string if the first occurrence is at index 0. |
| 47 var equalsIndex = str.indexOf('='); | 47 var equalsIndex = str.indexOf('='); |
| 48 if (equalsIndex == 0) { | 48 if (equalsIndex == 0) { |
| 49 equalsIndex = str.indexOf('=', 1); | 49 equalsIndex = str.indexOf('=', 1); |
| 50 } | 50 } |
| 51 assert(equalsIndex != -1); | 51 assert(equalsIndex != -1); |
| 52 result[str.substring(0, equalsIndex)] = str.substring(equalsIndex + 1); | 52 result[str.substring(0, equalsIndex)] = str.substring(equalsIndex + 1); |
| 53 } | 53 } |
| 54 return result; | 54 return result; |
| 55 } | 55 } |
| 56 } | 56 } |
| 57 } | 57 } |
| OLD | NEW |