From: j8takagi Date: Fri, 12 Jun 2026 04:01:43 +0000 (+0900) Subject: comet2monitorの空Enterの動作を修正 X-Git-Tag: v0.5p55~4 X-Git-Url: https://j8takagi.net/gitweb?a=commitdiff_plain;h=8be8fe46e9c3f9a452ec08f39b9271e5970efbc3;p=yacasl2.git comet2monitorの空Enterの動作を修正 last_buf == NULL の空Enter時に continue 追加(segfault修正) 通常コマンド処理の else ブランチで FREE(last_buf) 追加(メモリリーク修正) 空Enterリピート時に FREE(buf) 追加(メモリリーク修正) 末尾の FREE(last_buf) 削除(n リピート修正) https://claude.ai/share/e038a102-8d71-4dfd-92e1-da273ae54a86 --- diff --git a/src/monitor.c b/src/monitor.c index 777d6f0..afb59e6 100644 --- a/src/monitor.c +++ b/src/monitor.c @@ -415,7 +415,9 @@ void monitor() /* 前回実行したコマンドがなければ何もしない */ FREE(buf); fprintf(stdout, ">\n"); + continue; } else { + FREE(buf); buf = strdup_chk(last_buf, "monitor.buf_repeat"); cmdtype = MONREPEAT; } @@ -423,6 +425,7 @@ void monitor() strip_end(buf); /* 文字列末尾の改行と空白を削除 */ /* 履歴(ヒストリ)に追加 */ add_history(buf); + FREE(last_buf); last_buf = strdup_chk(buf, "monitor.last_buf"); } /* 実行コマンドをstdout に出力。ログに残すため */ @@ -441,5 +444,4 @@ void monitor() } } while(cmdtype == MONREPEAT); FREE(buf); - FREE(last_buf); }