[ 新規に投稿する ]

自動起動マクロのパスの認識不具合No.10377
fzok4234 さん 21/05/02 06:04 [ コメントを投稿する ]
  お世話になっております。

さて、自動起動マクロのパスについていくつか問題が見つかりました

1. パス中の環境変数を正しく認識しません。
例えば、ユーザーアカウント名がtestuserの時、マクロディレクトリのa.macというファイルを
指定するために
%APPDATA%\Hidemaruo\Hidemaru\Macro\a.mac
を指定すると、マクロ実行イベント時に
---------------------------
ファイルのパス(ファイルを含んでいるはずのフォルダ自体)が存在しません。
ファイル名 = C:\Users\testuser\AppData\Roaming\Hidemaruo\Hidemaru\Macro\%APPDATA%\Hidemaruo\Hidemaru\Macro\a.mac
---------------------------
というエラーが表示されます。
管理者が全ユーザーアカウントへ同じ自動起動マクロを設定するときに、各ユーザーごとの
アプリ設定ディレクトリを取得しないといけないため、処理が煩雑になります。

2. パス文字列に一部のUnicode文字が含まれていると正しく認識しません。
例えば、マクロファイル
C:\Users\testuser\Desktop\HidemaruBug\👩🏻‍👩🏿‍👧🏼‍👧🏾○○家\a.mac
を指定すると、マクロ実行イベント時に
---------------------------
ファイルへのアクセスでエラーが起きました。
エラーコード = 123
ファイル名 = C:\Users\testuser\Desktop\HidemaruBug\👩🏻‍👩🏿‍👧�・‍👧🏾○○家\a.mac
エラーコード 123 の意味:ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています。
---------------------------
というエラーが表示されます。
さすがにわざわざディレクトリ名に結合絵文字を使うことは希少なケースと思われますが、
外国人のユーザーアカウント名にゼロ幅結合子が含まれる可能性はないとは言い切れないため
大きな問題になりえます。

今のところ、発見できたのは自動起動マクロパスについてですが、これ以外にも秀丸エディタ上で
扱うファイルパスで同様の不具合があるかもしれません。

バージョンはv8.98β6 Float x64についてです。


[ ]
RE:10377 自動起動マクロのパスの認識不具合No.10378
fzok4234 さん 21/05/02 21:31 [ コメントを投稿する ]
  補足です

不具合1.の場合、単にマクロディレクトリのa.macファイルを指定するだけなら、
ディレクトリパス部分の
%APPDATA%\Hidemaruo\Hidemaru\Macro\
は不要です。しかし、例えば全ユーザー共通のマクロディレクトリを管理者が
%ProgramData%Hidemaruo\Hidemaru\Macro
などと定め、この中のマクロファイルを自動起動に指定させるようなケースではやはり問題になるでしょう。


[ ]
RE:10378 自動起動マクロのパスの認識不具合No.10380
秀丸担当 さん 21/05/06 09:33 [ コメントを投稿する ]
 
自動起動マクロのパスにUnicode独自文字を書いた場合は確かにうまくいっていませんでした。
できるように修正します。

環境変数の展開については、ファイル名には%の文字も含むこともできるので、厳密には現状の仕様ということになります。
ただマクロファイル用のフォルダの設定など、昔は環境変数の展開に対応していなかったものが、%で挟んだ記述をする人はいないだろうという都合のいい考えのもと、仕様変更して対応しているところもあります。
展開できるのは、他には自動保存のパス、バックアップのパス、アイコンモジュールのパスがあります。
マクロ登録も変更してしまってもいいかもしれません。問題がある場合は従来の設定を捨てて新しい設定に移行するとかになったりします。慎重に考えます。
[ ]
RE:10380 自動起動マクロのパスの認識不具合No.10382
fzok4234 さん 21/05/06 20:43 [ コメントを投稿する ]
  修正のご検討ありがとうございます。
[ ]
RE:10382 自動起動マクロのパスの認識不具合No.10415
fzok4234 さん 21/05/26 04:28 [ コメントを投稿する ]
  v8.98β9 Float x64で動作確認を行いましたが、修正がうまく行われていないようです。

自動起動マクロの「編集後タイマー」のパスを、UTF-16 LE BOM無しでエンコードした
バイトコードで
25,00,44,00,65,00,73,00,6B,00,74,00,6F,00,70,00,
25,00,5C,00,48,00,69,00,64,00,65,00,6D,00,61,00,
72,00,75,00,42,00,75,00,67,00,5C,00,3D,D8,69,DC,
3C,D8,FB,DF,0D,20,3D,D8,69,DC,3C,D8,FF,DF,0D,20,
3D,D8,67,DC,3C,D8,FC,DF,0D,20,3D,D8,67,DC,3C,D8,
FE,DF,CB,25,CB,25,B6,5B,5C,00,61,00,2E,00,6D,00,
61,00,63,00,
となる文字列に設定すると、相変わらず
---------------------------
エラー
---------------------------
ファイルへのアクセスでエラーが起きました。
エラーコード = 123
ファイル名 = (このパス文字列自体が一部文字化けしている)
エラーコード 123 の意味:ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています。


---------------------------
OK   
---------------------------
となってしまいます。一応、予め環境変数%Desktop%にデスクトップディレクトリのパス
C:\Users\testuser\Desktop
が設定されれいます。

それから、本コミュニテックスフォーラム自体についてですが、一部のUnicode文字を投稿すると
👩
などという風に文字化けを起こしてしまいます。このため、Unicode絡みの不具合を正確に
伝えることに著しく支障を来たしています。最初の投稿
https://www.maruo.co.jp/turukame/3/x10377_.html#10377
もその内容が正確に伝わっていなかったと思われます。故に、今回は上記のようにエンコードした
バイナリデータの16進数値の形で文字列値を表現せざるを得ませんでした。このように、Unicode文字の
投稿に大変手間がかかってしまうため、本フォーラムの文字化け対策の方は「なるべく早く」行って
頂くよう、心からお願い申し上げます。


[ ]
RE:10415 自動起動マクロのパスの認識不具合No.10420
秀丸担当 さん 21/05/26 10:50 [ コメントを投稿する ]
 
環境変数の展開と、Unicode文字である特定の文字があるとき、確かにおかしかったです。
サンプルの文字列で再現できました。
自動起動マクロだけでなく、他の環境変数の展開のところも同じだと思うので、全部修正させていただきます。
[ ]
RE:10415 自動起動マクロのパスの認識不具合No.10423
秀まるお さん 21/05/26 11:03 [ コメントを投稿する ]
   ここの会議室というか、コミュニテックスの会議室のシステムですが、すみませんが今からユニコード対応させるのは極めて困難でして、すみませんがユニコード文字が「👩」のように化けてしまうのはがまんして使っていただくってことでお願いするしか無いです。

 一応、「&#...」みたいに出てくることによってどういう文字を意図されてるのかはおおよそ分かるし、必要に応じてうちの方から正確な文字を問い合わせさせていただくことも出来るかと思います。
[ ]
RE:10423 自動起動マクロのパスの認識不具合No.10424
fzok4234 さん 21/05/26 11:06 [ コメントを投稿する ]
  > 一応、「&#...」みたいに出てくることによってどういう文字を意図されてるのかは
> おおよそ分かるし、必要に応じてうちの方から正確な文字を問い合わせさせて
> いただくことも出来るかと思います。

了解しました。


[ ]
RE:10415 自動起動マクロのパスの認識不具合No.10431
でるもんたいいじま さん 21/05/26 15:15 [ コメントを投稿する ]
  でるもんた・いいじまです。

もうfzok4234さんもご了解済みということで蛇足ですが…

> 本コミュニテックスフォーラム自体についてですが、
> 一部のUnicode文字を投稿すると
> 👩
> などという風に文字化けを起こしてしまいます。

一部の文字、というか、正確に言えば、「ブラウザがShift_JISの範囲とは認識しない文字」ですね。これは文字化けというか、内部データとしてShift_JISを使っている以上は仕方がないです。

☆ ☆ ☆

> このため、Unicode絡みの不具合を正確に
> 伝えることに著しく支障を来たしています。

そうですかね?
個人的にはむしろ、制御コードや合成文字なども含めてコードが正確にわかるので、Unicodeがらみの複雑なデバッグには都合がいいのですが。

唯一の難点は、Windowsのcharmap.exeがいまだにBMPにしか対応していないことですかね。
いっそのこと、Windowsと言わずMacでもスマホでも、モダンブラウザと適宜の
フォントさえあればどこでも動くようなものを誰かが作ってくれたものがあれば
嬉しいのですが、皆さんご存知ありませんかね?

とりあえず、このサイト↓
http://orange-factory.com/dnf/utf-8.html
の存在は知っているのですが、文字の名前で検索できないのと、Unicode⇔レガシーコードの相互換算ができないのとで、ちょっと不便を感じているところです。「とりあえず U+2FFFF まで追加対応してくれ」と凸してみようかな…

☆ ☆ ☆

この先はほぼ与太話。

ちなみに2chではこのへんへの対応は早くて、板ごとの設定ファイルでフラグを1つ立てておけば書き手のブラウザが&#nnnnn;の形で送り込んだデータ(ログファイルにはそのまま 0x26 0x23 0x3* 0x3* ... 0x3B というバイト列が保存される)をあえてそのまま読み手に返す(のでそこで復元される)という対応をしていました。

#2014年に勃発した「お家騒動」以降の状況は把握していません。

コミュニテックスについても、もしかしたら今後投稿されてくる内容については、何とかすれば同様の対応ができるかもしれません。ただ、既に化けた状態で公開されてしまっている内容についてはそのまま放置しかありえない、これはfzok4234さんもご了承ください。

何度も繰り返しますが、データの内部構造を変更することがプログラミングにとってどれだけ重い負荷なのか、これをご理解ください。

☆ ☆ ☆

それと他のサイトでも、「〜」をきちんと投稿できている人と化ける人との両方がいるので何とかしてくれ、という苦情が頻繁に上がっています。ここもShift_JISのサイトで、マンパワーが足りないという点でも状況は似ています。

ちなみにこの場合のad hocな解決策としては、普通に打っても化ける環境の人は「化けていない'〜'」を他の人の投稿からコピペして辞書登録して、そのあとは一貫してそれを使えば大丈夫、というアドバイスを何度か私が書き込んでいます。

P.S.
というわけでいくつか気になった点があるので大変恐縮ですが、今この投稿が終わったらこの場をお借りして、2つほど実験をさせてください。
[ ]
RE:10431 実験 Re: 自動起動マクロのパスの認識不具No.10432
でるもんたいいじま さん 21/05/26 15:24 [ コメントを投稿する ]
  でるもんた・いいじまです。
先ほどはWindowsからメールで投稿しましたが、今回はiPhoneからWeb掲示板のほうに投稿しています。

ご承知のように、日本語のUnicode対応には「波ダッシュ問題」というものがあるわけですが、さてShift JISの投稿環境でiPhoneからそれらしき文字を入力したらどうなるか。

iPhoneのIMEで、読みとして半角のハイフン「-」を入れると変換候補の中にそれらしき文字は「〜」が1つだけ出てきます。
既存のASCII文字の全角形であることを示す「全」の表示はありません。

…さてこれはどちらとして認識されるか。
[ ]
RE:10432 実験 Re:自動起動マクロのパスの認識不具No.10433
でるもんたいいじま さん 21/05/26 15:29 [ コメントを投稿する ]
  でるもんた・いいじまです。

> iPhoneのIMEで、読みとして半角のハイフン「-」を入れると変換候補の中に
> それらしき文字は「〜」が1つだけ出てきます。
> 既存のASCII文字の全角形であることを示す「全」の表示はありません。

> …さてこれはどちらとして認識されるか。

Webでもメールでも 〜 とは化けていません。
Shift_JISの0x8160として正しく処理されているようです。

この話をここで長々と続けるわけにもいきませんから、
あとは自前の環境で実験してみます。
[ ]
RE:10420 自動起動マクロのパスの認識不具合No.10470
fzok4234 さん 21/05/31 14:53 [ コメントを投稿する ]
  v8.98β10 Float x64にて動作確認ができました。

自動起動マクロの「編集後タイマー」のパスを、UTF-16 LE BOM無しでエンコードした
バイトコードで
25,00,44,00,65,00,73,00,6B,00,74,00,6F,00,70,00,
25,00,5C,00,48,00,69,00,64,00,65,00,6D,00,61,00,
72,00,75,00,42,00,75,00,67,00,5C,00,3D,D8,69,DC,
3C,D8,FB,DF,0D,20,3D,D8,69,DC,3C,D8,FF,DF,0D,20,
3D,D8,67,DC,3C,D8,FC,DF,0D,20,3D,D8,67,DC,3C,D8,
FE,DF,CB,25,CB,25,B6,5B,5C,00,61,00,2E,00,6D,00,
61,00,63,00,
となる文字列に設定すると、正しく指定のマクロが本文本文入力のたびに実行されて
いることを確認しました。

修正ありがとうございます。

[ ]

[ 新規に投稿する ]