Giraffe+ 0.5.32.491
前リリースからの変化
- std::mapのvalue_typeとinsertの戻り値の型にgc_malloc_atomic_policyを使うように修正
- Container.eachが引数のメソッドに与える要素を複数に出来るようにした
- Giraffe.ComposeExcecuteeの仕様を旧来のGiraffe:ComposeExecuteeと一致させた
- Array.[-1]をArray.at(Array.size.- 1)と扱うようにした
- 'abc'.[0 -1]をabcではなくabを返すようにした
- Regex_iterator.% `m[]のmを文字列ではなくRegex_match_resultにした
- アイコンの表現をレジストリのアイコン指定文字列と同じに出来るようにした
- ショートカットファイルのアイコン要素を扱うようにした
- 旧DLLの関数をUnicode対応にするsetup/OldDllSupportUnicodeを追加
- 旧関数constantの仕様をメモリ使用量が減るように変更した
- mayuのウインドウ指定文字列を扱うwnd_str.giraffeを追加
- Giraffe.SetImeStateとGiraffe.GetImeStateを定義
- setup/s2enterがエラーになってたのを修正とともに少し仕様変更
- DonutAbsの検索エンジンリストを登録アイテム化するreg_search_engine.giraffeを追加
- DonutAbsの検索文字列を実行するAbsWebSearchを定義
Container.eachが引数のメソッドに与える要素を複数に出来るようにした
Container.each(number, method)とすることでそのnumberの数の引数がmethodに与えられるようになりました。
Array.[-1]をArray.at(Array.size.- 1)と扱うようにした
やりたかったんですが、atと[]の違いの大幅な仕様変更になるため触れてませんでした。結局、結果がよくなるなら仕様なんてガンガン変更していこう、という考えに落ち着きました。
'abc'.[0 -1]をabcではなくabを返すようにした
前後ともArray.[-1]と同じ仕様です。これにより、今まで後方全部の指定に-1を使っていたところはUint.max_limitを使うことになります。
Regex_iterator.% `m[]のmを文字列ではなくRegex_match_resultにした
置換にサブマッチを使おうとしてどうしようもないことに気付きました。出来ることが多いほうに仕様変更です。
ショートカットファイルのアイコン要素を扱うようにした
レジストリと同じ仕様の文字列を返すようにしましたので、lnkファイルにアイコンの指定があればそれが表示されることになります。
旧DLLの関数をUnicode対応にするsetup/OldDllSupportUnicodeを追加
旧DLLの関数は使わない方向と考えていましたが、変にオブジェクト指向するよりグローバル関数一杯のほうが扱いやすいので結局使うことにしました。
Window.GetTitle, SetTextを再定義し、SetTextの対比としてGetTextをGetTitleのシノニムとしました。
Unicode対応には他にも再定義しないといけない関数は山ほどありますが、とりあえず少量で様子を見ます。
旧関数constantの仕様をメモリ使用量が減るように変更した
今まではvarと同じようにまず関数を作ってそれに値を保持させるという仕様でしたが、そのまま値を保持させるようにしました。
値がconstの場合はそのまま、そうで無い場合はcopyしてconst化したものを保持します。
mayuのウインドウ指定文字列を扱うwnd_str.giraffeを追加
入り組んだ子ウインドウの取得が楽になります。ややこしいので説明は別項で。
Giraffe.SetImeStateとGiraffe.GetImeStateを定義
プロセスローカルなものであることを忘れていましたが、とりあえず定義したので、プロセスローカルなものとして扱ってください。
setup/s2enterがエラーになってたのを修正とともに少し仕様変更
S2ENTER_EVENTをspace二回で呼んで欲しい関数を返す関数としました。