diff --git a/src/program.c b/src/program.c index 270321fba9f112fe987ba2a38559c2c479896041..a65b25795c67416067b01b0e720c6d511f8bba2c 100644 --- a/src/program.c +++ b/src/program.c @@ -4,7 +4,7 @@ ||| See the files COPYING and DISCLAIMER for more information. \*/ #include "global.h" -RCSID("$Id: program.c,v 1.19 1997/02/07 01:34:19 hubbe Exp $"); +RCSID("$Id: program.c,v 1.20 1997/02/11 07:20:15 hubbe Exp $"); #include "program.h" #include "object.h" #include "dynamic_buffer.h" @@ -1066,6 +1066,21 @@ int add_program_constant(char *name, return ret; } +int add_function_constant(char *name, void (*cfun)(INT32), char * type, INT16 flags) +{ + struct svalue s; + struct pike_string *n; + INT32 ret; + + s.type=T_FUNCTION; + s.subtype=FUNCTION_BUILTIN; + s.u.efun=make_callable(cfun, name, type, flags, 0, 0); + ret=simple_add_constant(name, &s, 0); + free_svalue(&s); + return ret; +} + + int end_class(char *name, INT32 flags) { INT32 ret; diff --git a/src/program.h b/src/program.h index d48a69e81a042c01a499490baf6792cb1ae647e3..0a3ad12dc1f476ecc01c3d655605597efce5a668 100644 --- a/src/program.h +++ b/src/program.h @@ -220,6 +220,8 @@ int add_string_constant(char *name, int add_program_constant(char *name, struct program *p, INT32 flags); +int add_function_constant(char *name, void (*cfun)(INT32), char * type, INT16 flags); +int end_class(char *name, INT32 flags); INT32 define_function(struct pike_string *name, struct pike_string *type, INT16 flags,