Move stpcpy replacement function into libbb

Signed-off-by: Dan Fandrich <dan@coneharvesters.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Dan Fandrich 2011-02-12 22:26:57 -08:00 committed by Denys Vlasenko
parent 4ed3c52ce9
commit dc50676cce
3 changed files with 26 additions and 17 deletions

View File

@ -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

View File

@ -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

View File

@ -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';