http://bugs.gentoo.org/337329
http://bugs.gentoo.org/527848

there's no requirement for `echo` to support escape sequences. bash, by default,
does not, while dash always does.  POSIX permits either behavior:
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/echo.html

however, since the behavior is not portable, no one should be relying on echo
having any specific behavior.  they should use `printf` when they want an escape
sequence.  it also makes dash smaller & faster to disable this logic entirely.

--- dash-0.5.10/src/bltin/printf.c
+++ dash-0.5.10/src/bltin/printf.c
@@ -457,22 +457,13 @@
 int
 echocmd(int argc, char **argv)
 {
-	const char *lastfmt = snlfmt;
-	int nonl;
+	int i;
 
-	if (*++argv && equal(*argv, "-n")) {
-		argv++;
-		lastfmt = "%s";
+	for (i = 1; i < argc; ++i) {
+		outstr(argv[i], out1);
+		if (i < argc - 1)
+			outc(' ', out1);
 	}
-
-	do {
-		const char *fmt = "%s ";
-		char *s = *argv;
-
-		if (!s || !*++argv)
-			fmt = lastfmt;
-
-		nonl = print_escape_str(fmt, NULL, NULL, s ?: nullstr);
-	} while (!nonl && *argv);
+	outc('\n', out1);
 	return 0;
 }
--- dash-0.5.10/src/dash.1
+++ dash-0.5.10/src/dash.1
@@ -1182,43 +1182,15 @@
 option turns off the effect of any preceding
 .Fl P
 options.
-.It Xo echo Op Fl n
+.It Xo echo
 .Ar args... 
 .Xc
 Print the arguments on the standard output, separated by spaces.
-Unless the
-.Fl n
-option is present, a newline is output following the arguments.
 .Pp
-If any of the following sequences of characters is encountered during
-output, the sequence is not output.  Instead, the specified action is
-performed:
-.Bl -tag -width indent
-.It Li \eb
-A backspace character is output.
-.It Li \ec
-Subsequent output is suppressed.  This is normally used at the end of the
-last argument to suppress the trailing newline that
-.Ic echo
-would otherwise output.
-.It Li \ef
-Output a form feed.
-.It Li \en
-Output a newline character.
-.It Li \er
-Output a carriage return.
-.It Li \et
-Output a (horizontal) tab character.
-.It Li \ev
-Output a vertical tab.
-.It Li \e0 Ns Ar digits
-Output the character whose value is given by zero to three octal digits.
-If there are zero digits, a nul character is output.
-.It Li \e\e
-Output a backslash.
-.El
+No arguments or backslash sequences are supported as they are not portable.
+They will be printed out exactly as passed in.
 .Pp
-All other backslash sequences elicit undefined behaviour.
+You can replace `echo -n ...` with the portable `printf %s ...` construct.
 .It eval Ar string ...
 Concatenate all the arguments with spaces.
 Then re-parse and execute the command.
