ftp.nice.ch/pub/next/science/mathematics/HippoDraw.2.0.s.tar.gz#/HippoDraw/Hippo.bproj/hippoplotamus/nt2text.c

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

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include "hippo.h"

#ifdef sun
#define EXIT_FAILURE 1
#define EXIT_SUCCESS 0
#endif

#ifndef vms
extern int getopt(int, char **, char *);
#endif

int main(int argc, char **argv)
{
#ifndef vms
     extern char *optarg;
     extern int optind;
#else
     int optind = 1;
#endif

     int c;
     int i;
     int i_ntout=0;
     
     int verbose = 0;
     
     char filenm[80];		/* files and filenames */
     FILE *ifile = stdin;
     FILE *ofile = stdout;
#ifndef __STDC__
     static
#endif
     char outfilenm[80] = "";

     ntuple *nt_list = NULL;		/* hippo objects */
     display *d_list = NULL;

#ifndef vms
     while ((c = getopt( argc, argv, "vn:o:f:i:")) != -1)
     {
	  
	  switch (c)
	  {
	  case 'n':
	       sscanf(optarg,"%d",&i_ntout);
	       break;
	       
	  case 'i':
	  case 'f':
	       sscanf(optarg,"%s",filenm);
	       if (verbose) fprintf(stderr,"Input text file = %s\n",filenm);
	       if ( (ifile = fopen(filenm,"r")) == NULL )
	       {
		    fprintf(stderr,"Error opening text input file %s\n",
			    filenm);
		    exit(EXIT_FAILURE);
	       }
	       break;
	       
	  case 'o':
	       sscanf(optarg,"%s",outfilenm);
	       if (verbose) fprintf(stderr,"outfile = %s\n",outfilenm);
	       if ( (ofile = fopen(outfilenm,"w")) == NULL )
	       {
		    fprintf(stderr,"Error opening hippo output file %s\n",
			    outfilenm);
		    exit(EXIT_FAILURE);
	       }
	       break;

	  case 'v':
	       verbose = 1;
	       break;
	       
	  default:
	  case '?':
	       fprintf(stderr,"Usage: [-v] [-a <appendfile>] [-f <inputfile>]\n");
	       fprintf(stderr,"[-o <outputfile>] [<inputfile> | stdin] [<outputfile> | stdout\n");
	       exit(EXIT_FAILURE);
	  }
     }
#endif				/* ifndef vms */

     /*
      * input file not in option form.
      */
     if (optind < argc)
     {
	  sscanf(argv[optind],"%s",filenm);
	  if (verbose) fprintf(stderr,"Input text file = %s\n",filenm);
	  if ( (ifile = fopen(filenm,"r")) == NULL )
	  {
	       fprintf(stderr,"Error opening text input file %s\n",
		       filenm);
	       exit(EXIT_FAILURE);
	  }
	  optind++;
     }
     
     /*
      * output file not in option form.
      */
     if (optind < argc)
     {
	  sscanf(argv[optind],"%s",outfilenm);
	  if (verbose) fprintf(stderr,"outfile = %s\n",outfilenm);
	  if ( (ofile = fopen(outfilenm,"w")) == NULL )
	  {
	       fprintf(stderr,"Error opening hippo output file %s\n",
		       outfilenm);
	       exit(EXIT_FAILURE);
	  }
	  optind++;
     }

     /*
      * handle appending ntuple to existing file.
      */
     if (h_readStream(ifile,&d_list,&nt_list) != 0)
     {
	  fprintf(stderr,"Could not read file\n");
	  exit(EXIT_FAILURE);
     }
     
     i = 0;
     while (nt_list[i] != NULL) i++;
     if (i_ntout >= i) 
     {
	  fprintf(stderr,"There are only %d ntuple in the input file\n",i);
	  fprintf(stderr,"Remember: ntuples are numbered from 0\n");
	  exit(EXIT_FAILURE);
     }
     
     /*
      * all set. Do it!
      */
     h_nt2text( ofile, nt_list[i_ntout] );

     exit(EXIT_SUCCESS);
}

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