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>
This commit is contained in:
@@ -8,15 +8,16 @@
|
||||
*/
|
||||
#include "libbb.h"
|
||||
|
||||
/* Read a line from stdin. If the first non-whitespace char is 'y' or 'Y',
|
||||
/* 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(void)
|
||||
int FAST_FUNC bb_ask_y_confirmation_FILE(FILE *fp)
|
||||
{
|
||||
char first = 0;
|
||||
int c;
|
||||
|
||||
while (((c = getchar()) != EOF) && (c != '\n')) {
|
||||
fflush_all();
|
||||
while (((c = fgetc(fp)) != EOF) && (c != '\n')) {
|
||||
if (first == 0 && !isblank(c)) {
|
||||
first = c|0x20;
|
||||
}
|
||||
@@ -24,3 +25,8 @@ int FAST_FUNC bb_ask_y_confirmation(void)
|
||||
|
||||
return first == 'y';
|
||||
}
|
||||
|
||||
int FAST_FUNC bb_ask_y_confirmation(void)
|
||||
{
|
||||
return bb_ask_y_confirmation_FILE(stdin);
|
||||
}
|
||||
|
||||
@@ -39,8 +39,8 @@ int FAST_FUNC remove_file(const char *path, int flags)
|
||||
if ((!(flags & FILEUTILS_FORCE) && access(path, W_OK) < 0 && isatty(0))
|
||||
|| (flags & FILEUTILS_INTERACTIVE)
|
||||
) {
|
||||
fprintf(stderr, "%s: descend into directory '%s'? ", applet_name,
|
||||
path);
|
||||
fprintf(stderr, "%s: descend into directory '%s'? ",
|
||||
applet_name, path);
|
||||
if (!bb_ask_y_confirmation())
|
||||
return 0;
|
||||
}
|
||||
@@ -67,7 +67,8 @@ int FAST_FUNC remove_file(const char *path, int flags)
|
||||
}
|
||||
|
||||
if (flags & FILEUTILS_INTERACTIVE) {
|
||||
fprintf(stderr, "%s: remove directory '%s'? ", applet_name, path);
|
||||
fprintf(stderr, "%s: remove directory '%s'? ",
|
||||
applet_name, path);
|
||||
if (!bb_ask_y_confirmation())
|
||||
return status;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user