summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--utils/mount/configfile.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/utils/mount/configfile.c b/utils/mount/configfile.c
index 68b9f93..6985ed9 100644
--- a/utils/mount/configfile.c
+++ b/utils/mount/configfile.c
@@ -164,6 +164,20 @@ add_entry(char *opt)
SLIST_INSERT_HEAD(&head, entry, entries);
}
/*
+ * Check the alias list to see if the given
+ * opt is a alias
+ */
+char *is_alias(char *opt)
+{
+ int i;
+
+ for (i=0; i < mnt_alias_sz; i++) {
+ if (strcasecmp(opt, mnt_alias_tab[i].alias) == 0)
+ return mnt_alias_tab[i].opt;
+ }
+ return NULL;
+}
+/*
* See if the given entry exists if the link list,
* if so return that entry
*/
@@ -171,10 +185,21 @@ inline static
char *lookup_entry(char *opt)
{
struct entry *entry;
+ char *alias = is_alias(opt);
SLIST_FOREACH(entry, &head, entries) {
if (strcasecmp(entry->opt, opt) == 0)
return opt;
+ if (alias && strcasecmp(entry->opt, alias) == 0)
+ return opt;
+ if (alias && strcasecmp(alias, "fg") == 0) {
+ if (strcasecmp(entry->opt, "bg") == 0)
+ return opt;
+ }
+ if (alias && strcasecmp(alias, "bg") == 0) {
+ if (strcasecmp(entry->opt, "fg") == 0)
+ return opt;
+ }
}
return NULL;
}