home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / netpbma.zip / pnm / pnmmerge.c < prev    next >
C/C++ Source or Header  |  1994-01-31  |  2KB  |  84 lines

  1. /* pnmmerge.c - wrapper program for PNM
  2. **
  3. ** Copyright (C) 1991 by Jef Poskanzer.
  4. **
  5. ** Permission to use, copy, modify, and distribute this software and its
  6. ** documentation for any purpose and without fee is hereby granted, provided
  7. ** that the above copyright notice appear in all copies and that both that
  8. ** copyright notice and this permission notice appear in supporting
  9. ** documentation.  This software is provided "as is" without express or
  10. ** implied warranty.
  11. */
  12.  
  13. #include <stdio.h>
  14. #include "pnm.h"
  15.  
  16. int
  17. main( argc, argv )
  18.     int argc;
  19.     char* argv[];
  20.     {
  21.     register char* cp;
  22.  
  23.  
  24. again:
  25.     if ( ( cp = rindex( argv[0], '/' ) ) != (char*) 0 )
  26.     ++cp;
  27.     else
  28.     cp = argv[0];
  29.     if ( strcmp( cp, "pnmmerge" ) == 0 )
  30.     {
  31.     ++argv;
  32.     --argc;
  33.     goto again;
  34.     }
  35.  
  36. #define TRY(s,m) { if ( strcmp( cp, s ) == 0 ) exit( m( argc, argv ) ); }
  37.  
  38.     TRY("fitstopnm", fitstopnm_main);
  39.     TRY("giftopnm", giftopnm_main);
  40.     TRY("pnmalias", pnmalias_main);
  41.     TRY("pnmarith", pnmarith_main);
  42.     TRY("pnmcat", pnmcat_main);
  43.     TRY("pnmcomp", pnmcomp_main);
  44.     TRY("pnmconvol", pnmconvol_main);
  45.     TRY("pnmcrop", pnmcrop_main);
  46.     TRY("pnmcut", pnmcut_main);
  47.     TRY("pnmdepth", pnmdepth_main);
  48.     TRY("pnmenlarge", pnmenlarge_main);
  49.     TRY("pnmfile", pnmfile_main);
  50.     TRY("pnmflip", pnmflip_main);
  51.     TRY("pnmgamma", pnmgamma_main);
  52.     TRY("pnminvert", pnminvert_main);
  53.     TRY("pnmhistmap", pnmhistmap_main);
  54.     TRY("pnmnlfilt", pnmnlfilt_main);
  55.     TRY("pnmnoraw", pnmnoraw_main);
  56.     TRY("pnmpaste", pnmpaste_main);
  57.     TRY("pnmrotate", pnmrotate_main);
  58.     TRY("pnmscale", pnmscale_main);
  59.     TRY("pnmshear", pnmshear_main);
  60.     TRY("pnmtile", pnmtile_main);
  61.     TRY("pnmtoddif", pnmtoddif_main);
  62.     TRY("pnmtofits", pnmtofits_main);
  63.     TRY("pnmtops", pnmtops_main);
  64.     TRY("pnmtorast", pnmtorast_main);
  65.     TRY("pnmtosgi", pnmtosgi_main);
  66.     TRY("pnmtosir", pnmtosir_main);
  67. #ifdef LIBTIFF
  68.     TRY("pnmtotiff", pnmtotiff_main);
  69. #endif /*LIBTIFF*/
  70.     TRY("pnmtoxwd", pnmtoxwd_main);
  71.     TRY("rasttopnm", rasttopnm_main);
  72.     TRY("sgitopnm", sgitopnm_main);
  73.     TRY("sirtopnm", sirtopnm_main);
  74. #ifdef LIBTIFF
  75.     TRY("tifftopnm", tifftopnm_main);
  76. #endif /*LIBTIFF*/
  77.     TRY("xwdtopnm", xwdtopnm_main);
  78.     TRY("zeisstopnm", zeisstopnm_main);
  79.  
  80.     (void) fprintf(
  81.     stderr, "pnmmerge: \"%s\" is an unknown PNM program!\n", cp );
  82.     exit( 1 );
  83.     }
  84.