1 diff -urN netbsd-sh/bltin/echo.c ash-0.3.7.orig/bltin/echo.c
2 --- netbsd-sh/bltin/echo.c Sun Nov 3 13:06:22 1996
3 +++ ash-0.3.7.orig/bltin/echo.c Mon Apr 23 22:16:46 2001
11 +#include "../mystring.h"
30 - if ((p = *ap) != NULL) {
31 + while ((p = *ap) != NULL && *p == '-') {
36 } else if (equal(p, "-e")) {
41 + } else if (equal(p, "-E")) {
50 while ((p = *ap++) != NULL) {
51 while ((c = *p++) != '\0') {
52 if (c == '\\' && eflag) {
55 + case 'a': c = '\007'; break;
56 case 'b': c = '\b'; break;
57 case 'c': return 0; /* exit */
58 case 'f': c = '\f'; break;
60 case 't': c = '\t'; break;
61 case 'v': c = '\v'; break;
62 case '\\': break; /* c = '\\' */
66 - while (--count >= 0 && (unsigned)(*p - '0') < 8)
67 - c = (c << 3) + (*p++ - '0');
68 + case '0': case '1': case '2': case '3':
69 + case '4': case '5': case '6': case '7':
71 + if (*p >= '0' && *p <= '7')
72 + c = c * 8 + (*p++ - '0');
73 + if (*p >= '0' && *p <= '7')
74 + c = c * 8 + (*p++ - '0');
84 + if (ferror(stdout)) {