| 5573 | } |
| 5574 | |
| 5575 | BOOLEAN jjLOAD(const char *s, BOOLEAN autoexport) |
| 5576 | { |
| 5577 | char libnamebuf[1024]; |
| 5578 | lib_types LT = type_of_LIB(s, libnamebuf); |
| 5579 | |
| 5580 | #ifdef HAVE_DYNAMIC_LOADING |
| 5581 | extern BOOLEAN load_modules(const char *newlib, char *fullpath, BOOLEAN autoexport); |
| 5582 | #endif /* HAVE_DYNAMIC_LOADING */ |
| 5583 | switch(LT) |
| 5584 | { |
| 5585 | default: |
| 5586 | case LT_NONE: |
| 5587 | Werror("%s: unknown type", s); |
| 5588 | break; |
| 5589 | case LT_NOTFOUND: |
| 5590 | Werror("cannot open %s", s); |
| 5591 | break; |
| 5592 | |
| 5593 | case LT_SINGULAR: |
| 5594 | { |
| 5595 | char *plib = iiConvName(s); |
| 5596 | idhdl pl = IDROOT->get_level(plib,0); |
| 5597 | if (pl==NULL) |
| 5598 | { |
| 5599 | pl = enterid( plib,0, PACKAGE_CMD, &(basePack->idroot), TRUE ); |
| 5600 | IDPACKAGE(pl)->language = LANG_SINGULAR; |
| 5601 | IDPACKAGE(pl)->libname=omStrDup(s); |
| 5602 | } |
| 5603 | else if (IDTYP(pl)!=PACKAGE_CMD) |
| 5604 | { |
| 5605 | Werror("can not create package `%s`",plib); |
| 5606 | omFreeBinAddr(plib); |
| 5607 | return TRUE; |
| 5608 | } |
| 5609 | else /* package */ |
| 5610 | { |
| 5611 | package pa=IDPACKAGE(pl); |
| 5612 | if ((pa->language==LANG_C) |
| 5613 | || (pa->language==LANG_MIX)) |
| 5614 | { |
| 5615 | Werror("can not create package `%s` - binaries exists",plib); |
| 5616 | omFreeBinAddr(plib); |
| 5617 | return TRUE; |
| 5618 | } |
| 5619 | } |
| 5620 | omFreeBinAddr(plib); |
| 5621 | package savepack=currPack; |
| 5622 | currPack=IDPACKAGE(pl); |
| 5623 | IDPACKAGE(pl)->loaded=TRUE; |
| 5624 | char libnamebuf[1024]; |
| 5625 | FILE * fp = feFopen( s, "r", libnamebuf, TRUE ); |
| 5626 | BOOLEAN bo=iiLoadLIB(fp, libnamebuf, s, pl, autoexport, TRUE); |
| 5627 | currPack=savepack; |
| 5628 | IDPACKAGE(pl)->loaded=(!bo); |
| 5629 | return bo; |
| 5630 | } |
| 5631 | case LT_BUILTIN: |
| 5632 | SModulFunc_t iiGetBuiltinModInit(const char*); |
no test coverage detected