From 82839c3c0371ca2a1643a99d7d01f5bc1c850b28 Mon Sep 17 00:00:00 2001 From: David Oberhollenzer Date: Thu, 2 Mar 2017 11:40:36 +0100 Subject: [PATCH] Replace rpmatch() usage with checking first character of line This is based on the patch from Khem Raj used by openembedded. In addition to the original patch, this also removes the fallback implementation that was provided for C libraries that don't implement rpmatch. Upstream-Status: Backport Signed-off-by: Khem Raj Signed-off-by: David Oberhollenzer --- include/common.h | 25 ++++++------------------- 1 file changed, 6 insertions(+), 19 deletions(-) diff --git a/include/common.h b/include/common.h index d0c706d..d609257 100644 --- a/include/common.h +++ b/include/common.h @@ -129,21 +129,6 @@ extern "C" { fprintf(stderr, "%s: warning!: " fmt "\n", PROGRAM_NAME, ##__VA_ARGS__); \ } while(0) -/* uClibc versions before 0.9.34 and musl don't have rpmatch() */ -#if defined(__UCLIBC__) && \ - (__UCLIBC_MAJOR__ == 0 && \ - (__UCLIBC_MINOR__ < 9 || \ - (__UCLIBC_MINOR__ == 9 && __UCLIBC_SUBLEVEL__ < 34))) || \ - !defined(__GLIBC__) -#undef rpmatch -#define rpmatch __rpmatch -static inline int __rpmatch(const char *resp) -{ - return (resp[0] == 'y' || resp[0] == 'Y') ? 1 : - (resp[0] == 'n' || resp[0] == 'N') ? 0 : -1; -} -#endif - /** * prompt the user for confirmation */ @@ -164,10 +149,12 @@ static inline bool prompt(const char *msg, bool def) } if (strcmp("\n", line) != 0) { - switch (rpmatch(line)) { - case 0: ret = false; break; - case 1: ret = true; break; - case -1: + switch (line[0]) { + case 'N': + case 'n': ret = false; break; + case 'Y': + case 'y': ret = true; break; + default: puts("unknown response; please try again"); continue; } -- 2.6.1