嫌な挙動が見受けられるので bbs2chreader のコードを久々に見てみた。そして発覚した。
var unescapeHTML = Components.classes["@mozilla.org/feed-unescapehtml;1"] .getService(Components.interfaces.nsIScriptableUnescapeHTML); unescapeHTML.unescape("unk o!"); // "unk\no!" unescapeHTML.unescape("unk o!"); // "unk\no!" unescapeHTML.unescape("unk o!"); // "unk\no!" unescapeHTML.unescape("unk o!"); // "unk\ro!" unescapeHTML.unescape("unk o!"); // "unk\ro!" unescapeHTML.unescape("unk o!"); // "unk\no!"
連続する改行文字(\n や \r に対応する や )が最初の 1 つを残して後続はなかったことにされる件。親切すぎて逆に迷惑な仕様。
最近の bbs2chreader で書き込み時に cookie がないときに空行が削られる的なバグ(http://jbbs.livedoor.jp/bbs/read.cgi/computer/41231/1214224487/106 とか)の原因がこれぽ。rev. 592 にて発症した模様。
とりあえずメモ。