summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorru <ru@FreeBSD.org>2011-06-21 19:34:57 +0000
committerru <ru@FreeBSD.org>2011-06-21 19:34:57 +0000
commit2df9331d12f7b78278e2828898debc4238212f5c (patch)
tree54e7e7229c7793a663274534309b06335e754c9c
parent51b09ade326c5836f72fe82051d343af43fb78c7 (diff)
downloadFreeBSD-src-2df9331d12f7b78278e2828898debc4238212f5c.zip
FreeBSD-src-2df9331d12f7b78278e2828898debc4238212f5c.tar.gz
Make ``realpath'' behave like ``realpath .''.
-rw-r--r--bin/realpath/realpath.110
-rw-r--r--bin/realpath/realpath.c16
2 files changed, 15 insertions, 11 deletions
diff --git a/bin/realpath/realpath.1 b/bin/realpath/realpath.1
index cf904ed..8df1047 100644
--- a/bin/realpath/realpath.1
+++ b/bin/realpath/realpath.1
@@ -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
diff --git a/bin/realpath/realpath.c b/bin/realpath/realpath.c
index 99f5a9d5..a2ae06b 100644
--- a/bin/realpath/realpath.c
+++ b/bin/realpath/realpath.c
@@ -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);
}
OpenPOWER on IntegriCloud