2007-01-01から1年間の記事一覧

giraffe-mode.l修正

ちゃんとテストしたはずが、括弧の閉じる位置が間違っていて全く動作しませんでした。テスト後のちょっとした整形でおかしくなったんだと思います。 修正版: http://www.ric.hi-ho.ne.jp/giraffe/giraffe/doc/giraffe-mode.l

Giraffe+ 0.5.37.528

Downloadページへ前リリースからの変化 コマンド起動後のウインドウを隠す処理がおかしくなってたのを修正 doc\object_tree.xmlでconstをconstとして表示するようにした 定数オブジェクトの内部式を文字列化した場合にリテラルにならないようにした NULL文字…

Giraffe+ 0.5.36.524

Downloadページへ前リリースからの変化 さらにメモリを開放されやすくした リストボックスのタブ分離表示が重なることがあったのを修正 互換性のためString.shell_executeの始めの3つの引数は内部で文字列にキャストすることにした 旧関数のmsgにXMessageBox…

XMessageBoxの使い方

指定した時間にPCの電源を切りたいが、切る前に確認を取って、なおかつ60秒以内に無回答ならYESと見做す、ということをしたいとします。 時間指定はタスクスケジューラでやるとして、その後の処理をスクリプトでやると以下のようになります。 include('XMess…

Giraffe+ 0.5.35.515

Downloadページへ前リリースからの変化 ITEMIDLISTのキャッシングを改善 カレントディレクトリが不意に変わっても問題ないようにした download-google-icon.giraffeが動作しなくなってたのを修正 ファイル操作後の処理を融通が利くようにした thread関数をブ…

Giraffe+ 0.5.34.506

Downloadページへ前リリースからの変化 履歴に日本語を含むとおかしくなってたのを修正 さらにメモリを開放されやすくした SetEvent, get-func等の旧関数をメソッドを扱う仕様にした 履歴に日本語を含むとおかしくなってたのを修正 原因は、lenが日本語を1by…

Giraffe+ 0.5.33.499

Downloadページへ前リリースからの変化 setup/s2enterのS2ENTER_EVENTの仕様を元に戻した コンマを含むアイコン文字列のアイコン取得に失敗した場合にコンマ以降も含めてパス扱いすることにした スクリプトで!name(param directory verb show), 実行文字列で…

KeePassのAutoTypeでDonutをURL依存に

KeePassもDonutも書き換えず、適当にホットキーを定義することで可能です。KeePassのAutoTypeホットキー実行の瞬間にウインドウタイトルをURLに変えてしまうだけです。以下をホットキーで実行すると、KeePassにホットキーが送られる際に、Donutのウインドウ…

wnd_strについて

モチベーション mayuでウインドウの指定に使われる文字列があります。クラス名, タイトル名, モジュール名の3つから構成され、クラスとタイトルはウインドウの親子構造を表します。ウインドウの指定に使って便利なら、ウインドウハンドルの取得にこれを使う…

index(Object.[x])やslice(Object.[x y])について

gs

配列(Array)や連想配列(Map)や文字列(String)を扱うための構文糖(シンタクスシュガー)、[]構文の解説です。 角括弧内の引数の数が1つならindex、2つならsliceとなり、それに加え、角括弧に=が付くと*_setとなります。 s: 'abcedfg' s.[0] //s.index(0) s.[0 …

Giraffe+ 0.5.32.491

Downloadページへ前リリースからの変化 std::mapのvalue_typeとinsertの戻り値の型にgc_malloc_atomic_policyを使うように修正 Container.eachが引数のメソッドに与える要素を複数に出来るようにした Giraffe.ComposeExcecuteeの仕様を旧来のGiraffe:Compose…

Object.@による引数の配列の展開と引数の配列化

gs

Lispのバッククォート構文の,@やRubyの*です。 実引数に置くと、その配列*1が展開されます。 `a b c[a.+ b.+ c].invoke({1 2 3}.@) //6 `a b c[a.+ b.+ c].invoke(10 {2 3}.@) //15 `a b c[a.+ b.+ c].invoke({1}.@ 20 30) //51 `a b c[a.+ b.+ c].invoke(1.…

Giraffe+ 0.5.31.480

Downloadページへ前リリースからの変化 Unicodeファイル名対応のためNormalExecute等の古い関数でString.shell_executeを使うようにした String.shell_executeのfMask引数を空白時にデフォルト値となるようにした Giraffe:SplitExecuteeのindex引数に文字列…

Giraffe+のソースを公開しました

SourceForgeのCVSです。簡単にビルドできるようにしたり、プロジェクトファイルやディレクトリ構造の整理をしたりするのが面倒で放っていましたが、それらの問題を解決する気が全く無いのと、公開されて無いよりはマシだろうという判断から、いい加減な状態…

Giraffe+ 0.5.30.477

Downloadページへ前リリースからの変化 OptimizeSelectionがConfig.Separatorを考慮してなかったのを修正 gc.dllにGC_get_registered_threads_countとGC_dump_dllを定義 Path.as_Stringを定義 オブジェクトのスロットを初めて使うときに生成するようにした G…

Giraffe+ 0.5.29.460

Downloadページへ前リリースからの変化 選択位置の最適化が、セパレータを無視していたのを修正 Boehm GCを7.0に更新 GetIconColorとGetTextColorの戻り値にLOGBRUSHの要素を追加できるようにした 選択位置の最適化が、セパレータを無視していたのを修正 入…

Giraffe+ 0.5.28.451

Downloadページへ前リリースからの変化 オートコンプリートの結果の配列を返すGiraffe.Autocompleteを定義 Giraffe.ShortcutDirのディレクトリの名前が'*'で始まる場合に、登録アイテムとしては有効ながらオートコンプリートの対象とはならないようにした 起…

Giraffe+ 0.5.27.447

Downloadページへ前リリースからの変化 GetEventが失敗したときに変なデータを返さないようにした リストボックスのスクロール時のアイコン描画を修正した String.lrangeをStringstream.new(self).lrangeを返すものとして定義 ToggleAfterExecute(Shift+Tab)…

Giraffe+ 0.5.26.415

Downloadページへ前リリースからの変化 アイコン指定に数値をハンドルとして使えるようにした SwitchWindowのアイコンをモジュール(.exe)のものではなくウインドウのものを表示するようにした SwitchWindowのウインドウ候補判断基準をAlt+Tabに近づけた Show…

Giraffe+ 0.5.25.408

Downloadページへ前リリースからの変化 定数を持つ内部式クラスを、定数のように共有するようにした 名前解決をするBlock.resolve, Method.resolveを定義 String.exists, is_dir, is_accessibleを、ITEMIDLISTに対して実行した場合にそれ用の関数を使うよう…

Giraffe+ 0.5.24.388

Downloadページへ前リリースからの変化 Rangeオブジェクトを、@begin, @endに保持したイテレータのコピーをbegin, endで返す仕組みにした Container.to_Rangeを定義 Container.emptyを定義 Container.pop_back, pop_frontを定義 Container.car, cdrを定義 Co…

Boost 1.34

C++

ビルドして、使ってみて、気付いたこと、躓いたことが少しあったので書いておきます。 >bjam --toolset=msvc stage だけであっさりVC++7.1でビルドできました。以前みたいに環境変数とか、vc7_1とかいらなくなったみたいです。 注意する点としては、HDDを3GB…

Giraffe+ 0.5.23.376

Downloadページへ前リリースからの変化 Container.generate, generate!を定義 Giraffe.Event.*.get_copy(_safe)が動作してなかったのを修正 タスクトレイのメニューからの設定再読み込みが動作してなかったのを修正 Boostを1.34に更新 Container.generate, g…

Giraffe+ 0.5.22.366

Downloadページへ前リリースからの変化 DLLから変数の参照を得る、Dll.make_variable(name, type = Int)を定義 エラーダイアログの表題表示部がリサイズ対象になってなかったのを修正 できるだけメモリが開放されやすいようにした 内部的にグローバルコンテ…

ファイルを一行ずつ読む

gs

結論から。 Ifstream.new(file_name).scope& `f[ f.lrange.each& `line[ //処理... ] ]Object.scopeは、引数のメソッドをselfを引数に実行後、self.closeを呼ぶメソッドです。self.closeは引数のメソッドで例外が飛んでも呼ばれます。Ifstreamはデストラクタ…

ファイルを一行ずつ読む

C++

結論から。 ifstream f(file_name); BOOST_FOREACH(string const& line, make_istream_line_iterator_range(f)) { //処理... } C++でファイルを一行ずつ読む方法を検索すると、大抵はifstreamとstd::getlineとwhileを使ったものが出てくる。自分もずっとそう…

Giraffe+ 0.5.21.353

Downloadページへ前リリースからの変化 std::copyをContainer.copy_intoとして定義 Istream.getをObject.getのオーバーロードとして再定義 Istream_iterator, Istream_line_iterator, Ostream_iteratorを定義 Istream.begin, endをIstream_iteratorを返すメ…

Giraffe+ 0.5.20.351

Downloadページへ前リリースからの変化 パーサを少し最適化 スクリプトのオブジェクトからC++の変数への暗黙の型変換の仕様を少し変更 標準入力をイベント化 Object.max, min, Numbers.max_limit, min_limitを定義 ダブルクオーテド空文字列(ようするに"")を…

Giraffe+ 0.5.19.325

Downloadページへ前リリースからの変化 Config.AutoResize.Enableを2にするとエディットが空のとき以外はウインドウが縮まないようにした Object.nil?を定義した パーサを少し最適化 var, func等の旧関数を少し最適化 Config.AutoResize.Enableを2にするとエ…

Giraffe+ 0.5.18.319

Downloadページへ前リリースからの変化 システムエラー時のエラーメッセージを普通のエラー時と同じような感じにした ShowMenu2で大文字を打つとメニュー内をインクリメンタルサーチするようにしてみた スクリプトの文字列のパース時、\の後の改行を無視する…