2015/11/21 (土) 01:26:32 さめたすたす  
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36
[2315] 特定文字を入力&操作後に Runtime Error
また、怪しい動きを見つけました。

再現できないなどあれば教えてください。

OS: Windows 8.1
ver: 後述
現象:

特定文字を入力&操作後に Runtime Error! で落ちる。

■ 手順

1. 設定→「タイプ別設定一覧」→「C/C++」を選び一時適用
2. スペース1文字とスラッシュ2文字を入力
     ________________
   1| //[EOF]
   ↑みたいな状態
3. 3文字左に戻り「Enter」を入力
     ________________
   1|↲
    | //[EOF]
   ↑みたいな状態

で↓

---------------------------
Microsoft Visual C++ Runtime Library
---------------------------
Runtime Error!

Program: C:\*****\sakura.exe

abnormal program termination
---------------------------
OK
---------------------------

■ 問題なし

v2.2.0.0

■ Runtime Error!

v2.2.1.0 r4029+プロポーショナル
※ http://sakura-editor.sourceforge.net/cgi-bin/cyclamen/cyclamen.cgi?log=unicode&tree=r2279 で公開されている物

v2.3.0.0

2015/11/23 (月) 16:56:32 ds14050  
Mozilla/5.0 (Windows NT 6.0; WOW64; rv:22.0) Gecko/20100101 Firefox/22.0
[2316] Re:特定文字を入力&操作後に Runtime Error
スマートインデント関連で無限ループに入ってメモリを食いつぶしている感じです。

n = 0 から n = nLineLen2-1 までのループの中で n に k を代入してるのがこちらです。
http://sourceforge.net/p/sakura-editor/code/4035/tree/sakura/trunk2/sakura_core/types/CType_Cpp.cpp#l1427
デバッガでは n = 1; k = 0; nLineLen2 = 3 に見えますので、n = 1 のターンが永遠に続きます。

行コメントを見つけたときに通るパスのようなので、行末までスキップ、という
コードなのかなと思いますが、n = k の k に何を期待しているのか、k という
ほとんど無名に等しい変数が何者なのか、よくわかりません。

2015/11/23 (月) 20:10:23 もか  
Mozilla/5.0 (Windows NT 6.3; WOW64; rv:42.0) Gecko/20100101 Firefox/42.0
[2317] Re2:特定文字を入力&操作後に Runtime Error
n=k
↓
n=nLineLen2 でよさそうですね。
だいぶ前に書いたので忘れたけどループの処理を見た感じだと
for(n=0;n<k;n++)にしたほうが若干無駄が少ないかもしれません

2015/11/24 (火) 17:24:00 ds14050  
Mozilla/5.0 (Windows NT 6.0; WOW64; rv:22.0) Gecko/20100101 Firefox/22.0
[2318] Re3:特定文字を入力&操作後に Runtime Error
> for(n=0;n<k;n++)
についてはコメントできるほど知りませんが、

> n=nLineLen2
については、ループ継続判定の前に n++ されることを考えると
n=nLineLen2-1 の方が適切ではないかなと思います。
結果は同じですけどね。

INCM/CMT
Cyclamen v3.81
[ut:0.010][st:0.000]