Single String Parameter Functions

When the DXL interpreter encounters a function that takes a single string parameter, it ignores the parentheses, thus causing unsuspected results for the unwary programmer. This means that you should not use these functions in-line with other strings as the interpreter will concatentate the string parameter and any following string(s) and then pass the result to the function.

For example, if you run the following DXL

string s1 = "one"
string s2 = "two"
print upper(s1) " " s2 "n"

you would expect to get

"ONE two"

In fact, you get


The fix for this is to enclose the function call in parentheses as follows:

print (upper(s1)) " " s2 "n"