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);
 }
_______________________________________________
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-unsubscr...@freebsd.org"

Reply via email to