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

Side by Side Diff: runtime/bin/utils.h

Issue 1194883002: Improve the encoding/decoding to/from system encoding on Windows (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Addressed review comments from lrn@ Created 5 years, 6 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
« no previous file with comments | « runtime/bin/socket_win.cc ('k') | runtime/bin/utils_android.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 #ifndef BIN_UTILS_H_ 5 #ifndef BIN_UTILS_H_
6 #define BIN_UTILS_H_ 6 #define BIN_UTILS_H_
7 7
8 #include <stdlib.h> 8 #include <stdlib.h>
9 #include <string.h> 9 #include <string.h>
10 10
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
50 } 50 }
51 } 51 }
52 52
53 SubSystem sub_system_; 53 SubSystem sub_system_;
54 int code_; 54 int code_;
55 char* message_; 55 char* message_;
56 56
57 DISALLOW_COPY_AND_ASSIGN(OSError); 57 DISALLOW_COPY_AND_ASSIGN(OSError);
58 }; 58 };
59 59
60
60 class StringUtils { 61 class StringUtils {
61 public: 62 public:
62 // The following methods convert the argument if needed. The 63 // The following methods convert the argument if needed. The
63 // conversions are only needed on Windows. If the methods returns a 64 // conversions are only needed on Windows. If the methods returns a
64 // pointer that is different from the input pointer the returned 65 // pointer that is different from the input pointer, the returned
65 // pointer is allocated with malloc and should be freed using free. 66 // pointer is allocated with malloc and should be freed using free.
66 static const char* ConsoleStringToUtf8(const char* str); 67 //
67 static char* ConsoleStringToUtf8(char* str); 68 // If the len argument is passed then that number of characters are
68 static const char* Utf8ToConsoleString(const char* utf8); 69 // converted. If len is -1, conversion will stop at the first NUL
69 static char* Utf8ToConsoleString(char* utf8); 70 // character. If result_len is not NUL, it is used to set the number
70 static char* WideToUtf8(wchar_t* wide); 71 // of characters in the result.
71 static const char* WideToUtf8(const wchar_t* wide); 72 //
72 static wchar_t* Utf8ToWide(char* utf8); 73 // These conversion functions are only implemented on Windows as the
73 static const wchar_t* Utf8ToWide(const char* utf8); 74 // Dart code only hit this path on Windows.
75 static const char* ConsoleStringToUtf8(const char* str,
76 intptr_t len = -1,
77 intptr_t* result_len = NULL);
78 static char* ConsoleStringToUtf8(char* str,
79 intptr_t len = -1,
80 intptr_t* result_len = NULL);
81 static const char* Utf8ToConsoleString(const char* utf8,
82 intptr_t len = -1,
83 intptr_t* result_len = NULL);
84 static char* Utf8ToConsoleString(char* utf8,
85 intptr_t len = -1,
86 intptr_t* result_len = NULL);
74 }; 87 };
75 88
89
76 class ShellUtils { 90 class ShellUtils {
77 public: 91 public:
78 // Get the arguments passed to the program as unicode strings. 92 // Convert all the arguments to UTF8. On Windows, the arguments are
79 // If GetUnicodeArgv returns a pointer that pointer has to be 93 // encoded in the current code page and not UTF8.
80 // deallocated with a call to FreeUnicodeArgv. 94 //
81 static wchar_t** GetUnicodeArgv(int* argc); 95 // Returns true if the arguments are converted. In that case
82 static void FreeUnicodeArgv(wchar_t** argv); 96 // each of the arguments need to be deallocated using free.
97 static bool GetUtf8Argv(int argc, char** argv);
83 }; 98 };
84 99
85 class TimerUtils { 100 class TimerUtils {
86 public: 101 public:
87 static int64_t GetCurrentTimeMicros(); 102 static int64_t GetCurrentTimeMicros();
88 static int64_t GetCurrentTimeMilliseconds(); 103 static int64_t GetCurrentTimeMilliseconds();
89 static void Sleep(int64_t millis); 104 static void Sleep(int64_t millis);
90 }; 105 };
91 106
92 } // namespace bin 107 } // namespace bin
93 } // namespace dart 108 } // namespace dart
94 109
95 #endif // BIN_UTILS_H_ 110 #endif // BIN_UTILS_H_
OLDNEW
« no previous file with comments | « runtime/bin/socket_win.cc ('k') | runtime/bin/utils_android.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698