テキストファイルとバイナリファイルの判別
こちらにあるExcelファイルが複数格納されているフォルダやPDFファイルが複数ファイルが格納されているで試してみましたが、再現できませんでした。
Wrap_DiffUtils.cpp 221行目に書いてあるように、bin_status(bin_flag) は、-1ならば差異があるバイナリファイル、+1ならば同じバイナリファイル、0ならばバイナリではないと考えています。
もし、こちらで再現できるファイルがありましたらご連絡いただけると助かります。
Reply To sdottaka
PDF と Excel で、起きている現象が異なるようです。
Excel での挙動は下記のような感じでした。
※PDF のほうは再現条件をもう少し検証してみます。
もし、こちらで再現できるファイルがありましたらご連絡いただけると助かります。
自作のファイルだと再現しませんでした。
職場にデバッグできる環境がないのがつらいです…
v2.16.12.1
操作の前半と後半で、「自動/手動」「テキスト/バイナリ」の組み合わせが異なっています。
Reply To (Anonymous)
Reply To sdottaka
PDFを展開可能なプラグインは入っていない状態でテストしてみました。
mlang.dll の仕様に依存する現象のようなので、こちらは一旦取り下げさせて下さい。
(匿名) への返信
Reply To sdottaka PDF と Excel で、起きている現象が異なるようです。 Excel での挙動は下記のような感じでした。
ご連絡ありがとうございます。 これは、プラグイン自動展開を選択している場合、プラグインがExcelファイルをテキスト化するため、「テキスト ファイルは異なります」という表示になります。 ですので、バイナリファイルかどうかを検知したい場合は、プラグインの自動展開を無効にしていただければと思います。
PDFの比較でmlang.dll を使用すると一部テキストファイルとみなされることを確認しました。 将来的には、mlang.dll の代わりに ICU ライブラリの文字コードセット検出や Mozilla's Universal Charset Detector 等使用してみたいと思っているのですがなかなかやる気がわいてきていません。
返信ありがとうございます。
自動展開→比較対象ファイルがテキストに展開される
手動展開→バイナリのまま
のはずですが、投稿のとおり、比較結果画面を開いたまま続行すると、オプションの選択と表示結果の組み合わせが逆転します。
失礼いたしました。こちらでの事象は少し違いますが、プラグイン自動展開等の設定変更が反映されていないように見えます。 調べてみます。
(匿名) への返信
これは、プラグイン自動展開を選択している場合、プラグインがExcelファイルをテキスト化するため、
「テキスト ファイルは異なります」という表示になります。
返信ありがとうございます。
自動展開→比較対象ファイルがテキストに展開される
手動展開→バイナリのまま
のはずですが、投稿のとおり、比較結果画面を開いたまま続行すると、オプションの選択と表示結果の組み合わせが逆転します。
最新のコミットだと「手動比較前処理」と「自動比較前処理」を切り替えるとクラッシュことがあるようです。 調べてみます。
「手動比較前処理」と「自動比較前処理」を切り替えというよりも、単にフォルダの再比較を何回もすると落ちることがあるということでした。 以下のコミットで修正しています。
https://github.com/WinMerge/winmerge/commit/47a49d1e30c63a9ba94e2d8cb7d6c42b233d5cd1
(1) メニューから「プラグイン」-「手動展開」を実行しておく
(2) PDF が複数入っているフォルダどうしを比較する
(3) 比較結果の画面で、「テキスト ファイルは同一です」と「バイナリ ファイルは同一です」が混在して表示される
Excel ファイルの入ったフォルダどうしを比較しても、同じ現象になります。
ソース上でバイナリファイルかどうかの判別結果がスルーされているようです。
【/Src/diffutils/src/analyze.c】
【/Src/FolderCmp.cpp】