[BACK]Return to flsbuf.c CVS log [TXT][DIR] Up to [Development] / projects / inventor / libimage

File: [Development] / projects / inventor / libimage / flsbuf.c (download)

Revision 1.2, Fri Jun 22 22:06:59 2001 UTC (16 years, 4 months ago) by jlim
Branch: MAIN
CVS Tags: release-2_1_5-9, release-2_1_5-8, release-2_1_5-10, HEAD
Changes since 1.1: +0 -1 lines

Made several changes:

  1. Removed unreferenced variables.

  2. Fixed miscellaneous warnings (typedefs and function declarations).

  3. Moved MENUS_IN_POPUP from various files to make/ivcommondefs.

  4. Fixed IRIX build problems.

/*
 *	iflsbuf -
 *
 *				Paul Haeberli - 1984
 *
 */
#include	"image.h"

unsigned int iflsbuf(IMAGE *image, unsigned int c)
{
	register unsigned short *base;
	register int n, rn;
	int size;

	if ((image->flags&_IOWRT)==0)
		return(EOF);
	if ((base=image->base)==NULL) {
		size = IBUFSIZE(image->xsize);
		if ((image->base=base=ibufalloc(image)) == NULL) {
			i_errhdlr("flsbuf: error on buf alloc\n");
			return EOF;
		}
		rn = n = 0;
	} else if ((rn = n = image->ptr - base) > 0)  {
			n = putrow(image,base,image->y,image->z);
			if(++image->y >= image->ysize) {
			    image->y = 0;
			    if(++image->z >= image->zsize) {
				image->z = image->zsize-1;
				image->flags |= _IOEOF;
				return -1;
			    }
			}
 	}
	image->cnt = image->xsize-1;
	*base++ = c;
	image->ptr = base;
	if (rn != n) {
		image->flags |= _IOERR;
		return(EOF);
	}
	return(c);
}