* util/getroot.c (pull_lvm_by_command): add --separator option

to vgs call to disable padding of output to 10 characters.
This commit is contained in:
Andrey Borzenkov 2013-08-14 20:40:39 +04:00
parent f0b94ded6d
commit dea55e2a95
2 changed files with 14 additions and 3 deletions

View file

@ -1,3 +1,8 @@
2013-08-14 Andrey Borzenkov <arvidjaar@gmail.com>
* util/getroot.c (pull_lvm_by_command): add --separator option
to vgs call to disable padding of output to 10 characters.
2013-08-14 Vladimir Serbinenko <phcoder@gmail.com>
* grub-core/kern/emu/misc.c (grub_device_mapper_supported): Move from

View file

@ -1322,7 +1322,7 @@ grub_util_get_dev_abstraction (const char *os_dev)
static void
pull_lvm_by_command (const char *os_dev)
{
char *argv[6];
char *argv[8];
int fd;
pid_t pid;
FILE *mdadm;
@ -1351,12 +1351,17 @@ pull_lvm_by_command (const char *os_dev)
/* execvp has inconvenient types, hence the casts. None of these
strings will actually be modified. */
/* by default PV name is left aligned in 10 character field, meaning that
we do not know where name ends. Using dummy --separator disables
alignment. We have a single field, so separator itself is not output */
argv[0] = (char *) "vgs";
argv[1] = (char *) "--options";
argv[2] = (char *) "pv_name";
argv[3] = (char *) "--noheadings";
argv[4] = vgname;
argv[5] = NULL;
argv[4] = (char *) "--separator";
argv[5] = (char *) ":";
argv[6] = vgname;
argv[7] = NULL;
pid = exec_pipe (argv, &fd);
free (vgname);
@ -1376,6 +1381,7 @@ pull_lvm_by_command (const char *os_dev)
while (getline (&buf, &len, mdadm) > 0)
{
char *ptr;
/* LVM adds two spaces as standard prefix */
for (ptr = buf; ptr < buf + 2 && *ptr == ' '; ptr++);
if (*ptr == '\0')
continue;