示例#1
0
void aplus_main(long argc, char** argv)
{
#if !defined(_INTERPRETER_ONLY)
        extern void AplusLoop();
#endif  
	I i; /* the number of arguments parsed */

#if !defined(_INTERPRETER_ONLY)
	dapinit();
#endif
	initReleaseData(_releaseCode);
	initVersion();
	initDefaultATREE(argv[0]);
	initCallouts();
	i = parseargs(argc, argv);
	if( !_quiet )
	  printId();
	atmpinit();
	envinit();
	if(0!=_megsforheap)setk1(_megsforheap);  /* must be before mem init! */
	ai(_workarea);                           /* initialize */
        if(_enable_coredump)
          {
            setSigv(1);
            setSigb(1);
            coreLimSet(aplusInfinity);
          }
	versSet(_version);
	releaseCodeSet(_releaseCode);
	phaseOfReleaseSet(_phaseOfRelease);
	majorReleaseSet(_majorRelease);
	minorReleaseSet(_minorRelease);
	startupSyslog(_version);
	xi(argv[0]);                             /* installation */
	argvInstall(argc, argv, i);              /* set up _argv */
	uextInstall();                           /* user lib install */
#if !defined(_INTERPRETER_ONLY)
	AplusLoop(argc, argv, i);
#else
        if (i < argc && argv[i] && *argv[i])
          loadafile(argv[i],0);
	if (Tf) pr(); 
	while(1) getm();
#endif
/**********************************************************************
    These functions are moved to AplusLoop 

	if (i < argc && argv[i] && *argv[i])
		loadafile(argv[i],0);                / * load script * /
	if (Tf) pr();                                / * initial prompt * /

**********************************************************************/
}
示例#2
0
void ipcInstall(void)
{
  CX saveCx=Cx;
  Cx=cx("i");
  install((PFI)ipcRoster,       "roster",   A_, 0,  0,  0,  0,  0,  0, 0,0,0);
  install((PFI)ipcListenNPP,    "listenNPP",IV, 4, A_, A_, IV, A_,  0, 0,0,0);
  install((PFI)ipcListenN,      "listenN",  IV, 2, A_, A_, 0,   0,  0, 0,0,0);
  install((PFI)ipcListenNP,     "listenNP", IV, 3, A_, A_, A_,  0,  0, 0,0,0);
  install((PFI)ipcConnectNHPP,"connectNHPP",IV, 5, A_, A_, A_, IV, A_, 0,0,0);
  install((PFI)ipcConnectN,     "connectN", IV, 2, A_, A_,  0,  0,  0, 0,0,0);
  install((PFI)ipcConnectNP,    "connectNP",IV, 3, A_, A_, A_,  0,  0, 0,0,0);
  install((PFI)ipcTimer,        "timer",    IV, 2, A_, A_,  0,  0,  0, 0,0,0);
  install((PFI)ipcOpen,         "open",     IV, 1, IV,  0,  0,  0,  0, 0,0,0);
  install((PFI)ipcOpenSync,     "openSync", IV, 2, IV, IV,  0,  0,  0, 0,0,0);
  install((PFI)ipcSend,         "send",     IV, 2, IV, A_,  0,  0,  0, 0,0,0);
  install((PFI)ipcSyncSend,     "syncsend", A_, 3, IV, A_, A_,  0,  0, 0,0,0);
  install((PFI)ipcSyncRead,     "syncread", A_, 2, IV, A_,  0,  0,  0, 0,0,0);
  install((PFI)ipcGetTimeout,   "timeout",  A_, 1, A_,  0,  0,  0,  0, 0,0,0);
  install((PFI)ipcSetDebug,     "setdebug", IV, 2, IV, A_,  0,  0,  0, 0,0,0);
  install((PFI)ipcDebug,        "debug",    IV, 1, IV,  0,  0,  0,  0, 0,0,0);
  install((PFI)ipcDestroy,      "destroy",  IV, 1, IV,  0,  0,  0,  0, 0,0,0);
  install((PFI)ipcClose,        "close",    IV, 1, IV,  0,  0,  0,  0, 0,0,0);
  install((PFI)ipcAttrlists,    "attrs",    A_, 1, IV,  0,  0,  0,  0, 0,0,0);
  install((PFI)ipcSetAttr,      "setattr",  IV, 3, IV, A_, A_,  0,  0, 0,0,0);
  install((PFI)ipcGetAttr,      "getattr",  A_, 2, IV, A_,  0,  0,  0, 0,0,0);
  install((PFI)ipcWhatis,       "whatis",   A_, 1, IV,  0,  0,  0,  0, 0,0,0);

  Cx=saveCx;

  {
    char *atree;
    char *ipcfile;
    
    if ((atree = getenv("ATREE")) == (char *)(0))
    {
      atree = "/usr/local/a+";
    }
    ipcfile = bnstring(atree, "/lib/idap.+", (char *)(0));
    loadafile(ipcfile,0);
    bfree(ipcfile);
  }
}