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

Diff for /src/usr.bin/tsort/tsort.c between version 1.30 and 1.31

version 1.30, 2015/10/10 15:47:22 version 1.31, 2015/10/11 17:39:50
Line 824 
Line 824 
         int c;          int c;
         unsigned int    order;          unsigned int    order;
         int reverse_flag;          int reverse_flag;
           char **files;
           int i, j;
   
         order = 0;          i = 0;
   
         reverse_flag = quiet_flag = long_flag =          reverse_flag = quiet_flag = long_flag =
                 warn_flag = hints_flag = verbose_flag = 0;                  warn_flag = hints_flag = verbose_flag = 0;
         nodes_init(pairs);          /* argc is good enough, as we start at argv[1] */
           files = ereallocarray(NULL, argc, sizeof (char *));
         while ((c = getopt(argc, argv, "h:flqrvw")) != -1) {          while ((c = getopt(argc, argv, "h:flqrvw")) != -1) {
                 switch(c) {                  switch(c) {
                 case 'h': {                  case 'h':
                         FILE *f;                          files[i++] = optarg;
   
                         f = fopen(optarg, "r");  
                         if (f == NULL)  
                                 err(EX_NOINPUT, "Can't open hint file %s",  
                                     optarg);  
                         order = read_hints(f, pairs, quiet_flag,  
                             optarg, order);  
                         fclose(f);  
                 }  
                         hints_flag = 1;                          hints_flag = 1;
                         break;                          break;
                         /*FALLTHRU*/                          /*FALLTHRU*/
Line 873 
Line 867 
         argv += optind;          argv += optind;
   
         switch(argc) {          switch(argc) {
         case 1: {          case 1:
                   files[i++] = argv[0];
                   break;
           case 0:
                   break;
           default:
                   usage();
           }
   
           files[i] = NULL;
   
           nodes_init(pairs);
           order = 0;
   
           for (j = 0; j != i-argc; j++) {
                 FILE *f;                  FILE *f;
   
                   f = fopen(files[j], "r");
                   if (f == NULL)
                           err(EX_NOINPUT, "Can't open hint file %s", files[i]);
                   order = read_hints(f, pairs, quiet_flag, files[i], order);
                   fclose(f);
           }
           free(files);
   
           if (argc == 1) {
                   FILE *f;
   
                 f = fopen(argv[0], "r");                  f = fopen(argv[0], "r");
                 if (f == NULL)                  if (f == NULL)
                         err(EX_NOINPUT, "Can't open file %s", argv[0]);                          err(EX_NOINPUT, "Can't open file %s", argv[0]);
                 order = read_pairs(f, pairs, reverse_flag, argv[0], order,                  order = read_pairs(f, pairs, reverse_flag, argv[0], order,
                     hints_flag == 2);                      hints_flag == 2);
                 fclose(f);                  fclose(f);
                 break;          } else {
         }  
         case 0:  
                 order = read_pairs(stdin, pairs, reverse_flag, "stdin",                  order = read_pairs(stdin, pairs, reverse_flag, "stdin",
                     order, hints_flag == 2);                      order, hints_flag == 2);
                 break;  
         default:  
                 usage();  
         }          }
 }  }
   

Legend:
Removed from v.1.30  
changed lines
  Added in v.1.31