MCPcopy Create free account
hub / github.com/Singular/Singular / jjLOAD

Function jjLOAD

Singular/iparith.cc:5575–5645  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

5573}
5574
5575BOOLEAN 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*);

Callers 6

jjLOAD2Function · 0.85
jjLOAD_EFunction · 0.85
jjLOAD1Function · 0.85
jjLOAD_TRYFunction · 0.85
pyobject_loadFunction · 0.85
grammar.ccFile · 0.85

Calls 11

type_of_LIBFunction · 0.85
WerrorFunction · 0.85
iiConvNameFunction · 0.85
enteridFunction · 0.85
feFopenFunction · 0.85
iiLoadLIBFunction · 0.85
load_builtinFunction · 0.85
iiGetBuiltinModInitFunction · 0.85
load_modulesFunction · 0.85
WerrorSFunction · 0.85
get_levelMethod · 0.80

Tested by

no test coverage detected