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
10namespace delegate_execute {
11
12CommandLine 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
25CommandLine 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
37base::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