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

Diff for /mandoc/roff.c between version 1.98 and 1.99

version 1.98, 2010/08/20 01:02:07 version 1.99, 2010/08/24 12:48:43
Line 136  static int   roff_res(struct roff *, 
Line 136  static int   roff_res(struct roff *, 
                                 char **, size_t *, int);                                  char **, size_t *, int);
 static  void             roff_setstr(struct roff *,  static  void             roff_setstr(struct roff *,
                                 const char *, const char *);                                  const char *, const char *);
   static  char            *roff_strdup(const char *);
   
 /* See roff_hash_find() */  /* See roff_hash_find() */
   
Line 1035  roff_nr(ROFF_ARGS)
Line 1036  roff_nr(ROFF_ARGS)
 }  }
   
   
   static char *
   roff_strdup(const char *name)
   {
           char            *namecopy, *sv;
   
           /*
            * This isn't a nice simple mandoc_strdup() because we must
            * handle roff's stupid double-escape rule.
            */
           sv = namecopy = mandoc_malloc(strlen(name) + 1);
           while (*name) {
                   if ('\\' == *name && '\\' == *(name + 1))
                           name++;
                   *namecopy++ = *name++;
           }
   
           *namecopy = '\0';
           return(sv);
   }
   
   
 static void  static void
 roff_setstr(struct roff *r, const char *name, const char *string)  roff_setstr(struct roff *r, const char *name, const char *string)
 {  {
Line 1054  roff_setstr(struct roff *r, const char *name, const ch
Line 1076  roff_setstr(struct roff *r, const char *name, const ch
         } else          } else
                 free(n->string);                  free(n->string);
   
         ROFF_DEBUG("roff: new symbol: [%s] = [%s]\n", name, string);          /* Don't use mandoc_strdup: clean out double-escapes. */
         n->string = string ? strdup(string) : NULL;          n->string = string ? roff_strdup(string) : NULL;
           ROFF_DEBUG("roff: new symbol: [%s] = [%s]\n", name, n->string);
 }  }
   
   

Legend:
Removed from v.1.98  
changed lines
  Added in v.1.99

CVSweb