You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
199 lines
6.7 KiB
199 lines
6.7 KiB
2 years ago
|
From 624a75f2d01d986ec78f60319ebc2acd37faada2 Mon Sep 17 00:00:00 2001
|
||
|
From: Robert Marshall <rmarshall@redhat.com>
|
||
|
Date: Tue, 13 Dec 2016 14:36:31 -0500
|
||
|
Subject: [PATCH 31/55] Add index constant definitions instead of open-coded
|
||
|
values.
|
||
|
|
||
|
Added numeric constants NO_DEFAULT_ENTRY and FIRST_ENTRY_INDEX. This
|
||
|
clarifies the intent of various assignment operations throughout the
|
||
|
source file.
|
||
|
|
||
|
Related: rhbz#1285601
|
||
|
---
|
||
|
grubby.c | 44 ++++++++++++++++++++++++--------------------
|
||
|
1 file changed, 24 insertions(+), 20 deletions(-)
|
||
|
|
||
|
diff --git a/grubby.c b/grubby.c
|
||
|
index 9af8d17b345..a717c18999b 100644
|
||
|
--- a/grubby.c
|
||
|
+++ b/grubby.c
|
||
|
@@ -132,6 +132,10 @@ struct singleEntry {
|
||
|
#define NEED_DEVTREE (1 << 6)
|
||
|
|
||
|
#define MAIN_DEFAULT (1 << 0)
|
||
|
+#define FIRST_ENTRY_INDEX 0 /* boot entry index value begin and increment
|
||
|
+ from this initial value */
|
||
|
+#define NO_DEFAULT_ENTRY -1 /* indicates that no specific default boot
|
||
|
+ entry was set or currently exists */
|
||
|
#define DEFAULT_SAVED -2
|
||
|
#define DEFAULT_SAVED_GRUB2 -3
|
||
|
|
||
|
@@ -1612,7 +1616,7 @@ static struct grubConfig *readConfig(const char *inName,
|
||
|
*end == ' ' || *end == '\t'))
|
||
|
end++;
|
||
|
if (*end)
|
||
|
- cfg->defaultImage = -1;
|
||
|
+ cfg->defaultImage = NO_DEFAULT_ENTRY;
|
||
|
} else if (defaultLine->numElements == 3) {
|
||
|
char *value = defaultLine->elements[2].item;
|
||
|
while (*value && (*value == '"' ||
|
||
|
@@ -1625,7 +1629,7 @@ static struct grubConfig *readConfig(const char *inName,
|
||
|
*end == ' ' || *end == '\t'))
|
||
|
end++;
|
||
|
if (*end)
|
||
|
- cfg->defaultImage = -1;
|
||
|
+ cfg->defaultImage = NO_DEFAULT_ENTRY;
|
||
|
}
|
||
|
} else if (cfi->defaultSupportSaved &&
|
||
|
!strncmp(defaultLine->elements[1].item, "saved",
|
||
|
@@ -1635,7 +1639,7 @@ static struct grubConfig *readConfig(const char *inName,
|
||
|
cfg->defaultImage =
|
||
|
strtol(defaultLine->elements[1].item, &end, 10);
|
||
|
if (*end)
|
||
|
- cfg->defaultImage = -1;
|
||
|
+ cfg->defaultImage = NO_DEFAULT_ENTRY;
|
||
|
} else if (defaultLine->numElements >= 2) {
|
||
|
int i = 0;
|
||
|
while ((entry = findEntryByIndex(cfg, i))) {
|
||
|
@@ -1663,7 +1667,7 @@ static struct grubConfig *readConfig(const char *inName,
|
||
|
if (entry) {
|
||
|
cfg->defaultImage = i;
|
||
|
} else {
|
||
|
- cfg->defaultImage = -1;
|
||
|
+ cfg->defaultImage = NO_DEFAULT_ENTRY;
|
||
|
}
|
||
|
}
|
||
|
} else if (cfg->cfi->defaultIsSaved && cfg->cfi->getEnv) {
|
||
|
@@ -1680,7 +1684,7 @@ static struct grubConfig *readConfig(const char *inName,
|
||
|
cfg->defaultImage = index;
|
||
|
}
|
||
|
} else {
|
||
|
- cfg->defaultImage = 0;
|
||
|
+ cfg->defaultImage = FIRST_ENTRY_INDEX;
|
||
|
}
|
||
|
|
||
|
return cfg;
|
||
|
@@ -1700,7 +1704,7 @@ static void writeDefault(FILE * out, char *indent,
|
||
|
fprintf(out, "%sdefault%ssaved\n", indent, separator);
|
||
|
else if (cfg->cfi->defaultIsSaved) {
|
||
|
fprintf(out, "%sset default=\"${saved_entry}\"\n", indent);
|
||
|
- if (cfg->defaultImage >= 0 && cfg->cfi->setEnv) {
|
||
|
+ if (cfg->defaultImage >= FIRST_ENTRY_INDEX && cfg->cfi->setEnv) {
|
||
|
char *title;
|
||
|
entry = findEntryByIndex(cfg, cfg->defaultImage);
|
||
|
line = getLineByType(LT_MENUENTRY, entry->lines);
|
||
|
@@ -1713,7 +1717,7 @@ static void writeDefault(FILE * out, char *indent,
|
||
|
"saved_entry", title);
|
||
|
}
|
||
|
}
|
||
|
- } else if (cfg->defaultImage > -1) {
|
||
|
+ } else if (cfg->defaultImage >= FIRST_ENTRY_INDEX) {
|
||
|
if (cfg->cfi->defaultIsIndex) {
|
||
|
if (cfg->cfi->defaultIsVariable) {
|
||
|
fprintf(out, "%sset default=\"%d\"\n", indent,
|
||
|
@@ -2417,7 +2421,7 @@ struct singleEntry *findTemplate(struct grubConfig *cfg, const char *prefix,
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
- } else if (cfg->defaultImage > -1) {
|
||
|
+ } else if (cfg->defaultImage >= FIRST_ENTRY_INDEX) {
|
||
|
entry = findEntryByIndex(cfg, cfg->defaultImage);
|
||
|
if (entry && suitableImage(entry, prefix, skipRemoved, flags)) {
|
||
|
if (indexPtr)
|
||
|
@@ -2499,20 +2503,20 @@ void setDefaultImage(struct grubConfig *config, int isUserSpecifiedKernelPath,
|
||
|
int i, j;
|
||
|
|
||
|
if (newBootEntryIsDefault) {
|
||
|
- config->defaultImage = 0;
|
||
|
+ config->defaultImage = FIRST_ENTRY_INDEX;
|
||
|
return;
|
||
|
} else if ((newDefaultBootEntryIndex >= 0) && config->cfi->defaultIsIndex) {
|
||
|
if (findEntryByIndex(config, newDefaultBootEntryIndex))
|
||
|
config->defaultImage = newDefaultBootEntryIndex;
|
||
|
else
|
||
|
- config->defaultImage = -1;
|
||
|
+ config->defaultImage = NO_DEFAULT_ENTRY;
|
||
|
return;
|
||
|
} else if (defaultKernelPath) {
|
||
|
i = 0;
|
||
|
if (findEntryByPath(config, defaultKernelPath, prefix, &i)) {
|
||
|
config->defaultImage = i;
|
||
|
} else {
|
||
|
- config->defaultImage = -1;
|
||
|
+ config->defaultImage = NO_DEFAULT_ENTRY;
|
||
|
return;
|
||
|
}
|
||
|
}
|
||
|
@@ -2524,7 +2528,7 @@ void setDefaultImage(struct grubConfig *config, int isUserSpecifiedKernelPath,
|
||
|
/* default is set to saved, we don't want to change it */
|
||
|
return;
|
||
|
|
||
|
- if (config->defaultImage > -1)
|
||
|
+ if (config->defaultImage >= FIRST_ENTRY_INDEX)
|
||
|
entry = findEntryByIndex(config, config->defaultImage);
|
||
|
else
|
||
|
entry = NULL;
|
||
|
@@ -2541,7 +2545,7 @@ void setDefaultImage(struct grubConfig *config, int isUserSpecifiedKernelPath,
|
||
|
config->defaultImage--;
|
||
|
}
|
||
|
} else if (isUserSpecifiedKernelPath) {
|
||
|
- config->defaultImage = 0;
|
||
|
+ config->defaultImage = FIRST_ENTRY_INDEX;
|
||
|
} else {
|
||
|
/* Either we just erased the default (or the default line was
|
||
|
* bad to begin with) and didn't put a new one in. We'll use
|
||
|
@@ -2550,7 +2554,7 @@ void setDefaultImage(struct grubConfig *config, int isUserSpecifiedKernelPath,
|
||
|
findTemplate(config, prefix, &config->defaultImage, 1,
|
||
|
flags);
|
||
|
if (!newDefault)
|
||
|
- config->defaultImage = -1;
|
||
|
+ config->defaultImage = NO_DEFAULT_ENTRY;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@@ -5175,11 +5179,11 @@ int main(int argc, const char **argv)
|
||
|
struct singleEntry *entry;
|
||
|
char *rootspec;
|
||
|
|
||
|
- if (config->defaultImage == -1)
|
||
|
+ if (config->defaultImage == NO_DEFAULT_ENTRY)
|
||
|
return 0;
|
||
|
if (config->defaultImage == DEFAULT_SAVED_GRUB2 &&
|
||
|
cfi->defaultIsSaved)
|
||
|
- config->defaultImage = 0;
|
||
|
+ config->defaultImage = FIRST_ENTRY_INDEX;
|
||
|
entry = findEntryByIndex(config, config->defaultImage);
|
||
|
if (!entry)
|
||
|
return 0;
|
||
|
@@ -5202,11 +5206,11 @@ int main(int argc, const char **argv)
|
||
|
struct singleLine *line;
|
||
|
struct singleEntry *entry;
|
||
|
|
||
|
- if (config->defaultImage == -1)
|
||
|
+ if (config->defaultImage == NO_DEFAULT_ENTRY)
|
||
|
return 0;
|
||
|
if (config->defaultImage == DEFAULT_SAVED_GRUB2 &&
|
||
|
cfi->defaultIsSaved)
|
||
|
- config->defaultImage = 0;
|
||
|
+ config->defaultImage = FIRST_ENTRY_INDEX;
|
||
|
entry = findEntryByIndex(config, config->defaultImage);
|
||
|
if (!entry)
|
||
|
return 0;
|
||
|
@@ -5236,11 +5240,11 @@ int main(int argc, const char **argv)
|
||
|
return 0;
|
||
|
|
||
|
} else if (displayDefaultIndex) {
|
||
|
- if (config->defaultImage == -1)
|
||
|
+ if (config->defaultImage == NO_DEFAULT_ENTRY)
|
||
|
return 0;
|
||
|
if (config->defaultImage == DEFAULT_SAVED_GRUB2 &&
|
||
|
cfi->defaultIsSaved)
|
||
|
- config->defaultImage = 0;
|
||
|
+ config->defaultImage = FIRST_ENTRY_INDEX;
|
||
|
printf("%i\n", config->defaultImage);
|
||
|
return 0;
|
||
|
|
||
|
--
|
||
|
2.17.1
|
||
|
|