114 |
|
|
115 |
#define MAIN_DEFAULT (1 << 0) |
#define MAIN_DEFAULT (1 << 0) |
116 |
#define DEFAULT_SAVED -2 |
#define DEFAULT_SAVED -2 |
117 |
|
#define DEFAULT_SAVED_GRUB2 -3 |
118 |
|
|
119 |
struct keywordTypes { |
struct keywordTypes { |
120 |
char * key; |
char * key; |
329 |
.findConfig = grub2FindConfig, |
.findConfig = grub2FindConfig, |
330 |
.keywords = grub2Keywords, |
.keywords = grub2Keywords, |
331 |
.defaultIsIndex = 1, |
.defaultIsIndex = 1, |
332 |
.defaultSupportSaved = 0, |
.defaultSupportSaved = 1, |
333 |
.defaultIsVariable = 1, |
.defaultIsVariable = 1, |
334 |
.entryStart = LT_MENUENTRY, |
.entryStart = LT_MENUENTRY, |
335 |
.entryEnd = LT_ENTRY_END, |
.entryEnd = LT_ENTRY_END, |
1124 |
|
|
1125 |
dbgPrintf("defaultLine is %s\n", defaultLine ? "set" : "unset"); |
dbgPrintf("defaultLine is %s\n", defaultLine ? "set" : "unset"); |
1126 |
if (defaultLine) { |
if (defaultLine) { |
1127 |
if (cfi->defaultIsVariable) { |
if (defaultLine->numElements > 2 && |
1128 |
|
cfi->defaultSupportSaved && |
1129 |
|
!strncmp(defaultLine->elements[2].item,"\"${saved_entry}\"", 16)) { |
1130 |
|
cfg->defaultImage = DEFAULT_SAVED_GRUB2; |
1131 |
|
} else if (cfi->defaultIsVariable) { |
1132 |
char *value = defaultLine->elements[2].item; |
char *value = defaultLine->elements[2].item; |
1133 |
while (*value && (*value == '"' || *value == '\'' || |
while (*value && (*value == '"' || *value == '\'' || |
1134 |
*value == ' ' || *value == '\t')) |
*value == ' ' || *value == '\t')) |
1185 |
|
|
1186 |
if (cfg->defaultImage == DEFAULT_SAVED) |
if (cfg->defaultImage == DEFAULT_SAVED) |
1187 |
fprintf(out, "%sdefault%ssaved\n", indent, separator); |
fprintf(out, "%sdefault%ssaved\n", indent, separator); |
1188 |
|
else if (cfg->defaultImage == DEFAULT_SAVED_GRUB2) |
1189 |
|
fprintf(out, "%sset default=\"${saved_entry}\"\n", indent); |
1190 |
else if (cfg->defaultImage > -1) { |
else if (cfg->defaultImage > -1) { |
1191 |
if (cfg->cfi->defaultIsIndex) { |
if (cfg->cfi->defaultIsIndex) { |
1192 |
if (cfg->cfi->defaultIsVariable) { |
if (cfg->cfi->defaultIsVariable) { |
1464 |
{ |
{ |
1465 |
int slen; |
int slen; |
1466 |
|
|
1467 |
if (!s && !s[0]) |
if (!s || !s[0]) |
1468 |
return 0; |
return 0; |
1469 |
slen = strlen(s) - 1; |
slen = strlen(s) - 1; |
1470 |
|
|
1794 |
|
|
1795 |
/* defaultImage now points to what we'd like to use, but before any order |
/* defaultImage now points to what we'd like to use, but before any order |
1796 |
changes */ |
changes */ |
1797 |
if (config->defaultImage == DEFAULT_SAVED) |
if ((config->defaultImage == DEFAULT_SAVED) || |
1798 |
|
(config->defaultImage == DEFAULT_SAVED_GRUB2)) |
1799 |
/* default is set to saved, we don't want to change it */ |
/* default is set to saved, we don't want to change it */ |
1800 |
return; |
return; |
1801 |
|
|
1926 |
printf("%s%s", line->elements[i].item, line->elements[i].indent); |
printf("%s%s", line->elements[i].item, line->elements[i].indent); |
1927 |
printf("\n"); |
printf("\n"); |
1928 |
} |
} |
1929 |
|
|
1930 |
|
line = getLineByType(LT_TITLE, entry->lines); |
1931 |
|
if (line) { |
1932 |
|
printf("title=%s\n", line->elements[1].item); |
1933 |
|
} else { |
1934 |
|
char * title; |
1935 |
|
line = getLineByType(LT_MENUENTRY, entry->lines); |
1936 |
|
title = grub2ExtractTitle(line); |
1937 |
|
if (title) |
1938 |
|
printf("title=%s\n", title); |
1939 |
|
} |
1940 |
} |
} |
1941 |
|
|
1942 |
int parseSysconfigGrub(int * lbaPtr, char ** bootPtr) { |
int parseSysconfigGrub(int * lbaPtr, char ** bootPtr) { |