AcePerl
view release on metacpan or search on metacpan
acelib/texthelp.c view on Meta::CPAN
if (node->lstyle == HTML_LIST_BULLET ||
node->lstyle == HTML_LIST_NOINDENT)
{
freeOutf ("* ") ;
indent += 2 ;
xPos = indent ;
}
else if (node->lstyle == HTML_LIST_NUMBER)
{
freeOutf ("%d. ", itemNumber) ;
indent += strlen(messprintf ("%d. ", itemNumber)) ;
xPos = indent ;
}
else if (node->lstyle == HTML_LIST_NOBULLET)
{
/* part of a <DL> noindented list, but a <DD>
item becomes indented, but no bullet */
/* if we come across the first NO_BULLET item, in
a LIST_NOINDENT, the LIST becomes indented */
if (!FOUND_NOBULLET_IN_LIST_NOINDENT)
{
indent += 6 ;
xPos = indent ;
freeOutf (" ") ;
fflush (stdout) ;
FOUND_NOBULLET_IN_LIST_NOINDENT = TRUE ;
}
}
printTextSection (node->left) ;
}
if (node->lstyle == HTML_LIST_BULLET ||
node->lstyle == HTML_LIST_NOINDENT)
{
indent -= 2 ;
}
else if (node->lstyle == HTML_LIST_NUMBER)
{
indent -= strlen(messprintf ("%d. ", itemNumber)) ;
}
else if (node->lstyle == HTML_LIST_NOBULLET)
{
if (!FOUND_NOBULLET_IN_LIST_NOINDENT)
indent -= 6 ;
}
if (node->right)
{
printTextSection (node->right) ;
}
break ;
case HTML_HREF:
if (node->link)
{
MODE_HREF = TRUE ;
currentLink = node->link ;
}
/* we have to check for leftnode, in case we have a thing
like <A HREF=...></A>. The HREF-node doesn't have a TEXT
node attached, and it would crash otherwise */
if (node->left)printTextSection (node->left) ;
if (node->link)
{
MODE_HREF = FALSE ;
currentLink = 0 ;
}
break ;
case HTML_TEXT:
cp = node->text ;
if (!MODE_PREFORMAT)
stripSpaces (node->text) ;
/* for MODE_PREFORMAT keeps all controls chars */
while (*cp)
{
len = 0 ;
start = cp ;
if (!MODE_PREFORMAT)
{
while (*cp && !isspace((int)*cp)) { ++(cp) ; ++len ; }
if (*cp) ++cp ; /* skip whitespace */
}
else
{
while (*cp && *cp != '\n') { ++(cp) ; ++len ; }
if (*cp)
{
++cp ; /* skip RETURN */
++len ; /* so we copy the RETURN into buf */
}
}
memset (buf, 0, 10000) ;
strncpy (buf, start, len) ;
buf[len] = 0 ;
/* linewrapping of words/lines longer than WINX */
if (strlen(buf) > WINX)
{
cp = start + (int)(WINX) ;
buf[(int)WINX] = 0 ;
len = (int)WINX ;
}
/* word wrapping if not in preformatting mode */
if (!MODE_PREFORMAT)
{
if (xPos != indent) /* not at start of line ... */
{
xPos += 1 ; /* ... one space before the word */
freeOutf (" ") ;
fflush (stdout) ;
}
if (xPos + len > WINX)
{
newTextLine () ;
}
freeOutf ("%s", buf) ;
( run in 0.451 second using v1.01-cache-2.11-cpan-39bf76dae61 )