SYNOPSIS
#include <functionlist.h>
mixed function_exists(string str)
mixed function_exists(string str, int flags)
mixed function_exists(string str, object ob)
mixed function_exists(string str, object ob, int flags)
DESCRIPTION
Look up a function <str> in the current object, respectively
in the object <ob>. Depending on the value of <flags>, one
of the following informations is returned:
<flags> == FEXISTS_PROGNAME (0, default):
Return the name of the program the function is defined in.
This can be either object_name(ob), or the name of an inherited
program. If !compat mode, the returned name always begins
with a '/'.
<flags> == FEXISTS_FILENAME (1):
Return the name of the file the function is defined in (this
may be an include file). If !compat mode, the returned name
always begins with a '/'.
<flags> == FEXISTS_LINENO (2):
Return the line number within the source file.
<flags> == FEXISTS_ALL (3):
Return an array with all the above information, plus information
about the function type/flags/number of arguments.
The returned array contains this information:
string [FEXISTS_PROGNAME]: the program name
string [FEXISTS_FILENAME]: the filename
int [FEXISTS_LINENO]: the linenumber
int [FEXISTS_NUMARG]: the number of arguments to the function
int [FEXISTS_TYPE]: the return type of the function
int [FEXISTS_FLAGS]: the function flags
The <flags> value can be or-ed to NAME_HIDDEN to return
information about static and protected functions in other objects.
It is not possible to return information about private functions.
If the function cannot be found (because it doesn't exist or
it is not visible to the caller), the result is 0.
EXAMPLES
function_exists("create")
function_exists("create", that_object, NAME_HIDDEN|FEXISTS_ALL);
HISTORY
LDMud 3.2.10 broadened the range of returned values and introduced
the <flags> argument.
LDMud 3.2.12/3.3.713 added the function type/flags/number of arguments
to the result of FEXISTS_ALL.
SEE ALSO
call_other(E), call_resolved(E), functionlist(E), variable_exists(E)
|