commit afbf55d869ed29f094c256a442edd49e1d1c9e2b
parent 295d1e9853ee4dfee799b7cc81d57e0e3dbfdf93
Author: Christian Grothoff <christian@grothoff.org>
Date: Fri, 25 Aug 2023 13:08:07 +0200
document environment variable substitution (#7013)
Diffstat:
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/frags/common-conf-syntax.rst b/frags/common-conf-syntax.rst
@@ -27,7 +27,8 @@ reference. This can be simple, such as ``$TMPDIR/foo``, or complex, such as
``${TMPDIR:-${TMP:-/tmp}}/foo``. The variables are expanded either using
key-values from the ``[PATHS]`` section (see below) or from the environment
(``getenv()``). The values from ``[PATHS]`` take precedence over those from
-the environment.
+the environment. If the variable name is found in neither ``[PATHS]`` nor the
+environment, a warning is printed and the value is left unchanged. Variables (including those from the environment) are expanded recursively, so if ``FOO=$BAR`` and ``BAR=buzz`` then the result is ``FOO=buzz``. Recursion is bounded to at most 128 levels to avoid undefined behavior for mutually recursive expansions like if ``BAR=$FOO`` in the example above.
The ``[PATHS]`` section is special in that it contains paths that can be
referenced using ``$`` in other configuration values that specify