Home | History | Annotate | Download | only in delegate_execute
      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
      3 // found in the LICENSE file.
      4 
      5 #include "win8/delegate_execute/delegate_execute_util.h"
      6 
      7 #include "base/files/file_path.h"
      8 #include "base/strings/string_util.h"
      9 
     10 namespace delegate_execute {
     11 
     12 CommandLine CommandLineFromParameters(const wchar_t* params) {
     13   CommandLine command_line(CommandLine::NO_PROGRAM);
     14 
     15   if (params) {
     16     base::string16 command_string(L"noprogram.exe ");
     17     command_string.append(params);
     18     command_line.ParseFromString(command_string);
     19     command_line.SetProgram(base::FilePath());
     20   }
     21 
     22   return command_line;
     23 }
     24 
     25 CommandLine MakeChromeCommandLine(const base::FilePath& chrome_exe,
     26                                   const CommandLine& params,
     27                                   const base::string16& argument) {
     28   CommandLine chrome_cmd(params);
     29   chrome_cmd.SetProgram(chrome_exe);
     30 
     31   if (!argument.empty())
     32     chrome_cmd.AppendArgNative(argument);
     33 
     34   return chrome_cmd;
     35 }
     36 
     37 base::string16 ParametersFromSwitch(const char* a_switch) {
     38   if (!a_switch)
     39     return base::string16();
     40 
     41   CommandLine cmd_line(CommandLine::NO_PROGRAM);
     42 
     43   cmd_line.AppendSwitch(a_switch);
     44 
     45   base::string16 command_string(cmd_line.GetCommandLineString());
     46   base::TrimWhitespace(command_string, base::TRIM_ALL, &command_string);
     47   return command_string;
     48 }
     49 
     50 }  // namespace delegate_execute
     51