[patch] should crunchgen use basename(3) instead of homebrew code?
Eitan Adler
lists at eitanadler.com
Sun Jan 2 07:37:22 UTC 2011
I'm not sure about this patch because of the behavior change of
- slash = strrchr(path, '/');
- basename = slash? slash+1 : path;
+ bn = basename(slash);
CCed to the last few people to touch the relevant code (via svn praise)
Index: crunched_main.c
===================================================================
--- crunched_main.c (revision 216884)
+++ crunched_main.c (working copy)
@@ -33,6 +33,7 @@
* or calls one of them based on argv[1]. This allows the testing of
* the crunched binary without creating all the links.
*/
+#include <libgen.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@ -47,22 +48,21 @@
int main(int argc, char **argv, char **envp)
{
- char *slash, *basename;
+ char *slash, *bn;
struct stub *ep;
if(argv[0] == NULL || *argv[0] == '\0')
crunched_usage();
- slash = strrchr(argv[0], '/');
- basename = slash? slash+1 : argv[0];
+ bn = basename(argv[0]);
for(ep=entry_points; ep->name != NULL; ep++)
- if(!strcmp(basename, ep->name)) break;
+ if(!strcmp(bn, ep->name)) break;
if(ep->name)
return ep->f(argc, argv, envp);
else {
- fprintf(stderr, "%s: %s not compiled in\n", EXECNAME, basename);
+ fprintf(stderr, "%s: %s not compiled in\n", EXECNAME, bn);
crunched_usage();
}
}
@@ -70,14 +70,13 @@
int crunched_here(char *path)
{
- char *slash, *basename;
+ char *slash, *bn;
struct stub *ep;
- slash = strrchr(path, '/');
- basename = slash? slash+1 : path;
+ bn = basename(slash);
for(ep=entry_points; ep->name != NULL; ep++)
- if(!strcmp(basename, ep->name))
+ if(!strcmp(bn, ep->name))
return 1;
return 0;
}
--
Eitan Adler
More information about the freebsd-hackers
mailing list