Module Name:    src
Committed By:   christos
Date:           Tue Jun 17 16:39:02 UTC 2014

Modified Files:
        src/usr.bin/sed: main.c sed.1

Log Message:
add -u (unbuffered output) after GNU sed.


To generate a diff of this commit:
cvs rdiff -u -r1.24 -r1.25 src/usr.bin/sed/main.c
cvs rdiff -u -r1.34 -r1.35 src/usr.bin/sed/sed.1

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/usr.bin/sed/main.c
diff -u src/usr.bin/sed/main.c:1.24 src/usr.bin/sed/main.c:1.25
--- src/usr.bin/sed/main.c:1.24	Fri Jun  6 08:46:54 2014
+++ src/usr.bin/sed/main.c	Tue Jun 17 12:39:02 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: main.c,v 1.24 2014/06/06 12:46:54 joerg Exp $	*/
+/*	$NetBSD: main.c,v 1.25 2014/06/17 16:39:02 christos Exp $	*/
 
 /*-
  * Copyright (c) 2013 Johann 'Myrkraverk' Oskarsson.
@@ -39,7 +39,7 @@
 #endif
 
 #include <sys/cdefs.h>
-__RCSID("$NetBSD: main.c,v 1.24 2014/06/06 12:46:54 joerg Exp $");
+__RCSID("$NetBSD: main.c,v 1.25 2014/06/17 16:39:02 christos Exp $");
 #ifdef __FBSDID
 __FBSDID("$FreeBSD: head/usr.bin/sed/main.c 252231 2013-06-26 04:14:19Z pfg $");
 #endif
@@ -137,7 +137,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':
@@ -177,6 +177,16 @@ main(int argc, char *argv[])
 		case 'n':
 			nflag = 1;
 			break;
+		case 'u':
+#ifdef _IONBF
+			c = setvbuf(stdout, NULL, _IONBF, 0);
+#else
+			c = -1;
+			errno = EOPNOTSUPP;
+#endif
+			if (c)
+				warn("setting unbuffered output failed");
+			break;
 		default:
 		case '?':
 			usage();
@@ -208,9 +218,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 [-Ealnu] [-i[<extension>]] [file ...]\n"
+	    "\t%s [-Ealnu] [-i[<extension>]] [-e script] ... [-f script_file]"
+	    " ... [file ...]\n", getprogname(), getprogname());
 	exit(1);
 }
 

Index: src/usr.bin/sed/sed.1
diff -u src/usr.bin/sed/sed.1:1.34 src/usr.bin/sed/sed.1:1.35
--- src/usr.bin/sed/sed.1:1.34	Fri Jun  6 10:36:38 2014
+++ src/usr.bin/sed/sed.1	Tue Jun 17 12:39:02 2014
@@ -1,4 +1,4 @@
-.\"	$NetBSD: sed.1,v 1.34 2014/06/06 14:36:38 christos Exp $
+.\"	$NetBSD: sed.1,v 1.35 2014/06/17 16:39:02 christos Exp $
 .\" Copyright (c) 1992, 1993
 .\"	The Regents of the University of California.  All rights reserved.
 .\"
@@ -32,7 +32,7 @@
 .\"	@(#)sed.1	8.2 (Berkeley) 12/30/93
 .\" $FreeBSD: head/usr.bin/sed/sed.1 259132 2013-12-09 18:57:20Z eadler $
 .\"
-.Dd December 9, 2013
+.Dd June 17, 2014
 .Dt SED 1
 .Os
 .Sh NAME
@@ -40,7 +40,7 @@
 .Nd stream editor
 .Sh SYNOPSIS
 .Nm
-.Op Fl Ealnr
+.Op Fl Ealnru
 .Ar command
 .Op Ar
 .Nm
@@ -149,6 +149,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

Reply via email to