From 0c6ff43a0cfa48e196954010787f5335f1a17ad7 Mon Sep 17 00:00:00 2001 From: "\"Vladimir N. Oleynik\"" Date: Mon, 20 Feb 2006 12:15:10 +0000 Subject: [PATCH] remove #undef strlen, use #define strlen always but without xfunc/BB_STRLEN_IMPLEMENTATION --- include/libbb.h | 2 ++ 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 #include #include + +/* 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));