Branch: Tag:

1996-11-27

1996-11-27 09:18:24 by Niels Möller <nisse@lysator.liu.se>

* dynamic_load.c (f_load_module): Fixed bugs when building file
name.

Rev: src/dynamic_load.c:1.5

29:   {    void *module;    struct module_list *new_module; +  int res;       if(sp[-args].type != T_STRING)    error("Bad argument 1 to load_module()\n");
36:   #define RTLD_NOW 0   #endif    module=dlopen(sp[-args].u.string->str, RTLD_NOW); -  pop_stack(); +        if(module)    {
51:    {    char *foo, buf1[1024], buf2[1024];    foo=STRRCHR(sp[-args].u.string->str,'/'); -  if(!foo) foo=sp[-args].u.string->str; +  if(foo)    foo++; -  +  else +  foo=sp[-args].u.string->str;    if(strlen(foo) < 1000)    {    strcpy(buf1, foo);    foo=buf1;    -  while((*foo <= 'a' && *foo >= 'z' ) || (*foo <= 'A' && *foo >= 'Z' )) +  while((*foo >= 'a' && *foo <= 'z' ) || (*foo >= 'A' && *foo <= 'Z' ))    foo++;       *foo=0;
92:    new_module->mod.refs=0;       tmp=current_module; -  current_module=& new_module->mod; +  current_module = & new_module->mod;       (*(fun)init)();    (*(fun)init2)();       current_module=tmp;    -  push_int(1); -  } else { -  push_int(0); +  res = 1; +  } else +  res = 0; +  pop_n_elems(args); +  push_int(res);   } - } +          #endif