analog6.0

一応動いてるのですけど、前から日本語表示のうち、JISらしきコードが混じって正常に表示できてない問題を思い出したので対処しました。
問題は、ステータスコードレポート等で文字化け状態になるもので、JISコードの場合、シフトコードにESC$B、ESC(Bを使用しますがESCが?に置き換わっていて表示できないように見えます。また、シフトコードに囲まれた漢字コード部分のうち、大小記号やクォート、アンパーサンド等がHTML表示させようと&xx;に置き換えられてるのもわかりました。
Analog自体の設定で何かあるのか?と思ったのですが、どうやらソースにEUCやSJISなどで吐き出す機能はなく、JISっぽく出てしまうのが仕様らしいです。ソースも覗いてみたけど、処理する関数を構造体配列へセットしてC++みたいなオブジェクト指向風なコーディングなのでいまいち追いかけるのが辛い状態です。関数へのポインタとか使われると最初からどんなデータをどういう風にう処理するのか追わないとわからないので挫折です。業務じゃないので別方向でアプローチを。
で、考えたのが、吐き出されるHTMLを読み込ませて?[Bと?(B、&xx;を置き換えてしまえばという事でCでプログラムを作りました。処理自体は単純で、STDINからfgetsでテキストを取得し、シフトコードを検索して見つかったらその中身のアンパーを処理、シフトコードをまた見つけてたら処理という感じ。アンパーも調べると大量に処理すべき置き換えがあるけど、気づいたものだけ処理という限定仕様。変換漏れとか落ちたら別途対応すればいいやという投げやり仕様ですけど。
一応今の段階でレポートされる範囲では問題なく変換できてます。あとは、検索語レポートがいつの間にか落ちてるのでレポートしたいけど、ApacheのログをCommonで取ってたのでcombinedに設定しなおした後だからまだでない状態。昔AIXで設定したときは取ってたのですけど、Linuxへ移行した時に設定が漏れてたと思う。analogurldecodeを使ってる意味がぜんぜんなかった罠。