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

Diff for /mandoc/mandoc.c between version 1.10 and 1.16

version 1.10, 2010/01/05 19:51:10 version 1.16, 2010/05/25 12:37:20
Line 73  mandoc_special(const char *p)
Line 73  mandoc_special(const char *p)
                 return(2);                  return(2);
         case ('e'):          case ('e'):
                 return(2);                  return(2);
         case ('f'):  
                 if ('\0' == *++p || ! isgraph((u_char)*p))  
                         return(0);  
                 return(3);  
         case ('s'):          case ('s'):
                 if ('\0' == *++p)                  if ('\0' == *++p)
                         return(2);                          return(2);
Line 152  mandoc_special(const char *p)
Line 148  mandoc_special(const char *p)
                 }                  }
   
                 return(c);                  return(c);
           case ('f'):
                   /* FALLTHROUGH */
           case ('F'):
                   /* FALLTHROUGH */
         case ('*'):          case ('*'):
                 if (0 == *++p || ! isgraph((u_char)*p))                  if (0 == *++p || ! isgraph((u_char)*p))
                         return(0);                          return(0);
Line 300  mandoc_a2time(int flags, const char *p)
Line 300  mandoc_a2time(int flags, const char *p)
         return(0);          return(0);
 }  }
   
   
   int
   mandoc_eos(const char *p, size_t sz)
   {
   
           if (0 == sz)
                   return(0);
   
           /*
            * End-of-sentence recognition must include situations where
            * some symbols, such as `)', allow prior EOS punctuation to
            * propogate outward.
            */
   
           for ( ; sz; sz--) {
                   switch (p[(int)sz - 1]) {
                   case ('\"'):
                           /* FALLTHROUGH */
                   case ('\''):
                           /* FALLTHROUGH */
                   case (']'):
                           /* FALLTHROUGH */
                   case (')'):
                           break;
                   case ('.'):
                           /* Escaped periods. */
                           if (sz > 1 && '\\' == p[(int)sz - 2])
                                   return(0);
                           /* FALLTHROUGH */
                   case ('!'):
                           /* FALLTHROUGH */
                   case ('?'):
                           return(1);
                   default:
                           return(0);
                   }
           }
   
           return(0);
   }
   
   
   int
   mandoc_hyph(const char *start, const char *c)
   {
   
           /*
            * Choose whether to break at a hyphenated character.  We only
            * do this if it's free-standing within a word.
            */
   
           /* Skip first/last character of buffer. */
           if (c == start || '\0' == *(c + 1))
                   return(0);
           /* Skip first/last character of word. */
           if ('\t' == *(c + 1) || '\t' == *(c - 1))
                   return(0);
           if (' ' == *(c + 1) || ' ' == *(c - 1))
                   return(0);
           /* Skip double invocations. */
           if ('-' == *(c + 1) || '-' == *(c - 1))
                   return(0);
           /* Skip escapes. */
           if ('\\' == *(c - 1))
                   return(0);
   
           return(1);
   }

Legend:
Removed from v.1.10  
changed lines
  Added in v.1.16

CVSweb