busybox/libbb/ask_confirmation.c
Denys Vlasenko bae8fc4436 xargs: use bb_ask_y_confirmation_FILE() instead of homegrown copy
function                                             old     new   delta
bb_ask_y_confirmation_FILE                             -      83     +83
inetd_main                                          2033    2043     +10
udhcp_send_kernel_packet                             295     301      +6
rmescapes                                            306     310      +4
send_tree                                            353     355      +2
i2cdetect_main                                       674     672      -2
confirm_or_abort                                      43      38      -5
get_terminal_width_height                            242     234      -8
bb_ask_y_confirmation                                 76      10     -66
xargs_main                                           823     755     -68
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 4/5 up/down: 105/-149)          Total: -44 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-07 15:23:10 +02:00

33 lines
675 B
C

/* vi: set sw=4 ts=4: */
/*
* bb_ask_y_confirmation implementation for busybox
*
* Copyright (C) 2003 Manuel Novoa III <mjn3@codepoet.org>
*
* Licensed under GPLv2 or later, see file LICENSE in this source tree.
*/
#include "libbb.h"
/* Read a line from fp. If the first non-whitespace char is 'y' or 'Y',
* return 1. Otherwise return 0.
*/
int FAST_FUNC bb_ask_y_confirmation_FILE(FILE *fp)
{
char first = 0;
int c;
fflush_all();
while (((c = fgetc(fp)) != EOF) && (c != '\n')) {
if (first == 0 && !isblank(c)) {
first = c|0x20;
}
}
return first == 'y';
}
int FAST_FUNC bb_ask_y_confirmation(void)
{
return bb_ask_y_confirmation_FILE(stdin);
}