From nobody@FreeBSD.org  Thu May 13 07:52:46 2010
Return-Path: <nobody@FreeBSD.org>
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 756161065674
	for <freebsd-gnats-submit@FreeBSD.org>; Thu, 13 May 2010 07:52:46 +0000 (UTC)
	(envelope-from nobody@FreeBSD.org)
Received: from www.freebsd.org (www.freebsd.org [IPv6:2001:4f8:fff6::21])
	by mx1.freebsd.org (Postfix) with ESMTP id 5CB898FC25
	for <freebsd-gnats-submit@FreeBSD.org>; Thu, 13 May 2010 07:52:46 +0000 (UTC)
Received: from www.freebsd.org (localhost [127.0.0.1])
	by www.freebsd.org (8.14.3/8.14.3) with ESMTP id o4D7qjcT051393
	for <freebsd-gnats-submit@FreeBSD.org>; Thu, 13 May 2010 07:52:46 GMT
	(envelope-from nobody@www.freebsd.org)
Received: (from nobody@localhost)
	by www.freebsd.org (8.14.3/8.14.3/Submit) id o4D7qjPY051392;
	Thu, 13 May 2010 07:52:45 GMT
	(envelope-from nobody)
Message-Id: <201005130752.o4D7qjPY051392@www.freebsd.org>
Date: Thu, 13 May 2010 07:52:45 GMT
From: Eitan Adler <lists@eitanadler.com>
To: freebsd-gnats-submit@FreeBSD.org
Subject: [patch] add check option to md5(1)
X-Send-Pr-Version: www-3.1
X-GNATS-Notify:

>Number:         146541
>Category:       bin
>Synopsis:       [patch] add check option to md5(1)
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    eadler
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Thu May 13 08:00:17 UTC 2010
>Closed-Date:    Sat Jan 07 04:09:25 UTC 2012
>Last-Modified:  Sat Jan 07 04:09:25 UTC 2012
>Originator:     Eitan Adler
>Release:        
>Organization:
>Environment:
>Description:
This patch adds a -c option to md5(1) and related utilities that accepts as a command line option a hash to check against.
If the -q option is not specified it prints "[ failed ]" if the hash of the given filename or string does not match.
Regardless of -q it returns 2 on any mismatch.

I sent a the patch to -hackers without any feedback.
>How-To-Repeat:

>Fix:


Patch attached with submission follows:

Index: md5.1
===================================================================
--- md5.1	(revision 207433)
+++ md5.1	(working copy)
@@ -73,6 +73,8 @@
 The hexadecimal checksum of each file listed on the command line is printed
 after the options are processed.
 .Bl -tag -width indent
+.It Fl c Ar string
+Compare files to this md5 string
 .It Fl s Ar string
 Print a checksum of the given
 .Ar string .
@@ -101,7 +103,8 @@
 and
 .Nm rmd160
 utilities exit 0 on success,
-and 1 if at least one of the input files could not be read.
+1 if at least one of the input files could not be read,
+and 2 if at least one file does not have the same hash as the -c option.
 .Sh SEE ALSO
 .Xr cksum 1 ,
 .Xr md5 3 ,
Index: md5.c
===================================================================
--- md5.c	(revision 207433)
+++ md5.c	(working copy)
@@ -44,6 +44,8 @@
 int qflag;
 int rflag;
 int sflag;
+unsigned char* checkAgainst;
+int	checksFailed;
 
 typedef void (DIGEST_Init)(void *);
 typedef void (DIGEST_Update)(void *, const unsigned char *, size_t);
@@ -138,8 +140,13 @@
  		digest = 0;
 
 	failed = 0;
-	while ((ch = getopt(argc, argv, "pqrs:tx")) != -1)
+	checkAgainst = NULL;
+	checksFailed = 0;
+	while ((ch = getopt(argc, argv, "c:pqrs:tx")) != -1)
 		switch (ch) {
+		case 'c':
+			checkAgainst = optarg;
+			break;
 		case 'p':
 			MDFilter(&Algorithm[digest], 1);
 			break;
@@ -173,12 +180,19 @@
 				failed++;
 			} else {
 				if (qflag)
-					printf("%s\n", p);
+					printf("%s", p);
 				else if (rflag)
-					printf("%s %s\n", p, *argv);
+					printf("%s %s", p, *argv);
 				else
-					printf("%s (%s) = %s\n",
+					printf("%s (%s) = %s",
 					    Algorithm[digest].name, *argv, p);
+				if (checkAgainst && strcmp(checkAgainst,p))
+				{
+					checksFailed++;
+					if (!qflag)
+						printf("%s","[ Failed ]");
+				}
+				printf("\n");
 			}
 		} while (*++argv);
 	} else if (!sflag && (optind == 1 || qflag || rflag))
@@ -186,6 +200,8 @@
 
 	if (failed != 0)
 		return (1);
+	if (checksFailed != 0)
+		return (2);
 
 	return (0);
 }
@@ -198,12 +214,20 @@
 	size_t len = strlen(string);
 	char buf[HEX_DIGEST_LENGTH];
 
+	alg->Data(string,len,buf);
 	if (qflag)
-		printf("%s\n", alg->Data(string, len, buf));
+		printf("%s", buf);
 	else if (rflag)
-		printf("%s \"%s\"\n", alg->Data(string, len, buf), string);
+		printf("%s \"%s\"", buf, string);
 	else
-		printf("%s (\"%s\") = %s\n", alg->name, string, alg->Data(string, len, buf));
+		printf("%s (\"%s\") = %s", alg->name, string, buf);
+	if (checkAgainst && strcmp(buf,checkAgainst))
+	{
+		checksFailed++;
+		if (!qflag)
+			printf("%s"," [ failed ]");
+	}
+	printf("\n");
 }
 /*
  * Measures the time to digest TEST_BLOCK_COUNT TEST_BLOCK_LEN-byte blocks.


>Release-Note:
>Audit-Trail:

From: Eitan Adler <lists@eitanadler.com>
To: bug-followup@freebsd.org
Cc:  
Subject: Re: bin/146541: [patch] add check option to md5(1)
Date: Tue, 18 May 2010 09:28:56 +0300

 --0016e64f5e8fe94fb60486d875f7
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: quoted-printable
 
 ---------- Forwarded message ----------
 From: jhell <jhell@dataix.net>
 Date: Mon, May 17, 2010 at 10:11 PM
 Subject: Re: adding "check option to md5(1) [was: md5(1) and cal(1) on
 -questions]
 
 I have reviewed this patch for functionality and my final conclusion is
 commit it.
 
 Though I would like to see the same functionality that the GNU GPL'd
 version of md5 has with the '-c' option and being able to check every
 sum that is listed in a file against a file on disk(c), this version
 brings the availability to doing the checking right from md5 and utils
 from a script.
 
 I have also edited the manual page portion of the patch to include the
 '[-c string]' option in the SYNOPSIS section of the man pages. This
 newly generated patch was generated from the root of the source tree.
 
 # cd /path/to/src
 # patch </path/to/patch-file
 # cd /path/to/src/sbin/md5
 # make obj && make depend && make && make install
 --
 
 =C2=A0jhell
 
 --0016e64f5e8fe94fb60486d875f7
 Content-Type: text/plain; charset=US-ASCII; name="md5-checksum.patch"
 Content-Disposition: attachment; filename="md5-checksum.patch"
 Content-Transfer-Encoding: base64
 X-Attachment-Id: 0.1
 
 SW5kZXg6IHNiaW4vbWQ1L21kNS4xCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHNiaW4vbWQ1L21kNS4xCShyZXZp
 c2lvbiAyMDgxOTQpCisrKyBzYmluL21kNS9tZDUuMQkod29ya2luZyBjb3B5KQpAQCAtOCwxOCAr
 OCwyMiBAQAogLlNoIFNZTk9QU0lTCiAuTm0gbWQ1CiAuT3AgRmwgcHFydHgKKy5PcCBGbCBjIEFy
 IHN0cmluZwogLk9wIEZsIHMgQXIgc3RyaW5nCiAuT3AgQXIKIC5ObSBzaGExCiAuT3AgRmwgcHFy
 dHgKKy5PcCBGbCBjIEFyIHN0cmluZwogLk9wIEZsIHMgQXIgc3RyaW5nCiAuT3AgQXIKIC5ObSBz
 aGEyNTYKIC5PcCBGbCBwcXJ0eAorLk9wIEZsIGMgQXIgc3RyaW5nCiAuT3AgRmwgcyBBciBzdHJp
 bmcKIC5PcCBBcgogLk5tIHJtZDE2MAogLk9wIEZsIHBxcnR4CisuT3AgRmwgYyBBciBzdHJpbmcK
 IC5PcCBGbCBzIEFyIHN0cmluZwogLk9wIEFyCiAuU2ggREVTQ1JJUFRJT04KQEAgLTczLDYgKzc3
 LDggQEAKIFRoZSBoZXhhZGVjaW1hbCBjaGVja3N1bSBvZiBlYWNoIGZpbGUgbGlzdGVkIG9uIHRo
 ZSBjb21tYW5kIGxpbmUgaXMgcHJpbnRlZAogYWZ0ZXIgdGhlIG9wdGlvbnMgYXJlIHByb2Nlc3Nl
 ZC4KIC5CbCAtdGFnIC13aWR0aCBpbmRlbnQKKy5JdCBGbCBjIEFyIHN0cmluZworQ29tcGFyZSBm
 aWxlcyB0byB0aGlzIG1kNSBzdHJpbmcKIC5JdCBGbCBzIEFyIHN0cmluZwogUHJpbnQgYSBjaGVj
 a3N1bSBvZiB0aGUgZ2l2ZW4KIC5BciBzdHJpbmcgLgpAQCAtMTAxLDcgKzEwNyw4IEBACiBhbmQK
 IC5ObSBybWQxNjAKIHV0aWxpdGllcyBleGl0IDAgb24gc3VjY2VzcywKLWFuZCAxIGlmIGF0IGxl
 YXN0IG9uZSBvZiB0aGUgaW5wdXQgZmlsZXMgY291bGQgbm90IGJlIHJlYWQuCisxIGlmIGF0IGxl
 YXN0IG9uZSBvZiB0aGUgaW5wdXQgZmlsZXMgY291bGQgbm90IGJlIHJlYWQsCithbmQgMiBpZiBh
 dCBsZWFzdCBvbmUgZmlsZSBkb2VzIG5vdCBoYXZlIHRoZSBzYW1lIGhhc2ggYXMgdGhlIC1jIG9w
 dGlvbi4KIC5TaCBTRUUgQUxTTwogLlhyIGNrc3VtIDEgLAogLlhyIG1kNSAzICwKSW5kZXg6IHNi
 aW4vbWQ1L21kNS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHNiaW4vbWQ1L21kNS5jCShyZXZpc2lvbiAyMDgx
 OTQpCisrKyBzYmluL21kNS9tZDUuYwkod29ya2luZyBjb3B5KQpAQCAtNDQsNiArNDQsOCBAQAog
 aW50IHFmbGFnOwogaW50IHJmbGFnOwogaW50IHNmbGFnOwordW5zaWduZWQgY2hhciogY2hlY2tB
 Z2FpbnN0OworaW50CWNoZWNrc0ZhaWxlZDsKIAogdHlwZWRlZiB2b2lkIChESUdFU1RfSW5pdCko
 dm9pZCAqKTsKIHR5cGVkZWYgdm9pZCAoRElHRVNUX1VwZGF0ZSkodm9pZCAqLCBjb25zdCB1bnNp
 Z25lZCBjaGFyICosIHNpemVfdCk7CkBAIC0xMzgsOCArMTQwLDEzIEBACiAgCQlkaWdlc3QgPSAw
 OwogCiAJZmFpbGVkID0gMDsKLQl3aGlsZSAoKGNoID0gZ2V0b3B0KGFyZ2MsIGFyZ3YsICJwcXJz
 OnR4IikpICE9IC0xKQorCWNoZWNrQWdhaW5zdCA9IE5VTEw7CisJY2hlY2tzRmFpbGVkID0gMDsK
 Kwl3aGlsZSAoKGNoID0gZ2V0b3B0KGFyZ2MsIGFyZ3YsICJjOnBxcnM6dHgiKSkgIT0gLTEpCiAJ
 CXN3aXRjaCAoY2gpIHsKKwkJY2FzZSAnYyc6CisJCQljaGVja0FnYWluc3QgPSBvcHRhcmc7CisJ
 CQlicmVhazsKIAkJY2FzZSAncCc6CiAJCQlNREZpbHRlcigmQWxnb3JpdGhtW2RpZ2VzdF0sIDEp
 OwogCQkJYnJlYWs7CkBAIC0xNzMsMTIgKzE4MCwxOSBAQAogCQkJCWZhaWxlZCsrOwogCQkJfSBl
 bHNlIHsKIAkJCQlpZiAocWZsYWcpCi0JCQkJCXByaW50ZigiJXNcbiIsIHApOworCQkJCQlwcmlu
 dGYoIiVzIiwgcCk7CiAJCQkJZWxzZSBpZiAocmZsYWcpCi0JCQkJCXByaW50ZigiJXMgJXNcbiIs
 IHAsICphcmd2KTsKKwkJCQkJcHJpbnRmKCIlcyAlcyIsIHAsICphcmd2KTsKIAkJCQllbHNlCi0J
 CQkJCXByaW50ZigiJXMgKCVzKSA9ICVzXG4iLAorCQkJCQlwcmludGYoIiVzICglcykgPSAlcyIs
 CiAJCQkJCSAgICBBbGdvcml0aG1bZGlnZXN0XS5uYW1lLCAqYXJndiwgcCk7CisJCQkJaWYgKGNo
 ZWNrQWdhaW5zdCAmJiBzdHJjbXAoY2hlY2tBZ2FpbnN0LHApKQorCQkJCXsKKwkJCQkJY2hlY2tz
 RmFpbGVkKys7CisJCQkJCWlmICghcWZsYWcpCisJCQkJCQlwcmludGYoIiVzIiwiWyBGYWlsZWQg
 XSIpOworCQkJCX0KKwkJCQlwcmludGYoIlxuIik7CiAJCQl9CiAJCX0gd2hpbGUgKCorK2FyZ3Yp
 OwogCX0gZWxzZSBpZiAoIXNmbGFnICYmIChvcHRpbmQgPT0gMSB8fCBxZmxhZyB8fCByZmxhZykp
 CkBAIC0xODYsNiArMjAwLDggQEAKIAogCWlmIChmYWlsZWQgIT0gMCkKIAkJcmV0dXJuICgxKTsK
 KwlpZiAoY2hlY2tzRmFpbGVkICE9IDApCisJCXJldHVybiAoMik7CiAKIAlyZXR1cm4gKDApOwog
 fQpAQCAtMTk4LDEyICsyMTQsMjAgQEAKIAlzaXplX3QgbGVuID0gc3RybGVuKHN0cmluZyk7CiAJ
 Y2hhciBidWZbSEVYX0RJR0VTVF9MRU5HVEhdOwogCisJYWxnLT5EYXRhKHN0cmluZyxsZW4sYnVm
 KTsKIAlpZiAocWZsYWcpCi0JCXByaW50ZigiJXNcbiIsIGFsZy0+RGF0YShzdHJpbmcsIGxlbiwg
 YnVmKSk7CisJCXByaW50ZigiJXMiLCBidWYpOwogCWVsc2UgaWYgKHJmbGFnKQotCQlwcmludGYo
 IiVzIFwiJXNcIlxuIiwgYWxnLT5EYXRhKHN0cmluZywgbGVuLCBidWYpLCBzdHJpbmcpOworCQlw
 cmludGYoIiVzIFwiJXNcIiIsIGJ1Ziwgc3RyaW5nKTsKIAllbHNlCi0JCXByaW50ZigiJXMgKFwi
 JXNcIikgPSAlc1xuIiwgYWxnLT5uYW1lLCBzdHJpbmcsIGFsZy0+RGF0YShzdHJpbmcsIGxlbiwg
 YnVmKSk7CisJCXByaW50ZigiJXMgKFwiJXNcIikgPSAlcyIsIGFsZy0+bmFtZSwgc3RyaW5nLCBi
 dWYpOworCWlmIChjaGVja0FnYWluc3QgJiYgc3RyY21wKGJ1ZixjaGVja0FnYWluc3QpKQorCXsK
 KwkJY2hlY2tzRmFpbGVkKys7CisJCWlmICghcWZsYWcpCisJCQlwcmludGYoIiVzIiwiIFsgZmFp
 bGVkIF0iKTsKKwl9CisJcHJpbnRmKCJcbiIpOwogfQogLyoKICAqIE1lYXN1cmVzIHRoZSB0aW1l
 IHRvIGRpZ2VzdCBURVNUX0JMT0NLX0NPVU5UIFRFU1RfQkxPQ0tfTEVOLWJ5dGUgYmxvY2tzLgo=
 --0016e64f5e8fe94fb60486d875f7--
Responsible-Changed-From-To: freebsd-bugs->sectaem 
Responsible-Changed-By: remko 
Responsible-Changed-When: Sun Aug 29 14:13:57 UTC 2010 
Responsible-Changed-Why:  


http://www.freebsd.org/cgi/query-pr.cgi?pr=146541 
Responsible-Changed-From-To: sectaem->secteam 
Responsible-Changed-By: remko 
Responsible-Changed-When: Sun Aug 29 14:14:09 UTC 2010 
Responsible-Changed-Why:  
For review / check to secteam 

http://www.freebsd.org/cgi/query-pr.cgi?pr=146541 
Responsible-Changed-From-To: secteam->eadler 
Responsible-Changed-By: eadler 
Responsible-Changed-When: Sun Nov 13 06:52:31 UTC 2011 
Responsible-Changed-Why:  
from cperciva: change printf("%s"," [ failed ]"); to printf(" [ failed 
]"); and please add a sentence to the man page "(Note that this option 
is probably not useful if multiple files are specified.)", and it is 
approved 

http://www.freebsd.org/cgi/query-pr.cgi?pr=146541 

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: bin/146541: commit references a PR
Date: Sun, 13 Nov 2011 16:35:57 +0000 (UTC)

 Author: eadler (ports committer)
 Date: Sun Nov 13 16:35:47 2011
 New Revision: 227488
 URL: http://svn.freebsd.org/changeset/base/227488
 
 Log:
   - add "check" option to MD5 and friends to compare files against known hash.
   
   PR:		bin/146541
   Submitted by:	eadler
   Reviewed by:	jhell@dataix.net
   Approved by:	secteam (cperciva)
   Approved by:	cperciva
   MFC after:	3 weeks
 
 Modified:
   head/sbin/md5/md5.1
   head/sbin/md5/md5.c
 
 Modified: head/sbin/md5/md5.1
 ==============================================================================
 --- head/sbin/md5/md5.1	Sun Nov 13 16:18:48 2011	(r227487)
 +++ head/sbin/md5/md5.1	Sun Nov 13 16:35:47 2011	(r227488)
 @@ -8,18 +8,22 @@
  .Sh SYNOPSIS
  .Nm md5
  .Op Fl pqrtx
 +.Op Fl c Ar string
  .Op Fl s Ar string
  .Op Ar
  .Nm sha1
  .Op Fl pqrtx
 +.Op Fl c Ar string
  .Op Fl s Ar string
  .Op Ar
  .Nm sha256
  .Op Fl pqrtx
 +.Op Fl c Ar string
  .Op Fl s Ar string
  .Op Ar
  .Nm rmd160
  .Op Fl pqrtx
 +.Op Fl c Ar string
  .Op Fl s Ar string
  .Op Ar
  .Sh DESCRIPTION
 @@ -73,6 +77,9 @@ precede any files named on the command l
  The hexadecimal checksum of each file listed on the command line is printed
  after the options are processed.
  .Bl -tag -width indent
 +.It Fl c Ar string
 +Compare files to this md5 string. (Note that this option is not yet useful
 +if multiple files are specified.)
  .It Fl s Ar string
  Print a checksum of the given
  .Ar string .
 @@ -101,7 +108,8 @@ The
  and
  .Nm rmd160
  utilities exit 0 on success,
 -and 1 if at least one of the input files could not be read.
 +1 if at least one of the input files could not be read,
 +and 2 if at least one file does not have the same hash as the -c option.
  .Sh SEE ALSO
  .Xr cksum 1 ,
  .Xr md5 3 ,
 
 Modified: head/sbin/md5/md5.c
 ==============================================================================
 --- head/sbin/md5/md5.c	Sun Nov 13 16:18:48 2011	(r227487)
 +++ head/sbin/md5/md5.c	Sun Nov 13 16:35:47 2011	(r227488)
 @@ -44,6 +44,8 @@ __FBSDID("$FreeBSD$");
  int qflag;
  int rflag;
  int sflag;
 +unsigned char* checkAgainst;
 +int	checksFailed;
  
  typedef void (DIGEST_Init)(void *);
  typedef void (DIGEST_Update)(void *, const unsigned char *, size_t);
 @@ -138,8 +140,13 @@ main(int argc, char *argv[])
   		digest = 0;
  
  	failed = 0;
 -	while ((ch = getopt(argc, argv, "pqrs:tx")) != -1)
 +	checkAgainst = NULL;
 +	checksFailed = 0;
 +	while ((ch = getopt(argc, argv, "c:pqrs:tx")) != -1)
  		switch (ch) {
 +		case 'c':
 +			checkAgainst = optarg;
 +			break;
  		case 'p':
  			MDFilter(&Algorithm[digest], 1);
  			break;
 @@ -173,12 +180,19 @@ main(int argc, char *argv[])
  				failed++;
  			} else {
  				if (qflag)
 -					printf("%s\n", p);
 +					printf("%s", p);
  				else if (rflag)
 -					printf("%s %s\n", p, *argv);
 +					printf("%s %s", p, *argv);
  				else
 -					printf("%s (%s) = %s\n",
 +					printf("%s (%s) = %s",
  					    Algorithm[digest].name, *argv, p);
 +				if (checkAgainst && strcmp(checkAgainst,p))
 +				{
 +					checksFailed++;
 +					if (!qflag)
 +						printf(" [ Failed ]");
 +				}
 +				printf("\n");
  			}
  		} while (*++argv);
  	} else if (!sflag && (optind == 1 || qflag || rflag))
 @@ -186,6 +200,8 @@ main(int argc, char *argv[])
  
  	if (failed != 0)
  		return (1);
 +	if (checksFailed != 0)
 +		return (2);
  
  	return (0);
  }
 @@ -198,12 +214,20 @@ MDString(Algorithm_t *alg, const char *s
  	size_t len = strlen(string);
  	char buf[HEX_DIGEST_LENGTH];
  
 +	alg->Data(string,len,buf);
  	if (qflag)
 -		printf("%s\n", alg->Data(string, len, buf));
 +		printf("%s", buf);
  	else if (rflag)
 -		printf("%s \"%s\"\n", alg->Data(string, len, buf), string);
 +		printf("%s \"%s\"", buf, string);
  	else
 -		printf("%s (\"%s\") = %s\n", alg->name, string, alg->Data(string, len, buf));
 +		printf("%s (\"%s\") = %s", alg->name, string, buf);
 +	if (checkAgainst && strcmp(buf,checkAgainst))
 +	{
 +		checksFailed++;
 +		if (!qflag)
 +			printf(" [ failed ]");
 +	}
 +	printf("\n");
  }
  /*
   * Measures the time to digest TEST_BLOCK_COUNT TEST_BLOCK_LEN-byte blocks.
 _______________________________________________
 svn-src-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/svn-src-all
 To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
 
State-Changed-From-To: open->patched 
State-Changed-By: eadler 
State-Changed-When: Sun Nov 13 16:41:11 UTC 2011 
State-Changed-Why:  
now in head 

http://www.freebsd.org/cgi/query-pr.cgi?pr=146541 

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: bin/146541: commit references a PR
Date: Sun, 13 Nov 2011 17:07:57 +0000 (UTC)

 Author: eadler (ports committer)
 Date: Sun Nov 13 17:07:43 2011
 New Revision: 227491
 URL: http://svn.freebsd.org/changeset/base/227491
 
 Log:
   -  new sentence should start on new line.
   
   PR:		bin/146541
   Submitted by:	bjk
   Approved by:	bjk
 
 Modified:
   head/sbin/md5/md5.1
 
 Modified: head/sbin/md5/md5.1
 ==============================================================================
 --- head/sbin/md5/md5.1	Sun Nov 13 17:07:26 2011	(r227490)
 +++ head/sbin/md5/md5.1	Sun Nov 13 17:07:43 2011	(r227491)
 @@ -78,8 +78,8 @@ The hexadecimal checksum of each file li
  after the options are processed.
  .Bl -tag -width indent
  .It Fl c Ar string
 -Compare files to this md5 string. (Note that this option is not yet useful
 -if multiple files are specified.)
 +Compare files to this md5 string.
 +(Note that this option is not yet useful if multiple files are specified.)
  .It Fl s Ar string
  Print a checksum of the given
  .Ar string .
 _______________________________________________
 svn-src-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/svn-src-all
 To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
 
State-Changed-From-To: patched->closed 
State-Changed-By: eadler 
State-Changed-When: Sat Jan 7 04:09:24 UTC 2012 
State-Changed-Why:  
committed to 9,8,7 

http://www.freebsd.org/cgi/query-pr.cgi?pr=146541 
>Unformatted:
