[PATCH] Move stpcpy replacement function into libbb
Denys Vlasenko
vda.linux at googlemail.com
Sun Feb 13 17:59:55 UTC 2011
On Sunday 13 February 2011 07:26, Dan Fandrich wrote:
> Signed-off-by: Dan Fandrich <dan at coneharvesters.com>
> ---
> 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 00ebe56..e390e58 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 ccde2bf..569a305 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 ebb0318..e76572d 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';
Applied, thanks!
--
vda
More information about the busybox
mailing list