Applied, thanks!
On Sat, May 30, 2020 at 7:06 PM Mark Edgar <medgar...@gmail.com> wrote: > > Prior to the patch, both -f and --first-only are in all cases either > no-op or ignored. > Without --tabs, --first-only is the default so specifying it is a no-op. > With --tabs, --all is implied, and --first-only is intended to reset this. > --- > coreutils/expand.c | 8 ++++---- > testsuite/unexpand.tests | 33 +++++++++++++++++++++++++++++++++ > 2 files changed, 37 insertions(+), 4 deletions(-) > > diff --git a/coreutils/expand.c b/coreutils/expand.c > index 4fa974df8..dd98c1c03 100644 > --- a/coreutils/expand.c > +++ b/coreutils/expand.c > @@ -160,7 +160,7 @@ static void unexpand(FILE *file, unsigned > tab_size, unsigned opt) > putchar('\t'); > } > > - if ((opt & OPT_INITIAL) && ptr != line) { > + if (!(opt & OPT_ALL) && ptr != line) { > printf("%*s%s", len, "", ptr); > break; > } > @@ -207,13 +207,13 @@ int expand_main(int argc UNUSED_PARAM, char **argv) > "ft:a" > "\0" > "ta" /* -t NUM sets -a */, > - "first-only\0" No_argument "i" > + "first-only\0" No_argument "f" > "tabs\0" Required_argument "t" > "all\0" No_argument "a" > , &opt_t > ); > - /* -f --first-only is the default */ > - if (!(opt & OPT_ALL)) opt |= OPT_INITIAL; > + /* -t implies -a, but an explicit -f overrides */ > + if (opt&OPT_INITIAL) opt &= ~OPT_ALL; > } > tab_size = xatou_range(opt_t, 1, UINT_MAX); > > diff --git a/testsuite/unexpand.tests b/testsuite/unexpand.tests > index 7b326dc2c..aeaae13f0 100755 > --- a/testsuite/unexpand.tests > +++ b/testsuite/unexpand.tests > @@ -31,6 +31,39 @@ testing "unexpand case 7" "unexpand" \ > testing "unexpand case 8" "unexpand" \ > "a b\n" "" "a b\n" \ > > +testcase() > +{ > + testing "unexpand flags $*" "unexpand $*" \ > + "$want" "" ' a b c' > +} > + > +# tabs=8, Convert only leading sequences of blanks > +want='\ta b c' > +testcase > +testcase -f > +testcase -f -t8 > +testcase -t8 -f > +testcase -t8 --first-only > + > +# tabs=8, Convert all blanks > +want='\ta\tb c' > +testcase -a > +testcase -t8 > +testcase -a -t8 > + > +# tabs=4, Convert all blanks > +want='\t\ta\t\tb\t c' > +testcase -t4 > +testcase -a -t4 > +testcase -t4 -a > + > +# tabs=4, Convert only leading sequences of blanks > +want='\t\ta b c' > +testcase -t4 -f > +testcase -f -t4 > +testcase -t4 --first-only > +testcase --first-only -t4 > + > test x"$CONFIG_UNICODE_SUPPORT" = x"y" \ > && test x"$CONFIG_UNICODE_USING_LOCALE" != x"y" \ > && testing "unexpand with unicode characher 0x394" "unexpand" \ > -- > 2.26.2 > _______________________________________________ > busybox mailing list > busybox@busybox.net > http://lists.busybox.net/mailman/listinfo/busybox _______________________________________________ busybox mailing list busybox@busybox.net http://lists.busybox.net/mailman/listinfo/busybox