예제 #1
0
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);
}
예제 #2
0
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);
}
예제 #3
0
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;
}