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):