Mercurial > hgrepos > Python > libs > ConfigMix
changeset 23:c77cb6bc8eeb
FIX: Handle non-str types in variable substitutions properly
| author | Franz Glasner <f.glasner@feldmann-mg.com> |
|---|---|
| date | Thu, 10 Mar 2016 15:41:46 +0100 |
| parents | 6a91db2c2469 |
| children | fa65adab0b71 |
| files | configmix/config.py |
| diffstat | 1 files changed, 3 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- 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):
