Module Name:    src
Committed By:   christos
Date:           Sun Oct 30 19:13:37 UTC 2016

Modified Files:
        src/usr.bin/cmp: cmp.1 cmp.c

Log Message:
add a flag to avoid mmap...


To generate a diff of this commit:
cvs rdiff -u -r1.9 -r1.10 src/usr.bin/cmp/cmp.1
cvs rdiff -u -r1.18 -r1.19 src/usr.bin/cmp/cmp.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/cmp/cmp.1
diff -u src/usr.bin/cmp/cmp.1:1.9 src/usr.bin/cmp/cmp.1:1.10
--- src/usr.bin/cmp/cmp.1:1.9	Thu Aug  7 07:13:21 2003
+++ src/usr.bin/cmp/cmp.1	Sun Oct 30 15:13:36 2016
@@ -1,4 +1,4 @@
-.\"	$NetBSD: cmp.1,v 1.9 2003/08/07 11:13:21 agc Exp $
+.\"	$NetBSD: cmp.1,v 1.10 2016/10/30 19:13:36 christos Exp $
 .\"
 .\" Copyright (c) 1987, 1990, 1993
 .\"	The Regents of the University of California.  All rights reserved.
@@ -32,7 +32,7 @@
 .\"
 .\"     @(#)cmp.1	8.1 (Berkeley) 6/6/93
 .\"
-.Dd June 6, 1993
+.Dd October 30, 2016
 .Dt CMP 1
 .Os
 .Sh NAME
@@ -40,7 +40,7 @@
 .Nd compare two files
 .Sh SYNOPSIS
 .Nm
-.Op Fl l | Fl s
+.Op Fl c | Fl l | Fl s
 .Ar file1 file2
 .Op Ar skip1 Op Ar skip2
 .Sh DESCRIPTION
@@ -55,6 +55,15 @@ Bytes and lines are numbered beginning w
 .Pp
 The following options are available:
 .Bl -tag -width flag
+.It Fl c
+Do the compare using
+.Xr getc 3
+rather than
+.Xr mmap 2 .
+Combined with the
+.Fl l
+flag, this can be helpful in locating an I/O error in the underlying
+device.
 .It Fl l
 Print the byte number (decimal) and the differing
 byte values (octal) for each difference.

Index: src/usr.bin/cmp/cmp.c
diff -u src/usr.bin/cmp/cmp.c:1.18 src/usr.bin/cmp/cmp.c:1.19
--- src/usr.bin/cmp/cmp.c:1.18	Mon Aug 29 10:14:11 2011
+++ src/usr.bin/cmp/cmp.c	Sun Oct 30 15:13:36 2016
@@ -1,4 +1,4 @@
-/*	$NetBSD: cmp.c,v 1.18 2011/08/29 14:14:11 joerg Exp $	*/
+/*	$NetBSD: cmp.c,v 1.19 2016/10/30 19:13:36 christos Exp $	*/
 
 /*
  * Copyright (c) 1987, 1990, 1993, 1994
@@ -39,7 +39,7 @@ __COPYRIGHT("@(#) Copyright (c) 1987, 19
 #if 0
 static char sccsid[] = "@(#)cmp.c	8.3 (Berkeley) 4/2/94";
 #else
-__RCSID("$NetBSD: cmp.c,v 1.18 2011/08/29 14:14:11 joerg Exp $");
+__RCSID("$NetBSD: cmp.c,v 1.19 2016/10/30 19:13:36 christos Exp $");
 #endif
 #endif /* not lint */
 
@@ -71,8 +71,12 @@ main(int argc, char *argv[])
 
 	setlocale(LC_ALL, "");
 
-	while ((ch = getopt(argc, argv, "ls")) != -1)
+	special = 0;
+	while ((ch = getopt(argc, argv, "cls")) != -1)
 		switch (ch) {
+		case 'c':
+			special = 1;	/* careful!  Don't use mmap() */
+			break;
 		case 'l':		/* print all differences */
 			lflag = 1;
 			break;
@@ -93,7 +97,6 @@ main(int argc, char *argv[])
 		usage();
 
 	/* Backward compatibility -- handle "-" meaning stdin. */
-	special = 0;
 	if (strcmp(file1 = argv[0], "-") == 0) {
 		special = 1;
 		fd1 = 0;
@@ -159,6 +162,6 @@ usage(void)
 {
 
 	(void)fprintf(stderr,
-	    "usage: cmp [-l | -s] file1 file2 [skip1 [skip2]]\n");
+	    "usage: cmp [-c | -l | -s] file1 file2 [skip1 [skip2]]\n");
 	exit(ERR_EXIT);
 }

Reply via email to