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

Diff for /mandoc/mdoc_macro.c between version 1.65 and 1.66

version 1.65, 2010/05/15 04:47:38 version 1.66, 2010/05/15 06:48:13
Line 622  rew_sub(enum mdoc_type t, struct mdoc *m, 
Line 622  rew_sub(enum mdoc_type t, struct mdoc *m, 
   
   
 static int  static int
 append_delims(struct mdoc *mdoc, int line, int *pos, char *buf)  append_delims(struct mdoc *m, int line, int *pos, char *buf)
 {  {
         int              lastarg;          int              la;
         enum margserr    ac;          enum margserr    ac;
         char            *p;          char            *p;
   
         if (0 == buf[*pos])          if ('\0' == buf[*pos])
                 return(1);                  return(1);
   
         for (;;) {          for (;;) {
                 lastarg = *pos;                  la = *pos;
                 ac = mdoc_zargs(mdoc, line, pos, buf, ARGS_NOWARN, &p);                  ac = mdoc_zargs(m, line, pos, buf, ARGS_NOWARN, &p);
   
                 if (ARGS_ERROR == ac)                  if (ARGS_ERROR == ac)
                         return(0);                          return(0);
                 else if (ARGS_EOLN == ac)                  else if (ARGS_EOLN == ac)
                         break;                          break;
   
                 assert(mdoc_isdelim(p));                  assert(mdoc_isdelim(p));
                 if ( ! mdoc_word_alloc(mdoc, line, lastarg, p))                  if ( ! mdoc_word_alloc(m, line, la, p))
                         return(0);                          return(0);
   
                   /*
                    * If we encounter end-of-sentence symbols, then trigger
                    * the double-space.
                    *
                    * XXX: it's easy to allow this to propogate outward to
                    * the last symbol, such that `. )' will cause the
                    * correct double-spacing.  However, (1) groff isn't
                    * smart enough to do this and (2) it would require
                    * knowing which symbols break this behaviour, for
                    * example, `.  ;' shouldn't propogate the double-space.
                    */
                   if (mandoc_eos(p, strlen(p)))
                           m->last->flags |= MDOC_EOS;
         }          }
   
         return(1);          return(1);

Legend:
Removed from v.1.65  
changed lines
  Added in v.1.66

CVSweb