Select Git revision
block_alloc.h
-
Henrik (Grubba) Grubbström authored
Rev: src/Makefile.in:1.65 Rev: src/block_alloc.h:1.4 Rev: src/modules/Makefile.in:1.16 Rev: src/modules/_Crypto/lib/Makefile.in:1.18 Rev: src/modules/_Crypto/lib/configure.in:1.5 Rev: src/modules/_Crypto/lib/idea.c:1.5 Rev: src/modules/_Crypto/lib/install-sh:1.2 Rev: src/modules/_Crypto/lib/md5.c:1.3 Rev: src/modules/_Crypto/lib/sha.c:1.7 Rev: src/modules/_Image_JPEG/Makefile.in:1.2 Rev: src/modules/_Image_JPEG/configure.in:1.3 Rev: src/modules/_Image_JPEG/image_jpeg.c:1.12 Rev: src/modules/call_out/Makefile.in:1.6 Rev: src/modules/call_out/configure.in:1.5 Rev: src/modules/files/Makefile.in:1.6 Rev: src/modules/files/configure.in:1.43 Rev: src/modules/files/efuns.c:1.48 Rev: src/modules/files/file.h:1.9 Rev: src/modules/files/socket.c:1.31 Rev: src/modules/math/Makefile.in:1.5 Rev: src/modules/math/configure.in:1.4 Rev: src/modules/math/math.c:1.10 Rev: src/modules/readline/Makefile.in:1.2 Rev: src/modules/readline/configure.in:1.2 Rev: src/modules/readline/readlinemod.c:1.8 Rev: src/modules/spider/Makefile.in:1.14 Rev: src/modules/spider/accesseddb.c:1.14 Rev: src/modules/spider/acconfig.h:1.3 Rev: src/modules/spider/configure.in:1.23 Rev: src/modules/spider/defs.h:1.4 Rev: src/modules/spider/discdate.c:1.6 Rev: src/modules/spider/stardate.c:1.7 Rev: src/modules/spider/streamed_parser.c:1.9 Rev: src/modules/spider/streamed_parser.h:1.3 Rev: src/modules/sprintf/Makefile.in:1.6 Rev: src/modules/sprintf/configure.in:1.4 Rev: src/modules/system/Makefile.in:1.5 Rev: src/modules/system/configure.in:1.20 Rev: src/program_areas.h:1.3 Rev: src/test/create_testsuite:1.2
Henrik (Grubba) Grubbström authoredRev: src/Makefile.in:1.65 Rev: src/block_alloc.h:1.4 Rev: src/modules/Makefile.in:1.16 Rev: src/modules/_Crypto/lib/Makefile.in:1.18 Rev: src/modules/_Crypto/lib/configure.in:1.5 Rev: src/modules/_Crypto/lib/idea.c:1.5 Rev: src/modules/_Crypto/lib/install-sh:1.2 Rev: src/modules/_Crypto/lib/md5.c:1.3 Rev: src/modules/_Crypto/lib/sha.c:1.7 Rev: src/modules/_Image_JPEG/Makefile.in:1.2 Rev: src/modules/_Image_JPEG/configure.in:1.3 Rev: src/modules/_Image_JPEG/image_jpeg.c:1.12 Rev: src/modules/call_out/Makefile.in:1.6 Rev: src/modules/call_out/configure.in:1.5 Rev: src/modules/files/Makefile.in:1.6 Rev: src/modules/files/configure.in:1.43 Rev: src/modules/files/efuns.c:1.48 Rev: src/modules/files/file.h:1.9 Rev: src/modules/files/socket.c:1.31 Rev: src/modules/math/Makefile.in:1.5 Rev: src/modules/math/configure.in:1.4 Rev: src/modules/math/math.c:1.10 Rev: src/modules/readline/Makefile.in:1.2 Rev: src/modules/readline/configure.in:1.2 Rev: src/modules/readline/readlinemod.c:1.8 Rev: src/modules/spider/Makefile.in:1.14 Rev: src/modules/spider/accesseddb.c:1.14 Rev: src/modules/spider/acconfig.h:1.3 Rev: src/modules/spider/configure.in:1.23 Rev: src/modules/spider/defs.h:1.4 Rev: src/modules/spider/discdate.c:1.6 Rev: src/modules/spider/stardate.c:1.7 Rev: src/modules/spider/streamed_parser.c:1.9 Rev: src/modules/spider/streamed_parser.h:1.3 Rev: src/modules/sprintf/Makefile.in:1.6 Rev: src/modules/sprintf/configure.in:1.4 Rev: src/modules/system/Makefile.in:1.5 Rev: src/modules/system/configure.in:1.20 Rev: src/program_areas.h:1.3 Rev: src/test/create_testsuite:1.2
Program.pmod 1.71 KiB
#pike __REAL_VERSION__
#pragma strict_types
constant inherit_list = __builtin.inherit_list;
constant inherits = __builtin.program_inherits;
constant implements = __builtin.program_implements;
// 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);
}
//! 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.
//!
//! @example
//! > class a{}
//! > class b{}
//! > class c{ inherit a; }
//! > class d{ inherit b; inherit c; }
//! > Program.inherit_tree(d);
//! Result: ({ /* 3 elements */
//! d,
//! ({ /* 1 element */
//! program
//! }),
//! ({ /* 2 elements */
//! c,
//! ({ /* 1 element */
//! program
//! })
//! })
//! })
array inherit_tree(program p)
{
return ({ p })+
Array.map(inherit_list(p),inherit_tree);
}