SYNOPSIS
        void runtime_warning( string msg, string curobj, string prog, int line
                            , int inside_catch)

DESCRIPTION
        This function is called to let the mudlib handle a runtime warning,
        e.g. by logging it into a database.

        <msg> is the warning message.
        <curobj> is the name of the current object which caused the message
              (the object itself might already be destructed), or 0 if there
              is none.
        <prog>, <line> determine the name of the program and the line where
              the error occurred if the current object exists, otherwise
              they are 0.
        <inside_catch> : != 0 if the warning occurs inside a catch().

        The driver is limited to three nested warnings, to prevent
        an endless recursion in case runtime_warning() itself causes
        warnings.

HISTORY
        Introduced in LDMud 3.3.551.
        LDMud 3.3.705 added the <inside_catch> argument.

SEE ALSO
        runtime_error(M)
