diff -p -r1.83 HTMLparser.c
*** HTMLparser.c 2000/10/31 13:28:21 1.83
--- HTMLparser.c 2000/11/17 15:55:20
*************** htmlParseCharRef(htmlParserCtxtPtr ctxt)
*** 2593,2600 ****
ctxt->sax->error(ctxt->userData,
"htmlParseCharRef: invalid hexadecimal value\n");
ctxt->wellFormed = 0;
! val = 0;
! break;
}
NEXT;
}
--- 2593,2599 ----
ctxt->sax->error(ctxt->userData,
"htmlParseCharRef: invalid hexadecimal value\n");
ctxt->wellFormed = 0;
! return(0);
}
NEXT;
}
*************** htmlParseCharRef(htmlParserCtxtPtr ctxt)
*** 2610,2617 ****
ctxt->sax->error(ctxt->userData,
"htmlParseCharRef: invalid decimal value\n");
ctxt->wellFormed = 0;
! val = 0;
! break;
}
NEXT;
}
--- 2609,2615 ----
ctxt->sax->error(ctxt->userData,
"htmlParseCharRef: invalid decimal value\n");
ctxt->wellFormed = 0;
! return(0);
}
NEXT;
}
*************** htmlParseReference(htmlParserCtxtPtr ctx
*** 3171,3176 ****
--- 3169,3177 ----
int bits, i = 0;
c = htmlParseCharRef(ctxt);
+ if (c == 0)
+ return;
+
if (c < 0x80) { out[i++]= c; bits= -6; }
else if (c < 0x800) { out[i++]=((c >> 6) & 0x1F) | 0xC0; bits= 0; }
else if (c < 0x10000) { out[i++]=((c >> 12) & 0x0F) | 0xE0; bits= 6; }