File Drag and Drop ignores "TransBin" flag
Param->DropType, DlgData->Param->DoSameProcessNextDrop ともに、INIファイルからの読み込み・書き込みとはつながっていないようで、プログラムが生きている間だけ存在する設定値になっている。
cf. ttssh2-devel 3412 からのスレッド
Reply To nmaya
Param->DropType, DlgData->Param->DoSameProcessNextDrop ともに、INIファイルからの読み込み・書き込みとはつながっていないようで、プログラムが生きている間だけ存在する設定値になっている。 cf. ttssh2-devel 3412 からのスレッド
but then why does TransBin in the .ini file update when you manually change the setting in the running program and then do "Save setup..."?
plus the flag is described as "Binary flag for Send File (on/off)" in the .ini file, so what else could it be used for except that one binary option when sending a file?
さらに動作を調べました。
case DROP_TYPE_SEND_FILE: case DROP_TYPE_SEND_FILE_BINARY: if (SendVar==NULL && NewFileVar(&SendVar)) { HelpId = HlpFileSend; strncpy_s(SendVar->FullName, sizeof(SendVar->FullName), FileName, _TRUNCATE); SendVar->DirLen = 0; ts.TransBin = DropType == DROP_TYPE_SEND_FILE ? 0 : 1; FileSendStart();
構造体のメンバが更新されるので、保存すると TERATERM.INI の TransBin が変更される。(W)
File - Send file では Read/Write が対称になっているが、File Drag and Drop ダイアログでは Read/Write が非対称になっています。
現在リリースされているバージョンでは、この動作を回避することはできません。また、TERATERM.INIにFile Drag and Drop専用の設定項目はありません。
https://ttssh2.osdn.jp/manual/4/ja/usage/mouse.html
ダイアログの設定内容をメモリに記憶し、次にドロップされたときに利用(ダイアログが表示される場合には ダイアログの設定に反映、そうでなければユーザへ確認せずに同じ処理を)します。
ダイアログの設定内容のうち、次に利用される設定は、DropType(SCP/Send file/Send file(binary)/Pasete Filename)"と"DropTypePaste(Separator is Space/Separator is NewLIne)"のみ。
"メモリに記憶し"と書いてあるので区別はつくと思うが、TERATERM.INIに対応する設定項目は存在しない。
の2点をヘルプに書き加えてもよいと思う。
初回(DROP_TYPE_CANCELのとき?)に ts.TransBin を IDC_BINARY_CHECK に反映できれば、TERATERM.INI からの読み込みが反映される。
しかし Binary は単独のフラグではなく、DropType が別になっているので単純ではなさそう。
表示時:DropType(CANCEL/SCP/Send file/Send file(binary)/Pasete Filename)とts.TransBin(true/false)の組み合わせでダイアログ表示時の状態を決めなければならない。
記憶:BinaryをチェックしてPasete Filenameした場合は、"Do same process, next drop" しても覚えてくれない。
I found problem. Please See next file (1.5M animated gif).
https://osdn.net/projects/ttssh2/storage/tmp/20220427_zmatsuo/44442.gif
Fixed problem r9893 .
"ファイルの送信" 時に ts.TransBin を "バイナリ" に反映するようにしました。
r9893 の修正では、SSH接続時には("SCP"が選択され、"ファイルの送信" が選択されないため) 反映されません。 もう少し修正します。
Fixed the behavior of the binary checkbox in the drop dialog (r9894).
Please check snapshot.
https://osdn.net/projects/ttssh2/storage/snapshot/snapshot-teraterm4-r9894-20220427-zmatsuo.zip
revise document (r9895).
And I deleted gif file (tmp/20220427_zmatsuo/44442.gif).
it seems to be working perfectly fine with that snapshot, thank you!
r9895 での動作を見てみました。Do same process, next drop で記憶されるのは
になっていませんか?
SCPのdest(送信先)も記憶されるので、 説明は「すべて記憶されます」でいいのではないだろうか? と考えました。
でも、SCPの送信先は常に記憶されて、TERATERM.INI に保存することもできるんですね。
とすると、現在の動作に対称性がなくて気持ち悪い感じもしますが、 不具合修正できていて、使い勝手的には問題ない印象です。 trunkにマージして、後の改良はTera Term5で行いましょうか。
説明ですが、SCPのところを
SCP でファイルを送信します。次のドロップ時、同じ処理を行う、のところを
設定ファイル(TERATERM.INI)に対応する設定項目は存在せず、保存はされません。こんなふうでどうでしょうか?
INI と連動するのは
となります。
仕様がおかしく感じられることと、仕様(実装)とドキュメントが異なることは別問題と考えます。ドキュメントをどう書いたらいいか少し考えてみます。
ありがとうございます。
マージよろしくお願いします。
r10093 でマージをコミットしました。
I pretty much exclusively send binary files through TeraTerm, so having it remember the "binary" setting for sending a file is very useful, but sadly it doesn't persist between restarts of the program.
when i check the "Binary" and "Do same Process next drop" checkbox in the "File Drag and Drop" dialog window and then click "Save setup..." the TransBin flag in the .ini file gets set to "on" and it works perfectly fine.
but when i then close and reopen the program it defaults both the "Binary" and "Do same Process next drop" checkbox back to "off". when i then click "Save setup..." (without touching any option after opening the program) it will update the "TransBin" flag back to "off".
so it seems like it's writting the flag to the .ini file correctly, but for some reason it's not reading the flag when you open the program (or when you click "Restore setup...").
and that's why i think it's a bug, because what's the point of writing to a flag if it never gets read?