[BACK]Return to manpage.c CVS log [TXT][DIR] Up to [cvsweb.bsd.lv] / mandoc

Diff for /mandoc/Attic/manpage.c between version 1.11 and 1.14

version 1.11, 2015/03/27 17:37:25 version 1.14, 2016/07/09 15:24:19
Line 20 
Line 20 
 #include <sys/types.h>  #include <sys/types.h>
   
 #include <assert.h>  #include <assert.h>
 #include <getopt.h>  
 #include <limits.h>  #include <limits.h>
 #include <stdint.h>  #include <stdint.h>
 #include <stdio.h>  #include <stdio.h>
Line 37  int
Line 36  int
 main(int argc, char *argv[])  main(int argc, char *argv[])
 {  {
         int              ch, term;          int              ch, term;
         size_t           i, sz, len;          size_t           i, sz, linesz;
           ssize_t          len;
         struct mansearch search;          struct mansearch search;
         struct manpage  *res;          struct manpage  *res;
         char            *conf_file, *defpaths, *auxpaths, *cp;          char            *conf_file, *defpaths, *auxpaths, *line;
         char             buf[PATH_MAX];          char             buf[PATH_MAX];
         const char      *cmd;          const char      *cmd;
         struct manconf   conf;          struct manconf   conf;
Line 99  main(int argc, char *argv[])
Line 99  main(int argc, char *argv[])
   
         if (0 == sz) {          if (0 == sz) {
                 free(res);                  free(res);
                 return(EXIT_FAILURE);                  return EXIT_FAILURE;
         } else if (1 == sz && term) {          } else if (1 == sz && term) {
                 i = 1;                  i = 1;
                 goto show;                  goto show;
         } else if (NULL == res)          } else if (NULL == res)
                 return(EXIT_FAILURE);                  return EXIT_FAILURE;
   
         for (i = 0; i < sz; i++) {          for (i = 0; i < sz; i++) {
                 printf("%6zu  %s: %s\n",                  printf("%6zu  %s: %s\n",
Line 117  main(int argc, char *argv[])
Line 117  main(int argc, char *argv[])
                 for (i = 0; i < sz; i++)                  for (i = 0; i < sz; i++)
                         free(res[i].file);                          free(res[i].file);
                 free(res);                  free(res);
                 return(EXIT_SUCCESS);                  return EXIT_SUCCESS;
         }          }
   
         i = 1;          i = 1;
         printf("Enter a choice [1]: ");          printf("Enter a choice [1]: ");
         fflush(stdout);          fflush(stdout);
   
         if (NULL != (cp = fgetln(stdin, &len)))          line = NULL;
                 if ('\n' == cp[--len] && len > 0) {          linesz = 0;
                         cp[len] = '\0';          if ((len = getline(&line, &linesz, stdin)) != -1) {
                         if ((i = atoi(cp)) < 1 || i > sz)                  if ('\n' == line[--len] && len > 0) {
                           line[len] = '\0';
                           if ((i = atoi(line)) < 1 || i > sz)
                                 i = 0;                                  i = 0;
                 }                  }
           }
           free(line);
   
         if (0 == i) {          if (0 == i) {
                 for (i = 0; i < sz; i++)                  for (i = 0; i < sz; i++)
                         free(res[i].file);                          free(res[i].file);
                 free(res);                  free(res);
                 return(EXIT_SUCCESS);                  return EXIT_SUCCESS;
         }          }
 show:  show:
         cmd = res[i - 1].form ? "mandoc" : "cat";          cmd = res[i - 1].form ? "mandoc" : "cat";
Line 154  usage:
Line 158  usage:
                                   "[-s section] "                                    "[-s section] "
                                   "expr ...\n",                                    "expr ...\n",
                                   progname);                                    progname);
         return(EXIT_FAILURE);          return EXIT_FAILURE;
 }  }
   
 static void  static void

Legend:
Removed from v.1.11  
changed lines
  Added in v.1.14

CVSweb