svn commit: r345617 - stable/11/bin/sh
Jilles Tjoelker
jilles at FreeBSD.org
Wed Mar 27 22:09:36 UTC 2019
Author: jilles
Date: Wed Mar 27 22:09:35 2019
New Revision: 345617
URL: https://svnweb.freebsd.org/changeset/base/345617
Log:
MFC r344306: sh: Send normal output from bind builtin to stdout
PR: 233343
Modified:
stable/11/bin/sh/histedit.c
stable/11/bin/sh/output.c
stable/11/bin/sh/output.h
Directory Properties:
stable/11/ (props changed)
Modified: stable/11/bin/sh/histedit.c
==============================================================================
--- stable/11/bin/sh/histedit.c Wed Mar 27 22:05:57 2019 (r345616)
+++ stable/11/bin/sh/histedit.c Wed Mar 27 22:09:35 2019 (r345617)
@@ -474,10 +474,31 @@ str_to_event(const char *str, int last)
int
bindcmd(int argc, char **argv)
{
+ int ret;
+ FILE *old;
+ FILE *out;
if (el == NULL)
error("line editing is disabled");
- return (el_parse(el, argc, __DECONST(const char **, argv)));
+
+ INTOFF;
+
+ out = out1fp();
+ if (out == NULL)
+ error("Out of space");
+
+ el_get(el, EL_GETFP, 1, &old);
+ el_set(el, EL_SETFP, 1, out);
+
+ ret = el_parse(el, argc, __DECONST(const char **, argv));
+
+ el_set(el, EL_SETFP, 1, old);
+
+ fclose(out);
+
+ INTON;
+
+ return ret;
}
#else
Modified: stable/11/bin/sh/output.c
==============================================================================
--- stable/11/bin/sh/output.c Wed Mar 27 22:05:57 2019 (r345616)
+++ stable/11/bin/sh/output.c Wed Mar 27 22:09:35 2019 (r345617)
@@ -345,6 +345,12 @@ doformat(struct output *dest, const char *f, va_list a
}
}
+FILE *
+out1fp(void)
+{
+ return fwopen(out1, doformat_wr);
+}
+
/*
* Version of write which resumes after a signal is caught.
*/
Modified: stable/11/bin/sh/output.h
==============================================================================
--- stable/11/bin/sh/output.h Wed Mar 27 22:05:57 2019 (r345616)
+++ stable/11/bin/sh/output.h Wed Mar 27 22:09:35 2019 (r345617)
@@ -37,6 +37,7 @@
#include <stdarg.h>
#include <stddef.h>
+#include <stdio.h>
struct output {
char *nextc;
@@ -73,6 +74,7 @@ void out1fmt(const char *, ...) __printflike(1, 2);
void out2fmt_flush(const char *, ...) __printflike(1, 2);
void fmtstr(char *, int, const char *, ...) __printflike(3, 4);
void doformat(struct output *, const char *, va_list) __printflike(2, 0);
+FILE *out1fp(void);
int xwrite(int, const char *, int);
#define outc(c, file) (--(file)->nleft < 0? (emptyoutbuf(file), *(file)->nextc++ = (c)) : (*(file)->nextc++ = (c)))
More information about the svn-src-all
mailing list