skill: use rpmatch() to yes/no question
The patch also removes fixed size of input, which can be problematic. I do not know how long the string `yes' might be in all of the worlds languages. Signed-off-by: Sami Kerola <kerolasa@iki.fi>
This commit is contained in:
parent
72e37c7d11
commit
b40353c91e
@ -73,6 +73,7 @@ AC_FUNC_REALLOC
|
||||
AC_FUNC_STRTOD
|
||||
AC_CHECK_FUNCS([\
|
||||
alarm \
|
||||
getline \
|
||||
getpagesize \
|
||||
gettimeofday \
|
||||
iswprint \
|
||||
@ -83,6 +84,7 @@ AC_CHECK_FUNCS([\
|
||||
nl_langinfo \
|
||||
putenv \
|
||||
regcomp \
|
||||
rpmatch \
|
||||
select \
|
||||
setlocale \
|
||||
strcasecmp \
|
||||
|
14
skill.c
14
skill.c
@ -82,15 +82,17 @@ static void hurt_proc(int tty, int uid, int pid, const char *restrict const cmd,
|
||||
char dn_buf[1000];
|
||||
dev_to_tty(dn_buf, 999, tty, pid, ABBREV_DEV);
|
||||
if (run_time->interactive) {
|
||||
char buf[8];
|
||||
char *buf;
|
||||
size_t len = 0;
|
||||
fprintf(stderr, "%-8s %-8s %5d %-16.16s ? ",
|
||||
(char *)dn_buf, user_from_uid(uid), pid, cmd);
|
||||
if (!fgets(buf, 7, stdin)) {
|
||||
printf("\n");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
if (*buf != 'y' && *buf != 'Y')
|
||||
fflush (stdout);
|
||||
getline(&buf, &len, stdin);
|
||||
if (rpmatch(buf) < 1) {
|
||||
free(buf);
|
||||
return;
|
||||
}
|
||||
free(buf);
|
||||
}
|
||||
/* do the actual work */
|
||||
errno = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user