From: Alan T. DeKok Date: Thu, 22 Jan 2026 12:47:25 +0000 (-0500) Subject: remove extraneous %{} when printing xlat functions X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5ef9a95cb93502bf44c602475d3c73ae25940013;p=thirdparty%2Ffreeradius-server.git remove extraneous %{} when printing xlat functions --- diff --git a/src/lib/unlang/xlat_eval.c b/src/lib/unlang/xlat_eval.c index b70b9ce5afd..6bc210634fe 100644 --- a/src/lib/unlang/xlat_eval.c +++ b/src/lib/unlang/xlat_eval.c @@ -161,10 +161,15 @@ static fr_slen_t xlat_fmt_print(fr_sbuff_t *out, xlat_exp_t const *node) case XLAT_TMPL: fr_assert(node->fmt != NULL); - if (tmpl_is_attr(node->vpt) && (node->fmt[0] == '&')) { + + /* + * Just print the attribute name, or the nested xlat. + */ + if (tmpl_is_attr(node->vpt) || (tmpl_is_xlat(node->vpt))) { return fr_sbuff_in_strcpy(out, node->fmt); + } else { - return fr_sbuff_in_sprintf(out, "%%{%pV}", fr_box_strvalue_buffer(node->fmt)); + return fr_sbuff_in_sprintf(out, "%%{%s}", node->fmt); } #ifdef HAVE_REGEX