home *** CD-ROM | disk | FTP | other *** search
- /*
- * Copyright 1991, 1992, 1993, 1994, Silicon Graphics, Inc.
- * All Rights Reserved.
- *
- * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, Inc.;
- * the contents of this file may not be disclosed to third parties, copied or
- * duplicated in any form, in whole or in part, without the prior written
- * permission of Silicon Graphics, Inc.
- *
- * RESTRICTED RIGHTS LEGEND:
- * Use, duplication or disclosure by the Government is subject to restrictions
- * as set forth in subdivision (c)(1)(ii) of the Rights in Technical Data
- * and Computer Software clause at DFARS 252.227-7013, and/or in similar or
- * successor clauses in the FAR, DOD or NASA FAR Supplement. Unpublished -
- * rights reserved under the Copyright Laws of the United States.
- */
- /*
- * iflsbuf -
- *
- * Paul Haeberli - 1984
- *
- */
- #include "image.h"
-
- iflsbuf(image, c)
- register IMAGE *image;
- unsigned long c;
- {
- register unsigned short *base;
- register n, rn;
- char c1;
- 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);
- }
-