void fileWriterFree(void* ptrFileWriter){ FileWriter *ID = (FileWriter*)ptrFileWriter; /* If this FileWriter writes in a CombiTimeTable format, prepend the required header now that we know how many lines have been written. */ if (ID->isCombiTimeTable){ char* buf; asprintf(&buf,"#1\ndouble csv(%i,%i)\n",ID->numRows,ID->numColumns); prependString(ID->fileWriterName, buf); free(buf); } freeBase(ptrFileWriter); return; }
void jsonWriterFree(void* ptrFileWriter){ FileWriter *ID = (FileWriter*)ptrFileWriter; int i; /* If this FileWriter writes output at terminal(), dump data upon destruction. */ if (ID->dumpAtDestruction){ writeJson(ptrFileWriter, ID->varVals, ID->numKeys); } free(ID->varVals); for (i = 0; i < ID->numKeys; ++i) { free(ID->varKeys[i]); } free(ID->varKeys); freeBase(ptrFileWriter); return; }
ULONG query(void) { LONG which = (LONG)REG_D0; #else ULONG SAVEDS ASM query(REG(d0,LONG which)) { #endif switch (which) { case 0: return (ULONG)lib_class; default: return 0; } } /****************************************************************************/ void freeBase(void) { if (MUIMasterBase) { freeAttach(); freeMCC(); CloseLibrary(MUIMasterBase); MUIMasterBase = NULL; } if (IFFParseBase) { CloseLibrary((struct Library *)IFFParseBase); IFFParseBase = NULL; } if (LocaleBase) { if (lib_cat) CloseCatalog(lib_cat); CloseLibrary((struct Library *)LocaleBase); } if (UtilityBase) { CloseLibrary(UtilityBase); UtilityBase = NULL; } if (IntuitionBase) { CloseLibrary((struct Library *)IntuitionBase); IntuitionBase = NULL; } if (DOSBase) { CloseLibrary((struct Library *)DOSBase); DOSBase = NULL; } if (lib_pool) { DeletePool(lib_pool); lib_pool = NULL; } lib_flags &= ~(BASEFLG_Init|BASEFLG_MUI20); } /***********************************************************************/ ULONG initBase(void) { if ((DOSBase = (struct DosLibrary *)OpenLibrary("dos.library",37)) && (IntuitionBase = (struct IntuitionBase *)OpenLibrary("intuition.library",37)) && (UtilityBase = OpenLibrary("utility.library",37)) && (LocaleBase = (struct LocaleBase *)OpenLibrary("locale.library",37)) && (IFFParseBase = OpenLibrary("iffparse.library",37)) && (MUIMasterBase = OpenLibrary("muimaster.library",19)) && (lib_pool = CreatePool(MEMF_ANY|MEMF_CLEAR,512,256))) { if (MUIMasterBase->lib_Version>=MUIVER20) lib_flags |= BASEFLG_MUI20; initStrings(); if (initAttach() && initMCC()) { lib_flags |= BASEFLG_Init; return TRUE; } } freeBase(); return FALSE; }
ULONG initBase(struct LibraryHeader *lib) { ENTER(); if((DOSBase = (APTR)OpenLibrary("dos.library", 37)) != NULL && GETINTERFACE(IDOS, DOSBase)) { if((UtilityBase = (APTR)OpenLibrary("utility.library", 37)) != NULL && GETINTERFACE(IUtility, UtilityBase)) { // we have to please the internal utilitybase // pointers of libnix and clib2 #if !defined(__NEWLIB__) && !defined(__AROS__) __UtilityBase = (APTR)UtilityBase; #if defined(__amigaos4__) __IUtility = IUtility; #endif #endif // setup the debugging stuff #if defined(DEBUG) SetupDebug(); #endif #if defined(__amigaos4__) if((DiskfontBase = OpenLibrary("diskfont.library", 50)) != NULL && GETINTERFACE(IDiskfont, DiskfontBase)) { #endif #if defined(__amigaos4__) lib->pool = AllocSysObjectTags(ASOT_MEMPOOL, ASOPOOL_MFlags, MEMF_SHARED, ASOPOOL_Puddle, 4096, ASOPOOL_Threshold, 512, ASOPOOL_Name, "codesets.library pool", ASOPOOL_LockMem, FALSE, TAG_DONE); #else lib->pool = CreatePool(MEMF_ANY, 4096, 512); #endif if(lib->pool != NULL) { if(codesetsInit(&lib->codesets) == TRUE) { lib->systemCodeset = (struct codeset *)GetHead((struct List *)&lib->codesets); if((LocaleBase = (APTR)OpenLibrary("locale.library", 37)) != NULL && GETINTERFACE(ILocale, LocaleBase)) { getSystemCodeset(lib); } RETURN(TRUE); return TRUE; } } #if defined(__amigaos4__) } #endif } } freeBase(lib); RETURN(FALSE); return FALSE; }