sbase

suckless unix tools
git clone git://git.suckless.org/sbase
Log | Files | Refs | README | LICENSE

commit 0b4c2ceb2f4594cc9d5ca09e39fb57f6e4f82bfb
parent 53040766d1a09baa7412c73c9a93afac2bfd6acc
Author: Heiko Berges <hbs-bierbaum@t-online.de>
Date:   Thu, 21 Sep 2023 14:56:58 +0200

ed: Add support for ! in w command

When the file name begins with ! then the addressed buffer content is
piped to the name of the file that is considered a command that is
executed in a shell.

Diffstat:
Med.c | 10++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/ed.c b/ed.c @@ -626,8 +626,14 @@ dowrite(const char *fname, int trunc) size_t bytecount = 0; int i, line; - if (!(fp = fopen(fname, (trunc) ? "w" : "a"))) - error("input/output error"); + if(fname[0] == '!') { + fname++; + if((fp = popen(fname, "r")) == NULL) + error("Bad Exec"); + } else { + if ((fp = fopen(fname, "r")) == NULL) + error("cannot open input file"); + } line = curln; for (i = line1; i <= line2; ++i) {