diff --git a/src/constants.c b/src/constants.c index fd0a8559500879f755d642241c5709e50c67d16e..a19c5171e4c197ba1c17bd4c05954cea1bf44526 100644 --- a/src/constants.c +++ b/src/constants.c @@ -43,6 +43,23 @@ void low_add_efun(struct pike_string *name, struct svalue *fun) } } +void low_add_constant(char *name, struct svalue *fun) +{ + struct pike_string *p; + p=make_shared_string(name); + low_add_efun(p, fun); + free_string(p); +} + +void add_global_program(char *name, struct program *p) +{ + struct svalue s; + s.type=T_PROGRAM; + s.subtype=0; + s.u.program=p; + low_add_constant(name, &s); +} + struct callable *make_callable(c_fun fun, char *name, char *type, diff --git a/src/constants.h b/src/constants.h index 1c10731dfaac1f6a3fa1c6f6957177f0e2185ed3..f18977e32ea902f0ec16311717eb6fb749584f4a 100644 --- a/src/constants.h +++ b/src/constants.h @@ -28,6 +28,8 @@ struct callable /* Prototypes begin here */ struct mapping *get_builtin_constants(); void low_add_efun(struct pike_string *name, struct svalue *fun); +void low_add_constant(char *name, struct svalue *fun); +void add_global_program(char *name, struct program *p); struct callable *make_callable(c_fun fun, char *name, char *type,