Changeset View
Changeset View
Standalone View
Standalone View
head/usr.sbin/crunch/crunchgen/crunched_main.c
Show First 20 Lines • Show All 41 Lines • ▼ Show 20 Lines | |||||
struct stub { | struct stub { | ||||
char *name; | char *name; | ||||
int (*f)(); | int (*f)(); | ||||
}; | }; | ||||
extern char *__progname; | extern char *__progname; | ||||
extern struct stub entry_points[]; | extern struct stub entry_points[]; | ||||
static void crunched_usage(void); | |||||
int | int | ||||
main(int argc, char **argv, char **envp) | main(int argc, char **argv, char **envp) | ||||
{ | { | ||||
char *slash, *basename; | char *slash, *basename; | ||||
struct stub *ep; | struct stub *ep; | ||||
if(argv[0] == NULL || *argv[0] == '\0') | if(argv[0] == NULL || *argv[0] == '\0') | ||||
crunched_usage(); | crunched_usage(); | ||||
Show All 9 Lines | return ep->f(argc, argv, envp); | ||||
else { | else { | ||||
fprintf(stderr, "%s: %s not compiled in\n", EXECNAME, basename); | fprintf(stderr, "%s: %s not compiled in\n", EXECNAME, basename); | ||||
crunched_usage(); | crunched_usage(); | ||||
} | } | ||||
} | } | ||||
int | int | ||||
crunched_here(char *path) | |||||
{ | |||||
char *slash, *basename; | |||||
struct stub *ep; | |||||
slash = strrchr(path, '/'); | |||||
basename = slash? slash+1 : path; | |||||
for(ep=entry_points; ep->name != NULL; ep++) | |||||
if(!strcmp(basename, ep->name)) | |||||
return 1; | |||||
return 0; | |||||
} | |||||
int | |||||
crunched_main(int argc, char **argv, char **envp) | crunched_main(int argc, char **argv, char **envp) | ||||
{ | { | ||||
char *slash; | char *slash; | ||||
struct stub *ep; | struct stub *ep; | ||||
int columns, len; | int columns, len; | ||||
if(argc <= 1) | if(argc <= 1) | ||||
crunched_usage(); | crunched_usage(); | ||||
slash = strrchr(argv[1], '/'); | slash = strrchr(argv[1], '/'); | ||||
__progname = slash? slash+1 : argv[1]; | __progname = slash? slash+1 : argv[1]; | ||||
return main(--argc, ++argv, envp); | return main(--argc, ++argv, envp); | ||||
} | } | ||||
int | static void | ||||
crunched_usage() | crunched_usage() | ||||
{ | { | ||||
int columns, len; | int columns, len; | ||||
struct stub *ep; | struct stub *ep; | ||||
fprintf(stderr, "usage: %s <prog> <args> ..., where <prog> is one of:\n", | fprintf(stderr, "usage: %s <prog> <args> ..., where <prog> is one of:\n", | ||||
EXECNAME); | EXECNAME); | ||||
columns = 0; | columns = 0; | ||||
Show All 15 Lines |