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

Diff for /mandoc/Attic/validate.c between version 1.85 and 1.86

version 1.85, 2009/03/16 23:37:28 version 1.86, 2009/03/20 15:14:01
Line 40 
Line 40 
 #define POST_ARGS       struct mdoc *mdoc  #define POST_ARGS       struct mdoc *mdoc
   
 enum    merr {  enum    merr {
           EESCAPE,
         EPRINT,          EPRINT,
         ENODATA,          ENODATA,
         ENOPROLOGUE,          ENOPROLOGUE,
Line 56  enum merr {
Line 57  enum merr {
 };  };
   
 enum    mwarn {  enum    mwarn {
           WESCAPE,
         WWRONGMSEC,          WWRONGMSEC,
         WSECOOO,          WSECOOO,
         WSECREP,          WSECREP,
Line 192  static v_post posts_at[] = { post_at, NULL };
Line 194  static v_post posts_at[] = { post_at, NULL };
 static  v_post  posts_xr[] = { eerr_ge1, eerr_le2, NULL };  static  v_post  posts_xr[] = { eerr_ge1, eerr_le2, NULL };
 static  v_post  posts_nm[] = { post_nm, NULL };  static  v_post  posts_nm[] = { post_nm, NULL };
 static  v_post  posts_bf[] = { hwarn_le1, post_bf, NULL };  static  v_post  posts_bf[] = { hwarn_le1, post_bf, NULL };
 static  v_post  posts_rs[] = { herr_eq0, bwarn_ge1, NULL };  
 static  v_post  posts_fo[] = { hwarn_eq1, bwarn_ge1, NULL };  static  v_post  posts_fo[] = { hwarn_eq1, bwarn_ge1, NULL };
 static  v_post  posts_bk[] = { herr_eq0, bwarn_ge1, NULL };  
 static  v_post  posts_fd[] = { ewarn_ge1, NULL };  
   
 const   struct valids mdoc_valids[MDOC_MAX] = {  const   struct valids mdoc_valids[MDOC_MAX] = {
         { NULL, NULL },                         /* \" */          { NULL, NULL },                         /* \" */
Line 222  const struct valids mdoc_valids[MDOC_MAX] = {
Line 221  const struct valids mdoc_valids[MDOC_MAX] = {
         { NULL, posts_text },                   /* Ev */          { NULL, posts_text },                   /* Ev */
         { pres_ex, posts_ex },                  /* Ex */          { pres_ex, posts_ex },                  /* Ex */
         { NULL, posts_text },                   /* Fa */          { NULL, posts_text },                   /* Fa */
         { pres_fd, posts_fd },                  /* Fd */          { pres_fd, posts_wtext },               /* Fd */
         { NULL, NULL },                         /* Fl */          { NULL, NULL },                         /* Fl */
         { NULL, posts_text },                   /* Fn */          { NULL, posts_text },                   /* Fn */
         { NULL, posts_wtext },                  /* Ft */          { NULL, posts_wtext },                  /* Ft */
Line 283  const struct valids mdoc_valids[MDOC_MAX] = {
Line 282  const struct valids mdoc_valids[MDOC_MAX] = {
         { NULL, NULL },                         /* Qo */          { NULL, NULL },                         /* Qo */
         { NULL, posts_wline },                  /* Qq */          { NULL, posts_wline },                  /* Qq */
         { NULL, NULL },                         /* Re */          { NULL, NULL },                         /* Re */
         { NULL, posts_rs },                     /* Rs */          { NULL, posts_wline },                  /* Rs */
         { NULL, NULL },                         /* Sc */          { NULL, NULL },                         /* Sc */
         { NULL, NULL },                         /* So */          { NULL, NULL },                         /* So */
         { NULL, posts_wline },                  /* Sq */          { NULL, posts_wline },                  /* Sq */
Line 298  const struct valids mdoc_valids[MDOC_MAX] = {
Line 297  const struct valids mdoc_valids[MDOC_MAX] = {
         { NULL, NULL },                         /* Fc */          { NULL, NULL },                         /* Fc */
         { NULL, NULL },                         /* Oo */          { NULL, NULL },                         /* Oo */
         { NULL, NULL },                         /* Oc */          { NULL, NULL },                         /* Oc */
         { NULL, posts_bk },                     /* Bk */          { NULL, posts_wline },                  /* Bk */
         { NULL, NULL },                         /* Ek */          { NULL, NULL },                         /* Ek */
         { NULL, posts_notext },                 /* Bt */          { NULL, posts_notext },                 /* Bt */
         { NULL, NULL },                         /* Hf */          { NULL, NULL },                         /* Hf */
Line 384  perr(struct mdoc *m, int line, int pos, enum merr type
Line 383  perr(struct mdoc *m, int line, int pos, enum merr type
   
         p = NULL;          p = NULL;
         switch (type) {          switch (type) {
           case (EESCAPE):
                   p = "invalid escape sequence";
                   break;
         case (EPRINT):          case (EPRINT):
                 p = "invalid character";                  p = "invalid character";
                 break;                  break;
Line 458  pwarn(struct mdoc *m, int line, int pos, enum mwarn ty
Line 460  pwarn(struct mdoc *m, int line, int pos, enum mwarn ty
                 p = "prologue macros out-of-order";                  p = "prologue macros out-of-order";
                 c = WARN_COMPAT;                  c = WARN_COMPAT;
                 break;                  break;
           case (WESCAPE):
                   p = "invalid escape sequence";
                   break;
         case (WNOLINE):          case (WNOLINE):
                 p = "suggested no line arguments";                  p = "suggested no line arguments";
                 break;                  break;
Line 690  check_text(struct mdoc *mdoc, int line, int pos, const
Line 695  check_text(struct mdoc *mdoc, int line, int pos, const
         size_t           c;          size_t           c;
   
         /* FIXME: indicate deprecated escapes \*(xx and \*x. */          /* FIXME: indicate deprecated escapes \*(xx and \*x. */
         /* FIXME: don't allow tabs unless in literal mode. */  
   
         for ( ; *p; p++) {          for ( ; *p; p++) {
                 if ('\t' != *p && ! isprint((u_char)*p))                  if ('\t' == *p) {
                           if ( ! (MDOC_LITERAL & mdoc->flags))
                                   return(perr(mdoc, line, pos, EPRINT));
                   } else if ( ! isprint((u_char)*p))
                         return(perr(mdoc, line, pos, EPRINT));                          return(perr(mdoc, line, pos, EPRINT));
   
                 if ('\\' != *p)                  if ('\\' != *p)
                         continue;                          continue;
   
                 if ((c = mdoc_isescape(p))) {                  if ((c = mdoc_isescape(p))) {
                         p += (int)c - 1;                          p += (int)c - 1;
                         continue;                          continue;
                 }                  }
                 if ( ! (MDOC_IGN_ESCAPE & mdoc->pflags))                  if ( ! (MDOC_IGN_ESCAPE & mdoc->pflags))
                         return(mdoc_perr(mdoc, line, pos,                          return(perr(mdoc, line, pos, EESCAPE));
                                         "invalid escape sequence"));                  if ( ! pwarn(mdoc, line, pos, WESCAPE))
                 if ( ! mdoc_pwarn(mdoc, line, pos, WARN_SYNTAX,  
                                         "invalid escape sequence"))  
                         return(0);                          return(0);
         }          }
   

Legend:
Removed from v.1.85  
changed lines
  Added in v.1.86

CVSweb