From c41deb4cc8ed5e4c9bce904a85dd9930867f9b0c Mon Sep 17 00:00:00 2001 From: pfg Date: Sun, 29 Jun 2014 18:54:41 +0000 Subject: MFC r267692, r267703: Add -u (unbuffered output) after GNU sed. Obtained from: NetBSD --- usr.bin/sed/main.c | 17 +++++++++++------ usr.bin/sed/sed.1 | 6 ++++-- 2 files changed, 15 insertions(+), 8 deletions(-) (limited to 'usr.bin') diff --git a/usr.bin/sed/main.c b/usr.bin/sed/main.c index 2062c68..eafdbe9 100644 --- a/usr.bin/sed/main.c +++ b/usr.bin/sed/main.c @@ -132,7 +132,7 @@ main(int argc, char *argv[]) fflag = 0; inplace = NULL; - while ((c = getopt(argc, argv, "EI:ae:f:i:lnr")) != -1) + while ((c = getopt(argc, argv, "EI:ae:f:i:lnru")) != -1) switch (c) { case 'r': /* Gnu sed compat */ case 'E': @@ -162,12 +162,16 @@ main(int argc, char *argv[]) ispan = 0; /* don't span across input files */ break; case 'l': - if(setlinebuf(stdout) != 0) - warnx("setlinebuf() failed"); + if(setvbuf(stdout, NULL, _IOLBF, 0) != 0) + warnx("setting line buffered output failed"); break; case 'n': nflag = 1; break; + case 'u': + if(setvbuf(stdout, NULL, _IONBF, 0) != 0) + warnx("setting unbuffered output failed"); + break; default: case '?': usage(); @@ -199,9 +203,10 @@ main(int argc, char *argv[]) static void usage(void) { - (void)fprintf(stderr, "%s\n%s\n", - "usage: sed script [-Ealn] [-i extension] [file ...]", - " sed [-Ealn] [-i extension] [-e script] ... [-f script_file] ... [file ...]"); + (void)fprintf(stderr, + "usage: %s script [-Ealnru] [-i[]] [file ...]\n" + "\t%s [-Ealnu] [-i[]] [-e script] ... [-f script_file]" + " ... [file ...]\n", getprogname(), getprogname()); exit(1); } diff --git a/usr.bin/sed/sed.1 b/usr.bin/sed/sed.1 index cf27496..277535e 100644 --- a/usr.bin/sed/sed.1 +++ b/usr.bin/sed/sed.1 @@ -31,7 +31,7 @@ .\" @(#)sed.1 8.2 (Berkeley) 12/30/93 .\" $FreeBSD$ .\" -.Dd December 9, 2013 +.Dd June 20, 2014 .Dt SED 1 .Os .Sh NAME @@ -39,7 +39,7 @@ .Nd stream editor .Sh SYNOPSIS .Nm -.Op Fl Ealnr +.Op Fl Ealnru .Ar command .Op Ar .Nm @@ -148,6 +148,8 @@ option suppresses this behavior. Same as .Fl E for compatibility with GNU sed. +.It Fl u +Make output unbuffered. .El .Pp The form of a -- cgit v1.1