diff options
author | "Vladimir N. Oleynik" <dzo@simtreas.ru> | 2006-02-20 12:15:10 +0000 |
---|---|---|
committer | "Vladimir N. Oleynik" <dzo@simtreas.ru> | 2006-02-20 12:15:10 +0000 |
commit | 0c6ff43a0cfa48e196954010787f5335f1a17ad7 (patch) | |
tree | ca8593fa25b77f98472bdcdee3781623917cd531 | |
parent | d24d0830616dc6c040caec3466786b6d7120b7b9 (diff) | |
download | busybox-0c6ff43a0cfa48e196954010787f5335f1a17ad7.tar.gz |
remove #undef strlen, use #define strlen always but without xfunc/BB_STRLEN_IMPLEMENTATION
-rw-r--r-- | include/libbb.h | 2 | ||||
-rw-r--r-- | libbb/xfuncs.c | 10 |
2 files changed, 9 insertions, 3 deletions
diff --git a/include/libbb.h b/include/libbb.h index 8ec1a24c0..9f0c85b03 100644 --- a/include/libbb.h +++ b/include/libbb.h @@ -387,7 +387,9 @@ void reset_ino_dev_hashtable(void); /* Stupid gcc always includes its own builtin strlen()... */ extern size_t bb_strlen(const char *string); +#ifndef BB_STRLEN_IMPLEMENTATION #define strlen(x) bb_strlen(x) +#endif char *bb_xasprintf(const char *format, ...) __attribute__ ((format (printf, 1, 2))); diff --git a/libbb/xfuncs.c b/libbb/xfuncs.c index 69eaf79e0..6d54c1a79 100644 --- a/libbb/xfuncs.c +++ b/libbb/xfuncs.c @@ -14,6 +14,13 @@ #include <stdlib.h> #include <unistd.h> #include <fcntl.h> + +/* Since gcc always inlines strlen(), this saves a byte or two, but we need + * the #undef here to avoid endless loop from #define strlen bb_strlen */ +#ifdef L_strlen +#define BB_STRLEN_IMPLEMENTATION +#endif + #include "libbb.h" @@ -167,9 +174,6 @@ extern void bb_xfflush_stdout(void) #endif #ifdef L_strlen -/* Since gcc always inlines strlen(), this saves a byte or two, but we need - * the #undef here to avoid endless loop from #define strlen bb_strlen */ -#undef strlen size_t bb_strlen(const char *string) { return(strlen(string)); |