summaryrefslogtreecommitdiffstats
path: root/source/ap/ash/patches/ash-echo.patch
diff options
context:
space:
mode:
Diffstat (limited to 'source/ap/ash/patches/ash-echo.patch')
-rw-r--r--source/ap/ash/patches/ash-echo.patch91
1 files changed, 0 insertions, 91 deletions
diff --git a/source/ap/ash/patches/ash-echo.patch b/source/ap/ash/patches/ash-echo.patch
deleted file mode 100644
index 89d93472f..000000000
--- a/source/ap/ash/patches/ash-echo.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-diff -urN netbsd-sh/bltin/echo.c ash-0.3.7.orig/bltin/echo.c
---- netbsd-sh/bltin/echo.c Sun Nov 3 13:06:22 1996
-+++ ash-0.3.7.orig/bltin/echo.c Mon Apr 23 22:16:46 2001
-@@ -44,7 +44,13 @@
-
- #define main echocmd
-
-+#ifdef _GNU_SOURCE
-+#include <stdio.h>
-+
-+#include "../mystring.h"
-+#else
- #include "bltin.h"
-+#endif
-
- /* #define eflag 1 */
-
-@@ -53,7 +59,6 @@
- register char **ap;
- register char *p;
- register char c;
-- int count;
- int nflag = 0;
- #ifndef eflag
- int eflag = 0;
-@@ -62,21 +67,26 @@
- ap = argv;
- if (argc)
- ap++;
-- if ((p = *ap) != NULL) {
-+ while ((p = *ap) != NULL && *p == '-') {
- if (equal(p, "-n")) {
-- nflag++;
-- ap++;
-+ nflag = 1;
- } else if (equal(p, "-e")) {
- #ifndef eflag
-- eflag++;
-+ eflag = 1;
-+#endif
-+ } else if (equal(p, "-E")) {
-+#ifndef eflag
-+ eflag = 0;
- #endif
-- ap++;
- }
-+ else break;
-+ ap++;
- }
- while ((p = *ap++) != NULL) {
- while ((c = *p++) != '\0') {
- if (c == '\\' && eflag) {
-- switch (*p++) {
-+ switch (c = *p++) {
-+ case 'a': c = '\007'; break;
- case 'b': c = '\b'; break;
- case 'c': return 0; /* exit */
- case 'f': c = '\f'; break;
-@@ -85,11 +95,13 @@
- case 't': c = '\t'; break;
- case 'v': c = '\v'; break;
- case '\\': break; /* c = '\\' */
-- case '0':
-- c = 0;
-- count = 3;
-- while (--count >= 0 && (unsigned)(*p - '0') < 8)
-- c = (c << 3) + (*p++ - '0');
-+ case '0': case '1': case '2': case '3':
-+ case '4': case '5': case '6': case '7':
-+ c -= '0';
-+ if (*p >= '0' && *p <= '7')
-+ c = c * 8 + (*p++ - '0');
-+ if (*p >= '0' && *p <= '7')
-+ c = c * 8 + (*p++ - '0');
- break;
- default:
- p--;
-@@ -103,5 +115,12 @@
- }
- if (! nflag)
- putchar('\n');
-+#ifdef _GNU_SOURCE
-+ fflush(stdout);
-+ if (ferror(stdout)) {
-+ clearerr(stdout);
-+ return 1;
-+ }
-+#endif
- return 0;
- }
-