sakura
sakura copied to clipboard
シングルクォートで囲まれたメールアドレスの選択
問題内容
シングルクォートで囲まれたメールアドレスをクリックすると先頭のシングルクォートまで選択されしまう。末尾のシングルクォートは選択されない。本来はメールアドレスの部分だけ選択されるべき。
再現手順
シングルクォートで囲まれたメールアドレスが表示されている状態でメールアドレスの部分をクリックするとメールアドレスと共に先頭のシングルクォートまで選択されてしまう。
再現頻度
100%
問題のカテゴリ
- プログラムの動作上の問題
- 正式リリース版
環境情報
- OS バージョン Windows10 Pro 64bit
- サクラエディタバージョン v2.4.0.2686 32bit (tag v2.4.0)
スクリーンショット
この事象は分からんです。
シングルクオート(=0x27)
がメールアドレスの account part に使える文字になっていることが原因のような気がします。
対策としては、メールアドレスの終端の次の文字がメールアドレスの先頭文字と一致する場合、先頭文字をメールアドレスに含めない、というようなコードを書くことになりそうです。
この周辺は検出ロジックが超低レベルであること、レイアウト・ロジック単位の取り違え問題が関連することなどから、修正とレビューの難易度が非常に高い気がします。
間違ってたらすまん!でどんどん進めちゃうのも一つの作戦かもしんないです・・・。
いつからか正確には分かりませんが ver.2.2.01 では正しく動作していました。
#792 の影響ですかね。
検証しようと思って画像よく見たら先頭のシングルクォートに下線が付いてますね。
過去版 v2.3.2 でも試しましたが同じ現象でした。
つまり、GitHub移行後に壊したわけではない 。。。(  ̄Д ̄)ヨッシャ!!
どうも2016年頃に「記号類が含まれるメールアドレス」を検出できるようにしたらしくって、その時の変更の影響っぽい気がします。責任逃れしてもしゃあないんですけど(笑)。
たまたま、いまGWですし、今年のGWは全世界的に Let's enjoy stay home!
ですし、ボチボチ原因調査して対策打つのに絶好なタイミングだったりするのでちょっと対応してみたいと思います・・・。
WikipediaやRFCなどを見ても、シングルクォート自体は、ローカルパート(ユーザー名)のところに直書きしていい文字として指定されているので、これはちょっと複雑な問題だと思います。 RFC原理主義、定義を尊重するとするなら、当然セパレータではなくちゃんと認識されるべきです。 日和見主義というか現実主義をもって、シングルクォートはセパレータとみなすように変更するというなら、それでもいいかと。 そういえば、ワークアラウンドとして、正規表現でURLを指定するとメールアドレスもカスタマイズ対象だみたいな、コメントをしたような記憶があります。
下のリストをこのissueeの表示と同じような感じにしたいだけなら、ローカルパートの許容文字リストwcschr?からシングルクォートを外せばいいんじゃないでしょうか。 秀丸もシングルクォートはローカルパートとは認識しないようです。 もしシングルクォートを人間みたいに処理したいなら、例えば、下記のリストのうち、どれをどう処理すべきか、色々と考える必要があるんじゃないでしょうか。 [email protected] Lets'[email protected] Lets'[email protected]'宛先' "Lets'go"@example.com "Lets'[email protected]" 'Lets'[email protected]'
#792 の影響ですかね。
ぬふっ!ちょっと調べて思いついたことが #792 に全部書かれてた! あんまし成長しとらんなぁ...orz
報告画像をよく見ると先頭のシングルクォートがURL強調の範囲に含まれています。問題内容は「URLとして検出される範囲がおかしい」だと考えられます。
'[email protected]
の 2文字目 a
から始まる部分を URL強調範囲 として認識させるのは難しそうなので、しばらく時間がかかりそうに思います。