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

Diff for /mandoc/mandoc.c between version 1.94 and 1.97

version 1.94, 2015/10/06 18:32:19 version 1.97, 2015/10/15 23:35:55
Line 32 
Line 32 
 #include "mandoc_aux.h"  #include "mandoc_aux.h"
 #include "libmandoc.h"  #include "libmandoc.h"
   
 #define DATESIZE 32  
   
 static  int      a2time(time_t *, const char *, const char *);  static  int      a2time(time_t *, const char *, const char *);
 static  char    *time2a(time_t);  static  char    *time2a(time_t);
   
Line 93  mandoc_escape(const char **end, const char **start, in
Line 91  mandoc_escape(const char **end, const char **start, in
          * Escapes taking no arguments at all.           * Escapes taking no arguments at all.
          */           */
         case 'd':          case 'd':
                 /* FALLTHROUGH */  
         case 'u':          case 'u':
                 /* FALLTHROUGH */  
         case ',':          case ',':
                 /* FALLTHROUGH */  
         case '/':          case '/':
                 return ESCAPE_IGNORE;                  return ESCAPE_IGNORE;
   
Line 115  mandoc_escape(const char **end, const char **start, in
Line 110  mandoc_escape(const char **end, const char **start, in
          * 'X' is the trigger.  These have opaque sub-strings.           * 'X' is the trigger.  These have opaque sub-strings.
          */           */
         case 'F':          case 'F':
                 /* FALLTHROUGH */  
         case 'g':          case 'g':
                 /* FALLTHROUGH */  
         case 'k':          case 'k':
                 /* FALLTHROUGH */  
         case 'M':          case 'M':
                 /* FALLTHROUGH */  
         case 'm':          case 'm':
                 /* FALLTHROUGH */  
         case 'n':          case 'n':
                 /* FALLTHROUGH */  
         case 'V':          case 'V':
                 /* FALLTHROUGH */  
         case 'Y':          case 'Y':
                 gly = ESCAPE_IGNORE;                  gly = ESCAPE_IGNORE;
                 /* FALLTHROUGH */                  /* FALLTHROUGH */
Line 155  mandoc_escape(const char **end, const char **start, in
Line 143  mandoc_escape(const char **end, const char **start, in
          * The \B and \w escapes are handled in roff.c, roff_res().           * The \B and \w escapes are handled in roff.c, roff_res().
          */           */
         case 'A':          case 'A':
                 /* FALLTHROUGH */  
         case 'b':          case 'b':
                 /* FALLTHROUGH */  
         case 'D':          case 'D':
                 /* FALLTHROUGH */  
         case 'R':          case 'R':
                 /* FALLTHROUGH */  
         case 'X':          case 'X':
                 /* FALLTHROUGH */  
         case 'Z':          case 'Z':
                 gly = ESCAPE_IGNORE;                  gly = ESCAPE_IGNORE;
                 /* FALLTHROUGH */                  /* FALLTHROUGH */
Line 181  mandoc_escape(const char **end, const char **start, in
Line 164  mandoc_escape(const char **end, const char **start, in
          * and 'N' resolves to a numerical expression.           * and 'N' resolves to a numerical expression.
          */           */
         case 'h':          case 'h':
                 /* FALLTHROUGH */  
         case 'H':          case 'H':
                 /* FALLTHROUGH */  
         case 'L':          case 'L':
                 /* FALLTHROUGH */  
         case 'l':          case 'l':
                 /* FALLTHROUGH */  
         case 'S':          case 'S':
                 /* FALLTHROUGH */  
         case 'v':          case 'v':
                 /* FALLTHROUGH */  
         case 'x':          case 'x':
                 if (strchr(" %&()*+-./0123456789:<=>", **start)) {                  if (strchr(" %&()*+-./0123456789:<=>", **start)) {
                         if ('\0' != **start)                          if ('\0' != **start)
Line 247  mandoc_escape(const char **end, const char **start, in
Line 224  mandoc_escape(const char **end, const char **start, in
                         term = '\'';                          term = '\'';
                         break;                          break;
                 case '3':                  case '3':
                         /* FALLTHROUGH */  
                 case '2':                  case '2':
                         /* FALLTHROUGH */  
                 case '1':                  case '1':
                         *sz = (*end)[-1] == 's' &&                          *sz = (*end)[-1] == 's' &&
                             isdigit((unsigned char)(*end)[1]) ? 2 : 1;                              isdigit((unsigned char)(*end)[1]) ? 2 : 1;
Line 325  mandoc_escape(const char **end, const char **start, in
Line 300  mandoc_escape(const char **end, const char **start, in
   
                 switch (**start) {                  switch (**start) {
                 case '3':                  case '3':
                         /* FALLTHROUGH */  
                 case 'B':                  case 'B':
                         gly = ESCAPE_FONTBOLD;                          gly = ESCAPE_FONTBOLD;
                         break;                          break;
                 case '2':                  case '2':
                         /* FALLTHROUGH */  
                 case 'I':                  case 'I':
                         gly = ESCAPE_FONTITALIC;                          gly = ESCAPE_FONTITALIC;
                         break;                          break;
Line 338  mandoc_escape(const char **end, const char **start, in
Line 311  mandoc_escape(const char **end, const char **start, in
                         gly = ESCAPE_FONTPREV;                          gly = ESCAPE_FONTPREV;
                         break;                          break;
                 case '1':                  case '1':
                         /* FALLTHROUGH */  
                 case 'R':                  case 'R':
                         gly = ESCAPE_FONTROMAN;                          gly = ESCAPE_FONTROMAN;
                         break;                          break;
Line 359  mandoc_escape(const char **end, const char **start, in
Line 331  mandoc_escape(const char **end, const char **start, in
                         break;                          break;
                 if (*sz == 6 && (*start)[1] == '0')                  if (*sz == 6 && (*start)[1] == '0')
                         break;                          break;
                   if (*sz == 5 && (*start)[1] == 'D' &&
                       strchr("89ABCDEF", (*start)[2]) != NULL)
                           break;
                 if ((int)strspn(*start + 1, "0123456789ABCDEFabcdef")                  if ((int)strspn(*start + 1, "0123456789ABCDEFabcdef")
                     + 1 == *sz)                      + 1 == *sz)
                         gly = ESCAPE_UNICODE;                          gly = ESCAPE_UNICODE;
Line 563  mandoc_eos(const char *p, size_t sz)
Line 538  mandoc_eos(const char *p, size_t sz)
         for (q = p + (int)sz - 1; q >= p; q--) {          for (q = p + (int)sz - 1; q >= p; q--) {
                 switch (*q) {                  switch (*q) {
                 case '\"':                  case '\"':
                         /* FALLTHROUGH */  
                 case '\'':                  case '\'':
                         /* FALLTHROUGH */  
                 case ']':                  case ']':
                         /* FALLTHROUGH */  
                 case ')':                  case ')':
                         if (0 == found)                          if (0 == found)
                                 enclosed = 1;                                  enclosed = 1;
                         break;                          break;
                 case '.':                  case '.':
                         /* FALLTHROUGH */  
                 case '!':                  case '!':
                         /* FALLTHROUGH */  
                 case '?':                  case '?':
                         found = 1;                          found = 1;
                         break;                          break;

Legend:
Removed from v.1.94  
changed lines
  Added in v.1.97

CVSweb