[SR-Users] Inconsistent string interpolation

Sven Neuhaus neuhaus at tyntec.com
Thu Oct 1 14:34:32 CEST 2015


Am 01.10.2015 um 12:53 schrieb Daniel-Constantin Mierla:
> there are different actions, one is assignment of an expression and the
> other is a function call. Functions can evaluate they parameters as they
> need/want by having the appropriate C code inside.

After I noticed the problem and tried to understand what was going on,
that's what I came up with. That doesn't make it less error prone, however.

> For assignments, that is the general interpreter which considers strings
> as being the tokens in between quotes. Trying to interpret variables
> inside the strings automatically won't work, because that will mean to
> do it for cases when it should not happen (e.g., modparams or function
> parameters that specify just name of variables). Of course, with some
> extra coding to keep states of where that string is used might be
> possible, but I think will make the interpreter too complex. I might be
> wrong, so a patch is welcome to prove the otherwise :-)

Ideally, all variables in double quoted strings should be interpolated
and single quoted strings should not (the same way it is done in bash,
Perl, PHP, Groove, Ruby and elsewhere).

> Some functions can evaluate the parameter content, some don't. And in
> some cases, even there is a variable inside a parameter for a function,
> it is not evaluated, but it is set. That's again based on the purpose of
> the function.

That's frightening!

> Instead of concatenation expression, you can use few other options:

> - $_s(...) -- iirc, like:

That $_() is a useful thing to know.

> $var(x) = $_s("sip:+$var(abc)-$var(def)-$si@$Ri:$Rp");
> 
> - pv_printf($var(x), ...)

I looked up the documentation for pv_printf() in the KEx module and was
baffled to see the variable name being passed as a string in the example
... "pv_printf("$ru", "sip:$rU@$fd");"   :-*

Cheers,
-Sven


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: OpenPGP digital signature
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20151001/92a6a75a/attachment.sig>


More information about the sr-users mailing list