Search
Categories
Articles
Rainmeter関連
ファイル置き場
お知り合いなど

スポンサーサイト

--.--.-- | スポンサー広告

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Changelog (Rainmeter 0.14 to 0.14.1-r2)

2009.04.01 | Rainmeter-dev

0 Comments

Google Codeには、オリジナルともいえる0.14のソースが存在しません。一番最初にコミットされたr2から既に0.14.1となっています。
面倒なのが、0.14からの差分を簡単にチェックできないこと。
自分用として改変を加えていっているRainmeterは0.14をベースにしていたので、どこが変わったのか知りたい!

ということで、ソースを落っことしてきてWinMergeで比較。
変わってたのは以下のファイル。差分のリンク先はWinMergeで出力したレポート(html形式)なのでデカイです。
(Rainmeter.hも変わってるけど、バージョン表記のみなので省きます)

MeasureNet.cpp
前回の記事で書いた、「MaxValue」読み込み時の判定の修正

MeasureTime.cpp差分
・たぶんこれが「Time measure didn't show correct week number. Fixed.」の修正?

MeasureUptime.cpp差分
・表示内容の整形用の文字列に「%4」が含まれる場合に行われる処理が、「%3」が含まれる場合に処理されていたのを修正
(%4はday、%3はhourで、%4が使われない場合は累積時のまま表示したかったんだと思われる。デフォルトでは%3も%4も指定されているので、結果的には問題ないように表示される)

MeterImage.cpp差分
・MeasureNet.cppと同じく、画像ファイルサイズ取得でのエラー判定がstd::wstring::nposとの比較になってたのを修正

……と、こんな感じでした。
Uptimeの修正は、そもそもヘルプにすら記載されてない部分の修正だから、変更点に書かれてないのかもしれませんね。

以下はそんなUptimeについての雑感。

ちなみに、非常に危険ですが、Uptimeの書式はskinの設定で変えられたりします。
%4がday、%3がhour、%2がminute、%1がsecondに該当します(すべて整数値)。ですが、そのままでは使えません。"%3!i!:%2!02i!"のように、FormatMessage()用の書式にする必要があります。書式については解説のところに詳しく書かれてあります。

非常に危険だと書いたのは、指定された書式文字列を、内部でそのままWin32APIのFormatMessage()に渡しているからです。
指定方法を間違えると、ととんでもないことになります。試しに無茶な指定をしてみたら、変なメモリ領域を読んできたり、例外で落ちたりしました。うん、危なすぎる。「指定方法もわかってる!デフォルトの書式は嫌いだからどうしても変えたい!」って人以外は絶対に触らないほうがいいです。

とはいえ、この部分はこのままにしておくと危ないと思うんですが、どうなんでしょうね。
いっそ読み取り部をバッサリ削除するか、またはFormatMessage()を使わず完全に自前の書式を定義して実装するなりすればいいのにと思いますが……。
(内部をそういう風にしてあるということは、ゆくゆくは書式を指定できるようにしたかったのかなと思うので)

« Google Reader えいぷりるふ~る »

- Comments
0 Comments

管理者にだけ表示を許可する
- Trackbacks
0 Trackbacks


この記事にトラックバックする(FC2ブログユーザー)

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。