# HG changeset patch # User Franz Glasner # Date 1457620906 -3600 # Node ID c77cb6bc8eebcd3552e311a388c5227f7a793590 # Parent 6a91db2c2469c184bf2021501087f8b7e2483732 FIX: Handle non-str types in variable substitutions properly diff -r 6a91db2c2469 -r c77cb6bc8eeb configmix/config.py --- a/configmix/config.py Thu Mar 10 15:08:20 2016 +0100 +++ b/configmix/config.py Thu Mar 10 15:41:46 2016 +0100 @@ -154,9 +154,10 @@ return s varname, filters = self._split_filters(s[start+2:end]) varvalue = self._apply_filters(filters, self.getvar_s(varname)) - s = u(b"{0}{1}{2}").format(s[:start], varvalue, s[end+2:]) + replaced = u(b"{0}{1}").format(s[:start], varvalue) + s = u(b"{0}{1}").format(replaced, s[end+2:]) # don't re-evaluate because `self.getvar_s()` expands already - start = s.find(self._STARTTOK, start + len(varvalue)) + start = s.find(self._STARTTOK, len(replaced)) return s def _apply_filters(self, filters, value):