1
/* cmdline.c - linux command line handling */
3
* GRUB -- GRand Unified Bootloader
4
* Copyright (C) 2010 Free Software Foundation, Inc.
6
* GRUB is free software: you can redistribute it and/or modify
7
* it under the terms of the GNU General Public License as published by
8
* the Free Software Foundation, either version 3 of the License, or
9
* (at your option) any later version.
11
* GRUB is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU General Public License for more details.
16
* You should have received a copy of the GNU General Public License
17
* along with GRUB. If not, see <http://www.gnu.org/licenses/>.
20
#include <grub/lib/cmdline.h>
21
#include <grub/misc.h>
23
static unsigned int check_arg (char *c, int *has_space)
26
unsigned int size = 0;
30
if (*c == '\\' || *c == '\'' || *c == '"')
48
unsigned int grub_loader_cmdline_size (int argc, char *argv[])
51
unsigned int size = 0;
53
for (i = 0; i < argc; i++)
55
size += check_arg (argv[i], 0);
56
size++; /* Separator space or NULL. */
62
int grub_create_loader_cmdline (int argc, char *argv[], char *buf,
66
unsigned int arg_size;
69
for (i = 0; i < argc; i++)
72
arg_size = check_arg(argv[i], &space);
73
arg_size++; /* Separator space or NULL. */
85
if (*c == '\\' || *c == '\'' || *c == '"')
98
/* Replace last space with null. */