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

Diff for /mandoc/mandoc.c between version 1.59 and 1.61

version 1.59, 2011/09/18 14:14:15 version 1.61, 2011/11/06 14:43:14
Line 161  mandoc_escape(const char **end, const char **start, in
Line 161  mandoc_escape(const char **end, const char **start, in
         case ('V'):          case ('V'):
                 /* FALLTHROUGH */                  /* FALLTHROUGH */
         case ('Y'):          case ('Y'):
                 if (ESCAPE_ERROR == gly)                  gly = ESCAPE_IGNORE;
                         gly = ESCAPE_IGNORE;  
                 /* FALLTHROUGH */                  /* FALLTHROUGH */
         case ('f'):          case ('f'):
                 if (ESCAPE_ERROR == gly)                  if (ESCAPE_ERROR == gly)
Line 222  mandoc_escape(const char **end, const char **start, in
Line 221  mandoc_escape(const char **end, const char **start, in
         case ('L'):          case ('L'):
                 /* FALLTHROUGH */                  /* FALLTHROUGH */
         case ('l'):          case ('l'):
                   gly = ESCAPE_NUMBERED;
                 /* FALLTHROUGH */                  /* FALLTHROUGH */
         case ('N'):  
                 if (ESCAPE_ERROR == gly)  
                         gly = ESCAPE_NUMBERED;  
                 /* FALLTHROUGH */  
         case ('S'):          case ('S'):
                 /* FALLTHROUGH */                  /* FALLTHROUGH */
         case ('v'):          case ('v'):
Line 241  mandoc_escape(const char **end, const char **start, in
Line 237  mandoc_escape(const char **end, const char **start, in
                 term = numeric = '\'';                  term = numeric = '\'';
                 break;                  break;
   
           /*
            * Special handling for the numbered character escape.
            * XXX Do any other escapes need similar handling?
            */
           case ('N'):
                   if ('\0' == cp[i])
                           return(ESCAPE_ERROR);
                   *end = &cp[++i];
                   if (isdigit((unsigned char)cp[i-1]))
                           return(ESCAPE_IGNORE);
                   while (isdigit((unsigned char)**end))
                           (*end)++;
                   if (start)
                           *start = &cp[i];
                   if (sz)
                           *sz = *end - &cp[i];
                   if ('\0' != **end)
                           (*end)++;
                   return(ESCAPE_NUMBERED);
   
         /*          /*
          * Sizes get a special category of their own.           * Sizes get a special category of their own.
          */           */
Line 353  out:
Line 369  out:
   
         switch (gly) {          switch (gly) {
         case (ESCAPE_FONT):          case (ESCAPE_FONT):
                 if (1 != rlim)                  /*
                    * Pretend that the constant-width font modes are the
                    * same as the regular font modes.
                    */
                   if (2 == rlim && 'C' == *rstart)
                           rstart++;
                   else if (1 != rlim)
                         break;                          break;
   
                 switch (*rstart) {                  switch (*rstart) {
                 case ('3'):                  case ('3'):
                         /* FALLTHROUGH */                          /* FALLTHROUGH */

Legend:
Removed from v.1.59  
changed lines
  Added in v.1.61

CVSweb