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

Diff for /mandoc/mdoc.c between version 1.58 and 1.64

version 1.58, 2009/03/09 13:04:01 version 1.64, 2009/03/12 16:30:50
Line 72  const char *const __mdoc_macronames[MDOC_MAX] = {   
Line 72  const char *const __mdoc_macronames[MDOC_MAX] = {   
         "Fo",           "Fc",           "Oo",           "Oc",          "Fo",           "Fc",           "Oo",           "Oc",
         "Bk",           "Ek",           "Bt",           "Hf",          "Bk",           "Ek",           "Bt",           "Hf",
         "Fr",           "Ud",           "Lb",           "Ap",          "Fr",           "Ud",           "Lb",           "Ap",
         "Lp"          "Lp",           "Lk",           "Mt",           "Brq",
           /* LINTED */
           "Bro",          "Brc",          "\%C"
         };          };
   
 const   char *const __mdoc_argnames[MDOC_ARG_MAX] = {  const   char *const __mdoc_argnames[MDOC_ARG_MAX] = {
Line 84  const char *const __mdoc_argnames[MDOC_ARG_MAX] = {   
Line 86  const char *const __mdoc_argnames[MDOC_ARG_MAX] = {   
         "ohang",                "inset",                "column",          "ohang",                "inset",                "column",
         "width",                "compact",              "std",          "width",                "compact",              "std",
         "filled",               "words",                "emphasis",          "filled",               "words",                "emphasis",
         "symbolic"          "symbolic",             "nested"
         };          };
   
 const   char * const *mdoc_macronames = __mdoc_macronames;  const   char * const *mdoc_macronames = __mdoc_macronames;
Line 256  mdoc_macro(struct mdoc *m, int tok, 
Line 258  mdoc_macro(struct mdoc *m, int tok, 
                                 "disallowed in prologue"));                                  "disallowed in prologue"));
   
         if (1 != pp && ! (MDOC_CALLABLE & mdoc_macros[tok].flags))          if (1 != pp && ! (MDOC_CALLABLE & mdoc_macros[tok].flags))
                 return(mdoc_perr(m, ln, pp, "not callable"));                  return(mdoc_perr(m, ln, pp, "%s not callable",
                                           mdoc_macronames[tok]));
   
         return((*mdoc_macros[tok].fp)(m, tok, ln, pp, pos, buf));          return((*mdoc_macros[tok].fp)(m, tok, ln, pp, pos, buf));
 }  }
Line 501  macrowarn(struct mdoc *m, int ln, const char *buf)
Line 504  macrowarn(struct mdoc *m, int ln, const char *buf)
 {  {
         if ( ! (MDOC_IGN_MACRO & m->pflags))          if ( ! (MDOC_IGN_MACRO & m->pflags))
                 return(mdoc_perr(m, ln, 1, "unknown macro: %s%s",                  return(mdoc_perr(m, ln, 1, "unknown macro: %s%s",
                                 buf, buf[3] ? "..." : ""));                                  buf, strlen(buf) > 3 ? "..." : ""));
         return(mdoc_pwarn(m, ln, 1, WARN_SYNTAX,          return(mdoc_pwarn(m, ln, 1, WARN_SYNTAX,
                                 "unknown macro: %s%s",                                  "unknown macro: %s%s",
                                 buf, buf[3] ? "..." : ""));                                  buf, strlen(buf) > 3 ? "..." : ""));
 }  }
   
   
Line 519  parsemacro(struct mdoc *m, int ln, char *buf)
Line 522  parsemacro(struct mdoc *m, int ln, char *buf)
         int               i, c;          int               i, c;
         char              mac[5];          char              mac[5];
   
         /* Comments are quickly ignored. */          /* Comments and empties are quickly ignored. */
   
           if (0 == buf[1])
                   return(1);
   
           if (isspace((unsigned char)buf[1])) {
                   i = 2;
                   while (buf[i] && isspace((unsigned char)buf[i]))
                           i++;
                   if (0 == buf[i])
                           return(1);
                   return(mdoc_perr(m, ln, 1, "invalid syntax"));
           }
   
         if (buf[1] && '\\' == buf[1])          if (buf[1] && '\\' == buf[1])
                 if (buf[2] && '\"' == buf[2])                  if (buf[2] && '\"' == buf[2])
                         return(1);                          return(1);
Line 533  parsemacro(struct mdoc *m, int ln, char *buf)
Line 548  parsemacro(struct mdoc *m, int ln, char *buf)
                 else if (isspace((unsigned char)buf[i]))                  else if (isspace((unsigned char)buf[i]))
                         break;                          break;
         }          }
   
         /* FIXME: be able to skip unknown macro lines! */  
   
         mac[i - 1] = 0;          mac[i - 1] = 0;
   

Legend:
Removed from v.1.58  
changed lines
  Added in v.1.64

CVSweb