view ueda/libuschem/graphblocks.c @ 145:5e91200bf609

netdiff: donl-pinreport utility written, compiles
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 15 Nov 2020 01:17:10 +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);
	}
}