pike.git / lib / modules / Program.pmod

version» Context lines:

pike.git/lib/modules/Program.pmod:7:      // documented in the C-code.   string defined(program x,string|void y)   {    if( !y )    return __builtin.program_defined(x);    return __builtin.program_identifier_defined(x,y);   }       - //! @fixme - //! Document this function. + //! Enumerate all programs this program inherits, directly or indirectly. + //! Similar to inherit_tree() but returns a flat array. + //! + //! @example + //! > class a{} + //! > class b{} + //! > class c{ inherit a; } + //! > class d{ inherit b; inherit c; } + //! > Program.inherit_tree(d); + //! Result: ({ /* 3 elements */ + //! b, + //! c, + //! a + //! })   array(program) all_inherits(program p)   {    array(program) ret = inherit_list(p); -  +  // Iterate over a mutated array to catch all inherits to infinite depth    for(int e=0;e<sizeof(ret);e++) ret+=inherit_list(ret[e]);    return ret;   }      //! Recursively builds a inheritance tree by   //! fetching programs inheritance lists.   //!   //! @returns   //! Returns an array with programs or arrays   //! as elements.