static void css_error1(CSSParseState *b, const char *fmt, ...) { char buf[1024]; va_list ap; va_start(ap, fmt); vsnprintf(buf, sizeof(buf), fmt, ap); css_error(b->filename, b->line_num, buf); va_end(ap); }
static void xml_error(XMLState *s, const char *fmt, ...) { char buf[1024]; va_list ap; va_start(ap, fmt); vsnprintf(buf, sizeof(buf), fmt, ap); css_error(s->filename, s->line_num, buf); va_end(ap); }
int WriteCSSflatFiles(const char *WorkSetName, const char *basename) { FILE *ptr; struct affiliationList *af = 0; struct arrivalList *ar = 0; struct assocList *as = 0; struct eventList *ev = 0; struct gregionList *gr = 0; struct instrumentList *in = 0; struct origerrList *oe = 0; struct originList *orig = 0; struct remarkList *re = 0; struct sensorList *se = 0; struct siteList *si = 0; struct sitechanList *sc = 0; struct stassocList *sa = 0; struct wfdiscList *w = 0; struct wftagList *wt = 0; struct sacdataList *sd = 0; DBlist tree; char* FileName; if(!basename || ! strlen(basename)){ css_error("Invalid basename.\n"); return 0; } if(!WorkSetName || !strlen(WorkSetName) ){ css_error("Invalid worksetname. Cannot write CSS binary data to file.\n"); return 0; } if(!smChangeDefaultWorksetByName( (char*)WorkSetName )){ css_error("Workset %s is empty orig does not exist\n", WorkSetName); return 0; } tree = smGetDefaultTree(); if(!tree)return 0; gcCollect ( tree ) ; if(HasAffiliationStructs( tree ) ){ FileName = MakeFileName( basename, "affiliation"); if(! (ptr = fopen( FileName, "w" ) ) ){ css_error("Unable to open output file (%s)\n",FileName); return 0; } do{ if(!(af = (struct affiliationList*) dblNextTableInstance(af, tree, dbl_LIST_AFFILIATION) ) ) break; if(!WriteAffiliationRecord(af, ptr) ){ fclose(ptr); free(FileName); return 0; } }while(af); fclose(ptr); free(FileName); } if(HasArrivalStructs( tree ) ){ FileName = MakeFileName( basename, "arrival"); if(! (ptr = fopen( FileName, "w" ) ) ){ css_error("Unable to open output file (%s)\n",FileName); return 0; } do{ if(!(ar = (struct arrivalList*) dblNextTableInstance(ar, tree, dbl_LIST_ARRIVAL) ) ) break; if(!WriteArrivalRecord(ar, ptr) ){ fclose(ptr); free(FileName); return 0; } }while(ar); fclose(ptr); free(FileName); } if(HasAssocStructs( tree ) ){ FileName = MakeFileName( basename, "assoc"); if(! (ptr = fopen( FileName, "w" ) ) ){ css_error("Unable to open output file (%s)\n",FileName); return 0; } do{ if(!(as = (struct assocList*) dblNextTableInstance(as, tree, dbl_LIST_ASSOC) ) ) break; if(!WriteAssocRecord(as, ptr) ){ fclose(ptr); free(FileName); return 0; } }while(as); fclose(ptr); free(FileName); } if(HasEventStructs( tree ) ){ FileName = MakeFileName( basename, "event"); if(! (ptr = fopen( FileName, "w" ) ) ){ css_error("Unable to open output file (%s)\n",FileName); return 0; } do{ if(!(ev = (struct eventList*) dblNextTableInstance(ev, tree, dbl_LIST_EVENT) ) ) break; if(!WriteEventRecord(ev, ptr) ){ fclose(ptr); free(FileName); return 0; } }while(ev); fclose(ptr); free(FileName); } if(HasGregionStructs( tree ) ){ FileName = MakeFileName( basename, "gregion"); if(! (ptr = fopen( FileName, "w" ) ) ){ css_error("Unable to open output file (%s)\n",FileName); return 0; } do{ if(!(gr = (struct gregionList*) dblNextTableInstance(gr, tree, dbl_LIST_GREGION) ) ) break; if(!WriteGregionRecord(gr, ptr) ){ fclose(ptr); free(FileName); return 0; } }while(gr); fclose(ptr); free(FileName); } if(HasInstrumentStructs( tree ) ){ FileName = MakeFileName( basename, "instrument"); if(! (ptr = fopen( FileName, "w" ) ) ){ css_error("Unable to open output file (%s)\n",FileName); return 0; } do{ if(!(in = (struct instrumentList*) dblNextTableInstance(in, tree, dbl_LIST_INSTRUMENT) ) ) break; if(!WriteInstrumentRecord(in, ptr) ){ fclose(ptr); free(FileName); return 0; } }while(in); fclose(ptr); free(FileName); } if(HasOrigerrStructs( tree ) ){ FileName = MakeFileName( basename, "origerr"); if(! (ptr = fopen( FileName, "w" ) ) ){ css_error("Unable to open output file (%s)\n",FileName); return 0; } do{ if(!(oe = (struct origerrList*) dblNextTableInstance(oe, tree, dbl_LIST_ORIGERR) ) ) break; if(!WriteOrigerrRecord(oe, ptr) ){ fclose(ptr); free(FileName); return 0; } }while(oe); fclose(ptr); free(FileName); } if(HasOriginStructs( tree ) ){ FileName = MakeFileName( basename, "origin"); if(! (ptr = fopen( FileName, "w" ) ) ){ css_error("Unable to open output file (%s)\n",FileName); return 0; } do{ if(!(orig = (struct originList*) dblNextTableInstance(orig, tree, dbl_LIST_ORIGIN) ) ) break; if(!WriteOriginRecord(orig, ptr) ){ fclose(ptr); free(FileName); return 0; } }while(orig); fclose(ptr); free(FileName); } if(HasRemarkStructs( tree ) ){ FileName = MakeFileName( basename, "remark"); if(! (ptr = fopen( FileName, "w" ) ) ){ css_error("Unable to open output file (%s)\n",FileName); return 0; } do{ if(!(re = (struct remarkList*) dblNextTableInstance(re, tree, dbl_LIST_REMARK) ) ) break; if(!WriteRemarkRecord(re, ptr) ){ fclose(ptr); free(FileName); return 0; } }while(re); fclose(ptr); free(FileName); } if(HasSensorStructs( tree ) ){ FileName = MakeFileName( basename, "sensor"); if(! (ptr = fopen( FileName, "w" ) ) ){ css_error("Unable to open output file (%s)\n",FileName); return 0; } do{ if(!(se = (struct sensorList*) dblNextTableInstance(se, tree, dbl_LIST_SENSOR) ) ) break; if(!WriteSensorRecord(se, ptr) ){ fclose(ptr); free(FileName); return 0; } }while(se); fclose(ptr); free(FileName); } if(HasSiteStructs( tree ) ){ FileName = MakeFileName( basename, "site"); if(! (ptr = fopen( FileName, "w" ) ) ){ css_error("Unable to open output file (%s)\n",FileName); return 0; } do{ if(!(si = (struct siteList*) dblNextTableInstance(si, tree, dbl_LIST_SITE) ) ) break; if(!WriteSiteRecord(si, ptr) ){ fclose(ptr); free(FileName); return 0; } }while(si); fclose(ptr); free(FileName); } if(HasSitechanStructs( tree ) ){ FileName = MakeFileName( basename, "sitechan"); if(! (ptr = fopen( FileName, "w" ) ) ){ css_error("Unable to open output file (%s)\n",FileName); return 0; } do{ if(!(sc = (struct sitechanList*) dblNextTableInstance(sc, tree, dbl_LIST_SITECHAN) ) ) break; if(!WriteSitechanRecord(sc, ptr) ){ fclose(ptr); free(FileName); return 0; } }while(sc); fclose(ptr); free(FileName); } if(HasStassocStructs( tree ) ){ FileName = MakeFileName( basename, "stassoc"); if(! (ptr = fopen( FileName, "w" ) ) ){ css_error("Unable to open output file (%s)\n",FileName); return 0; } do{ if(!(sa = (struct stassocList*) dblNextTableInstance(sa, tree, dbl_LIST_SITECHAN) ) ) break; if(!WriteStassocRecord(sa, ptr) ){ fclose(ptr); free(FileName); return 0; } }while(sa); fclose(ptr); free(FileName); } if(HasWfdiscStructs( tree ) ){ FileName = MakeFileName( basename, "wfdisc"); if(! (ptr = fopen( FileName, "w" ) ) ){ css_error("Unable to open output file (%s)\n",FileName); return 0; } do{ if(!(w = (struct wfdiscList*) dblNextTableInstance(w, tree, dbl_LIST_WFDISC) ) ) break; if(!WriteWfdiscRecord(basename, w, ptr) ){ fclose(ptr); free(FileName); return 0; } }while(w); fclose(ptr); free(FileName); } if(HasWftagStructs( tree ) ){ FileName = MakeFileName( basename, "wftag"); if(! (ptr = fopen( FileName, "w" ) ) ){ css_error("Unable to open output file (%s)\n",FileName); return 0; } do{ if(!(wt = (struct wftagList*) dblNextTableInstance(wt, tree, dbl_LIST_WFTAG) ) ) break; if(!WriteWftagRecord(wt, ptr) ){ fclose(ptr); free(FileName); return 0; } }while(wt); fclose(ptr); free(FileName); } if(HasSacdataStructs( tree ) ){ FileName = MakeFileName( basename, "sacdata"); if(! (ptr = fopen( FileName, "w" ) ) ){ css_error("Unable to open output file (%s)\n",FileName); return 0; } do{ if(!(sd = (struct sacdataList*) dblNextTableInstance(sd, tree, dbl_LIST_SACDATA) ) ) break; if(!WriteSacdataRecord(sd, ptr) ){ fclose(ptr); free(FileName); return 0; } }while(sd); fclose(ptr); free(FileName); } return 1; }