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

Diff for /mandoc/Attic/mlg.c between version 1.3 and 1.7

version 1.3, 2008/12/03 21:27:56 version 1.7, 2008/12/04 19:31:57
Line 63  struct md_mlg {
Line 63  struct md_mlg {
   
 static  void             mlg_roffmsg(void *arg, enum roffmsg,  static  void             mlg_roffmsg(void *arg, enum roffmsg,
                                 const char *, const char *, char *);                                  const char *, const char *, char *);
 static  int              mlg_roffhead(void *);  static  int              mlg_roffhead(void *, const struct tm *,
                                   const char *, const char *,
                                   const char *, const char *);
 static  int              mlg_rofftail(void *);  static  int              mlg_rofftail(void *);
 static  int              mlg_roffin(void *, int, int *, char **);  static  int              mlg_roffin(void *, int, int *, char **);
 static  int              mlg_roffdata(void *, int, char *);  static  int              mlg_roffdata(void *, int,
                                   const char *, char *);
 static  int              mlg_roffout(void *, int);  static  int              mlg_roffout(void *, int);
 static  int              mlg_roffblkin(void *, int, int *, char **);  static  int              mlg_roffblkin(void *, int, int *, char **);
 static  int              mlg_roffblkout(void *, int);  static  int              mlg_roffblkout(void *, int);
 static  int              mlg_roffspecial(void *, int, int *,  static  int              mlg_roffspecial(void *, int, int *,
                                 char **, char **);                                  char **, char **);
 static  int              mlg_roffblkheadin(void *, int, int *, char **);  static  int              mlg_roffblkheadin(void *, int,
                                   int *, char **);
 static  int              mlg_roffblkheadout(void *, int);  static  int              mlg_roffblkheadout(void *, int);
 static  int              mlg_roffblkbodyin(void *, int, int *, char **);  static  int              mlg_roffblkbodyin(void *, int,
                                   int *, char **);
 static  int              mlg_roffblkbodyout(void *, int);  static  int              mlg_roffblkbodyout(void *, int);
   
 static  int              mlg_beginblk(struct md_mlg *, enum md_ns, int,  static  int              mlg_beginblk(struct md_mlg *, enum md_ns, int,
Line 86  static int   mlg_endtag(struct md_mlg *, enum md_ns, i
Line 91  static int   mlg_endtag(struct md_mlg *, enum md_ns, i
 static  int              mlg_indent(struct md_mlg *);  static  int              mlg_indent(struct md_mlg *);
 static  int              mlg_newline(struct md_mlg *);  static  int              mlg_newline(struct md_mlg *);
 static  void             mlg_mode(struct md_mlg *, enum md_tok);  static  void             mlg_mode(struct md_mlg *, enum md_tok);
 static  int              mlg_data(struct md_mlg *, int, char *);  static  int              mlg_data(struct md_mlg *, int,
                                   const char *, char *);
   static  void             mlg_err(struct md_mlg *, const char *,
                                   const char *, char *);
   static  void             mlg_warn(struct md_mlg *, const char *,
                                   const char *, char *);
   static  void             mlg_msg(struct md_mlg *, enum roffmsg,
                                   const char *, const char *, char *);
   
 #ifdef __linux__  #ifdef __linux__
 extern  size_t           strlcat(char *, const char *, size_t);  extern  size_t           strlcat(char *, const char *, size_t);
Line 219  mlg_mode(struct md_mlg *p, enum md_tok ns)
Line 231  mlg_mode(struct md_mlg *p, enum md_tok ns)
   
   
 static int  static int
 mlg_data(struct md_mlg *p, int space, char *buf)  mlg_data(struct md_mlg *p, int space, const char *start, char *buf)
 {  {
         size_t           sz;          size_t           sz;
         char            *bufp;          char            *bufp;
           int              c;
   
         assert(p->mbuf);          assert(p->mbuf);
         assert(0 != p->indent);          assert(0 != p->indent);
Line 250  mlg_data(struct md_mlg *p, int space, char *buf)
Line 263  mlg_data(struct md_mlg *p, int space, char *buf)
                 if (0 == p->pos) {                  if (0 == p->pos) {
                         if ( ! mlg_indent(p))                          if ( ! mlg_indent(p))
                                 return(0);                                  return(0);
                         if ( ! ml_nputstring(p->mbuf, bufp,  
                                                 sz, &p->pos))                          c = ml_nputstring(p->mbuf, bufp, sz, &p->pos);
                           if (0 == c) {
                                   mlg_err(p, start, bufp, "invalid "
                                                   "character sequence");
                                 return(0);                                  return(0);
                           } else if (c > 1) {
                                   mlg_warn(p, start, bufp, "bogus "
                                                   "character sequence");
                                   return(0);
                           } else if (-1 == c)
                                   return(0);
   
                         if (p->indent * INDENT + sz >= COLUMNS)                          if (p->indent * INDENT + sz >= COLUMNS)
                                 if ( ! mlg_newline(p))                                  if ( ! mlg_newline(p))
                                         return(0);                                          return(0);
Line 271  mlg_data(struct md_mlg *p, int space, char *buf)
Line 294  mlg_data(struct md_mlg *p, int space, char *buf)
                                 return(0);                                  return(0);
                 }                  }
   
                 if ( ! ml_nputstring(p->mbuf, bufp, sz, &p->pos))                  c = ml_nputstring(p->mbuf, bufp, sz, &p->pos);
                   if (0 == c) {
                           mlg_err(p, start, bufp, "invalid "
                                           "character sequence");
                         return(0);                          return(0);
                   } else if (c > 1) {
                           mlg_warn(p, start, bufp, "bogus "
                                           "character sequence");
                           return(0);
                   } else if (-1 == c)
                           return(0);
   
                 if ( ! (ML_OVERRIDE_ALL & p->flags))                  if ( ! (ML_OVERRIDE_ALL & p->flags))
                         space = 1;                          space = 1;
Line 346  mlg_alloc(const struct md_args *args, 
Line 378  mlg_alloc(const struct md_args *args, 
   
   
 static int  static int
 mlg_roffhead(void *arg)  mlg_roffhead(void *arg, const struct tm *tm, const char *os,
                   const char *title, const char *sec, const char *vol)
 {  {
         struct md_mlg   *p;          struct md_mlg   *p;
   
Line 354  mlg_roffhead(void *arg)
Line 387  mlg_roffhead(void *arg)
         p = (struct md_mlg *)arg;          p = (struct md_mlg *)arg;
   
         mlg_mode(p, MD_BLK_IN);          mlg_mode(p, MD_BLK_IN);
         if ( ! (*p->begin)(p->mbuf, p->args))          if ( ! (*p->begin)(p->mbuf, p->args, tm, os, title, sec, vol))
                 return(0);                  return(0);
   
         p->indent++;          p->indent++;
Line 511  static void
Line 544  static void
 mlg_roffmsg(void *arg, enum roffmsg lvl,  mlg_roffmsg(void *arg, enum roffmsg lvl,
                 const char *buf, const char *pos, char *msg)                  const char *buf, const char *pos, char *msg)
 {  {
         char            *level;  
           mlg_msg((struct md_mlg *)arg, lvl, buf, pos, msg);
   }
   
   
   static int
   mlg_roffdata(void *arg, int space, const char *start, char *buf)
   {
         struct md_mlg   *p;          struct md_mlg   *p;
   
         assert(arg);          assert(arg);
         p = (struct md_mlg *)arg;          p = (struct md_mlg *)arg;
   
           if ( ! mlg_data(p, space, start, buf))
                   return(0);
   
           mlg_mode(p, MD_TEXT);
           return(1);
   }
   
   
   static void
   mlg_err(struct md_mlg *p, const char *buf, const char *pos, char *msg)
   {
   
           mlg_msg(p, ROFF_ERROR, buf, pos, msg);
   }
   
   
   static void
   mlg_warn(struct md_mlg *p, const char *buf, const char *pos, char *msg)
   {
   
           mlg_msg(p, ROFF_WARN, buf, pos, msg);
   }
   
   
   static void
   mlg_msg(struct md_mlg *p, enum roffmsg lvl,
                   const char *buf, const char *pos, char *msg)
   {
           char            *level;
   
         switch (lvl) {          switch (lvl) {
         case (ROFF_WARN):          case (ROFF_WARN):
                 if ( ! (MD_WARN_ALL & p->args->warnings))                  if ( ! (MD_WARN_ALL & p->args->warnings))
Line 539  mlg_roffmsg(void *arg, enum roffmsg lvl, 
Line 609  mlg_roffmsg(void *arg, enum roffmsg lvl, 
                                 p->rbuf->name, level, msg);                                  p->rbuf->name, level, msg);
   
 }  }
   
   
 static int  
 mlg_roffdata(void *arg, int space, char *buf)  
 {  
         struct md_mlg   *p;  
   
         assert(arg);  
         p = (struct md_mlg *)arg;  
   
         if ( ! mlg_data(p, space, buf))  
                 return(0);  
   
         mlg_mode(p, MD_TEXT);  
         return(1);  
 }  
   

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.7

CVSweb