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) { |
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 |
|
|