Applied, thank you

On Sat, Aug 21, 2021 at 10:37 AM Ron Yorston <[email protected]> wrote:
>
> The input buffer is initialised to a reasonable size and extended
> if necessary.  When this happened the offset into the buffer wasn't
> reset to zero so subsequent lines were appended to the long line.
>
> Fix this and add some tests.
>
> function                                             old     new   delta
> rev_main                                             377     368      -9
> ------------------------------------------------------------------------------
> (add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-9)               Total: -9 bytes
>
> Signed-off-by: Ron Yorston <[email protected]>
> ---
>  testsuite/rev.tests | 46 +++++++++++++++++++++++++++++++++++++++++++++
>  util-linux/rev.c    |  1 +
>  2 files changed, 47 insertions(+)
>  create mode 100755 testsuite/rev.tests
>
> diff --git a/testsuite/rev.tests b/testsuite/rev.tests
> new file mode 100755
> index 000000000..dd65dcd3b
> --- /dev/null
> +++ b/testsuite/rev.tests
> @@ -0,0 +1,46 @@
> +#!/bin/sh
> +# Copyright 2021 by Ron Yorston
> +# Licensed under GPLv2, see file LICENSE in this source tree.
> +
> +. ./testing.sh
> +
> +# testing "test name" "commands" "expected result" "file input" "stdin"
> +
> +testing "rev works" \
> +       "rev input" \
> +"\
> +1 enil
> +
> +3 enil
> +" \
> +       "line 1\n\nline 3\n" \
> +       ""
> +
> +testing "rev file with missing newline" \
> +       "rev input" \
> +"\
> +1 enil
> +
> +3 enil" \
> +       "line 1\n\nline 3" \
> +       ""
> +
> +testing "rev file with NUL character" \
> +       "rev input" \
> +"\
> +nil
> +3 enil
> +" \
> +       "lin\000e 1\n\nline 3\n" \
> +       ""
> +
> +testing "rev file with long line" \
> +       "rev input" \
> +"\
> ++--------------+---------------+---------------+---------------+---------------+---------------+---------------+---------------+---------------+---------------+---------------+---------------+---------------+---------------+---------------+---------------
> +cba
> +" \
> +       
> "---------------+---------------+---------------+---------------+---------------+---------------+---------------+---------------+---------------+---------------+---------------+---------------+---------------+---------------+---------------+--------------+\nabc\n"
>  \
> +       ""
> +
> +exit $FAILCOUNT
> diff --git a/util-linux/rev.c b/util-linux/rev.c
> index d439b4da8..63b005c67 100644
> --- a/util-linux/rev.c
> +++ b/util-linux/rev.c
> @@ -109,6 +109,7 @@ int rev_main(int argc UNUSED_PARAM, char **argv)
>                         strrev(buf, strlen(buf));
>  #endif
>                         fputs_stdout(buf);
> +                       pos = 0;
>                 }
>                 fclose(fp);
>         } while (*argv);
> --
> 2.31.1
>
> _______________________________________________
> busybox mailing list
> [email protected]
> http://lists.busybox.net/mailman/listinfo/busybox
_______________________________________________
busybox mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/busybox

Reply via email to