5
/* #include <arbdb.h> */
8
GBDATA *GB_follow_link(GBDATA *gb_link){
12
GB_MAIN_TYPE *Main = GB_MAIN(gb_link);
15
link = (char *)GB_read_link_pntr(gb_link);
19
GB_export_errorf("Your link '%s' does not contain a ':' character",link);
24
lf = (GB_Link_Follower)GBS_read_hash(Main->resolve_link_hash,link);
27
GB_export_errorf("Your link tag '%s' is unknown to the system",link);
30
result = lf(GB_get_root(gb_link),gb_link,s+1);
35
GB_ERROR GB_install_link_follower(GBDATA *gb_main, const char *link_type, GB_Link_Follower link_follower){
37
GB_MAIN_TYPE *Main = GB_MAIN(gb_main);
38
if (!Main->resolve_link_hash){
39
Main->resolve_link_hash = GBS_create_hash(256, GB_MIND_CASE);
41
error = GB_check_link_name(link_type);
42
if (error) return error;
43
GBS_write_hash(Main->resolve_link_hash, link_type,(long)link_follower);