Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 21 Jun 2011 19:34:57 +0000 (UTC)
From:      Ruslan Ermilov <ru@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r223372 - head/bin/realpath
Message-ID:  <201106211934.p5LJYvsP013837@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: ru
Date: Tue Jun 21 19:34:57 2011
New Revision: 223372
URL: http://svn.freebsd.org/changeset/base/223372

Log:
  Make ``realpath'' behave like ``realpath .''.

Modified:
  head/bin/realpath/realpath.1
  head/bin/realpath/realpath.c

Modified: head/bin/realpath/realpath.1
==============================================================================
--- head/bin/realpath/realpath.1	Tue Jun 21 19:31:31 2011	(r223371)
+++ head/bin/realpath/realpath.1	Tue Jun 21 19:34:57 2011	(r223372)
@@ -33,7 +33,7 @@
 .\" From: src/bin/pwd/pwd.1,v 1.11 2000/11/20 11:39:39 ru Exp
 .\" $FreeBSD$
 .\"
-.Dd November 24, 2000
+.Dd June 21, 2011
 .Dt REALPATH 1
 .Os
 .Sh NAME
@@ -42,8 +42,7 @@
 .Sh SYNOPSIS
 .Nm
 .Op Fl q
-.Ar path
-.Op Ar ...
+.Op Ar path ...
 .Sh DESCRIPTION
 The
 .Nm
@@ -57,6 +56,11 @@ and
 .Pa /../
 in
 .Ar path .
+If
+.Ar path
+is absent, the current working directory
+.Pq Sq Pa .\&
+is assumed.
 .Pp
 If
 .Fl q

Modified: head/bin/realpath/realpath.c
==============================================================================
--- head/bin/realpath/realpath.c	Tue Jun 21 19:31:31 2011	(r223371)
+++ head/bin/realpath/realpath.c	Tue Jun 21 19:34:57 2011	(r223372)
@@ -44,7 +44,8 @@ main(int argc, char *argv[])
 {
 	char buf[PATH_MAX];
 	char *p;
-	int ch, i, qflag, rval;
+	const char *path;
+	int ch, qflag, rval;
 
 	qflag = 0;
 	while ((ch = getopt(argc, argv, "q")) != -1) {
@@ -59,17 +60,16 @@ main(int argc, char *argv[])
 	}
 	argc -= optind;
 	argv += optind;
-	if (argc < 1)
-		usage();
+	path = *argv != NULL ? *argv++ : ".";
 	rval  = 0;
-	for (i = 0; i < argc; i++) {
-		if ((p = realpath(argv[i], buf)) == NULL) {
+	do {
+		if ((p = realpath(path, buf)) == NULL) {
 			if (!qflag)
-				warn("%s", argv[i]);
+				warn("%s", path);
 			rval = 1;
 		} else
 			(void)printf("%s\n", p);
-	}
+	} while ((path = *argv++) != NULL);
 	exit(rval);
 }
 
@@ -77,6 +77,6 @@ static void
 usage(void)
 {
 
-	(void)fprintf(stderr, "usage: realpath [-q] path [...]\n");
+	(void)fprintf(stderr, "usage: realpath [-q] [path ...]\n");
   	exit(1);
 }



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201106211934.p5LJYvsP013837>