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

Diff for /mandoc/mandoc.c between version 1.22 and 1.23

version 1.22, 2010/07/18 12:10:08 version 1.23, 2010/07/18 17:00:26
Line 240  mandoc_a2time(int flags, const char *p)
Line 240  mandoc_a2time(int flags, const char *p)
   
   
 int  int
 mandoc_eos(const char *p, size_t sz)  mandoc_eos(const char *p, size_t sz, int enclosed)
 {  {
           const char *q;
           int found;
   
         if (0 == sz)          if (0 == sz)
                 return(0);                  return(0);
Line 252  mandoc_eos(const char *p, size_t sz)
Line 254  mandoc_eos(const char *p, size_t sz)
          * propogate outward.           * propogate outward.
          */           */
   
         for ( ; sz; sz--) {          found = 0;
                 switch (p[(int)sz - 1]) {          for (q = p + sz - 1; q >= p; q--) {
                   switch (*q) {
                 case ('\"'):                  case ('\"'):
                         /* FALLTHROUGH */                          /* FALLTHROUGH */
                 case ('\''):                  case ('\''):
Line 261  mandoc_eos(const char *p, size_t sz)
Line 264  mandoc_eos(const char *p, size_t sz)
                 case (']'):                  case (']'):
                         /* FALLTHROUGH */                          /* FALLTHROUGH */
                 case (')'):                  case (')'):
                           if (0 == found)
                                   enclosed = 1;
                         break;                          break;
                 case ('.'):                  case ('.'):
                         /* Escaped periods. */  
                         if (sz > 1 && '\\' == p[(int)sz - 2])  
                                 return(0);  
                         /* FALLTHROUGH */                          /* FALLTHROUGH */
                 case ('!'):                  case ('!'):
                         /* FALLTHROUGH */                          /* FALLTHROUGH */
                 case ('?'):                  case ('?'):
                         return(1);                          found = 1;
                           break;
                 default:                  default:
                         return(0);                          return(found && (!enclosed || isalnum(*q)));
                 }                  }
         }          }
   
         return(0);          return(found && !enclosed);
 }  }
   
   

Legend:
Removed from v.1.22  
changed lines
  Added in v.1.23

CVSweb