[BACK]Return to readlink.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / readlink

Diff for /src/usr.bin/readlink/readlink.c between version 1.21 and 1.22

version 1.21, 2006/05/09 17:03:51 version 1.22, 2006/05/09 17:44:53
Line 27 
Line 27 
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.   * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */   */
   
 #include <err.h>  
 #include <limits.h>  #include <limits.h>
   #include <errno.h>
 #include <stdio.h>  #include <stdio.h>
 #include <stdlib.h>  #include <stdlib.h>
 #include <string.h>  #include <string.h>
 #include <unistd.h>  #include <unistd.h>
   
 __dead void usage(void);  
   
 int  int
 main(int argc, char *argv[])  main(int argc, char *argv[])
 {  {
         int ch, n, fflag = 0, nflag = 0;  
         char buf[PATH_MAX];          char buf[PATH_MAX];
           int n, ch, nflag = 0, fflag = 0;
           extern int optind;
   
         while ((ch = getopt(argc, argv, "fn")) != -1)          while ((ch = getopt(argc, argv, "fn")) != -1)
                 switch (ch) {                  switch (ch) {
Line 51 
Line 50 
                         nflag = 1;                          nflag = 1;
                         break;                          break;
                 default:                  default:
                         usage();                          (void)fprintf(stderr,
                               "usage: readlink [-n] [-f] symlink\n");
                           exit(1);
                 }                  }
         argc -= optind;          argc -= optind;
         argv += optind;          argv += optind;
   
         if (argc != 1)          if (argc != 1) {
                 usage();                  fprintf(stderr, "usage: readlink [-n] [-f] symlink\n");
                   exit(1);
           }
   
         if (strlen(argv[0]) > PATH_MAX - 1)          n = strlen(argv[0]);
                 errx(1, "filename longer than PATH_MAX-1 (%d)",          if (n > PATH_MAX - 1) {
                     PATH_MAX - 1);                  fprintf(stderr,
                           "readlink: filename longer than PATH_MAX-1 (%d)\n",
                           PATH_MAX - 1);
                   exit(1);
           }
   
         if (fflag) {          if (fflag)
                 if (realpath(argv[0], buf) == NULL)                  realpath(argv[0], buf);
                         err(1, "%s", argv[0]);          else {
         } else {  
                 if ((n = readlink(argv[0], buf, sizeof buf-1)) < 0)                  if ((n = readlink(argv[0], buf, sizeof buf-1)) < 0)
                         err(1, "%s", argv[0]);                          exit(1);
                 buf[n] = '\0';                  buf[n] = '\0';
         }          }
   
Line 76 
Line 82 
         if (!nflag)          if (!nflag)
                 putchar('\n');                  putchar('\n');
         exit(0);          exit(0);
 }  
   
 void  
 usage(void)  
 {  
         extern char *__progname;  
   
         fprintf(stderr, "usage: %s [-fn] symlink\n", __progname);  
         exit(1);  
 }  }

Legend:
Removed from v.1.21  
changed lines
  Added in v.1.22