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

Diff for /mandoc/man.c between version 1.37 and 1.42

version 1.37, 2009/08/21 13:45:33 version 1.42, 2009/10/24 05:45:04
Line 14 
Line 14 
  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF   * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.   * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */   */
   #include <sys/types.h>
   
 #include <assert.h>  #include <assert.h>
 #include <ctype.h>  #include <ctype.h>
 #include <stdarg.h>  #include <stdarg.h>
Line 54  const char *const __man_macronames[MAN_MAX] = {   
Line 56  const char *const __man_macronames[MAN_MAX] = {   
         "R",            "B",            "I",            "IR",          "R",            "B",            "I",            "IR",
         "RI",           "na",           "i",            "sp",          "RI",           "na",           "i",            "sp",
         "nf",           "fi",           "r",            "RE",          "nf",           "fi",           "r",            "RE",
         "RS",           "DT"          "RS",           "DT",           "UC",           "PD"
         };          };
   
 const   char * const *man_macronames = __man_macronames;  const   char * const *man_macronames = __man_macronames;
Line 105  man_free(struct man *man)
Line 107  man_free(struct man *man)
 {  {
   
         man_free1(man);          man_free1(man);
   
         if (man->htab)  
                 man_hash_free(man->htab);  
         free(man);          free(man);
 }  }
   
Line 125  man_alloc(void *data, int pflags, const struct man_cb 
Line 124  man_alloc(void *data, int pflags, const struct man_cb 
                 return(NULL);                  return(NULL);
         }          }
   
           man_hash_init();
   
         p->data = data;          p->data = data;
         p->pflags = pflags;          p->pflags = pflags;
         (void)memcpy(&p->cb, cb, sizeof(struct man_cb));          (void)memcpy(&p->cb, cb, sizeof(struct man_cb));
   
         if (NULL == (p->htab = man_hash_alloc())) {  
                 free(p);  
                 return(NULL);  
         }  
         return(p);          return(p);
 }  }
   
Line 493  man_pmacro(struct man *m, int ln, char *buf)
Line 489  man_pmacro(struct man *m, int ln, char *buf)
                         break;                          break;
                 else if (' ' == buf[i])                  else if (' ' == buf[i])
                         break;                          break;
   
                   /* Check for invalid characters. */
   
                   if (isgraph((u_char)buf[i]))
                           continue;
                   return(man_perr(m, ln, i, WNPRINT));
         }          }
   
         mac[j] = 0;          mac[j] = 0;
Line 507  man_pmacro(struct man *m, int ln, char *buf)
Line 509  man_pmacro(struct man *m, int ln, char *buf)
                 return(1);                  return(1);
         }          }
   
         if (MAN_MAX == (c = man_hash_find(m->htab, mac))) {          if (MAN_MAX == (c = man_hash_find(mac))) {
                 if ( ! (MAN_IGN_MACRO & m->pflags)) {                  if ( ! (MAN_IGN_MACRO & m->pflags)) {
                         (void)man_perr(m, ln, ppos, WMACRO);                          (void)man_perr(m, ln, ppos, WMACRO);
                         goto err;                          goto err;

Legend:
Removed from v.1.37  
changed lines
  Added in v.1.42

CVSweb