[git commit] echo: make escape sequences depend on fancy mode

Denys Vlasenko vda.linux at googlemail.com
Fri Jul 31 01:47:49 UTC 2015


commit: http://git.busybox.net/busybox/commit/?id=670c3f7822e17c8bfdd9351fcfea071e696fc1d6
branch: http://git.busybox.net/busybox/commit/?id=refs/heads/master

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 at gentoo.org>
Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 coreutils/echo.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/coreutils/echo.c b/coreutils/echo.c
index 9663894..1c41745 100644
--- a/coreutils/echo.c
+++ b/coreutils/echo.c
@@ -72,7 +72,7 @@ int echo_main(int argc UNUSED_PARAM, char **argv)
 	unsigned buflen;
 #if !ENABLE_FEATURE_FANCY_ECHO
 	enum {
-		eflag = '\\',
+		eflag = 0,  /* 0 -- disable escape sequences */
 		nflag = 1,  /* 1 -- print '\n' */
 	};
 


More information about the busybox-cvs mailing list