Bug 121520 - [patch]: support for multiple arguments for dirname(1) just as basename(1) does
Summary: [patch]: support for multiple arguments for dirname(1) just as basename(1) does
Status: Closed FIXED
Alias: None
Product: Base System
Classification: Unclassified
Component: bin (show other bugs)
Version: 6.3-STABLE
Hardware: Any Any
: Normal Affects Only Me
Assignee: Robert Watson
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-03-09 14:10 UTC by Ighighi
Modified: 2009-02-07 11:39 UTC (History)
0 users

See Also:


Attachments
file.txt (906 bytes, text/plain)
2008-03-09 14:10 UTC, Ighighi
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Ighighi 2008-03-09 14:10:01 UTC
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.

Fix: Patch attached with submission follows:
Comment 1 Robert Watson freebsd_committer freebsd_triage 2008-03-09 15:20:51 UTC
Responsible Changed
From-To: freebsd-bugs->rwatson

Grab ownership of PR.
Comment 2 Matteo Riondato freebsd_committer freebsd_triage 2008-11-18 21:49:17 UTC
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)
Comment 3 dfilter service freebsd_committer freebsd_triage 2009-02-02 11:20:40 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"
Comment 4 Robert Watson freebsd_committer freebsd_triage 2009-02-02 13:06:18 UTC
State Changed
From-To: open->patched

Transition to patched state now that it's committed to HEAD; will close 
when merged to 7.x.
Comment 5 dfilter service freebsd_committer freebsd_triage 2009-02-07 11:27:45 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"
Comment 6 Robert Watson freebsd_committer freebsd_triage 2009-02-07 11:38:40 UTC
State Changed
From-To: patched->closed

Close following MFC to 7.x; this change will first appear in FreeBSD 7.2. 
Thanks for the patch!