svn commit: r335653 - head/usr.sbin/config
Kyle Evans
kevans at FreeBSD.org
Tue Jun 26 04:02:27 UTC 2018
Author: kevans
Date: Tue Jun 26 04:02:25 2018
New Revision: 335653
URL: https://svnweb.freebsd.org/changeset/base/335653
Log:
config(8): Flip the order of concatenation for `hints` and `env`
As previously noted, kernel's processing of these means that the first
appearance of a hint/variable wins. Flipping the order of concatenation
means that later variables override earlier variables, as expected when one
does:
hints x
hints y
Where perhaps x is:
hint.aw_sid.0.disable=1
and y is:
hint.aw_sid.0.disable=0
The expectation would be that a later appearing variable would override an
earlier appearing variable, such as with `device`/`nodevice`, device.hints,
and other similarly structured data files.
Modified:
head/usr.sbin/config/config.5
head/usr.sbin/config/config.y
Modified: head/usr.sbin/config/config.5
==============================================================================
--- head/usr.sbin/config/config.5 Tue Jun 26 03:56:10 2018 (r335652)
+++ head/usr.sbin/config/config.5 Tue Jun 26 04:02:25 2018 (r335653)
@@ -129,8 +129,9 @@ All
.Ic env
and
.Ic envvar
-directives will be processed and added to the staitc environment in the order of
-appearance.
+directives will be processed and added to the static environment in reversed
+order of appearance so that later specified variables properly override earlier
+specified variables.
Note that within
.Ar filename ,
the first appearance of a given variable will be the first one seen by the
@@ -150,8 +151,9 @@ All
.Ic env
and
.Ic envvar
-directives will be processed and added to the staitc environment in the order of
-appearance.
+directives will be processed and added to the static environment in reversed
+order of appearance so that later specified variables properly override earlier
+specified variables.
.\" -------- FILES --------
.Pp
.It Ic files Ar filename
@@ -178,7 +180,9 @@ The file
must conform to the syntax specified by
.Xr device.hints 5 .
Multiple hints lines are allowed.
-The resulting hints will be the files concatenated in the order of appearance.
+The resulting hints will be the files concatenated in reverse order of
+appearance so that hints in later files properly override hints in earlier
+files.
.\" -------- IDENT --------
.Pp
.It Ic ident Ar name
Modified: head/usr.sbin/config/config.y
==============================================================================
--- head/usr.sbin/config/config.y Tue Jun 26 03:56:10 2018 (r335652)
+++ head/usr.sbin/config/config.y Tue Jun 26 04:02:25 2018 (r335653)
@@ -200,7 +200,7 @@ Config_spec:
if (hint == NULL)
err(EXIT_FAILURE, "calloc");
hint->hint_name = $2;
- STAILQ_INSERT_TAIL(&hints, hint, hint_next);
+ STAILQ_INSERT_HEAD(&hints, hint, hint_next);
hintmode = 1;
}
@@ -360,7 +360,7 @@ newenvvar(char *name, bool is_file)
err(EXIT_FAILURE, "calloc");
envvar->env_str = name;
envvar->env_is_file = is_file;
- STAILQ_INSERT_TAIL(&envvars, envvar, envvar_next);
+ STAILQ_INSERT_HEAD(&envvars, envvar, envvar_next);
envmode = 1;
}
More information about the svn-src-head
mailing list