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

Side by Side Diff: base/utf_string_conversions.cc

Issue 380007: Clean up recent string conversion function changes, part 1: Remove unnecessar... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 11 years, 1 month 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
« no previous file with comments | « base/utf_string_conversions.h ('k') | base/utf_string_conversions_unittest.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) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/utf_string_conversions.h" 5 #include "base/utf_string_conversions.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/basictypes.h" 9 #include "base/basictypes.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after
214 // Otherwise assume that the UTF-8 sequences will have 2 bytes for each 214 // Otherwise assume that the UTF-8 sequences will have 2 bytes for each
215 // character. 215 // character.
216 output->reserve(src_len / 2); 216 output->reserve(src_len / 2);
217 } 217 }
218 } 218 }
219 219
220 } // namespace 220 } // namespace
221 221
222 // UTF-8 <-> Wide -------------------------------------------------------------- 222 // UTF-8 <-> Wide --------------------------------------------------------------
223 223
224 bool WideToUTF8AndAdjustOffset(const wchar_t* src, 224 bool WideToUTF8(const wchar_t* src, size_t src_len, std::string* output) {
225 size_t src_len,
226 std::string* output,
227 size_t* offset_for_adjustment) {
228 PrepareForUTF8Output(src, src_len, output); 225 PrepareForUTF8Output(src, src_len, output);
229 return ConvertUnicode<wchar_t, std::string>(src, src_len, output, 226 return ConvertUnicode<wchar_t, std::string>(src, src_len, output, NULL);
230 offset_for_adjustment);
231 } 227 }
232 228
233 std::string WideToUTF8AndAdjustOffset(const std::wstring& wide, 229 std::string WideToUTF8(const std::wstring& wide) {
234 size_t* offset_for_adjustment) {
235 std::string ret; 230 std::string ret;
236 // Ignore the success flag of this call, it will do the best it can for 231 // Ignore the success flag of this call, it will do the best it can for
237 // invalid input, which is what we want here. 232 // invalid input, which is what we want here.
238 WideToUTF8AndAdjustOffset(wide.data(), wide.length(), &ret, 233 WideToUTF8(wide.data(), wide.length(), &ret);
239 offset_for_adjustment);
240 return ret; 234 return ret;
241 } 235 }
242 236
243 bool UTF8ToWideAndAdjustOffset(const char* src, 237 bool UTF8ToWideAndAdjustOffset(const char* src,
244 size_t src_len, 238 size_t src_len,
245 std::wstring* output, 239 std::wstring* output,
246 size_t* offset_for_adjustment) { 240 size_t* offset_for_adjustment) {
247 PrepareForUTF16Or32Output(src, src_len, output); 241 PrepareForUTF16Or32Output(src, src_len, output);
248 return ConvertUnicode<char, std::wstring>(src, src_len, output, 242 return ConvertUnicode<char, std::wstring>(src, src_len, output,
249 offset_for_adjustment); 243 offset_for_adjustment);
250 } 244 }
251 245
252 std::wstring UTF8ToWideAndAdjustOffset(const base::StringPiece& utf8, 246 std::wstring UTF8ToWideAndAdjustOffset(const base::StringPiece& utf8,
253 size_t* offset_for_adjustment) { 247 size_t* offset_for_adjustment) {
254 std::wstring ret; 248 std::wstring ret;
255 UTF8ToWideAndAdjustOffset(utf8.data(), utf8.length(), &ret, 249 UTF8ToWideAndAdjustOffset(utf8.data(), utf8.length(), &ret,
256 offset_for_adjustment); 250 offset_for_adjustment);
257 return ret; 251 return ret;
258 } 252 }
259 253
260 // UTF-16 <-> Wide ------------------------------------------------------------- 254 // UTF-16 <-> Wide -------------------------------------------------------------
261 255
262 #if defined(WCHAR_T_IS_UTF16) 256 #if defined(WCHAR_T_IS_UTF16)
263 257
264 // When wide == UTF-16, then conversions are a NOP. 258 // When wide == UTF-16, then conversions are a NOP.
265 bool WideToUTF16AndAdjustOffset(const wchar_t* src, 259 bool WideToUTF16(const wchar_t* src, size_t src_len, string16* output) {
266 size_t src_len,
267 string16* output,
268 size_t* offset_for_adjustment) {
269 output->assign(src, src_len); 260 output->assign(src, src_len);
270 if (offset_for_adjustment && (*offset_for_adjustment >= src_len))
271 *offset_for_adjustment = string16::npos;
272 return true; 261 return true;
273 } 262 }
274 263
275 string16 WideToUTF16AndAdjustOffset(const std::wstring& wide, 264 string16 WideToUTF16(const std::wstring& wide) {
276 size_t* offset_for_adjustment) {
277 if (offset_for_adjustment && (*offset_for_adjustment >= wide.length()))
278 *offset_for_adjustment = string16::npos;
279 return wide; 265 return wide;
280 } 266 }
281 267
282 bool UTF16ToWideAndAdjustOffset(const char16* src, 268 bool UTF16ToWideAndAdjustOffset(const char16* src,
283 size_t src_len, 269 size_t src_len,
284 std::wstring* output, 270 std::wstring* output,
285 size_t* offset_for_adjustment) { 271 size_t* offset_for_adjustment) {
286 output->assign(src, src_len); 272 output->assign(src, src_len);
287 if (offset_for_adjustment && (*offset_for_adjustment >= src_len)) 273 if (offset_for_adjustment && (*offset_for_adjustment >= src_len))
288 *offset_for_adjustment = std::wstring::npos; 274 *offset_for_adjustment = std::wstring::npos;
289 return true; 275 return true;
290 } 276 }
291 277
292 std::wstring UTF16ToWideAndAdjustOffset(const string16& utf16, 278 std::wstring UTF16ToWideAndAdjustOffset(const string16& utf16,
293 size_t* offset_for_adjustment) { 279 size_t* offset_for_adjustment) {
294 if (offset_for_adjustment && (*offset_for_adjustment >= utf16.length())) 280 if (offset_for_adjustment && (*offset_for_adjustment >= utf16.length()))
295 *offset_for_adjustment = std::wstring::npos; 281 *offset_for_adjustment = std::wstring::npos;
296 return utf16; 282 return utf16;
297 } 283 }
298 284
299 #elif defined(WCHAR_T_IS_UTF32) 285 #elif defined(WCHAR_T_IS_UTF32)
300 286
301 bool WideToUTF16AndAdjustOffset(const wchar_t* src, 287 bool WideToUTF16(const wchar_t* src, size_t src_len, string16* output) {
302 size_t src_len,
303 string16* output,
304 size_t* offset_for_adjustment) {
305 output->clear(); 288 output->clear();
306 // Assume that normally we won't have any non-BMP characters so the counts 289 // Assume that normally we won't have any non-BMP characters so the counts
307 // will be the same. 290 // will be the same.
308 output->reserve(src_len); 291 output->reserve(src_len);
309 return ConvertUnicode<wchar_t, string16>(src, src_len, output, 292 return ConvertUnicode<wchar_t, string16>(src, src_len, output, NULL);
310 offset_for_adjustment);
311 } 293 }
312 294
313 string16 WideToUTF16AndAdjustOffset(const std::wstring& wide, 295 string16 WideToUTF16(const std::wstring& wide) {
314 size_t* offset_for_adjustment) {
315 string16 ret; 296 string16 ret;
316 WideToUTF16AndAdjustOffset(wide.data(), wide.length(), &ret, 297 WideToUTF16(wide.data(), wide.length(), &ret);
317 offset_for_adjustment);
318 return ret; 298 return ret;
319 } 299 }
320 300
321 bool UTF16ToWideAndAdjustOffset(const char16* src, 301 bool UTF16ToWideAndAdjustOffset(const char16* src,
322 size_t src_len, 302 size_t src_len,
323 std::wstring* output, 303 std::wstring* output,
324 size_t* offset_for_adjustment) { 304 size_t* offset_for_adjustment) {
325 output->clear(); 305 output->clear();
326 // Assume that normally we won't have any non-BMP characters so the counts 306 // Assume that normally we won't have any non-BMP characters so the counts
327 // will be the same. 307 // will be the same.
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
383 363
384 bool UTF16ToUTF8(const char16* src, size_t src_len, std::string* output) { 364 bool UTF16ToUTF8(const char16* src, size_t src_len, std::string* output) {
385 return WideToUTF8(src, src_len, output); 365 return WideToUTF8(src, src_len, output);
386 } 366 }
387 367
388 std::string UTF16ToUTF8(const string16& utf16) { 368 std::string UTF16ToUTF8(const string16& utf16) {
389 return WideToUTF8(utf16); 369 return WideToUTF8(utf16);
390 } 370 }
391 371
392 #endif 372 #endif
OLDNEW
« no previous file with comments | « base/utf_string_conversions.h ('k') | base/utf_string_conversions_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698