efun: get_type_info


SYNOPSIS:

        mixed get_type_info(mixed arg)
        mixed get_type_info(mixed arg, int flag)

DESCRIPTION:

        Returns info about the type of arg, as controlled by the flag.

        If the optional argument <flag> is not given, an array is
        returned whose first element is an integer denoting the data
        type, as defined in <lpctypes.h>. The second entry can contain
        additional information about arg.

        If <flag> flag is the number 0, only the first element of that array
        (i.e. the data type) is returned (as int). If <flag> is 1, the
        second element is returned.

        If <arg> is a closure or coroutine, the <flag> setting 2 lets the
        efun return the object of the closure resp. coroutine (which for
        'lfun closures' is the object the lfun is defined in, which is not
        necessarily the object the closure is bound to).

        If <arg> is a struct, the <flag> setting 2 lets the efun
        return the base name of the struct.

        If <arg> is a lfun, context closure or coroutine, the <flag>
        setting 3 lets the efun return the name of the program the closure
        resp. coroutine was defined in. For other closures, <flag>
        setting 3 returns 0.

        If <arg> is a lfun, context closure or coroutine, the <flag>
        setting 4 lets the efun return the name of the function.
        For other closures, <flag> setting 4 returns 0.

        For every other <flag> setting, -1 is returned.

        The secondary information is:
          - for mappings the width, ie the number of data items per key.
          - for symbols and quoted arrays the number of quotes.
          - for closures, the (internal) closure type, as defined in
            <lpctypes.h>.
          - for strings 0 for shared strings, and non-0 for others.
          - for structs the unique identifier string
          - -1 for all other datatypes.

BUGS:

        This function seems to be due to frequent changes as the
        driver develops resp. is debugged.

HISTORY:

        Introduced in 3.2@127
        Flag setting 2 was introduced in 3.2.1@84.
        Secondary string information was introduced in 3.2.7.
        Up to 3.2.7 inclusive, get_type_info(closure,2) did not return
          the object from a lambda closure or bound-lambda closure.
        In the 3.2 branch, the 'flag' argument could be of any type.
        LDMud 3.3.276 added the secondary information for structs.
        LDMud 3.3.548 added flag setting '3' for lfun/context closures.
        LDMud 3.3.708 added flag setting '4' for lfun/context closures.

SEE ALSO:

	
	debug_info(E), typeof(E), to_object(E)

UNItopia (mudadm@UNItopia.de)