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

Side by Side Diff: base/command_line.cc

Issue 102993018: Remove UTF string conversion functions from the global namespace. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: aaaaaaaaaa Created 6 years, 12 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
« no previous file with comments | « no previous file | base/command_line_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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/command_line.h" 5 #include "base/command_line.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <ostream> 8 #include <ostream>
9 9
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
(...skipping 321 matching lines...) Expand 10 before | Expand all | Expand 10 after
332 332
333 void CommandLine::AppendSwitchPath(const std::string& switch_string, 333 void CommandLine::AppendSwitchPath(const std::string& switch_string,
334 const FilePath& path) { 334 const FilePath& path) {
335 AppendSwitchNative(switch_string, path.value()); 335 AppendSwitchNative(switch_string, path.value());
336 } 336 }
337 337
338 void CommandLine::AppendSwitchNative(const std::string& switch_string, 338 void CommandLine::AppendSwitchNative(const std::string& switch_string,
339 const CommandLine::StringType& value) { 339 const CommandLine::StringType& value) {
340 std::string switch_key(LowerASCIIOnWindows(switch_string)); 340 std::string switch_key(LowerASCIIOnWindows(switch_string));
341 #if defined(OS_WIN) 341 #if defined(OS_WIN)
342 StringType combined_switch_string(ASCIIToWide(switch_key)); 342 StringType combined_switch_string(base::ASCIIToWide(switch_key));
343 #elif defined(OS_POSIX) 343 #elif defined(OS_POSIX)
344 StringType combined_switch_string(switch_string); 344 StringType combined_switch_string(switch_string);
345 #endif 345 #endif
346 size_t prefix_length = GetSwitchPrefixLength(combined_switch_string); 346 size_t prefix_length = GetSwitchPrefixLength(combined_switch_string);
347 switches_[switch_key.substr(prefix_length)] = value; 347 switches_[switch_key.substr(prefix_length)] = value;
348 // Preserve existing switch prefixes in |argv_|; only append one if necessary. 348 // Preserve existing switch prefixes in |argv_|; only append one if necessary.
349 if (prefix_length == 0) 349 if (prefix_length == 0)
350 combined_switch_string = kSwitchPrefixes[0] + combined_switch_string; 350 combined_switch_string = kSwitchPrefixes[0] + combined_switch_string;
351 if (!value.empty()) 351 if (!value.empty())
352 combined_switch_string += kSwitchValueSeparator + value; 352 combined_switch_string += kSwitchValueSeparator + value;
353 // Append the switch and update the switches/arguments divider |begin_args_|. 353 // Append the switch and update the switches/arguments divider |begin_args_|.
354 argv_.insert(argv_.begin() + begin_args_++, combined_switch_string); 354 argv_.insert(argv_.begin() + begin_args_++, combined_switch_string);
355 } 355 }
356 356
357 void CommandLine::AppendSwitchASCII(const std::string& switch_string, 357 void CommandLine::AppendSwitchASCII(const std::string& switch_string,
358 const std::string& value_string) { 358 const std::string& value_string) {
359 #if defined(OS_WIN) 359 #if defined(OS_WIN)
360 AppendSwitchNative(switch_string, ASCIIToWide(value_string)); 360 AppendSwitchNative(switch_string, base::ASCIIToWide(value_string));
361 #elif defined(OS_POSIX) 361 #elif defined(OS_POSIX)
362 AppendSwitchNative(switch_string, value_string); 362 AppendSwitchNative(switch_string, value_string);
363 #endif 363 #endif
364 } 364 }
365 365
366 void CommandLine::CopySwitchesFrom(const CommandLine& source, 366 void CommandLine::CopySwitchesFrom(const CommandLine& source,
367 const char* const switches[], 367 const char* const switches[],
368 size_t count) { 368 size_t count) {
369 for (size_t i = 0; i < count; ++i) { 369 for (size_t i = 0; i < count; ++i) {
370 if (source.HasSwitch(switches[i])) 370 if (source.HasSwitch(switches[i]))
371 AppendSwitchNative(switches[i], source.GetSwitchValueNative(switches[i])); 371 AppendSwitchNative(switches[i], source.GetSwitchValueNative(switches[i]));
372 } 372 }
373 } 373 }
374 374
375 CommandLine::StringVector CommandLine::GetArgs() const { 375 CommandLine::StringVector CommandLine::GetArgs() const {
376 // Gather all arguments after the last switch (may include kSwitchTerminator). 376 // Gather all arguments after the last switch (may include kSwitchTerminator).
377 StringVector args(argv_.begin() + begin_args_, argv_.end()); 377 StringVector args(argv_.begin() + begin_args_, argv_.end());
378 // Erase only the first kSwitchTerminator (maybe "--" is a legitimate page?) 378 // Erase only the first kSwitchTerminator (maybe "--" is a legitimate page?)
379 StringVector::iterator switch_terminator = 379 StringVector::iterator switch_terminator =
380 std::find(args.begin(), args.end(), kSwitchTerminator); 380 std::find(args.begin(), args.end(), kSwitchTerminator);
381 if (switch_terminator != args.end()) 381 if (switch_terminator != args.end())
382 args.erase(switch_terminator); 382 args.erase(switch_terminator);
383 return args; 383 return args;
384 } 384 }
385 385
386 void CommandLine::AppendArg(const std::string& value) { 386 void CommandLine::AppendArg(const std::string& value) {
387 #if defined(OS_WIN) 387 #if defined(OS_WIN)
388 DCHECK(IsStringUTF8(value)); 388 DCHECK(IsStringUTF8(value));
389 AppendArgNative(UTF8ToWide(value)); 389 AppendArgNative(base::UTF8ToWide(value));
390 #elif defined(OS_POSIX) 390 #elif defined(OS_POSIX)
391 AppendArgNative(value); 391 AppendArgNative(value);
392 #endif 392 #endif
393 } 393 }
394 394
395 void CommandLine::AppendArgPath(const FilePath& path) { 395 void CommandLine::AppendArgPath(const FilePath& path) {
396 AppendArgNative(path.value()); 396 AppendArgNative(path.value());
397 } 397 }
398 398
399 void CommandLine::AppendArgNative(const CommandLine::StringType& value) { 399 void CommandLine::AppendArgNative(const CommandLine::StringType& value) {
(...skipping 29 matching lines...) Expand all
429 int num_args = 0; 429 int num_args = 0;
430 wchar_t** args = NULL; 430 wchar_t** args = NULL;
431 args = ::CommandLineToArgvW(command_line_string.c_str(), &num_args); 431 args = ::CommandLineToArgvW(command_line_string.c_str(), &num_args);
432 432
433 DPLOG_IF(FATAL, !args) << "CommandLineToArgvW failed on command line: " 433 DPLOG_IF(FATAL, !args) << "CommandLineToArgvW failed on command line: "
434 << command_line; 434 << command_line;
435 InitFromArgv(num_args, args); 435 InitFromArgv(num_args, args);
436 LocalFree(args); 436 LocalFree(args);
437 } 437 }
438 #endif 438 #endif
OLDNEW
« no previous file with comments | « no previous file | base/command_line_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698