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

Diff for /mandoc/main.c between version 1.301 and 1.304

version 1.301, 2017/07/26 10:21:55 version 1.304, 2018/04/13 19:55:30
Line 1 
Line 1 
 /*      $Id$ */  /*      $Id$ */
 /*  /*
  * Copyright (c) 2008-2012 Kristaps Dzonsons <kristaps@bsd.lv>   * Copyright (c) 2008-2012 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2010-2012, 2014-2017 Ingo Schwarze <schwarze@openbsd.org>   * Copyright (c) 2010-2012, 2014-2018 Ingo Schwarze <schwarze@openbsd.org>
  * Copyright (c) 2010 Joerg Sonnenberger <joerg@netbsd.org>   * Copyright (c) 2010 Joerg Sonnenberger <joerg@netbsd.org>
  *   *
  * Permission to use, copy, modify, and distribute this software for any   * Permission to use, copy, modify, and distribute this software for any
Line 19 
Line 19 
 #include "config.h"  #include "config.h"
   
 #include <sys/types.h>  #include <sys/types.h>
   #include <sys/ioctl.h>
 #include <sys/param.h>  /* MACHINE */  #include <sys/param.h>  /* MACHINE */
   #include <sys/termios.h>
 #include <sys/wait.h>  #include <sys/wait.h>
   
 #include <assert.h>  #include <assert.h>
Line 120  main(int argc, char *argv[])
Line 122  main(int argc, char *argv[])
         struct manconf   conf;          struct manconf   conf;
         struct mansearch search;          struct mansearch search;
         struct curparse  curp;          struct curparse  curp;
           struct winsize   ws;
         struct tag_files *tag_files;          struct tag_files *tag_files;
         struct manpage  *res, *resp;          struct manpage  *res, *resp;
         const char      *progname, *sec, *thisarg;          const char      *progname, *sec, *thisarg;
Line 316  main(int argc, char *argv[])
Line 319  main(int argc, char *argv[])
             !isatty(STDOUT_FILENO))              !isatty(STDOUT_FILENO))
                 use_pager = 0;                  use_pager = 0;
   
           if (use_pager &&
               (conf.output.width == 0 || conf.output.indent == 0) &&
               ioctl(STDOUT_FILENO, TIOCGWINSZ, &ws) != -1) {
                   if (conf.output.width == 0 && ws.ws_col < 79)
                           conf.output.width = ws.ws_col - 1;
                   if (conf.output.indent == 0 && ws.ws_col < 66)
                           conf.output.indent = 3;
           }
   
 #if HAVE_PLEDGE  #if HAVE_PLEDGE
         if (!use_pager)          if (!use_pager)
                 if (pledge("stdio rpath", NULL) == -1)                  if (pledge("stdio rpath", NULL) == -1)
Line 484  main(int argc, char *argv[])
Line 496  main(int argc, char *argv[])
                                 passthrough(resp->file, fd,                                  passthrough(resp->file, fd,
                                     conf.output.synopsisonly);                                      conf.output.synopsisonly);
   
                           if (ferror(stdout)) {
                                   if (tag_files != NULL) {
                                           warn("%s", tag_files->ofn);
                                           tag_unlink();
                                           tag_files = NULL;
                                   } else
                                           warn("stdout");
                                   rc = MANDOCLEVEL_SYSERR;
                                   break;
                           }
   
                         if (argc > 1 && curp.outtype <= OUTT_UTF8) {                          if (argc > 1 && curp.outtype <= OUTT_UTF8) {
                                 if (curp.outdata == NULL)                                  if (curp.outdata == NULL)
                                         outdata_alloc(&curp);                                          outdata_alloc(&curp);
Line 1173  spawn_pager(struct tag_files *tag_files)
Line 1196  spawn_pager(struct tag_files *tag_files)
         if (dup2(tag_files->ofd, STDOUT_FILENO) == -1)          if (dup2(tag_files->ofd, STDOUT_FILENO) == -1)
                 err((int)MANDOCLEVEL_SYSERR, "pager stdout");                  err((int)MANDOCLEVEL_SYSERR, "pager stdout");
         close(tag_files->ofd);          close(tag_files->ofd);
         close(tag_files->tfd);          assert(tag_files->tfd == -1);
   
         /* Do not start the pager before controlling the terminal. */          /* Do not start the pager before controlling the terminal. */
   

Legend:
Removed from v.1.301  
changed lines
  Added in v.1.304

CVSweb