From dc50676cce35cdba3ecba3870c3f752408d6db70 Mon Sep 17 00:00:00 2001 From: Dan Fandrich Date: Sat, 12 Feb 2011 22:26:57 -0800 Subject: Move stpcpy replacement function into libbb Signed-off-by: Dan Fandrich Signed-off-by: Denys Vlasenko --- include/platform.h | 8 ++++++++ libbb/platform.c | 11 +++++++++++ runit/runsv.c | 24 +++++++----------------- 3 files changed, 26 insertions(+), 17 deletions(-) diff --git a/include/platform.h b/include/platform.h index 00ebe563b..e390e58e2 100644 --- a/include/platform.h +++ b/include/platform.h @@ -18,6 +18,7 @@ #define HAVE_PTSNAME_R 1 #define HAVE_SETBIT 1 #define HAVE_SIGHANDLER_T 1 +#define HAVE_STPCPY 1 #define HAVE_STRCASESTR 1 #define HAVE_STRCHRNUL 1 #define HAVE_STRSEP 1 @@ -356,6 +357,8 @@ typedef unsigned smalluint; # define ADJ_TICK MOD_CLKB # endif +# undef HAVE_STPCPY + #else # define bb_setpgrp() setpgrp() @@ -376,6 +379,7 @@ typedef unsigned smalluint; # undef HAVE_MEMRCHR # undef HAVE_MKDTEMP # undef HAVE_SETBIT +# undef HAVE_STPCPY # undef HAVE_STRCASESTR # undef HAVE_STRCHRNUL # undef HAVE_STRSEP @@ -413,6 +417,10 @@ extern char *mkdtemp(char *template) FAST_FUNC; typedef void (*sighandler_t)(int); #endif +#ifndef HAVE_STPCPY +extern char *stpcpy(char *p, const char *to_add) FAST_FUNC; +#endif + #ifndef HAVE_STRCASESTR extern char *strcasestr(const char *s, const char *pattern) FAST_FUNC; #endif diff --git a/libbb/platform.c b/libbb/platform.c index ccde2bf02..fe7ce1567 100644 --- a/libbb/platform.c +++ b/libbb/platform.c @@ -134,3 +134,14 @@ char* FAST_FUNC strsep(char **stringp, const char *delim) return start; } #endif + +#ifndef HAVE_STPCPY +char* FAST_FUNC stpcpy(char *p, const char *to_add) +{ + while ((*p = *to_add) != '\0') { + p++; + to_add++; + } + return p; +} +#endif diff --git a/runit/runsv.c b/runit/runsv.c index ebb031837..e76572daa 100644 --- a/runit/runsv.c +++ b/runit/runsv.c @@ -139,16 +139,6 @@ static void s_term(int sig_no UNUSED_PARAM) write(selfpipe.wr, "", 1); /* XXX */ } -/* libbb candidate */ -static char *bb_stpcpy(char *p, const char *to_add) -{ - while ((*p = *to_add) != '\0') { - p++; - to_add++; - } - return p; -} - static int open_trunc_or_warn(const char *name) { /* Why O_NDELAY? */ @@ -192,26 +182,26 @@ static void update_status(struct svdir *s) char *p = stat_buf; switch (s->state) { case S_DOWN: - p = bb_stpcpy(p, "down"); + p = stpcpy(p, "down"); break; case S_RUN: - p = bb_stpcpy(p, "run"); + p = stpcpy(p, "run"); break; case S_FINISH: - p = bb_stpcpy(p, "finish"); + p = stpcpy(p, "finish"); break; } if (s->ctrl & C_PAUSE) - p = bb_stpcpy(p, ", paused"); + p = stpcpy(p, ", paused"); if (s->ctrl & C_TERM) - p = bb_stpcpy(p, ", got TERM"); + p = stpcpy(p, ", got TERM"); if (s->state != S_DOWN) switch (s->sd_want) { case W_DOWN: - p = bb_stpcpy(p, ", want down"); + p = stpcpy(p, ", want down"); break; case W_EXIT: - p = bb_stpcpy(p, ", want exit"); + p = stpcpy(p, ", want exit"); break; } *p++ = '\n'; -- cgit v1.2.3