ds14050
ds14050
手順としては Ctrl+クリックしてから他の場所を Ctrl+Shift+左ボタンダウンするものと、普通にクリックしてから他の場所を Ctrl+Shift+左ボタンダウンするものの2種類があります。結果として選択される範囲は同じになります。 おかしなのは文書の後ろの方を始点(※単語の位置もしくはキャレットの位置)として、頭の方を Ctrl+Shift+左ボタンダウンしたときです。**Ctrl+Shift+左ボタンダウンするたびに1単語ずつ、選択範囲が反対側にも伸びていきます**、行末に到達するまでは。 また、**Ctrl+Shift+左ボタンダウン操作では選択範囲を縮めることができず、選択がキャンセルされてしまう**のも、他の操作からは予測できない意外な結果です。 ## 原因 想像ですが、キャレットの位置にある単語の範囲を調べるメソッドの仕様がそのまま現れているのではないかと思います。pull #552 で「sWord と sSelect は交差している(⇒隣接してはいない)」ことを条件にしたのは、キャレットの位置**から始まる**単語の範囲が返ってくることがあるからでした。 ## 再現 GIF 500KBくらいあるのでリンクにしました>[screen_capture](https://user-images.githubusercontent.com/23469385/47174276-21549780-d34b-11e8-8108-d9cab5a020de.gif) * 行末までは伸びていきませんでした。 * 選択が解除される最後の瞬間まで Ctrl と Shift は押しっぱなしです。
以下のような構造を持つメンバ関数が複数存在する。 ```cpp if (this) { } else { } ``` これに起因して -Og や -Os といった最適化オプションを付けてできあがった sakura.exe が起動直後にクラッシュする。 ソースがブログではあるがこれまでクラッシュしなかったのはたまたまであるらしい。>「[C++ NULLポインタ経由のメンバ関数呼び出し - プログラミングの教科書を置いておくところ](http://d.hatena.ne.jp/prettysoft/20101029)」