#include #include #include "parse.h" void frame_parse_a(Frame *f, Tag *tag) { TagOpt *opt; char *name = NULL; char *url = NULL; BlockFormatInfo *bfi = frame_get_blockformatinfo(f); for (opt = tag->opt; opt; opt=opt->next) { if (!opt->oi) continue; switch (opt->oi->id) { case OPT_href: url = opt->val; break; case OPT_name: name = opt->val; break; default: break; } } if (url) { frame_add_link(f, htmlhrefinfo_new(url)); bfi->linkmode = 1; } } void frame_parse_font(Frame *f, Tag *tag) { TagOpt *opt; char *str; int size = 0; char *color = NULL; for (opt = tag->opt; opt; opt=opt->next) { if (!opt->oi) continue; switch (opt->oi->id) { case OPT_size: str = opt->val; if( *str == '+' || *str == '-' ){ size = *(str+1) - '0'; if (*str == '-') size = -size; size += f->basefont; } else size = *str - '0'; if (size < 1) size = 1; else if (size > 7) size = 7; break; case OPT_color: color = opt->val; break; default: break; } } if (size) inlinestyleinfo_setsize(f,f->pinfo->istyle,size-1); inlinestyleinfo_setcolor(f,f->pinfo->istyle,color); } void frame_parse_fontstyle(Frame *f, Tag *tag) { inlinestyleinfo_setfonttype(f, f->pinfo->istyle, tag->ti->id - TAG_b + FONTTYPE_BOLD); }