home *** CD-ROM | disk | FTP | other *** search
/ rtsi.com / 2014.01.www.rtsi.com.tar / www.rtsi.com / OS9 / OSK / NETWORK / netpbm_src.lzh / NETPBM / PNM / pnmmerge.c < prev    next >
C/C++ Source or Header  |  1996-11-18  |  2KB  |  88 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.     if(!*argv)    {
  34.         fprintf(stderr, "Usage: pnmmerge pnm_program_name [args ...]\n");
  35.         exit(1);
  36.         }
  37.     goto again;
  38.     }
  39.  
  40. #define TRY(s,m) { if ( strcmp( cp, s ) == 0 ) exit( m( argc, argv ) ); }
  41.  
  42.     TRY("fitstopnm", fitstopnm_main);
  43.     TRY("giftopnm", giftopnm_main);
  44.     TRY("pnmalias", pnmalias_main);
  45.     TRY("pnmarith", pnmarith_main);
  46.     TRY("pnmcat", pnmcat_main);
  47.     TRY("pnmcomp", pnmcomp_main);
  48.     TRY("pnmconvol", pnmconvol_main);
  49.     TRY("pnmcrop", pnmcrop_main);
  50.     TRY("pnmcut", pnmcut_main);
  51.     TRY("pnmdepth", pnmdepth_main);
  52.     TRY("pnmenlarge", pnmenlarge_main);
  53.     TRY("pnmfile", pnmfile_main);
  54.     TRY("pnmflip", pnmflip_main);
  55.     TRY("pnmgamma", pnmgamma_main);
  56.     TRY("pnminvert", pnminvert_main);
  57.     TRY("pnmhistmap", pnmhistmap_main);
  58.     TRY("pnmnlfilt", pnmnlfilt_main);
  59.     TRY("pnmnoraw", pnmnoraw_main);
  60.     TRY("pnmpaste", pnmpaste_main);
  61.     TRY("pnmrotate", pnmrotate_main);
  62.     TRY("pnmscale", pnmscale_main);
  63.     TRY("pnmshear", pnmshear_main);
  64.     TRY("pnmtile", pnmtile_main);
  65.     TRY("pnmtoddif", pnmtoddif_main);
  66.     TRY("pnmtofits", pnmtofits_main);
  67.     TRY("pnmtops", pnmtops_main);
  68.     TRY("pnmtorast", pnmtorast_main);
  69.     TRY("pnmtosgi", pnmtosgi_main);
  70.     TRY("pnmtosir", pnmtosir_main);
  71. #ifdef LIBTIFF
  72.     TRY("pnmtotiff", pnmtotiff_main);
  73. #endif /*LIBTIFF*/
  74.     TRY("pnmtoxwd", pnmtoxwd_main);
  75.     TRY("rasttopnm", rasttopnm_main);
  76.     TRY("sgitopnm", sgitopnm_main);
  77.     TRY("sirtopnm", sirtopnm_main);
  78. #ifdef LIBTIFF
  79.     TRY("tifftopnm", tifftopnm_main);
  80. #endif /*LIBTIFF*/
  81.     TRY("xwdtopnm", xwdtopnm_main);
  82.     TRY("zeisstopnm", zeisstopnm_main);
  83.  
  84.     (void) fprintf(
  85.     stderr, "pnmmerge: \"%s\" is an unknown PNM program!\n", cp );
  86.     exit( 1 );
  87.     }
  88.