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

Diff for /mandoc/term.c between version 1.71 and 1.77

version 1.71, 2009/03/31 13:50:19 version 1.77, 2009/06/11 07:46:41
Line 1 
Line 1 
 /* $Id$ */  /*      $Id$ */
 /*  /*
  * Copyright (c) 2008, 2009 Kristaps Dzonsons <kristaps@openbsd.org>   * Copyright (c) 2008, 2009 Kristaps Dzonsons <kristaps@kth.se>
  *   *
  * Permission to use, copy, modify, and distribute this software for any   * Permission to use, copy, modify, and distribute this software for any
  * purpose with or without fee is hereby granted, provided that the   * purpose with or without fee is hereby granted, provided that the above
  * above copyright notice and this permission notice appear in all   * copyright notice and this permission notice appear in all copies.
  * copies.  
  *   *
  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL   * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
  * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED   * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
  * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE   * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
  * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL   * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
  * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR   * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
  * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER   * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR   * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  * PERFORMANCE OF THIS SOFTWARE.  
  */   */
 #include <assert.h>  #include <assert.h>
 #include <err.h>  #include <err.h>
Line 54  ascii_alloc(void)
Line 52  ascii_alloc(void)
   
   
 int  int
 terminal_run(void *arg, const struct man *man,  terminal_man(void *arg, const struct man *man)
                 const struct mdoc *mdoc)  
 {  {
         struct termp    *p;          struct termp    *p;
   
         p = (struct termp *)arg;          p = (struct termp *)arg;
   
         if (NULL == p->symtab)          if (NULL == p->symtab)
                 p->symtab = term_ascii2htab();                  p->symtab = term_ascii2htab();
   
         if (man)          return(man_run(p, man));
                 return(man_run(p, man));  }
         if (mdoc)  
                 return(mdoc_run(p, mdoc));  
   
         return(1);  
   int
   terminal_mdoc(void *arg, const struct mdoc *mdoc)
   {
           struct termp    *p;
   
           p = (struct termp *)arg;
           if (NULL == p->symtab)
                   p->symtab = term_ascii2htab();
   
           return(mdoc_run(p, mdoc));
 }  }
   
   
Line 102  term_alloc(enum termenc enc)
Line 106  term_alloc(enum termenc enc)
         if (NULL == (p = malloc(sizeof(struct termp))))          if (NULL == (p = malloc(sizeof(struct termp))))
                 err(1, "malloc");                  err(1, "malloc");
         bzero(p, sizeof(struct termp));          bzero(p, sizeof(struct termp));
         p->maxrmargin = 78;          p->maxrmargin = 80;
         p->enc = enc;          p->enc = enc;
         return(p);          return(p);
 }  }
Line 274  term_flushln(struct termp *p)
Line 278  term_flushln(struct termp *p)
                  * our breakpoint.                   * our breakpoint.
                  */                   */
   
                   if (0 < vis++)
                           putchar(' ');
   
                 for ( ; i < (int)p->col; i++) {                  for ( ; i < (int)p->col; i++) {
                         if (' ' == p->buf[i])                          if (' ' == p->buf[i])
                                 break;                                  break;
                         putchar(p->buf[i]);                          putchar(p->buf[i]);
                 }                  }
                 vis += vsz;                  vis += vsz;
                 if (i < (int)p->col && vis <= bp) {  
                         putchar(' ');  
                         vis++;  
                 }  
         }          }
   
         /*          /*
Line 308  term_flushln(struct termp *p)
Line 311  term_flushln(struct termp *p)
   
         if (p->flags & TERMP_NOBREAK) {          if (p->flags & TERMP_NOBREAK) {
                 if ( ! (TERMP_NONOBREAK & p->flags))                  if ( ! (TERMP_NONOBREAK & p->flags))
                         for ( ; vis < maxvis; vis++)                          for ( ; vis <= maxvis; vis++)
                                 putchar(' ');                                  putchar(' ');
         } else          } else
                 putchar('\n');                  putchar('\n');

Legend:
Removed from v.1.71  
changed lines
  Added in v.1.77

CVSweb