From nobody@FreeBSD.org  Sun Mar  9 14:03:26 2008
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 332B31065670
	for <freebsd-gnats-submit@FreeBSD.org>; Sun,  9 Mar 2008 14:03:26 +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 1A27D8FC1E
	for <freebsd-gnats-submit@FreeBSD.org>; Sun,  9 Mar 2008 14:03:26 +0000 (UTC)
	(envelope-from nobody@FreeBSD.org)
Received: from www.freebsd.org (localhost [127.0.0.1])
	by www.freebsd.org (8.14.2/8.14.2) with ESMTP id m29E0GXe064796
	for <freebsd-gnats-submit@FreeBSD.org>; Sun, 9 Mar 2008 14:00:16 GMT
	(envelope-from nobody@www.freebsd.org)
Received: (from nobody@localhost)
	by www.freebsd.org (8.14.2/8.14.1/Submit) id m29E0GAD064795;
	Sun, 9 Mar 2008 14:00:16 GMT
	(envelope-from nobody)
Message-Id: <200803091400.m29E0GAD064795@www.freebsd.org>
Date: Sun, 9 Mar 2008 14:00:16 GMT
From: Ighighi <ighighi@gmail.com>
To: freebsd-gnats-submit@FreeBSD.org
Subject: [patch]: support for multiple arguments for dirname(1) just as basename(1) does
X-Send-Pr-Version: www-3.1
X-GNATS-Notify:

>Number:         121520
>Category:       bin
>Synopsis:       [patch]: support for multiple arguments for dirname(1) just as basename(1) does
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    rwatson
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Sun Mar 09 14:10:01 UTC 2008
>Closed-Date:    Sat Feb 07 11:39:07 UTC 2009
>Last-Modified:  Sat Feb 07 11:39:07 UTC 2009
>Originator:     Ighighi
>Release:        6.3-STABLE
>Organization:
>Environment:
FreeBSD orion 6.3-STABLE FreeBSD 6.3-STABLE #0: Mon Mar  3 04:45:31 VET 2008     root@orion:/usr/obj/usr/src/sys/CUSTOM  i386

>Description:
This patch adds support for multiple arguments to dirname(1) like basename(1) has
been already.  It's the natural thing to expect, both commands even share the
same manpage.
>How-To-Repeat:

>Fix:


Patch attached with submission follows:

#
# Note: both basename(1) and dirname(1) use basename(1)'s manpage
#

--- src/usr.bin/dirname/dirname.c.orig	Sat May 21 05:55:05 2005
+++ src/usr.bin/dirname/dirname.c	Thu May  3 18:09:12 2007
@@ -66,12 +66,15 @@
 	argc -= optind;
 	argv += optind;
 
-	if (argc != 1)
+	if (argc < 1)
 		usage();
 
-	if ((p = dirname(*argv)) == NULL)
-		err(1, "%s", *argv);
-	(void)printf("%s\n", p);
+	while (argc--) {
+		if ((p = dirname(*argv)) == NULL)
+			err(1, "%s", *argv);
+		argv++;
+		(void)printf("%s\n", p);
+	}
 	exit(0);
 }
 
@@ -79,6 +82,6 @@
 usage(void)
 {
 
-	(void)fprintf(stderr, "usage: dirname string\n");
+	(void)fprintf(stderr, "usage: dirname string [...]\n");
 	exit(1);
 }
--- src/usr.bin/basename/basename.1.orig	Tue Jan 18 09:43:47 2005
+++ src/usr.bin/basename/basename.1	Thu May  3 18:28:27 2007
@@ -52,6 +52,7 @@
 .Op Ar ...
 .Nm dirname
 .Ar string
+.Op Ar ...
 .Sh DESCRIPTION
 The
 .Nm


>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-bugs->rwatson 
Responsible-Changed-By: rwatson 
Responsible-Changed-When: Sun Mar 9 15:20:51 UTC 2008 
Responsible-Changed-Why:  
Grab ownership of PR. 

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

From: "Matteo Riondato" <matteo@freebsd.org>
To: bug-followup@freebsd.org, ighighi@gmail.com
Cc:  
Subject: Re: bin/121520: [patch]: support for multiple arguments for dirname(1) just as basename(1) does
Date: Tue, 18 Nov 2008 16:49:17 -0500

 bin/86148 looks like a duplicate of this.
 Best regards
 -- 
 Matteo Riondato
 FreeBSD Committer (http://www.freebsd.org)
 G.U.F.I. Staff Member (http://www.gufi.org)
 FreeSBIE Developer (http://www.freesbie.org)

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: bin/121520: commit references a PR
Date: Mon,  2 Feb 2009 11:20:40 +0000 (UTC)

 Author: rwatson
 Date: Mon Feb  2 11:19:56 2009
 New Revision: 188006
 URL: http://svn.freebsd.org/changeset/base/188006
 
 Log:
   Alow dirname(1) to accept multiple arguments in the same way that
   basename(1) does.
   
   (Two different PRs contained identical patches, both cited below)
   
   PR:		121520, 86148
   Submitted by:	Ighighi <ighighi at gmail dot com>
   Submitted by:	Leif Neland <leif at neland dot dk>
   MFC after:	3 days
 
 Modified:
   head/usr.bin/basename/basename.1
   head/usr.bin/dirname/dirname.c
 
 Modified: head/usr.bin/basename/basename.1
 ==============================================================================
 --- head/usr.bin/basename/basename.1	Mon Feb  2 11:02:19 2009	(r188005)
 +++ head/usr.bin/basename/basename.1	Mon Feb  2 11:19:56 2009	(r188006)
 @@ -52,6 +52,7 @@
  .Op Ar ...
  .Nm dirname
  .Ar string
 +.Op Ar ...
  .Sh DESCRIPTION
  The
  .Nm
 
 Modified: head/usr.bin/dirname/dirname.c
 ==============================================================================
 --- head/usr.bin/dirname/dirname.c	Mon Feb  2 11:02:19 2009	(r188005)
 +++ head/usr.bin/dirname/dirname.c	Mon Feb  2 11:19:56 2009	(r188006)
 @@ -66,12 +66,15 @@ main(int argc, char **argv)
  	argc -= optind;
  	argv += optind;
  
 -	if (argc != 1)
 +	if (argc < 1)
  		usage();
  
 -	if ((p = dirname(*argv)) == NULL)
 -		err(1, "%s", *argv);
 -	(void)printf("%s\n", p);
 +	while (argc--) {
 +		if ((p = dirname(*argv)) == NULL)
 +			err(1, "%s", *argv);
 +		argv++;
 +		(void)printf("%s\n", p);
 +	}
  	exit(0);
  }
  
 @@ -79,6 +82,6 @@ void
  usage(void)
  {
  
 -	(void)fprintf(stderr, "usage: dirname string\n");
 +	(void)fprintf(stderr, "usage: dirname string [...]\n");
  	exit(1);
  }
 _______________________________________________
 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: rwatson 
State-Changed-When: Mon Feb 2 13:06:18 UTC 2009 
State-Changed-Why:  
Transition to patched state now that it's committed to HEAD; will close 
when merged to 7.x. 

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

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: bin/121520: commit references a PR
Date: Sat,  7 Feb 2009 11:27:45 +0000 (UTC)

 Author: rwatson
 Date: Sat Feb  7 11:27:35 2009
 New Revision: 188279
 URL: http://svn.freebsd.org/changeset/base/188279
 
 Log:
   Merge r188006 from head to stable/7:
   
     Alow dirname(1) to accept multiple arguments in the same way that
     basename(1) does.
   
     (Two different PRs contained identical patches, both cited below)
   
     PR:           121520, 86148
     Submitted by: Ighighi <ighighi at gmail dot com>
     Submitted by: Leif Neland <leif at neland dot dk>
 
 Modified:
   stable/7/usr.bin/basename/   (props changed)
   stable/7/usr.bin/basename/basename.1
   stable/7/usr.bin/dirname/   (props changed)
   stable/7/usr.bin/dirname/dirname.c
 
 Modified: stable/7/usr.bin/basename/basename.1
 ==============================================================================
 --- stable/7/usr.bin/basename/basename.1	Sat Feb  7 11:15:53 2009	(r188278)
 +++ stable/7/usr.bin/basename/basename.1	Sat Feb  7 11:27:35 2009	(r188279)
 @@ -52,6 +52,7 @@
  .Op Ar ...
  .Nm dirname
  .Ar string
 +.Op Ar ...
  .Sh DESCRIPTION
  The
  .Nm
 
 Modified: stable/7/usr.bin/dirname/dirname.c
 ==============================================================================
 --- stable/7/usr.bin/dirname/dirname.c	Sat Feb  7 11:15:53 2009	(r188278)
 +++ stable/7/usr.bin/dirname/dirname.c	Sat Feb  7 11:27:35 2009	(r188279)
 @@ -66,12 +66,15 @@ main(int argc, char **argv)
  	argc -= optind;
  	argv += optind;
  
 -	if (argc != 1)
 +	if (argc < 1)
  		usage();
  
 -	if ((p = dirname(*argv)) == NULL)
 -		err(1, "%s", *argv);
 -	(void)printf("%s\n", p);
 +	while (argc--) {
 +		if ((p = dirname(*argv)) == NULL)
 +			err(1, "%s", *argv);
 +		argv++;
 +		(void)printf("%s\n", p);
 +	}
  	exit(0);
  }
  
 @@ -79,6 +82,6 @@ void
  usage(void)
  {
  
 -	(void)fprintf(stderr, "usage: dirname string\n");
 +	(void)fprintf(stderr, "usage: dirname string [...]\n");
  	exit(1);
  }
 _______________________________________________
 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: rwatson 
State-Changed-When: Sat Feb 7 11:38:40 UTC 2009 
State-Changed-Why:  
Close following MFC to 7.x; this change will first appear in FreeBSD 7.2. 
Thanks for the patch! 

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