[Main page] [Overview]     /efun /process_string

OPTIONAL
SYNOPSIS
string process_string(string str)

DESCRIPTION
Searches string str for occurences of a "value by function
call", which is an implicit function call surrounded by @@. See
"value_by_function_call" in the principles section.

The value should contain a string like this:
@@function[:filename][|arg|arg]@@

<function> must return a string or else the string which should be
processed will be returned unchanged.

process_string() does not recurse over returned
replacement values. If a function returns another function
description, that description will not be replaced.

Both the filename and the args are optional.

Consecutive function calls can be written adjacent:

@@function1@@function2@@

EXAMPLE
string foo(string str) {
return "ab"+str+"ef";
}
void func() {
write(process_string("@@foo|cd@@")+"\n");
}

The function func() will print out the string "abcdef".

BUGS
Using process_string() can lead to severe security problems.

HISTORY
Because of the security problems, process_string() is an
optional efun since 3.2.1@34
LDMud 3.3.160 removed the undocumented 'feature' that a function call
declaration could be terminated by a space. In turn this now allows
the use of arguments with spaces.

SEE ALSO
notify_fail(E), closures(LPC), get_bb_uid(M)