|
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 |
|