[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.19 and 1.20

version 1.19, 2003/06/10 22:20:50 version 1.20, 2006/05/08 22:33:04
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 50 
Line 51 
                         nflag = 1;                          nflag = 1;
                         break;                          break;
                 default:                  default:
                         (void)fprintf(stderr,                          usage();
                             "usage: readlink [-n] [-f] symlink\n");  
                         exit(1);  
                 }                  }
         argc -= optind;          argc -= optind;
         argv += optind;          argv += optind;
   
         if (argc != 1) {          if (argc != 1)
                 fprintf(stderr, "usage: readlink [-n] [-f] symlink\n");                  usage();
                 exit(1);  
         }  
   
         n = strlen(argv[0]);          if (strlen(argv[0]) > PATH_MAX - 1)
         if (n > PATH_MAX - 1) {                  errx(1, "filename longer than PATH_MAX-1 (%d)",
                 fprintf(stderr,                      PATH_MAX - 1);
                         "readlink: filename longer than PATH_MAX-1 (%d)\n",  
                         PATH_MAX - 1);  
                 exit(1);  
         }  
   
         if (fflag)          if (fflag) {
                 realpath(argv[0], buf);                  if (realpath(argv[0], buf) == NULL)
         else {                          err(1, "%s", argv[0]);
           } else {
                 if ((n = readlink(argv[0], buf, sizeof buf-1)) < 0)                  if ((n = readlink(argv[0], buf, sizeof buf-1)) < 0)
                         exit(1);                          err(1, "%s", argv[0]);
                 buf[n] = '\0';                  buf[n] = '\0';
         }          }
   
Line 82 
Line 76 
         if (!nflag)          if (!nflag)
                 putchar('\n');                  putchar('\n');
         exit(0);          exit(0);
   }
   
   void
   usage(void)
   {
           extern char *__progname;
   
           fprintf(stderr, "usage: %s [-n] [-f] symlink\n", __progname);
           exit(1);
 }  }

Legend:
Removed from v.1.19  
changed lines
  Added in v.1.20