2006/05/27(土)Sageのバグ?

確かにSageのバグ...というよりJScriptの罠?

Sageのソースを流し読みしたところ,文字列の置換にStringクラスのreplaceを利用している.このreplaceは一部の特殊文字を扱うため,今回のように化けてしまう*1

Sage限定なら,$を置換してしまえばいいが,RSSリーダーはSageだけでは無いのでむやみに置換は出来ない.とりあえずSageProjectにバグ報告をしたいが...すでに投稿されて未処理が130件*2.同じものを探すだけでも一苦労.面倒なので開発者が気づくのを待つ,もしくは,他のリーダを探すことにする.

とりあえず,自分でSageのソースをいじって,$を置換するようにした*3.ここにメモしておく

content/feedlib.js @ sage.jar
*** feedlib.js.orig  2006-05-27 10:17:47.307084120 +0900
--- feedlib.js  2006-05-27 10:13:44.000000000 +0900
***************
*** 106,110 ****
    case "description":
        if (!item.content) {
!           item.content = CommonFunc.getInnerText(j);
        }
        break;
--- 106,110 ----
    case "description":
        if (!item.content) {
!           item.content = CommonFunc.getInnerText(j).replace(/\$/g, "$");
        }
        break;