2004/5/4 (火) 00:15:58 novice  
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)
[3568] タグジャンプ機能追加
「タグジャンプ元」と「タグジャンプ先」が同じファイルであるときでも、タグジャンプバックできるように変更しました。

変更対象ファイル
ssrc_2004-05-01.tar.bz2

差分ファイル
diff_ssrc_2004-05-01.zip

その他
(1)タグジャンプ情報を「共有メモリ」に保存しているため、共有メモリのバージョンの変更しました。
(2)タグジャンプできる回数は最大100回です(MAX_TAGJUMPNUMの設定値を変更して調整できます)。
(3)「タグジャンプバック」できないときの表示を、「タグジャンプ」できないときの表示に合わせました(MYMESSAGEBOX→SendStatusMessage)。
(4)「MAX_CUSTMACRO」の定義を「Funccode.h→CShareData.h」に移動しました。

2004/5/14 (金) 00:08:22 もか  
INCM1.23a
[3577] Re: タグジャンプ機能追加
>「タグジャンプ元」と「タグジャンプ先」が同じファイルであるときでも、タグジャンプバックできる
実は、これ欲しかったんです!
>(2)タグジャンプできる回数は最大100回です
スタック方式になっているようで、100回ジャンプした後は、記録されない仕様なんですね。
私は、記録できないより、古いほうを消して新しいほうを記録したほうがよいと思います。
それからCommand_TAGJUMPBACKで、tagJump.hwndRefererがサクラエディタの編集ウィンドウか、
調べていません。
もし、参照元ウィンドウを閉じて、同じハンドルがほかのプログラムに割り当てられた場合、
SendMessageで、そのプログラムが予期せぬ動作をするかもしれません。

2004/5/21 (金) 16:43:25 novice  
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322; Donut RAPT #51)
[3583] Re2: タグジャンプ機能追加
▼ もかさん
> スタック方式になっているようで、100回ジャンプした後は、記録されない仕様なんですね。
タグジャンプ→タグジャンプバックの使用方法を考えるとスタック方式が一番しっくりくるかなと思いました。

> 私は、記録できないより、古いほうを消して新しいほうを記録したほうがよいと思います。
スタック方式だけど、オーバフローしたら、一番下のスタックを書き換える、という動作でよろしいですか?

m_TagJump[0] = 1番目のタグジャンプ情報
m_TagJump[1] = 2番目のタグジャンプ情報
...
m_TagJump[MAX_TAGJUMPNUM-1] = MAX_TAGJUMPNUM番目のタグジャンプ情報

上記の状態のとき、さらにタグジャンプしたら、m_TagJump[0]を書き換える、という感じでしょうか?
(ただし、タブジャンプバックしてもm_TagJump[1]までしか戻らない)

> それからCommand_TAGJUMPBACKで、tagJump.hwndRefererがサクラエディタの編集ウィンドウか、
> 調べていません。
> もし、参照元ウィンドウを閉じて、同じハンドルがほかのプログラムに割り当てられた場合、
> SendMessageで、そのプログラムが予期せぬ動作をするかもしれません。

下記の修正で問題ないでしょうか?

■変更前
/* タグジャンプ情報の参照 */
if( !CShareData::getInstance()->GetTagJump(&
tagJump) || NULL == tagJump.hwndReferer ){

        SendStatusMessage("タグジャンプバックできません");
        m_pShareData->m_TagJumpNum = 0;
        return;
}

■変更後
/* タグジャンプ情報の参照 */
if( !CShareData::getInstance()->GetTagJump(&
tagJump) || !CShareData::IsEditWnd(tagJump.hwndReferer) ){
        SendStatusMessage("タグジャンプバックできません");
        m_pShareData->m_TagJumpNum = 0;
        return;
}

2004/5/23 (日) 23:13:49 もか  
INCM1.23a
[3585] Re3: タグジャンプ機能追加
>タグジャンプ→タグジャンプバックの使用方法を考えるとスタック方式が一番しっくりくるかなと思いました。
微妙に危惧しているのは、A→Bにタグジャンプ。C→Dにタグジャンプした後、
Bでタブジャンプバックすると、従来はAに飛びましたが、Cに飛ぶようになるので、
ちゃんとアナウンスしないと、「タブジャンプバックが違うウィンドウに移動するけどバグ?」とかいわれそうです。
#私はそういう使い方はしないし、2回タグジャンプバックすればいいので気にならないけど、そういう人もいるかも
>スタック方式だけど、オーバフローしたら、一番下のスタックを書き換える、という動作でよろしいですか?
>(中略...)

そういう動作でいいです。

>> SendMessageで、そのプログラムが予期せぬ動作をするかもしれません。
>下記の修正で問題ないでしょうか?
>(中略...)

見た限りではOKです。

2004/6/19 (土) 23:10:16 げんた  
INCM1.23c
[3640] Re4: タグジャンプ機能追加
すいません.どなたか最終版パッチ作ってくださいませんか?
このままだとずっと先送りしそうなので.

2004/6/21 (月) 13:33:47 novice  
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322;)
[3645] Re5: タグジャンプ機能追加
▼ げんたさん
> すいません.どなたか最終版パッチ作ってくださいませんか?
> このままだとずっと先送りしそうなので.


最新版ソースに対する差分ファイルを作成しました。

変更対象ファイル
ssrc_2004-06-19.tar.bz2

差分ファイル
diff_ssrc_2004-06-19.zip

下記の処理はまだ実装できていません。すいません。

>スタック方式だけど、オーバフローしたら、一番下のスタックを書き換える、という動作でよろしいですか?
>
>m_TagJump[0] = 1番目のタグジャンプ情報
>m_TagJump[1] = 2番目のタグジャンプ情報
>...
>m_TagJump[MAX_TAGJUMPNUM-1] = MAX_TAGJUMPNUM番目のタグジャンプ情報
>
>上記の状態のとき、さらにタグジャンプしたら、m_TagJump[0]を書き換える、という感じでしょうか?
>(ただし、タブジャンプバックしてもm_TagJump[1]までしか戻らない)


2004/6/21 (月) 19:09:07 もか  
INCM1.23a
[3646] Re6: タグジャンプ機能追加
>下記の処理はまだ実装できていません。すいません。
>>一番下のスタックを書き換える

文句つけた手前、noviceさんが未着手ならば、実装します。どうですか?

# diff_ssrc_2004-06-19.zipのファイルのタイムスタンプがなぜか未来なんです。
# UNZIP32.DLL(Noah)だと、+9:00時間して解凍します。
# Windowsの「圧縮フォルダ」だとアーカイブの時間を現地時間扱いにするのか、
# 時差フィールドのようなものがあるのか、午後1:00前後になります。

2004/6/21 (月) 23:49:59 novice  
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
[3648] Re7: タグジャンプ機能追加
▼ もかさん
> >下記の処理はまだ実装できていません。すいません。
> >>一番下のスタックを書き換える

> 文句つけた手前、noviceさんが未着手ならば、実装します。どうですか?


では、お言葉に甘えてお願い致します。

> # diff_ssrc_2004-06-19.zipのファイルのタイムスタンプがなぜか未来なんです。
> # UNZIP32.DLL(Noah)だと、+9:00時間して解凍します。
> # Windowsの「圧縮フォルダ」だとアーカイブの時間を現地時間扱いにするのか、
> # 時差フィールドのようなものがあるのか、午後1:00前後になります。


ちなみに上記ファイルの圧縮は、「+Lhaca」でやりました。
こちらで解凍してみた限りでは、特に問題ないようなのですが...

2004/6/22 (火) 23:19:53 もか  
INCM1.23a
[3650] Re8: タグジャンプ機能追加
>> # diff_ssrc_2004-06-19.zipのファイルのタイムスタンプがなぜか未来なんです。
>ちなみに上記ファイルの圧縮は、「+Lhaca」でやりました。
>こちらで解凍してみた限りでは、特に問題ないようなのですが...

環境変数の「TZ=JST-9」してませんでした。あああ、またやってしまった。
申し訳ありません。m(__)m

実装のほうは、SetTagJump()が失敗することがなくなったため、戻り値をvoidにしようかboolのままにするか考え中...

2004/7/5 (月) 03:10:14 みちばな  
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0) Opera 7.23 [ja]
[3657] Re6: タグジャンプ機能追加
> ssrc_2004-06-19.tar.bz2
> diff_ssrc_2004-06-19.zip


上記を落としてきて試してみたのですが、うまく動かずトレースしてみました。
その結果、

CEditView_Command.cpp 6895行の SendMesssageで m_nCaretPosX,m_nCaretPosYが更新されてしまい。
ジャンプ先の場所がジャンプ元として保存されてしまっているようでしたので、
その前で保存するように変更したらとりあえず機能するようになりました。
(6933〜6950行目を切り取って6883行に移動)

ではでは、ご報告まで。

# なお、ひ○まる乗換え組みのあちしと致しましては、これが実装されて誠に有難い気持ちでいっぱい。
# ありがとうございました。

2004/7/9 (金) 20:55:46 もか  
INCM1.23a
[3661] Re7: タグジャンプ機能追加
みちばなさん、ありがとうございます。
やっとこさテストをしたので、パッチ出します。
tagjump02.zip  です。

みちばなさんの変更も入れてあります。
全然気が付いていなかった...。

2004/7/10 (土) 05:28:28 げんた  
INCM1.23c
[3666] Re8: タグジャンプ機能追加
>tagjump02.zip
ちょっと気になったところ:
メソッド名SetTagjump/GetTagjumpよりPushTagJump/PopTagJumpの方がスタックであることがわかりやすいと思います.
同名のC/C++ヘッダ/ソースを開く機能でタグジャンプバックの登録が取り除かれていますが,これはわざとなのかな?あると使いにくい?

> それからCommand_TAGJUMPBACKで、tagJump.hwndRefererがサクラエディタの編集ウィンドウか、
> 調べていません。

に対する修正 >>3583 が入っていない.

2004/7/11 (日) 03:54:39 もか  
INCM1.23a
[3669] Re9: タグジャンプ機能追加
指摘のとおり、変更・修正しました。
C/C++の行き来は、考慮漏れか、意図的なのか分からないので、とりあえず従来のように登録するようにしました。
あと、CEditDoc::SetRefererが宣言だけ残っていたんで修正。
タグジャンプバックが失敗したときの、m_pShareData->m_TagJumpNum = 0をやめました。
一つ前は無効でも、さらに古いのが残っていたらそれも無効だとは限らないし。
tagjump03.zipです。

INCM/CMT
Cyclamen v3.81
[ut:0.020][st:0.020]