diff options
author | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2017-03-02 11:40:36 +0100 |
---|---|---|
committer | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2017-03-02 11:43:58 +0100 |
commit | 82839c3c0371ca2a1643a99d7d01f5bc1c850b28 (patch) | |
tree | 02dbca392550162005af1a5627494e54b9102354 /include/common.h | |
parent | 7d026a85946a08b8167dcd792ea6660bf6a49e08 (diff) |
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.
Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
Diffstat (limited to 'include/common.h')
-rw-r--r-- | include/common.h | 25 |
1 files 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; } |