Module Name:    src
Committed By:   joerg
Date:           Mon Apr 18 03:48:23 UTC 2011

Modified Files:
        src/usr.bin/grep: grep.c

Log Message:
Use the more portable getline.


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 src/usr.bin/grep/grep.c

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/grep/grep.c
diff -u src/usr.bin/grep/grep.c:1.5 src/usr.bin/grep/grep.c:1.6
--- src/usr.bin/grep/grep.c:1.5	Mon Apr 18 03:27:40 2011
+++ src/usr.bin/grep/grep.c	Mon Apr 18 03:48:23 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: grep.c,v 1.5 2011/04/18 03:27:40 joerg Exp $	*/
+/*	$NetBSD: grep.c,v 1.6 2011/04/18 03:48:23 joerg Exp $	*/
 /* 	$FreeBSD: head/usr.bin/grep/grep.c 211519 2010-08-19 22:55:17Z delphij $	*/
 /*	$OpenBSD: grep.c,v 1.42 2010/07/02 22:18:03 tedu Exp $	*/
 
@@ -34,7 +34,7 @@
 #endif
 
 #include <sys/cdefs.h>
-__RCSID("$NetBSD: grep.c,v 1.5 2011/04/18 03:27:40 joerg Exp $");
+__RCSID("$NetBSD: grep.c,v 1.6 2011/04/18 03:48:23 joerg Exp $");
 
 #include <sys/stat.h>
 #include <sys/types.h>
@@ -292,11 +292,15 @@
 	FILE *f;
 	char *line;
 	size_t len;
+	ssize_t rlen;
 
 	if ((f = fopen(fn, "r")) == NULL)
 		err(2, "%s", fn);
-	while ((line = fgetln(f, &len)) != NULL)
-		add_pattern(line, *line == '\n' ? 0 : len);
+	line = NULL;
+	len = 0;
+	while ((rlen = getline(&line, &len, f)) != -1)
+		add_pattern(line, *line == '\n' ? 0 : (size_t)rlen);
+	free(line);
 	if (ferror(f))
 		err(2, "%s", fn);
 	fclose(f);

Reply via email to