=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/mandoc/term.c,v retrieving revision 1.56 retrieving revision 1.57 diff -c -r1.56 -r1.57 *** src/usr.bin/mandoc/term.c 2011/01/30 16:05:29 1.56 --- src/usr.bin/mandoc/term.c 2011/04/21 22:59:54 1.57 *************** *** 1,4 **** ! /* $Id: term.c,v 1.56 2011/01/30 16:05:29 schwarze Exp $ */ /* * Copyright (c) 2008, 2009, 2010 Kristaps Dzonsons * Copyright (c) 2010, 2011 Ingo Schwarze --- 1,4 ---- ! /* $Id: term.c,v 1.57 2011/04/21 22:59:54 schwarze Exp $ */ /* * Copyright (c) 2008, 2009, 2010 Kristaps Dzonsons * Copyright (c) 2010, 2011 Ingo Schwarze *************** *** 76,87 **** { struct termp *p; ! p = calloc(1, sizeof(struct termp)); ! if (NULL == p) { ! perror(NULL); ! exit((int)MANDOCLEVEL_SYSERR); ! } ! p->enc = enc; return(p); } --- 76,82 ---- { struct termp *p; ! p = mandoc_calloc(1, sizeof(struct termp)); p->enc = enc; return(p); } *************** *** 464,492 **** sv = word; ! if (word[0] && '\0' == word[1]) ! switch (word[0]) { ! case('.'): ! /* FALLTHROUGH */ ! case(','): ! /* FALLTHROUGH */ ! case(';'): ! /* FALLTHROUGH */ ! case(':'): ! /* FALLTHROUGH */ ! case('?'): ! /* FALLTHROUGH */ ! case('!'): ! /* FALLTHROUGH */ ! case(')'): ! /* FALLTHROUGH */ ! case(']'): ! if ( ! (TERMP_IGNDELIM & p->flags)) ! p->flags |= TERMP_NOSPACE; ! break; ! default: ! break; ! } if ( ! (TERMP_NOSPACE & p->flags)) { if ( ! (TERMP_KEEP & p->flags)) { --- 459,467 ---- sv = word; ! if (DELIM_CLOSE == mandoc_isdelim(word)) ! if ( ! (TERMP_IGNDELIM & p->flags)) ! p->flags |= TERMP_NOSPACE; if ( ! (TERMP_NOSPACE & p->flags)) { if ( ! (TERMP_KEEP & p->flags)) { *************** *** 510,516 **** if ((ssz = strcspn(word, "\\")) > 0) encode(p, word, ssz); ! word += ssz; if ('\\' != *word) continue; --- 485,491 ---- if ((ssz = strcspn(word, "\\")) > 0) encode(p, word, ssz); ! word += (int)ssz; if ('\\' != *word) continue; *************** *** 549,568 **** p->flags |= TERMP_NOSPACE; } ! /* ! * Note that we don't process the pipe: the parser sees it as ! * punctuation, but we don't in terms of typography. ! */ ! if (sv[0] && '\0' == sv[1]) ! switch (sv[0]) { ! case('('): ! /* FALLTHROUGH */ ! case('['): ! p->flags |= TERMP_NOSPACE; ! break; ! default: ! break; ! } } --- 524,531 ---- p->flags |= TERMP_NOSPACE; } ! if (DELIM_OPEN == mandoc_isdelim(sv)) ! p->flags |= TERMP_NOSPACE; } *************** *** 575,585 **** while (sz >= p->maxcols) p->maxcols <<= 2; ! p->buf = realloc(p->buf, p->maxcols); ! if (NULL == p->buf) { ! perror(NULL); ! exit((int)MANDOCLEVEL_SYSERR); ! } } --- 538,544 ---- while (sz >= p->maxcols) p->maxcols <<= 2; ! p->buf = mandoc_realloc(p->buf, p->maxcols); }