Giraffe+ 0.5.32.491

Downloadページへ

前リリースからの変化

  • 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を定義

std::mapのvalue_typeとinsertの戻り値の型にgc_malloc_atomic_policyを使うように修正

メモリ節約

Container.eachが引数のメソッドに与える要素を複数に出来るようにした

Container.each(number, method)とすることでそのnumberの数の引数がmethodに与えられるようになりました。

Giraffe.ComposeExcecuteeの仕様を旧来のGiraffe:ComposeExecuteeと一致させた

showが空のときは1になるとか、そんなのです。

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二回で呼んで欲しい関数を返す関数としました。

DonutAbsの検索エンジンリストを登録アイテム化するreg_search_engine.giraffeを追加

@reg_search_engine(テキストのパス, アイコン文字列)です。DonutAbsの検索エンジンリストの仕様は

名前
URL

と並んでるだけのテキストです。URLに含まれる$$エンコード名$$という文字列がそのエンコードのクエリーで置換されます。

DonutAbsの検索文字列を実行するAbsWebSearchを定義

AbsWebSearch(url, query)です。urlに含まれる$$エンコード名$$という文字列がそのエンコードのqueryで置換されます。