From a7aebe893d8e1fc454fdf695ca39e2ebc1f7a3ce Mon Sep 17 00:00:00 2001 From: Yaroslav Tykhiy Date: Sat, 27 Oct 2007 16:13:31 +0000 Subject: [PATCH] Set the program name if the crunched program is selected through argv[1] to mimic crt0 behaviour. Do the job by a direct assignment to __progname in order to stay compatible with NetBSD, whose setprogname() is a deliberate no-op. The reason for this change is that some programs (usually those imported from NetBSD) use getprogname() to distinguish between their aliases. (See pkill aka pgrep for example.) This change can be useful, and applicable, to NetBSD, too. --- usr.sbin/crunch/crunchgen/crunched_main.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/usr.sbin/crunch/crunchgen/crunched_main.c b/usr.sbin/crunch/crunchgen/crunched_main.c index 2cf95767011..7780aa53dba 100644 --- a/usr.sbin/crunch/crunchgen/crunched_main.c +++ b/usr.sbin/crunch/crunchgen/crunched_main.c @@ -41,6 +41,7 @@ struct stub { int (*f)(); }; +extern char *__progname; extern struct stub entry_points[]; int main(int argc, char **argv, char **envp) @@ -83,12 +84,16 @@ int crunched_here(char *path) int crunched_main(int argc, char **argv, char **envp) { + char *slash; struct stub *ep; int columns, len; if(argc <= 1) crunched_usage(); + slash = strrchr(argv[1], '/'); + __progname = slash? slash+1 : argv[1]; + return main(--argc, ++argv, envp); }