This is text2nt.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_appnt=0, i_thisnt=0;
int append = 0;
int verbose = 0;
char filenm[80]; /* files and filenames */
FILE *ifile = stdin;
FILE *ofile = stdout;
#ifndef __STDC__
static
#endif
char outfilenm[80] = "",
appfilenm[80] = "";
ntuple *nt_list = NULL; /* hippo objects */
ntuple appnt=NULL;
display *d_list = NULL;
#ifndef vms
while ((c = getopt( argc, argv, "a:vn:o:f:i:")) != -1)
{
switch (c)
{
case 'n':
sscanf(optarg,"%d",&i_appnt);
break;
case 'a':
/* append ntuple to present output file */
append = 1;
sscanf(optarg,"%s",appfilenm);
if (verbose) fprintf(stderr,"Input hippo file = %s\n",
appfilenm);
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 (append && strcmp(appfilenm,"")>0)
{
if (verbose) fprintf(stderr,
"Appending data to ntuple number %d\n",
i_appnt);
h_read(appfilenm,&d_list,&nt_list);
i = 0;
while (nt_list[i] != NULL) i++;
if (i_appnt >= i)
{
fprintf(stderr,"There are only %d ntuple in file %s\n",
i,appfilenm);
fprintf(stderr,"Remember: ntuples are numbered from 0\n");
exit(EXIT_FAILURE);
}
else
{
appnt = nt_list[i_appnt];
i_thisnt = i_appnt;
}
}
else if (append)
{
fprintf(stderr,"Asked for append, but no input file\n");
exit(EXIT_FAILURE);
}
else
{
i_thisnt = 0;
nt_list = (ntuple *) malloc( 2*sizeof(ntuple) );
nt_list[1] = NULL;
d_list = (display *) malloc( sizeof(display) );
d_list[0] = NULL;
appnt = NULL;
}
/*
* options are all set. Call h_fileParse to read file.
*/
nt_list[i_thisnt] = h_fileParse(ifile, appnt, verbose );
/*
* write out the file.
*/
if (h_writeStream(ofile, d_list, nt_list ) != 0)
{
fprintf(stderr,"Could not write file\n");
exit(EXIT_FAILURE);
}
exit(EXIT_SUCCESS);
}
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.