view ueda/libuschem/graphblocks.c @ 30:a93e4b07fdf3

unet-destar: pass attributes through
author Space Falcon <falcon@ivan.Harhan.ORG>
date Sat, 08 Aug 2015 21:23:19 +0000
parents cd92449fdb51
children
line wrap: on
line source

/*
 * utility functions for working with graphical blocks
 */

#include <sys/param.h>
#include <stdio.h>
#include "schemstruct.h"

FILE *
reopen_schem_for_graphblocks(schem)
	struct schem *schem;
{
	register FILE *f;

	if (!schem->has_graphblocks)
		return(NULL);
	f = fopen(schem->orig_filename, "r");
	if (!f) {
		fprintf(stderr, "Unable to reopen %s for graphblocks: ",
			schem->orig_filename);
		perror(NULL);
		exit(1);
	}
	return(f);
}

write_graphblock_to_file(blk, inf, outf)
	struct graphblock *blk;
	register FILE *inf, *outf;
{
	char buf[512];
	register int cc, rem;

	fseek(inf, blk->offset, 0);
	for (rem = blk->length; rem; rem -= cc) {
		cc = MIN(rem, sizeof buf);
		fread(buf, 1, cc, inf);
		fwrite(buf, 1, cc, outf);
	}
}