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

Diff for /mandoc/Attic/macro.c between version 1.62 and 1.65

version 1.62, 2009/03/08 20:57:35 version 1.65, 2009/03/10 15:01:54
Line 21 
Line 21 
 #include <stdlib.h>  #include <stdlib.h>
 #include <stdio.h>  #include <stdio.h>
 #include <string.h>  #include <string.h>
 #ifdef  __linux__  
 #include <time.h>  
 #endif  
   
   #include "private.h"
   
 /*  /*
  * This has scanning/parsing routines, each of which extract a macro and   * This has scanning/parsing routines, each of which extract a macro and
  * its arguments and parameters, then know how to progress to the next   * its arguments and parameters, then know how to progress to the next
  * macro.   * macro.
  */   */
   
 #include "private.h"  /* FIXME: .Fl, .Ar, .Cd handling of `|'. */
   
 static int        macro_obsolete(MACRO_PROT_ARGS);  static int        macro_obsolete(MACRO_PROT_ARGS);
 static int        macro_constant(MACRO_PROT_ARGS);  static int        macro_constant(MACRO_PROT_ARGS);
Line 183  const struct mdoc_macro __mdoc_macros[MDOC_MAX] = {
Line 182  const struct mdoc_macro __mdoc_macros[MDOC_MAX] = {
         { macro_constant, 0 }, /* Lb */          { macro_constant, 0 }, /* Lb */
         { macro_constant_delimited, MDOC_CALLABLE | MDOC_PARSED }, /* Ap */          { macro_constant_delimited, MDOC_CALLABLE | MDOC_PARSED }, /* Ap */
         { macro_text, 0 }, /* Lp */          { macro_text, 0 }, /* Lp */
           { macro_text, MDOC_PARSED }, /* Lk */
           { macro_text, MDOC_PARSED }, /* Mt */
 };  };
   
 const   struct mdoc_macro * const mdoc_macros = __mdoc_macros;  const   struct mdoc_macro * const mdoc_macros = __mdoc_macros;
Line 799  macro_text(MACRO_PROT_ARGS)
Line 800  macro_text(MACRO_PROT_ARGS)
         for (;;) {          for (;;) {
                 la = *pos;                  la = *pos;
                 w = mdoc_args(mdoc, line, pos, buf, tok, &p);                  w = mdoc_args(mdoc, line, pos, buf, tok, &p);
                 assert(ARGS_PHRASE != c);                  assert(ARGS_PHRASE != w);
   
                 if (ARGS_ERROR == w)                  if (ARGS_ERROR == w)
                         return(0);                          return(0);
Line 808  macro_text(MACRO_PROT_ARGS)
Line 809  macro_text(MACRO_PROT_ARGS)
                 if (ARGS_PUNCT == w)                  if (ARGS_PUNCT == w)
                         break;                          break;
   
                   /* Quoted words shouldn't be looked-up. */
   
                 c = ARGS_QWORD == w ? MDOC_MAX :                  c = ARGS_QWORD == w ? MDOC_MAX :
                         lookup(mdoc, line, la, tok, p);                          lookup(mdoc, line, la, tok, p);
   
                   /* MDOC_MAX (not a macro) or -1 (error). */
   
                 if (MDOC_MAX != c && -1 != c) {                  if (MDOC_MAX != c && -1 != c) {
                         if (0 == lastpunct && ! rewind_elem(mdoc, tok))                          if (0 == lastpunct && ! rewind_elem(mdoc, tok))
                                 return(0);                                  return(0);
Line 823  macro_text(MACRO_PROT_ARGS)
Line 828  macro_text(MACRO_PROT_ARGS)
                 } else if (-1 == c)                  } else if (-1 == c)
                         return(0);                          return(0);
   
                 /* FIXME: .Fl and .Ar handling of `|'. */                  /* Non-quote-enclosed punctuation. */
   
                 if (ARGS_QWORD != w && mdoc_isdelim(p)) {                  if (ARGS_QWORD != w && mdoc_isdelim(p)) {
                         if (0 == lastpunct && ! rewind_elem(mdoc, tok))                          if (0 == lastpunct && ! rewind_elem(mdoc, tok))

Legend:
Removed from v.1.62  
changed lines
  Added in v.1.65

CVSweb