1511 |
return cfg; |
return cfg; |
1512 |
} |
} |
1513 |
|
|
1514 |
static void writeDefault(FILE * out, char * indent, |
static void writeDefault(FILE * out, char * indent, |
1515 |
char * separator, struct grubConfig * cfg) { |
char * separator, struct grubConfig * cfg) { |
1516 |
struct singleEntry * entry; |
struct singleEntry * entry; |
1517 |
struct singleLine * line; |
struct singleLine * line; |
1518 |
int i; |
int i; |
1519 |
|
|
1520 |
if (!cfg->defaultImage && cfg->flags == GRUB_CONFIG_NO_DEFAULT) return; |
if (!cfg->defaultImage && cfg->flags == GRUB_CONFIG_NO_DEFAULT) |
1521 |
|
return; |
1522 |
|
|
1523 |
if (cfg->defaultImage == DEFAULT_SAVED) |
if (cfg->defaultImage == DEFAULT_SAVED) |
1524 |
fprintf(out, "%sdefault%ssaved\n", indent, separator); |
fprintf(out, "%sdefault%ssaved\n", indent, separator); |
1542 |
fprintf(out, "%sset default=\"%d\"\n", indent, |
fprintf(out, "%sset default=\"%d\"\n", indent, |
1543 |
cfg->defaultImage); |
cfg->defaultImage); |
1544 |
} else { |
} else { |
1545 |
fprintf(out, "%sdefault%s%d\n", indent, separator, |
fprintf(out, "%sdefault%s%d\n", indent, separator, |
1546 |
cfg->defaultImage); |
cfg->defaultImage); |
1547 |
} |
} |
1548 |
} else { |
} else { |
1549 |
int image = cfg->defaultImage; |
int image = cfg->defaultImage; |
1550 |
|
|
1551 |
entry = cfg->entries; |
entry = cfg->entries; |
1552 |
while (entry && entry->skip) entry = entry->next; |
while (entry && entry->skip) |
1553 |
|
entry = entry->next; |
1554 |
|
|
1555 |
i = 0; |
i = 0; |
1556 |
while (entry && i < image) { |
while (entry && i < image) { |
1557 |
entry = entry->next; |
entry = entry->next; |
1558 |
|
|
1559 |
while (entry && entry->skip) entry = entry->next; |
while (entry && entry->skip) |
1560 |
|
entry = entry->next; |
1561 |
i++; |
i++; |
1562 |
} |
} |
1563 |
|
|
1564 |
if (!entry) return; |
if (!entry) |
1565 |
|
return; |
1566 |
|
|
1567 |
line = getLineByType(LT_TITLE, entry->lines); |
line = getLineByType(LT_TITLE, entry->lines); |
1568 |
|
|
1569 |
if (line && line->numElements >= 2) |
if (line && line->numElements >= 2) |
1570 |
fprintf(out, "%sdefault%s%s\n", indent, separator, |
fprintf(out, "%sdefault%s%s\n", indent, separator, |
1571 |
line->elements[1].item); |
line->elements[1].item); |
1572 |
else if (line && (line->numElements == 1) && |
else if (line && (line->numElements == 1) && |
1573 |
cfg->cfi->titleBracketed) { |
cfg->cfi->titleBracketed) { |
1574 |
fprintf(out, "%sdefault%s%s\n", indent, separator, |
char *title = extractTitle(cfg, line); |
1575 |
extractTitle(cfg, line)); |
if (title) { |
1576 |
|
fprintf(out, "%sdefault%s%s\n", indent, separator, title); |
1577 |
|
free(title); |
1578 |
|
} |
1579 |
} |
} |
1580 |
} |
} |
1581 |
} |
} |