Skip to content

Commit da9ab6a

Browse files
authored
Merge pull request #851 from Sasanidas/main
Add modified buffers information when exit Lem
2 parents 16786b6 + 88e2f87 commit da9ab6a

File tree

3 files changed

+17
-4
lines changed

3 files changed

+17
-4
lines changed

src/base/buffers.lisp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,12 @@
2121
(buffer-modified-p buffer)))
2222
(buffer-list)))
2323

24+
(defun modified-buffers ()
25+
(remove-if (lambda (buffer)
26+
(not (and (buffer-filename buffer)
27+
(buffer-modified-p buffer))))
28+
(buffer-list)))
29+
2430
(defun get-buffer (buffer-or-name)
2531
"`buffer-or-name`がバッファならそのまま返し、
2632
文字列ならその名前のバッファを返します。"

src/base/package.lisp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,7 @@
128128
:kill-buffer-hook
129129
:buffer-list
130130
:any-modified-buffer-p
131+
:modified-buffers
131132
:get-buffer
132133
:get-or-create-buffer
133134
:unique-buffer-name

src/commands/other.lisp

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,16 @@
3636

3737
(define-command exit-lem (&optional (ask t)) ()
3838
"Ask for modified buffers before exiting lem."
39-
(when (or (null ask)
40-
(not (any-modified-buffer-p))
41-
(prompt-for-y-or-n-p "Modified buffers exist. Leave anyway"))
42-
(exit-editor)))
39+
(let ((modified-buffers
40+
(mapcar #'buffer-name (modified-buffers))))
41+
(and (or
42+
(null ask)
43+
(not modified-buffers)
44+
(prompt-for-y-or-n-p
45+
(format nil
46+
"Modified buffers exist:~%~{~a~%~}Leave anyway?"
47+
modified-buffers)))
48+
(exit-editor))))
4349

4450
(define-command quick-exit () ()
4551
"Exit the lem job and kill it."

0 commit comments

Comments
 (0)