/* * Generates the backbone of the pages. * * Formats the links, image references, * embeds navigation, and widgets * * @param *dir Container dir of the layout to process */ static void process_layout(Dir *dir) { int i; char **layout; char *placeholder; if (has_layout(dir) != 0) { layout = &(dir->files[dir->layout_index])->content; } else { return; } format_text_link(layout); format_text_img(layout); embed_navigation(layout); for (i=0; i < dir->files_count; i++) { if (strcmp(dir->files[i]->extension, "widget") == 0) { placeholder = (char *)smalloc( (strlen("{widget:")+strlen(dir->files[i]->name)+2) * sizeof(char) ); strcpy(placeholder, "{widget:"); strcat(placeholder, dir->files[i]->name); strcat(placeholder, "}"); replace_placeholder( layout, placeholder, dir->files[i]->content ); sfree(placeholder); } } }
/** * Processes all the pages in the given directory * * @see format text * @see embed_into_layout * * @param *dir Directory to process */ void generator_process_pages(Dir *dir) { int i; char *layout = NULL; if (has_layout(dir) != 0) { layout = dir->files[dir->layout_index]->content; } for (i=0; i < dir->files_count; i++) { if ( strcmp(dir->files[i]->extension, "page") == 0) { /*format*/ format_text(&(dir->files[i])->content); /*embed into layout*/ if (layout != NULL) { embed_into_layout( &(dir->files[i])->content, layout ); } } } }
int h5repack_verify(const char *fname, pack_opt_t *options) { hid_t fid; /* file ID */ hid_t dset_id=-1; /* dataset ID */ hid_t dcpl_id=-1; /* dataset creation property list ID */ hid_t space_id=-1; /* space ID */ int ret=1; unsigned int i; int j; trav_table_t *travt=NULL; /* open the file */ if ((fid=H5Fopen(fname,H5F_ACC_RDONLY,H5P_DEFAULT))<0 ) return -1; for ( i=0; i<options->op_tbl->nelems; i++) { char* name=options->op_tbl->objs[i].path; pack_info_t *obj = &options->op_tbl->objs[i]; /*------------------------------------------------------------------------- * open *------------------------------------------------------------------------- */ if ((dset_id=H5Dopen(fid,name))<0) goto error; if ((space_id=H5Dget_space(dset_id))<0) goto error; if ((dcpl_id=H5Dget_create_plist(dset_id))<0) goto error; /*------------------------------------------------------------------------- * filter check *------------------------------------------------------------------------- */ for ( j=0; j<obj->nfilters; j++) { if (has_filter(dcpl_id,obj->filter[j].filtn)==0) ret=0; } /*------------------------------------------------------------------------- * layout check *------------------------------------------------------------------------- */ if ((obj->layout!=-1) && (has_layout(dcpl_id,obj)==0)) ret=0; /*------------------------------------------------------------------------- * close *------------------------------------------------------------------------- */ if (H5Pclose(dcpl_id)<0) goto error; if (H5Sclose(space_id)<0) goto error; if (H5Dclose(dset_id)<0) goto error; } /*------------------------------------------------------------------------- * check for the "all" objects option *------------------------------------------------------------------------- */ if (options->all_filter==1 || options->all_layout==1) { /* init table */ trav_table_init(&travt); /* get the list of objects in the file */ if (h5trav_gettable(fid,travt)<0) goto error; for ( i=0; i<travt->nobjs; i++) { char* name=travt->objs[i].name; switch ( travt->objs[i].type ) { case H5G_DATASET: /*------------------------------------------------------------------------- * open *------------------------------------------------------------------------- */ if ((dset_id=H5Dopen(fid,name))<0) goto error; if ((space_id=H5Dget_space(dset_id))<0) goto error; if ((dcpl_id=H5Dget_create_plist(dset_id))<0) goto error; /*------------------------------------------------------------------------- * filter check *------------------------------------------------------------------------- */ if (options->all_filter==1 ){ if (has_filter(dcpl_id,options->filter_g.filtn)==0) ret=0; } /*------------------------------------------------------------------------- * layout check *------------------------------------------------------------------------- */ if (options->all_layout==1){ pack_info_t pack; init_packobject(&pack); pack.layout=options->layout_g; pack.chunk=options->chunk_g; if (has_layout(dcpl_id,&pack)==0) ret=0; } /*------------------------------------------------------------------------- * close *------------------------------------------------------------------------- */ if (H5Pclose(dcpl_id)<0) goto error; if (H5Sclose(space_id)<0) goto error; if (H5Dclose(dset_id)<0) goto error; break; default: break; } /* switch */ } /* i */ /* free table */ trav_table_free(travt); } /*------------------------------------------------------------------------- * close *------------------------------------------------------------------------- */ if (H5Fclose(fid)<0) return -1; return ret; error: H5E_BEGIN_TRY { H5Pclose(dcpl_id); H5Sclose(space_id); H5Dclose(dset_id); H5Fclose(fid); if (travt) trav_table_free(travt); } H5E_END_TRY; return -1; }