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

Diff for /src/usr.bin/mandoc/main.c between version 1.261 and 1.262

version 1.261, 2021/10/04 20:24:00 version 1.262, 2021/10/04 21:28:50
Line 1262 
Line 1262 
         char            *argv[MAX_PAGER_ARGS];          char            *argv[MAX_PAGER_ARGS];
         const char      *pager;          const char      *pager;
         char            *cp;          char            *cp;
           size_t           wordlen;
         size_t           cmdlen;          size_t           cmdlen;
         int              argc, use_ofn;          int              argc, use_ofn;
         pid_t            pager_pid;          pid_t            pager_pid;
Line 1274 
Line 1275 
                 pager = getenv("PAGER");                  pager = getenv("PAGER");
         if (pager == NULL || *pager == '\0')          if (pager == NULL || *pager == '\0')
                 pager = "less";                  pager = "less";
         cp = mandoc_strdup(pager);  
   
         /*          /*
          * Parse the pager command into words.           * Parse the pager command into words.
Line 1282 
Line 1282 
          */           */
   
         argc = 0;          argc = 0;
         while (argc + 5 < MAX_PAGER_ARGS) {          while (*pager != '\0' && argc + 5 < MAX_PAGER_ARGS) {
                 argv[argc++] = cp;                  wordlen = strcspn(pager, " ");
                 cp = strchr(cp, ' ');                  argv[argc++] = mandoc_strndup(pager, wordlen);
                 if (cp == NULL)                  pager += wordlen;
                         break;                  while (*pager == ' ')
                 *cp++ = '\0';                          pager++;
                 while (*cp == ' ')  
                         cp++;  
                 if (*cp == '\0')  
                         break;  
         }          }
   
         /* For more(1) and less(1), use the tag file. */          /* For more(1) and less(1), use the tag file. */
Line 1302 
Line 1298 
                 cp = argv[0] + cmdlen - 4;                  cp = argv[0] + cmdlen - 4;
                 if (strcmp(cp, "less") == 0 || strcmp(cp, "more") == 0) {                  if (strcmp(cp, "less") == 0 || strcmp(cp, "more") == 0) {
                         argv[argc++] = mandoc_strdup("-T");                          argv[argc++] = mandoc_strdup("-T");
                         argv[argc++] = outst->tag_files->tfn;                          argv[argc++] = mandoc_strdup(outst->tag_files->tfn);
                         if (tag_target != NULL) {                          if (tag_target != NULL) {
                                 argv[argc++] = mandoc_strdup("-t");                                  argv[argc++] = mandoc_strdup("-t");
                                 argv[argc++] = tag_target;                                  argv[argc++] = mandoc_strdup(tag_target);
                                 use_ofn = 0;                                  use_ofn = 0;
                         }                          }
                 }                  }
Line 1315 
Line 1311 
                         mandoc_asprintf(&argv[argc], "file://%s#%s",                          mandoc_asprintf(&argv[argc], "file://%s#%s",
                             outst->tag_files->ofn, tag_target);                              outst->tag_files->ofn, tag_target);
                 else                  else
                         argv[argc] = outst->tag_files->ofn;                          argv[argc] = mandoc_strdup(outst->tag_files->ofn);
                 argc++;                  argc++;
         }          }
         argv[argc] = NULL;          argv[argc] = NULL;
Line 1327 
Line 1323 
         case 0:          case 0:
                 break;                  break;
         default:          default:
                   while (argc > 0)
                           free(argv[--argc]);
                 (void)setpgid(pager_pid, 0);                  (void)setpgid(pager_pid, 0);
                 (void)tcsetpgrp(STDOUT_FILENO, pager_pid);                  (void)tcsetpgrp(STDOUT_FILENO, pager_pid);
                 if (pledge("stdio rpath tmppath tty proc", NULL) == -1) {                  if (pledge("stdio rpath tmppath tty proc", NULL) == -1) {

Legend:
Removed from v.1.261  
changed lines
  Added in v.1.262