diff --git a/src/sbbs3/js_global.c b/src/sbbs3/js_global.c index 30dec125e2a5fcaca7d2f0c6238bdbcd6fff7001..7a58276e6e80796e431f26f3c5720bbc4ecc8299 100644 --- a/src/sbbs3/js_global.c +++ b/src/sbbs3/js_global.c @@ -2427,8 +2427,9 @@ js_html_decode(JSContext *cx, uintN argc, jsval *arglist) continue; } - if(strcmp(token,"lsquo")==0 || strcmp(token,"rsquo")==0) { - outbuf[j++]='\''; /* single quotation mark */ + if(strcmp(token,"lsquo")==0 || strcmp(token,"rsquo")==0 + || strcmp(token,"lsaquo")==0 || strcmp(token,"rsaquo")==0) { + outbuf[j++]='\''; /* single quotation mark: should lsaquo be converted to backtick (`)? */ continue; } @@ -2442,6 +2443,9 @@ js_html_decode(JSContext *cx, uintN argc, jsval *arglist) continue; } + if(strcmp(token, "zwj") == 0 || strcmp(token, "zwnj") == 0) /* zero-width joiner / non-joiner */ + continue; + /* Unknown character entity, leave intact */ j+=sprintf(outbuf+j,"&%s;",token);