Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

シングルクォートで囲まれたメールアドレスの選択 #1260

Open
todawa opened this issue May 3, 2020 · 6 comments
Open

Comments

@todawa
Copy link

todawa commented May 3, 2020

問題内容

シングルクォートで囲まれたメールアドレスをクリックすると先頭のシングルクォートまで選択されしまう。末尾のシングルクォートは選択されない。本来はメールアドレスの部分だけ選択されるべき。

再現手順

シングルクォートで囲まれたメールアドレスが表示されている状態でメールアドレスの部分をクリックするとメールアドレスと共に先頭のシングルクォートまで選択されてしまう。

再現頻度

100%

問題のカテゴリ

  • プログラムの動作上の問題
    • 正式リリース版

環境情報

  • OS バージョン
     Windows10 Pro 64bit
  • サクラエディタバージョン
     v2.4.0.2686 32bit (tag v2.4.0)

スクリーンショット

サクラエディタ問題

@berryzplus
Copy link
Contributor

この事象は分からんです。

シングルクオート(=0x27) がメールアドレスの account part に使える文字になっていることが原因のような気がします。

対策としては、メールアドレスの終端の次の文字がメールアドレスの先頭文字と一致する場合、先頭文字をメールアドレスに含めない、というようなコードを書くことになりそうです。

この周辺は検出ロジックが超低レベルであること、レイアウト・ロジック単位の取り違え問題が関連することなどから、修正とレビューの難易度が非常に高い気がします。

間違ってたらすまん!でどんどん進めちゃうのも一つの作戦かもしんないです・・・。

@todawa
Copy link
Author

todawa commented May 3, 2020

いつからか正確には分かりませんが ver.2.2.01 では正しく動作していました。

@k-takata
Copy link
Member

k-takata commented May 3, 2020

#792 の影響ですかね。

@berryzplus
Copy link
Contributor

検証しようと思って画像よく見たら先頭のシングルクォートに下線が付いてますね。

過去版 v2.3.2 でも試しましたが同じ現象でした。

つまり、GitHub移行後に壊したわけではない 。。。(  ̄Д ̄)ヨッシャ!!

どうも2016年頃に「記号類が含まれるメールアドレス」を検出できるようにしたらしくって、その時の変更の影響っぽい気がします。責任逃れしてもしゃあないんですけど(笑)。

たまたま、いまGWですし、今年のGWは全世界的に Let's enjoy stay home! ですし、ボチボチ原因調査して対策打つのに絶好なタイミングだったりするのでちょっと対応してみたいと思います・・・。

@usagisita
Copy link
Contributor

WikipediaやRFCなどを見ても、シングルクォート自体は、ローカルパート(ユーザー名)のところに直書きしていい文字として指定されているので、これはちょっと複雑な問題だと思います。
RFC原理主義、定義を尊重するとするなら、当然セパレータではなくちゃんと認識されるべきです。
日和見主義というか現実主義をもって、シングルクォートはセパレータとみなすように変更するというなら、それでもいいかと。
そういえば、ワークアラウンドとして、正規表現でURLを指定するとメールアドレスもカスタマイズ対象だみたいな、コメントをしたような記憶があります。

下のリストをこのissueeの表示と同じような感じにしたいだけなら、ローカルパートの許容文字リストwcschr?からシングルクォートを外せばいいんじゃないでしょうか。
秀丸もシングルクォートはローカルパートとは認識しないようです。
もしシングルクォートを人間みたいに処理したいなら、例えば、下記のリストのうち、どれをどう処理すべきか、色々と考える必要があるんじゃないでしょうか。
username@example.com
Lets'go@example.com
Lets'go@example.com'宛先'
"Lets'go"@example.com
"Lets'go@example.com"
'Lets'go@example.com'

@berryzplus
Copy link
Contributor

#792 の影響ですかね。

ぬふっ!ちょっと調べて思いついたことが #792 に全部書かれてた!
あんまし成長しとらんなぁ...orz

報告画像をよく見ると先頭のシングルクォートがURL強調の範囲に含まれています。問題内容は「URLとして検出される範囲がおかしい」だと考えられます。

'abcdefg@hijklmn.com の 2文字目 a から始まる部分を URL強調範囲 として認識させるのは難しそうなので、しばらく時間がかかりそうに思います。

berryzplus added a commit to berryzplus/sakura-editor that referenced this issue May 3, 2020
berryzplus added a commit to berryzplus/sakura-editor that referenced this issue May 3, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants