# HG changeset patch # User Aki Tuomi # Date 1512132826 -7200 # Node ID 30265531b608bee25f482625c568219d71f2bf81 # Parent 2c72506cd19a27accde1efcb18dbf8fac0597a6d lib: Support nested keys in var_get_key_range_full Fixes problems with %{if...} failed: if: requires four or five parameters, got 1 diff -r 2c72506cd19a -r 30265531b608 src/lib/var-expand.c --- a/src/lib/var-expand.c Thu Jan 25 12:27:41 2018 +0200 +++ b/src/lib/var-expand.c Fri Dec 01 14:53:46 2017 +0200 @@ -639,11 +639,17 @@ *size_r = str[i] == '\0' ? 0 : 1; return FALSE; } else { + unsigned int depth = 1; + bool escape = FALSE; /* long key */ *idx_r = ++i; for (; str[i] != '\0'; i++) { - if (str[i] == '}') - break; + if (str[i] == '{') + depth++; + if (str[i] == '}') { + if (--depth==0) + break; + } } *size_r = i - *idx_r; return TRUE;