echo: make escape sequences depend on fancy mode

Currently when you disable fancy echo, escape sequences are hardcoded
enabled (e.g. as if you used `echo -e` all the time).  The opposite
behavior is more desirable (always disable -e support) because:
* This seems to contradict the spirit of the kconfig help text (where
  it says enable support for -n/-e flags), although you could say that
  we aren't supporting the -e flag directly as `echo -e` will show the
  -e flag.
* POSIX makes escape sequences optional, and even says they are there
  only on XSI-conformant systems.
* It saves space (~100 bytes on x86_64).
* It makes things faster!
* It makes it behave more like bash where you need an explicit -e flag
  in order for escape sequences to be interpreted.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Mike Frysinger 2015-07-29 23:33:16 -04:00 committed by Denys Vlasenko
parent 52f2f37477
commit 670c3f7822

View File

@ -72,7 +72,7 @@ int echo_main(int argc UNUSED_PARAM, char **argv)
unsigned buflen; unsigned buflen;
#if !ENABLE_FEATURE_FANCY_ECHO #if !ENABLE_FEATURE_FANCY_ECHO
enum { enum {
eflag = '\\', eflag = 0, /* 0 -- disable escape sequences */
nflag = 1, /* 1 -- print '\n' */ nflag = 1, /* 1 -- print '\n' */
}; };