diff options
Diffstat (limited to 'source/ap/ash/patches/ash-memout.patch')
-rw-r--r-- | source/ap/ash/patches/ash-memout.patch | 333 |
1 files changed, 0 insertions, 333 deletions
diff --git a/source/ap/ash/patches/ash-memout.patch b/source/ap/ash/patches/ash-memout.patch deleted file mode 100644 index 1bfedadaa..000000000 --- a/source/ap/ash/patches/ash-memout.patch +++ /dev/null @@ -1,333 +0,0 @@ -diff -u ash-0.4.0/eval.c ash-0.4.0-/eval.c ---- ash-0.4.0/eval.c Tue Apr 24 00:53:12 2001 -+++ ash-0.4.0-/eval.c Tue Apr 24 00:13:57 2001 -@@ -879,9 +879,13 @@ - #endif - mode = (cmdentry.u.index == EXECCMD)? 0 : REDIR_PUSH; - if (flags == EV_BACKCMD) { -+#if defined(_GNU_SOURCE) && !defined(__UCLIBC__) -+ openmemout(); -+#else - memout.nleft = 0; - memout.nextc = memout.buf; - memout.bufsize = 64; -+#endif - mode |= REDIR_BACKQ; - } - redirect(cmd->ncmd.redirect, mode); -@@ -928,10 +932,18 @@ - if (cmdentry.u.index != EXECCMD) - popredir(); - if (flags == EV_BACKCMD) { -+#if defined(_GNU_SOURCE) && !defined(__UCLIBC__) -+ closememout(); -+#endif - backcmd->buf = memout.buf; -+#if defined(_GNU_SOURCE) && !defined(__UCLIBC__) -+ backcmd->nleft = memout.bufsize; -+#else - backcmd->nleft = memout.nextc - memout.buf; -+#endif - memout.buf = NULL; - } -+ cmdenviron = NULL; - } else { - #ifdef DEBUG - trputs("normal command: "); trargs(argv); -Common subdirectories: ash-0.4.0/funcs and ash-0.4.0-/funcs -diff -u ash-0.4.0/output.c ash-0.4.0-/output.c ---- ash-0.4.0/output.c Fri Jan 12 17:50:39 2001 -+++ ash-0.4.0-/output.c Tue Apr 24 00:43:44 2001 -@@ -65,6 +65,10 @@ - #include <errno.h> - #include <unistd.h> - #include <stdlib.h> -+#if defined(_GNU_SOURCE) && !defined(__UCLIBC__) -+#undef CEOF /* get rid of the redefine warning */ -+#include <fcntl.h> -+#endif - - #include "shell.h" - #include "syntax.h" -@@ -79,9 +83,15 @@ - #define OUTPUT_ERR 01 /* error occurred on output */ - - -+#if defined(_GNU_SOURCE) && !defined(__UCLIBC__) -+struct output output = {NULL, NULL, 0, NULL, 0, 1, 0}; -+struct output errout = {NULL, NULL, 0, NULL, 0, 2, 0}; -+struct output memout = {NULL, NULL, 0, NULL, 0, MEM_OUT, 0}; -+#else - struct output output = {NULL, 0, NULL, OUTBUFSIZ, 1, 0}; - struct output errout = {NULL, 0, NULL, 100, 2, 0}; - struct output memout = {NULL, 0, NULL, 0, MEM_OUT, 0}; -+#endif - struct output *out1 = &output; - struct output *out2 = &errout; - -@@ -92,9 +102,19 @@ - INCLUDE "output.h" - INCLUDE "memalloc.h" - -+INIT { -+#if defined(_GNU_SOURCE) && !defined(__UCLIBC__) -+ initstreams(); -+#endif -+} -+ - RESET { - out1 = &output; - out2 = &errout; -+#if defined(_GNU_SOURCE) && !defined(__UCLIBC__) -+ if (memout.stream != NULL) -+ closememout(); -+#endif - if (memout.buf != NULL) { - ckfree(memout.buf); - memout.buf = NULL; -@@ -124,33 +144,22 @@ - - - void --out1str(p) -- const char *p; -- { -- outstr(p, out1); --} -- -- --void --out2str(p) -- const char *p; -- { -- outstr(p, out2); --} -- -- --void - outstr(p, file) - const char *p; - struct output *file; - { -+#if defined(_GNU_SOURCE) && !defined(__UCLIBC__) -+ fputs(p, file->stream); -+#else - while (*p) - outc(*p++, file); -+#endif - if (file == out2) - flushout(file); - } - - -+#if !defined(_GNU_SOURCE) || defined(__UCLIBC__) - char out_junk[16]; - - -@@ -183,6 +192,7 @@ - } - dest->nleft--; - } -+#endif - - - void -@@ -192,11 +202,11 @@ - } - - -+#if !defined(_GNU_SOURCE) || defined(__UCLIBC__) - void - flushout(dest) - struct output *dest; - { -- - if (dest->buf == NULL || dest->nextc == dest->buf || dest->fd < 0) - return; - if (xwrite(dest->fd, dest->buf, dest->nextc - dest->buf) < 0) -@@ -204,6 +214,7 @@ - dest->nextc = dest->buf; - dest->nleft = dest->bufsize; - } -+#endif - - - void -@@ -264,6 +275,7 @@ - va_end(ap); - } - -+#if !defined(__GLIBC__) && !defined(__UCLIBC__) - void - #ifdef __STDC__ - dprintf(const char *fmt, ...) -@@ -285,6 +297,7 @@ - va_end(ap); - flushout(out2); - } -+#endif - - void - #ifdef __STDC__ -@@ -295,7 +308,9 @@ - #endif - { - va_list ap; -+#if !defined(_GNU_SOURCE) || defined(__UCLIBC__) - struct output strout; -+#endif - #ifndef __STDC__ - char *outbuf; - size_t length; -@@ -308,6 +323,9 @@ - #else - va_start(ap, fmt); - #endif -+#if defined(_GNU_SOURCE) && !defined(__UCLIBC__) -+ vsnprintf(outbuf, length, fmt, ap); -+#else - strout.nextc = outbuf; - strout.nleft = length; - strout.fd = BLOCK_OUT; -@@ -316,8 +334,10 @@ - outc('\0', &strout); - if (strout.flags & OUTPUT_ERR) - outbuf[length - 1] = '\0'; -+#endif - } - -+#if !defined(_GNU_SOURCE) || defined(__UCLIBC__) - /* - * Formatted output. This routine handles a subset of the printf formats: - * - Formats supported: d, u, o, p, X, s, and c. -@@ -534,7 +554,7 @@ - } - #endif /* !HAVE_VASPRINTF */ - } -- -+#endif - - - /* -@@ -544,7 +564,7 @@ - int - xwrite(fd, buf, nbytes) - int fd; -- char *buf; -+ const char *buf; - int nbytes; - { - int ntry; -@@ -570,6 +590,8 @@ - } - - -+ -+#ifdef notdef - /* - * Version of ioctl that retries after a signal is caught. - * XXX unused function -@@ -586,3 +608,27 @@ - while ((i = ioctl(fd, request, arg)) == -1 && errno == EINTR); - return i; - } -+#endif -+ -+ -+#if defined(_GNU_SOURCE) && !defined(__UCLIBC__) -+void initstreams() { -+ output.stream = stdout; -+ errout.stream = stderr; -+} -+ -+ -+void -+openmemout() { -+ memout.stream = open_memstream(&memout.buf, &memout.bufsize); -+} -+ -+ -+void -+closememout() { -+ INTOFF; -+ fclose(memout.stream); -+ memout.stream = NULL; -+ INTON; -+} -+#endif -diff -u ash-0.4.0/output.h ash-0.4.0-/output.h ---- ash-0.4.0/output.h Sat Jan 31 19:28:11 1998 -+++ ash-0.4.0-/output.h Tue Apr 24 00:13:57 2001 -@@ -45,13 +45,19 @@ - #else - #include <varargs.h> - #endif -+#if defined(_GNU_SOURCE) && !defined(__UCLIBC__) -+#include <stdio.h> -+#endif - - struct output { -+#if defined(_GNU_SOURCE) && !defined(__UCLIBC__) -+ FILE *stream; -+#endif - char *nextc; - int nleft; - char *buf; - int bufsize; -- short fd; -+ int fd; - short flags; - }; - -@@ -61,29 +67,44 @@ - extern struct output *out1; - extern struct output *out2; - --void open_mem __P((char *, int, struct output *)); --void out1str __P((const char *)); --void out2str __P((const char *)); - void outstr __P((const char *, struct output *)); -+#ifndef _GNU_SOURCE - void emptyoutbuf __P((struct output *)); -+#endif - void flushall __P((void)); -+#ifndef _GNU_SOURCE - void flushout __P((struct output *)); -+#endif - void freestdout __P((void)); - void outfmt __P((struct output *, const char *, ...)) - __attribute__((__format__(__printf__,2,3))); - void out1fmt __P((const char *, ...)) - __attribute__((__format__(__printf__,1,2))); -+#if !defined(__GLIBC__) && !defined(__UCLIBC__) - void dprintf __P((const char *, ...)) - __attribute__((__format__(__printf__,1,2))); -+#endif - void fmtstr __P((char *, size_t, const char *, ...)) - __attribute__((__format__(__printf__,3,4))); -+#ifndef _GNU_SOURCE - void doformat __P((struct output *, const char *, va_list)); --int xwrite __P((int, char *, int)); --int xioctl __P((int, unsigned long, char *)); -+#endif -+int xwrite __P((int, const char *, int)); -+#if defined(_GNU_SOURCE) && !defined(__UCLIBC__) -+void initstreams __P((void)); -+void openmemout __P((void)); -+void closememout __P((void)); - -+#define outc(c, o) putc(c, (o)->stream) -+#define flushout(o) fflush((o)->stream) -+#define doformat(d, f, a) vfprintf((d)->stream, f, a) -+#else - #define outc(c, file) (--(file)->nleft < 0? (emptyoutbuf(file), *(file)->nextc++ = (c)) : (*(file)->nextc++ = (c))) --#define out1c(c) outc(c, out1); --#define out2c(c) outc(c, out2); -+#endif -+#define out1c(c) outc(c, out1) -+#define out2c(c) outc(c, out2) -+#define out1str(s) outstr(s, out1) -+#define out2str(s) outstr(s, out2) - - #define OUTPUT_INCL - #endif |