ftp.nice.ch/pub/next/unix/graphics/urt.3.0.s.tar.gz#/urt.3.0.s/tools/rleaddeof.c

This is rleaddeof.c in view mode; [Download] [Up]

/* 
 * rleaddeof.c - Add an EOF opcode to RLE files without one.
 * 
 * Author:	Spencer W. Thomas
 * 		Computer Science Dept.
 * 		University of Michigan
 * Date:	February, 1990
 * Copyright (c) 1990, The Regents of the University of Michigan
 */

#include <stdio.h>
#include <rle.h>
#include <rle_raw.h>
#ifdef USE_STDLIB_H
#include <stdlib.h>
#endif

/*****************************************************************
 * TAG( main )
 * 
 * Usage:
 *     rleaddeof [-o outfile] [infile]
 * Inputs:
 *	infile:		If specified, input will be read from here,
 *			otherwise, input will be read from stdin.
 * Outputs:
 *	-o outfile:	Writes the output image to this file with an
 *			EOF opcode appended. Default is stdout.
 * Assumptions:
 *	[None]
 * Algorithm:
 *	[None]
 */
void
main( argc, argv )
int argc;
char **argv;
{
    char * infname = NULL, *outfname = NULL;
    int oflag = 0;
    FILE *outfile = stdout;
    rle_hdr in_hdr, out_hdr;
    int rle_cnt, rle_err;

    if ( scanargs( argc, argv, "% o%-outfile!s infile%s",
		   &oflag, &outfname, &infname ) == 0 )
	exit( 1 );

    /* Open input file */
    in_hdr.rle_file = rle_open_f( "rleaddeof", infname, "r" );
    rle_cnt = 0;
    while ( (rle_err = rle_get_setup( &in_hdr )) == RLE_SUCCESS )
    {
	/* Open output after first successful read. */
	if ( rle_cnt == 0 )
	    outfile = rle_open_f( "rleaddeof", outfname, "w" );
	rle_cnt++;

	/* Copy input to output file */
	out_hdr = in_hdr;
	out_hdr.rle_file = outfile;
	rle_put_setup( &out_hdr );

	rle_cp( &in_hdr, &out_hdr );
    }

    /* Check for an error.  EOF or EMPTY is ok if at least one image
     * has been read.  Otherwise, print an error message.
     */
    if ( rle_cnt == 0 || (rle_err != RLE_EOF && rle_err != RLE_EMPTY) )
	rle_get_error( rle_err, cmd_name( argv ), infname );


    exit( 0 );
}

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.