int main(int argc, char* argv[]) { programname = copystring(Basename(argv[0])); argc--, argv++; while (argc && argv[0][0] == '-') { while (*++*argv) switch(**argv) { case 'p': pflag++; break; case 'e': eflag++; epsfwidth = WidthInPoints(*argv + 1); goto nextarg; case 'd': dflag++; goto nextarg; case 'i': switch( *(*argv + 1) ) { case '-': iflag = -1; case '+': default: iflag = 1; } goto nextarg; case 'g': gflag++; goto nextarg; case 'y': yflag++; goto nextarg; case 'b': bflag++; goto nextarg; case 's': sflag++; goto nextarg; case 'm': mflag++; TWENTY = atoi(*argv + 1); if (TWENTY > DEFAULT_TWENTY) Usage(*argv-1); goto nextarg; case 't': tflag++; THRESHOLD_PERCENT = (floatish) atof(*argv + 1); if (THRESHOLD_PERCENT < 0 || THRESHOLD_PERCENT > 5) Usage(*argv-1); goto nextarg; case 'c': cflag++; goto nextarg; case '?': default: Usage(*argv-1); } nextarg: ; argc--, argv++; } hpfile = "stdin"; psfile = "stdout"; hpfp = stdin; psfp = stdout; filter = argc < 1; if (!filter) { pathName = copystring(argv[0]); DropSuffix(pathName, ".hp"); baseName = copystring(Basename(pathName)); hpfp = Fp(pathName, &hpfile, ".hp", "r"); // I changed these two lines to use 'pathName' instead of // 'baseName'. This means that the .ps and .aux files get put in // the same directory as the .hp file. This solved Valgrind bugt // #117686. --njn // psfp = Fp(baseName, &psfile, ".ps", "w"); psfp = Fp(pathName, &psfile, ".ps", "w"); // if (pflag) auxfp = Fp(baseName, &auxfile, ".aux", "r"); if (pflag) auxfp = Fp(pathName, &auxfile, ".aux", "r"); } GetHpFile(hpfp); if (!filter && pflag) GetAuxFile(auxfp); TraceElement(); /* Orders on total, Removes trace elements (tflag) */ if (dflag) Deviation(); /* ReOrders on deviation */ if (iflag) Identorder(iflag); /* ReOrders on identifier */ if (pflag) Reorder(); /* ReOrders on aux file */ if (TWENTY) TopTwenty(); /* Selects top twenty (mflag) */ Dimensions(); areabelow = AreaBelow(); Scale(); PutPsFile(); if (!filter) { auxfp = Fp(baseName, &auxfile, ".aux", "w"); PutAuxFile(auxfp); } return(0); }
int main(int argc, char *argv[]) { programname = copystring(Basename(argv[0])); argc--, argv++; while (argc && argv[0][0] == '-') { while (*++*argv) switch(**argv) { case 'p': pflag++; break; case 'e': eflag++; epsfwidth = WidthInPoints(*argv + 1); goto nextarg; case 'd': dflag++; goto nextarg; case 'i': switch( *(*argv + 1) ) { case '-': iflag = -1; break; case '+': default: iflag = 1; } goto nextarg; case 'g': gflag++; goto nextarg; case 'y': yflag++; goto nextarg; case 'b': bflag++; goto nextarg; case 's': sflag++; goto nextarg; case 'm': mflag++; TWENTY = atoi(*argv + 1); // only 20 keys fit on a page if (TWENTY > DEFAULT_TWENTY) multipageflag++; goto nextarg; case 'M': multipageflag++; goto nextarg; case 't': tflag++; THRESHOLD_PERCENT = (floatish) atof(*argv + 1); if (THRESHOLD_PERCENT < 0 || THRESHOLD_PERCENT > 5) Usage(*argv-1); goto nextarg; case 'c': cflag++; goto nextarg; case '?': default: Usage(*argv-1); } nextarg: ; argc--, argv++; } hpfile = "stdin"; psfile = "stdout"; hpfp = stdin; psfp = stdout; filter = argc < 1; if (!filter) { pathName = copystring(argv[0]); DropSuffix(pathName, ".hp"); #if defined(_WIN32) DropSuffix(pathName, ".exe"); #endif baseName = copystring(Basename(pathName)); hpfp = Fp(pathName, &hpfile, ".hp", "r"); psfp = Fp(baseName, &psfile, ".ps", "w"); if (pflag) auxfp = Fp(baseName, &auxfile, ".aux", "r"); } GetHpFile(hpfp); if (!filter && pflag) GetAuxFile(auxfp); TraceElement(); /* Orders on total, Removes trace elements (tflag) */ if (dflag) Deviation(); /* ReOrders on deviation */ if (iflag) Identorder(iflag); /* ReOrders on identifier */ if (pflag) Reorder(); /* ReOrders on aux file */ /* Selects top bands (mflag) - can be more than 20 now */ if (TWENTY != 0) TopTwenty(); Dimensions(); areabelow = AreaBelow(); Scale(); PutPsFile(); if (!filter) { auxfp = Fp(baseName, &auxfile, ".aux", "w"); PutAuxFile(auxfp); } return(0); }