diff options
author | cinap_lenrek <cinap_lenrek@gmx.de> | 2012-04-03 19:03:44 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@gmx.de> | 2012-04-03 19:03:44 +0200 |
commit | 2aa121fd6ce6a35b61b3312234c0315ad1e59f48 (patch) | |
tree | 3b852198f371d27dec29b4ffcef23cc69b1b8c73 /sys/src/cmd/mothra/rdhtml.c | |
parent | dd04c514700c8227d5d7c0a8eb84b3d8680b2f9c (diff) |
mothra: <base> tag, nstrcpy
Diffstat (limited to 'sys/src/cmd/mothra/rdhtml.c')
-rw-r--r-- | sys/src/cmd/mothra/rdhtml.c | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/sys/src/cmd/mothra/rdhtml.c b/sys/src/cmd/mothra/rdhtml.c index 67dcf3796..7f2693560 100644 --- a/sys/src/cmd/mothra/rdhtml.c +++ b/sys/src/cmd/mothra/rdhtml.c @@ -613,7 +613,7 @@ void plrdplain(char *name, int fd, Www *dst){ g.etext=g.text+NTITLE-1; g.spacc=0; g.form=0; - strncpy(g.text, name, NTITLE); + nstrcpy(g.text, name, NTITLE); plaintext(&g); finish(dst); } @@ -675,10 +675,10 @@ void plrdhtml(char *name, int fd, Www *dst){ if(str=pl_getattr(g.attr, "id")){ char swap[NNAME]; - strncpy(swap, g.state->name, sizeof(swap)); - strncpy(g.state->name, str, sizeof(g.state->name)); + nstrcpy(swap, g.state->name, sizeof(swap)); + nstrcpy(g.state->name, str, sizeof(g.state->name)); pl_htmloutput(&g, 0, "", 0); - strncpy(g.state->name, swap, sizeof(g.state->name)); + nstrcpy(g.state->name, swap, sizeof(g.state->name)); } switch(g.tag){ default: @@ -689,7 +689,7 @@ void plrdhtml(char *name, int fd, Www *dst){ break; case Tag_img: if(str=pl_getattr(g.attr, "src")) - strncpy(g.state->image, str, sizeof(g.state->image)); + nstrcpy(g.state->image, str, sizeof(g.state->image)); g.state->ismap=pl_hasattr(g.attr, "ismap"); if(str=pl_getattr(g.attr, "width")) g.state->width = strtolength(&g, HORIZ, str); @@ -725,11 +725,15 @@ void plrdhtml(char *name, int fd, Www *dst){ case Tag_td: g.spacc++; break; + case Tag_base: + if(str=pl_getattr(g.attr, "href")) + nstrcpy(g.dst->url->fullname, str, sizeof(g.dst->url->fullname)); + break; case Tag_a: if(str=pl_getattr(g.attr, "href")) - strncpy(g.state->link, str, sizeof(g.state->link)); + nstrcpy(g.state->link, str, sizeof(g.state->link)); if(str=pl_getattr(g.attr, "name")){ - strncpy(g.state->name, str, sizeof(g.state->name)); + nstrcpy(g.state->name, str, sizeof(g.state->name)); pl_htmloutput(&g, 0, "", 0); } break; @@ -757,9 +761,9 @@ void plrdhtml(char *name, int fd, Www *dst){ case Tag_frame: case Tag_iframe: if(str=pl_getattr(g.attr, "src")) - strncpy(g.state->link, str, sizeof(g.state->link)); + nstrcpy(g.state->link, str, sizeof(g.state->link)); if(str=pl_getattr(g.attr, "name")) - strncpy(g.state->name, str, sizeof(g.state->name)); + nstrcpy(g.state->name, str, sizeof(g.state->name)); else str = g.state->link; pl_htmloutput(&g, 0, tag[g.tag].name, 0); @@ -1060,7 +1064,7 @@ void plrdhtml(char *name, int fd, Www *dst){ break; case TEXT: if(g.state->link[0]==0 && (str = linkify(g.token))){ - strncpy(g.state->link, str, sizeof(g.state->link)); + nstrcpy(g.state->link, str, sizeof(g.state->link)); pl_htmloutput(&g, g.nsp, g.token, 0); g.state->link[0] = 0; free(str); |