This was already done for %{long_keys}, just not for single letter keys.
{ "%{nonexistent}", "UNSUPPORTED_VARIABLE_nonexistent", 0 },
{ "%{nonexistent:default}", "UNSUPPORTED_VARIABLE_nonexistent", 0 },
+ { "%x", "UNSUPPORTED_VARIABLE_x", 0 },
};
static const struct var_expand_table table[] = {
{ 'v', "value", NULL },
}
if (*error_r == NULL)
*error_r = t_strdup_printf("Unknown variable '%%%c'", key);
+ *var_r = t_strdup_printf("UNSUPPORTED_VARIABLE_%c", key);
return 0;
}
len = end - (str + 1);
ret = var_expand_long(&ctx, str+1, len,
&var, error_r);
- i_assert(var != NULL);
str = end;
} else {
ret = var_expand_short(ctx.table, *str,
&var, error_r);
}
+ i_assert(var != NULL);
+
if (final_ret > ret)
final_ret = ret;