[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/crdt 5e67684793 20/44: fix bug of hanging data buffer w
From: |
ELPA Syncer |
Subject: |
[elpa] externals/crdt 5e67684793 20/44: fix bug of hanging data buffer when CRDT--READ-SETTINGS errors |
Date: |
Sat, 2 Jul 2022 22:57:33 -0400 (EDT) |
branch: externals/crdt
commit 5e67684793e92730ade3933b4a830050ccd21782
Author: Qiantan Hong <qhong@mit.edu>
Commit: Qiantan Hong <qhong@mit.edu>
fix bug of hanging data buffer when CRDT--READ-SETTINGS errors
---
crdt.el | 85 ++++++++++++++++++++++++++++++++++-------------------------------
1 file changed, 44 insertions(+), 41 deletions(-)
diff --git a/crdt.el b/crdt.el
index 52e6160838..8c9ef77a7c 100644
--- a/crdt.el
+++ b/crdt.el
@@ -1923,49 +1923,52 @@ Current user means the user corresponding to
CRDT--PROCESS."
(defun crdt--read-settings (buffer-name settings-list)
(with-current-buffer (get-buffer-create buffer-name)
(let ((enable-local-eval t)
- (data-buffer (get-buffer-create (concat " " buffer-name))))
- (let ((standard-output (current-buffer)))
- (prin1
- `(setq forms-file t
- forms-number-of-fields ,(length settings-list)
- forms-format-list
- '(,(let ((overriding-local-map crdt-read-settings-map))
- (substitute-command-keys
- (concat "\\[forms-next-field]:Next Field,
\\[forms-prev-field]:Prev Field\n"
- "\\[exit-recursive-edit]:OK,
\\[abort-recursive-edit]:Cancel\n")))
- ,@(cl-loop for i from 1
- for entry in settings-list
- nconc (list (car entry) i "\n"))))))
- (crdt--call-with-ephemeral-advice
- 'forms--help 'ignore
- (lambda ()
- (crdt--call-with-ephemeral-advice
- 'find-file-noselect
- (lambda (orig-func file)
- (if (eq file t)
- (with-current-buffer data-buffer
- (cl-loop for entry in settings-list
- do (insert (cadr entry))
- do (insert "\t"))
- (backward-delete-char 1)
- (current-buffer))
- (funcall orig-func file)))
- #'forms-mode)))
+ (data-buffer (generate-new-buffer (concat " " buffer-name))))
(unwind-protect
(progn
- (use-local-map crdt-read-settings-map)
- (display-buffer (current-buffer)
- '(display-buffer-below-selected
- (window-height . fit-window-to-buffer)))
- (select-window (get-buffer-window (current-buffer)))
- (recursive-edit)
- (forms--update)
- (cl-mapcar (lambda (entry data)
- (funcall (or (caddr entry) #'identity) data))
- settings-list forms--the-record-list))
- (forms-exit-no-save)
- (unless (< (length (window-list)) 2)
- (delete-window (get-buffer-window (current-buffer))))))))
+ (let ((standard-output (current-buffer)))
+ (prin1
+ `(setq forms-file t
+ forms-number-of-fields ,(length settings-list)
+ forms-format-list
+ '(,(let ((overriding-local-map crdt-read-settings-map))
+ (substitute-command-keys
+ (concat "\\[forms-next-field]:Next Field,
\\[forms-prev-field]:Prev Field\n"
+ "\\[exit-recursive-edit]:OK,
\\[abort-recursive-edit]:Cancel\n")))
+ ,@(cl-loop for i from 1
+ for entry in settings-list
+ nconc (list (car entry) i "\n"))))))
+ (crdt--call-with-ephemeral-advice
+ 'forms--help 'ignore
+ (lambda ()
+ (crdt--call-with-ephemeral-advice
+ 'find-file-noselect
+ (lambda (orig-func file)
+ (if (eq file t)
+ (with-current-buffer data-buffer
+ (cl-loop for entry in settings-list
+ do (insert (cadr entry))
+ do (insert "\t"))
+ (backward-delete-char 1)
+ (current-buffer))
+ (funcall orig-func file)))
+ #'forms-mode)))
+ (unwind-protect
+ (progn
+ (use-local-map crdt-read-settings-map)
+ (display-buffer (current-buffer)
+ '(display-buffer-below-selected
+ (window-height . fit-window-to-buffer)))
+ (select-window (get-buffer-window (current-buffer)))
+ (recursive-edit)
+ (forms--update)
+ (cl-mapcar (lambda (entry data)
+ (funcall (or (caddr entry) #'identity) data))
+ settings-list forms--the-record-list))
+ (forms-exit-no-save)
+ (unless (< (length (window-list)) 2)
+ (delete-window (get-buffer-window (current-buffer))))))
+ (kill-buffer data-buffer)))))
(defun crdt--share-buffer (buffer session)
"Add BUFFER to CRDT SESSION."
- [elpa] externals/crdt 0a351b4ce2 35/44: Add crdt-default-tls. Don't use tls by default, (continued)
- [elpa] externals/crdt 0a351b4ce2 35/44: Add crdt-default-tls. Don't use tls by default, ELPA Syncer, 2022/07/02
- [elpa] externals/crdt 39c308368e 36/44: Also add (kbd "d") binding for *-kill-*, ELPA Syncer, 2022/07/02
- [elpa] externals/crdt dfc98d3525 38/44: add crdt-goto-{next, prev}-user, ELPA Syncer, 2022/07/02
- [elpa] externals/crdt dc9ec07fbd 43/44: Revise README, ELPA Syncer, 2022/07/02
- [elpa] externals/crdt 5d90bf0ce2 03/44: generate uninteresting process buffers instead, ELPA Syncer, 2022/07/02
- [elpa] externals/crdt 1dfa6f7c30 02/44: many changes, ELPA Syncer, 2022/07/02
- [elpa] externals/crdt 2c68377c15 01/44: Merge branch 'master' into development, ELPA Syncer, 2022/07/02
- [elpa] externals/crdt 102498e84f 12/44: remove tramp for now, keep it simple, ELPA Syncer, 2022/07/02
- [elpa] externals/crdt 357f4b7174 18/44: more sensible version message, ELPA Syncer, 2022/07/02
- [elpa] externals/crdt b222966674 19/44: fix DEL key in forms mode, ELPA Syncer, 2022/07/02
- [elpa] externals/crdt 5e67684793 20/44: fix bug of hanging data buffer when CRDT--READ-SETTINGS errors,
ELPA Syncer <=
- [elpa] externals/crdt e06e6e7236 21/44: add history support for CRDT-READ-SETTINGS, ELPA Syncer, 2022/07/02
- [elpa] externals/crdt fae016ba25 08/44: Preliminary url support, ELPA Syncer, 2022/07/02
- [elpa] externals/crdt 28c5f6bd0e 27/44: Also `crdt--refresh-users-maybe' when `crdt-stop-follow', ELPA Syncer, 2022/07/02
- [elpa] externals/crdt f81f5297fa 28/44: Improve naming for user and buffer list, ELPA Syncer, 2022/07/02
- [elpa] externals/crdt 0743dd15f0 29/44: change `crdt--session-name' to `crdt--session-urlstr', ELPA Syncer, 2022/07/02
- [elpa] externals/crdt 9f83928758 32/44: Merge branch 'master' into development, ELPA Syncer, 2022/07/02
- [elpa] externals/crdt 7548a9420e 33/44: :name->:urlstr, and fix TLS downgrade, ELPA Syncer, 2022/07/02
- [elpa] externals/crdt 01551d66c9 34/44: Fix default theme bug and other bugs., ELPA Syncer, 2022/07/02
- [elpa] externals/crdt 949f4a1afd 37/44: reflect key binding addition in README.org, ELPA Syncer, 2022/07/02
- [elpa] externals/crdt 780478a090 39/44: Fix crdt--cycle-user bug with different buffer/window, ELPA Syncer, 2022/07/02