Blame netpbm.c

Packit 78deda
/* netpbm.c - merge of all the Netpbm programs
Packit 78deda
Packit 78deda
   Derived from pbmmerge.c, etc. by Bryan Henderson May 2002.  Copyright
Packit 78deda
   notice from pbmmerge.c, etc:
Packit 78deda
**
Packit 78deda
** Copyright (C) 1991 by Jef Poskanzer.
Packit 78deda
**
Packit 78deda
** Permission to use, copy, modify, and distribute this software and its
Packit 78deda
** documentation for any purpose and without fee is hereby granted, provided
Packit 78deda
** that the above copyright notice appear in all copies and that both that
Packit 78deda
** copyright notice and this permission notice appear in supporting
Packit 78deda
** documentation.  This software is provided "as is" without express or
Packit 78deda
** implied warranty.
Packit 78deda
*/
Packit 78deda
Packit 78deda
/* Note: be careful using any Netpbm library functions in here, since
Packit 78deda
   we don't call pnm_init()
Packit 78deda
*/
Packit 78deda
Packit 78deda
#include <stdio.h>
Packit 78deda
#include <string.h>
Packit 78deda
#include "pam.h"
Packit 78deda
Packit 78deda
#define TRY(s,m) { \
Packit 78deda
    extern int m(int argc, char *argv[]); \
Packit 78deda
    if (strcmp(cp, s) == 0) exit(m(argc, argv)); \
Packit 78deda
}
Packit 78deda
Packit 78deda
int
Packit 78deda
main(int argc, char *argv[]) {
Packit 78deda
Packit 78deda
    const char * cp;
Packit 78deda
    
Packit 78deda
    if (strcmp(pm_arg0toprogname(argv[0]), "netpbm") == 0) {
Packit 78deda
        ++argv;
Packit 78deda
        --argc;
Packit 78deda
        if (argc < 1 || !*argv)	{
Packit 78deda
            fprintf(stderr,
Packit 78deda
                    "When you invoke this program by the name 'netpbm', "
Packit 78deda
                    "You must supply at least one argument: the name of "
Packit 78deda
                    "the Netpbm program to run, e.g. "
Packit 78deda
                    "'netpbm pamfile /tmp/myfile.ppm'\n");
Packit 78deda
            exit(1);
Packit 78deda
		}
Packit 78deda
	}
Packit 78deda
Packit 78deda
    cp = pm_arg0toprogname(argv[0]);
Packit 78deda
    
Packit 78deda
    /* merge.h is an automatically generated file that generates code to
Packit 78deda
       match the string 'cp' against the name of every program that is part
Packit 78deda
       of this merge and, upon finding a match, invoke that program.
Packit 78deda
    */
Packit 78deda
Packit 78deda
/* The following inclusion is full of TRY macro invocations */
Packit 78deda
Packit 78deda
#include "mergetrylist"
Packit 78deda
Packit 78deda
    /* Add the obsolete names for some programs */
Packit 78deda
    TRY("bmptoppm", main_bmptopnm);
Packit 78deda
    TRY("gemtopbm", main_gemtopnm);
Packit 78deda
    TRY("icontopbm", main_sunicontopnm);
Packit 78deda
    TRY("pbmtoicon", main_pbmtosunicon);
Packit 78deda
    TRY("pgmedge", main_pamedge);
Packit 78deda
    TRY("pgmnorm", main_pnmnorm);
Packit 78deda
    TRY("pgmoil", main_pamoil);
Packit 78deda
    TRY("pgmslice", main_pamslice);
Packit 78deda
    TRY("pnmarith", main_pamarith);
Packit 78deda
    TRY("pngtopnm", main_pngtopam);
Packit 78deda
    TRY("pnmarith", main_pamarith);
Packit 78deda
    TRY("pnmcomp", main_pamcomp);
Packit 78deda
    TRY("pnmcut", main_pamcut);
Packit 78deda
    TRY("pnmdepth", main_pamdepth);
Packit 78deda
    TRY("pnmfile", main_pamfile);
Packit 78deda
    TRY("pnminterp", main_pamstretch);
Packit 78deda
    TRY("pnmenlarge", main_pamenlarge);
Packit 78deda
    TRY("pnmscale", main_pamscale);
Packit 78deda
    TRY("pnmsplit", main_pamsplit);
Packit 78deda
    TRY("pnmtofits", main_pamtofits);
Packit 78deda
    TRY("pnmtopnm", main_pamtopnm);
Packit 78deda
    TRY("ppmnorm", main_pnmnorm);
Packit 78deda
    TRY("ppmtotga", main_pamtotga);
Packit 78deda
    TRY("ppmtouil", main_pamtouil);
Packit 78deda
Packit 78deda
    /* We don't do the ppmtojpeg alias because if user doesn't have a JPEG
Packit 78deda
       library, there is no main_pnmtojpeg library.  The right way to do
Packit 78deda
       this is to have these TRY's generated by the subdirectory makes,
Packit 78deda
       which would know whether pnmtojpeg was built into the merged binary
Packit 78deda
       or not.  But that's too much work.  Same with TIFF converters.
Packit 78deda
Packit 78deda
    TRY("ppmtojpeg", main_pnmtojpeg); 
Packit 78deda
    TRY("pngtopnm", main_pngtopam); 
Packit 78deda
    TRY("pnmtotiff", main_pamtotiff);
Packit 78deda
    */
Packit 78deda
Packit 78deda
    fprintf(stderr,"'%s' is an unknown Netpbm program name \n", cp );
Packit 78deda
    exit(1);
Packit 78deda
}
Packit 78deda
Packit 78deda
Packit 78deda