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.