特定の環境で行頭文字が消えるNo.35873
さん 17/07/06 14:24
 
秀丸担当様、皆様、こんにちは。


とある情報漏洩対策ソフトを使っている環境で、その対策ソフトが
インストールしてあるフォルダ内のINIファイルを
直接、秀丸で開くと行頭の1バイトから2バイトが消えて表示されます。
(行頭のセクション名の”[” または、”「”+1文字)

当該フォルダは、上記ソフトがファイルを書換えできないようにする等
の監視・制御を行っており、特殊なフォルダなのですが、
同じファイルをメモ帳で開くと問題なく表示されます。

また、同ファイルをデスクトップにコピーして開くと、
秀丸でもメモ帖でも行頭の文字が消えることなく表示されます。

秀丸自身の問題ではなく情報漏洩対策ソフトの影響であることは
間違いないのですが、上記問題を秀丸で対応することは可能でしょうか?

よろしくお願いいたします。

[ ]
RE:35873 特定の環境で行頭文字が消えるNo.35874
秀丸担当 さん 17/07/06 15:32
 

情報漏洩対策ソフトの動作としてそういうことがあるのかどうかはわからないで
すが、情報漏洩対策ソフトが敢えてそのようにしているとしたら、アプリ側で回
避策があったら情報漏洩しているということになるので、逆に都合が悪いのでは
ないかという気がします。
情報漏洩対策ソフトの判断として、特定のアプリを安全とするような設定がある
としたら、秀丸エディタを安全なアプリとして設定するといいのかもしれません。

ファイルを読み込む段階のことではなく、表示上のことだとしたら、描画方法を
変えてみると変化がある可能性もあると思います。
[その他]→[動作環境]で左下の「上級者向け設定」をONにして、
[その他]→[動作環境]→[表示/操作]→[文字の描画]の「3Dグラフィックスアク
セラレータによる文字の描画 」をONにすると描画方法が変わって、変化がある
かもしれません。

[ ]
RE:35874 特定の環境で行頭文字が消えるNo.35876
さん 17/07/06 16:40
 
返信ありがとうござます。

情報漏洩対策ソフトは、対象のフォルダにあるファイルを
変更できないように制御しており、
また、アプリの制御はおこなっておりません。

そのため、メモ帳、サクラエディタ、ワードパッドでは、
問題なく表示されますので、
秀丸側の表示または読込の問題のような気がします。

また、お教え頂いた設定を試しましたが、事象は変わらずでした。

他に対処法があればお教え下さいますでしょうか?

よろしくお願いいたします。

[ ]
RE:35876 特定の環境で行頭文字が消えるNo.35877
秀丸担当 さん 17/07/06 17:06
 

インストールされたフォルダということで関係しそうなことがありました。
C:\Program Files配下(またはC:\Program Files (x86)配下)のファイルで、秀
丸エディタが32bit版の場合、バーチャルストアというWindowsの仕組みで、別の
領域で開いて、あたかも書き換えできるかのような振る舞いになります。
もし以前にそうやって開いて書き換えたか、別のアプリでもバーチャルストアで
書き換えられた場合、秀丸エディタではファイル内容が別になって見えてしまい
ます。
そうだとしたら、秀丸エディタを管理者として起動すると、本来あるファイルと
同じものが見えます。

または、[その他]→[動作環境]→[32bit版]で「VirtualStoreを無効にする」を
ONにしてから再起動すると、常にメモ帳等と同じように見えます。

もしバーチャルストアのファイルがある場合は、仮想的に見えていたファイルは
以下のような場所にあります。
C:\Users\(ユーザー名)\AppData\Local\VirtualStore\Program Files\(アプリ
名)

他に考えられそうなこととしては、該当部分を選択してコピーして他のアプリで
貼り付けできるかどうかで、ファイルの読み込み段階のことか、表示段階のこと
か、原因を探れると思います。
表示段階で他にありそうなこととしては、[その他]→[ファイルタイプ別の設定]
→[強調表示]で特定の文字が背景と同じ色となるように設定されていたら、そう
なるように見える可能性もあると思います。

[ ]
RE:35876 特定の環境で行頭文字が消えるNo.35878
秀まるお2 さん 17/07/06 19:03
 
 横からすみませんが、他に思いつく案を考えてみたので追加でコメントさせて
いただきます。

■エンコードの種類を指定してみる

 もしかして秀丸エディタ側のエンコード種別(文字コード)の自動判定が関係
してるかもしれないので、「ファイル・開く」のダイアログボックスの中にある
「エンコードの種類」を、例えば「Shift-JIS」とか「Unicode(UTF-8)」とか指
定して読み込んでみる。

■「ファイルの読み込み」で試してみる

 「ファイル」メニューに「カーソル位置への読み込み」コマンドがあるので、
それで読み込んで見ると違うかどうか試してみる。

■バイナリモードも試してみる

 「ファイル・開く」のダイアログに「バイナリモードで開く」があるのでそれ
で試してみる。そうすると、ファイルの1バイト目、2バイト目の文字コードと
かはっきり分かると思います。

■マクロで読み込みでみる

 秀丸エディタのマクロからWindows Scripting HostのFileSystemObjectの仕組
みを使ってファイルを読み込んで見てどうか試してるとか・・・。

 マクロとしては、例えば

    #obj = createobject("Scripting.FileSystemObject");
    #file = callmethod_returnobj( #obj, "OpenTextFile", "c:\\temp.txt");
    $text = callmethod_returnstr( #file, "ReadLine");
    insert $text;
    callmethod #file, "Close";
    releaseobject #file;
    releaseobject #obj;

 みたいなマクロで1行目だけ読み込むことが出来ます。それでも先頭の1
バイト目が欠けるなら、やはり秀丸エディタだけの問題じゃないのか、それとも
秀丸エディタのプロセスに対してのろい(?)がかけられてるのか???

 もし上記やり方でもダメでしたら、例えばそれと同じJavaScriptを作成して、
それをWindows Scripting Host上で実行してみるとか。そうすると、秀丸
エディタのプロセスに対してののろいなのかどうかはっきりすると思います。

 VBScriptの例:
 http://www.whitire.com/vbs/tips0072.html

■秀丸メールで試してみる

 秀丸メールもインストールして、「新規メール」としてから「ファイル -
カーソル位置へ読み込み」としてどうか試してみるとか。

 処理自体は同じことをやってますが、もしかして秀丸エディタのプロセスに対
してのみのろい(?)がかけられてるなら、秀丸メールでは正常動作するかもし
れません。

[ ]
RE:35878 特定の環境で行頭文字が消えるNo.35881
さん 17/07/07 13:02
 
秀まるお2 、秀丸担当様

返信ありがとうございます。

結論から申しますと、エンコード種別の自動判定が原因のようで、
エンコードの種類「Shift-JIS」に指定して開くと問題なく表示されます。

そこで自動判定の設定をいろいろと変更してみたところ、
「UnicodeのBOMを認識」のチェックをOFFにして、自動判定モードで
開くと正常に表示されることが分かりました。

他にお教え頂いた対応については以下の通りになります。
 ・バーチャルストア:×
 ・カーソル位置への読み込み:○
 ・マクロで読み込み:○
 ・バイナリモード:○(文字コードは同じ)
 ・秀丸メール:○


今回の事象は、非常にレアケースだと思いますが、
自動判定処理の改善を行うことはできるものなのでしょうか?

[ ]
RE:35881 特定の環境で行頭文字が消えるNo.35882
秀丸担当 さん 17/07/07 14:13
 

とりあえず原因がわかったとのことでよかったです。

自動判定については、よくわからない点があります。
ファイルの内容によるのであれば、デスクトップにコピーしたファイルでも起き
るはずなので、ファイルの内容ではない何か別の原因があるという気がします。

例えば[その他]→[動作環境]→[ファイル]→[ヒストリ]の「ファイルヒストリか
ら開くときは前回のエンコードの種類で開く」がONだとして、前回に違うエン
コードの種類で開いたものが再利用されていたとか。
あるいは、ファイルにUTF-8のBOMがあって、UTF-8として読み込んだときと、
Shift-JISで読み込んだときは別のフォントになるので、フォントの違いによる
表示上の問題とか。

もし差支えなければ、問題となっているファイルと、設定内容をファイルに保存
したものを送っていただけると、本当の原因が絞り込める可能性があると思いま
す。
設定内容は[その他]→[設定内容の保存/復元]でファイルに保存することができ
ます。
送っていただける場合、メールで"taki@maruo.co.jp"まで送っていただけると助
かります。

[ ]
RE:35882 特定の環境で行頭文字が消えるNo.35883
さん 17/07/07 15:06
 
参考になるかわかりませんが、
先ほどメール致しました。

よろしくお願いいたします。


[ ]
RE:35883 特定の環境で行頭文字が消えるNo.35884
秀丸担当 さん 17/07/07 16:35
 

ファイルと設定情報受け取りました。
ありがとうございます。
調べてみたところでは、ファイルは何の問題もなく、BOMもないASCII文字のファ
イルで、内容解析で問題になりそうな要素は無さそうでした。
設定も、記憶されたエンコードの種類を再利用していたりといったことは無さそ
うでした。
フォントも関係なさそうです。
「カーソル位置への読み込み」では問題ないとのことですが、これを使っても
BOMの認識はするので、それだけが条件というわけではないようです。
「カーソル位置への読み込み」で違いがあるとしたら、通常の読み込みでは別ス
レッドで読み込みながら処理するのに対して、「カーソル位置への読み込み」は
それが無いということがあります。

行頭文字が消えるというのは、各行の行頭が空白に置き換わって見えたりという
ことではなく、ファイルの先頭部分だけが、削除されたようになっているという
ことでしょうか。

幾つかの条件が重なったりして、情報漏洩対策ソフトによる何らかの問題が表面
化しているという可能性がありそうです。
秀丸エディタとしてBOMの認識以外に対策できそうなこととして、「カーソル位
置への読み込み」と同じように別スレッドを使わないことが考えられますが、現
状はそういったオプションは無いです。
トラブル対策の追加か、調査用にデバッグモードでそういう動作にするか、何ら
かの方法を考えたいと思います。

[ ]
RE:35884 特定の環境で行頭文字が消えるNo.35886
秀丸担当 さん 17/07/08 11:19
 

何度もすみません。

トラブル対策と調査用のデバッグモードを追加したβ版を作成しました。
もしよろしければ試してみてほしいです。
以下の場所からダウンロードできます。
32bit版:
http://hide.maruo.co.jp/software/bin3/hm873b13_signed.exe
64bit版:
http://hide.maruo.co.jp/software/bin3/hm873b13_x64_signed.exe

[その他]→[動作環境]→[トラブル対策]→[その他トラブル対策]に「ファイルの
読み込みでマルチスレッドを使わない」が追加されています。これをONにすると
通常の読み込みも、「カーソル位置への読み込み」と同じになります。

----

[その他]→[動作環境]→[トラブル対策]の「デバッグモード」をONにすると、フ
ァイル読み込み時に今回の問題に関連するログを記録するようになります。問題
が起きる状態で、デバッグモードをONにして、問題のファイルを読み込み、記録
された情報を送っていただけると非常に助かります。
もしONにされた場合、通常はOFFの状態に戻してください。ログは「ログを開
く...」ボタンで開くことができまう。

----

あと、grep関係でもマルチスレッドを使った類似の処理があり、そこでも問題が
起きるかどうかがわかると助かります。

[検索]→[grepの実行...]で、その先にある「エンコードの種類」を「自動判
定」とした上で、問題のファイルの1行目がヒットするような条件で検索すると
どうでしょうか。

例えば1行目が

abcdefg

となっているとしたら、「ab」は欠ける可能性があるのでそれは別にして、
「cdefg」とかで検索すると、必ずヒットすると思います。その結果が、例えば

XXXX.txt(1): abcdefg

と正常に表示されるのか、それとも

XXXX.txt(1): cdefg

のように1バイトなり2バイトなり欠けるのか知りたいです。

実はgrep検索の時の「エンコードの自動判定」の処理は、普通のファイル読み込
みとは別の処理になってます。これがうまく動作するなら、それが解決のヒント
になりそうな気がします。

[ ]
RE:35886 特定の環境で行頭文字が消えるNo.35889
さん 17/07/10 11:04
 
秀丸担当様

β版の実行結果及び、ログファイル等を先ほどメール致しました。
調査の程よろしくお願い致します。

[ ]
RE:35889 特定の環境で行頭文字が消えるNo.35890
秀丸担当 さん 17/07/10 12:35
 

ありがとうございます。
詳しい情報が得られて大変助かりました。
別スレッドとかは関係ないようで、デバッグモードによるエラーの情報で起きて
いることがわかりました。
また近いうちにβ版を作成するかもしれませんが、得られた情報も元に対策して
修正したいと思います。

[ ]
RE:35890 特定の環境で行頭文字が消えるNo.35896
秀丸担当 さん 17/07/11 17:39
 

送っていただいた情報を元に対策して修正し、V8.73β14を作成しました。
もしよろしければ試してみていただけると助かります。
以下の場所からダウンロードできます。
32bit版:
http://hide.maruo.co.jp/software/bin3/hm873b14_signed.exe
64bit版:
http://hide.maruo.co.jp/software/bin3/hm873b14_x64_signed.exe

[ ]
RE:35896 特定の環境で行頭文字が消えるNo.35900
さん 17/07/12 09:42
 
秀丸担当様

ありがとうございます。
β14で正常に表示されることを確認しました。

この修正のおかげでへんな間違いがなくなるので
大変感謝しております。


[ ]