--- sys/src/cmd/mothra/libpanel/draw.c
+++ sys/src/cmd/mothra/libpanel/draw.c
@@ -118,6 +118,7 @@ Point pl_boxsize(Point interior, int state){
case FRAME:
return addpt(interior, Pt(4*FWID+2*SPACE, 4*FWID+2*SPACE));
}
+ return interior;
}
void pl_interior(int state, Point *ul, Point *size){
switch(state){
--- sys/src/cmd/mothra/rdhtml.c
+++ sys/src/cmd/mothra/rdhtml.c
@@ -639,14 +639,20 @@ void plrdhtml(char *name, int fd, Www *dst){
case Tag_end: /* unrecognized start tag */
break;
case Tag_meta:
- if((str=pl_getattr(g.attr, "http-equiv")) &&
- (strcmp(str, "content-type"))==0 &&
- (str=pl_getattr(g.attr, "content")) &&
- (str=strstr(str, "charset="))){
- str+=8;
- if(cistrcmp(str, "utf-8")==0)
- g.isutf=1;
+ /* html5 writes <meta charset=...>; the older form
+ * hides it in the Content-Type http-equiv */
+ if((str=pl_getattr(g.attr, "charset"))==nil){
+ str=pl_getattr(g.attr, "http-equiv");
+ if(str!=nil && cistrcmp(str, "content-type")==0
+ && (str=pl_getattr(g.attr, "content"))!=nil
+ && (str=cistrstr(str, "charset="))!=nil)
+ str+=8;
+ else
+ str=nil;
}
+ if(str!=nil
+ && (cistrcmp(str, "utf-8")==0 || cistrcmp(str, "utf8")==0))
+ g.isutf=1;
break;
case Tag_img:
str=pl_getattr(g.attr, "src");
|