X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;ds=sidebyside;f=src%2Fsdf-2.c;h=57a8469f739cf2fb0b6429f279b0dadc240cb82b;hb=cb68417f9166da28aa56f8f423bcab56c1c26f1f;hp=89e9bf41f205f693335d8c0ef9324a9a9938fe7e;hpb=c50886476dddf65aa71d519509b42f71303a149a;p=ctsim.git diff --git a/src/sdf-2.c b/src/sdf-2.c index 89e9bf4..57a8469 100644 --- a/src/sdf-2.c +++ b/src/sdf-2.c @@ -2,8 +2,14 @@ ** This is part of the CTSim program ** Copyright (C) 1983-2000 Kevin Rosenberg ** -** $Id: sdf-2.c,v 1.3 2000/05/11 01:06:30 kevin Exp $ +** $Id: sdf-2.c,v 1.5 2000/05/24 22:50:04 kevin Exp $ ** $Log: sdf-2.c,v $ +** Revision 1.5 2000/05/24 22:50:04 kevin +** Added support for new SGP library +** +** Revision 1.4 2000/05/16 04:33:59 kevin +** Improved option processing +** ** Revision 1.3 2000/05/11 01:06:30 kevin ** Changed sprintf to snprintf ** @@ -28,6 +34,7 @@ ** along with this program; if not, write to the Free Software ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ + /* FILE * sdf-2.c Generate a SDF file from two input SDF files */ @@ -49,9 +56,9 @@ static struct option my_options[] = }; void -usage (const char *program) +sdf2_usage (const char *program) { - fprintf(stdout, "usage: %s infile1 infile2 outfile [OPTIONS]\n", kbasename(program)); + fprintf(stdout, "sdf2_usage: %s infile1 infile2 outfile [OPTIONS]\n", kbasename(program)); fprintf(stdout, "Generate an SDF2D file from two input SDF2D files\n"); fprintf(stdout, "\n"); fprintf(stdout, " infile1 Name of first input SDF file\n"); @@ -64,11 +71,10 @@ usage (const char *program) fprintf(stdout, " --verbose Verbose modem\n"); fprintf(stdout, " --version Print version\n"); fprintf(stdout, " --help Print this help message\n"); - exit(1); } int -main (int argc, char *const argv[]) +sdf2_main (int argc, char *const argv[]) { IMAGE *im_in1; IMAGE *im_in2; @@ -115,18 +121,18 @@ main (int argc, char *const argv[]) exit(0); case O_HELP: case '?': - usage(argv[0]); - exit(0); + sdf2_usage(argv[0]); + return (0); default: - usage(argv[0]); - exit(1); + sdf2_usage(argv[0]); + return (1); } } if (optind + 3 != argc) { - usage(argv[0]); - exit(1); + sdf2_usage(argv[0]); + return (1); } in_file1 = argv[optind]; @@ -135,11 +141,21 @@ main (int argc, char *const argv[]) im_in1 = image_load (in_file1); im_in2 = image_load (in_file2); + if (im_in1 == NULL || im_in2 == NULL) { + fprintf(stderr, "Error reading an image"); + return (1); + } + if (im_in1->nx != im_in2->nx || im_in1->ny != im_in2->ny) { - fprintf(stderr, "Size of image 1 (%d,%d) and image 2 (%d,%d) do not match\n", + fprintf(stderr, "Error: Size of image 1 (%d,%d) and image 2 (%d,%d) do not match\n", im_in1->nx, im_in1->ny, im_in2->nx, im_in2->ny); - exit(1); + return(1); + } + if (im_in1->nx < 0 || im_in1->ny < 0) { + fprintf(stderr, "Error: Size of image < 0"); + return(1); } + im_out = image_create (out_file, im_in1->nx, im_in1->ny); if (opt_add) { @@ -195,3 +211,12 @@ main (int argc, char *const argv[]) return (0); } + +#ifndef NO_MAIN +int +main (int argc, char *const argv[]) +{ + return (sdf2_main(argc, argv)); +} +#endif +