diff options
Diffstat (limited to 'app-shells/dash/files/dash-0.5.10-dumb-echo.patch')
-rw-r--r-- | app-shells/dash/files/dash-0.5.10-dumb-echo.patch | 92 |
1 files changed, 0 insertions, 92 deletions
diff --git a/app-shells/dash/files/dash-0.5.10-dumb-echo.patch b/app-shells/dash/files/dash-0.5.10-dumb-echo.patch deleted file mode 100644 index 35d324609302..000000000000 --- a/app-shells/dash/files/dash-0.5.10-dumb-echo.patch +++ /dev/null @@ -1,92 +0,0 @@ -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. |