Implement terminal parameters

* eat.el (eat--t-term): New slot: 'params'.
* eat.el (eat-term-parameter): New function and generalized
variable.
* eat.el (eat-set-term-parameter): New function.
This commit is contained in:
Akib Azmain Turja 2022-12-10 02:14:28 +06:00
parent f047b2d283
commit 978aff9166
No known key found for this signature in database
GPG key ID: 5535FCF54D88616B

17
eat.el
View file

@ -831,7 +831,8 @@ Nil when not in alternative display mode.")
(focus-event-mode nil :documentation "Whether to send focus event.")
(cut-buffers
(1value (make-vector 10 nil))
:documentation "Cut buffers."))
:documentation "Cut buffers.")
(params nil :documentation "Hash table of terminal parameters."))
(defvar eat--t-term nil
"The current terminal.
@ -3157,6 +3158,20 @@ DATA is the selection data encoded in base64."
(eat--t-with-env terminal
(eat--t-reset))))
(defun eat-term-parameter (terminal parameter)
"Return the value of parameter PARAMETER of TERMINAL."
(cdr (assq parameter (eat--t-term-params terminal))))
(defun eat-term-set-parameter (terminal parameter value)
"Set the value of parameter PARAMETER of TERMINAL to VALUE."
(let ((pair (assq parameter (eat--t-term-params terminal))))
(if pair
(setcdr pair value)
(push (cons parameter value) (eat--t-term-params terminal)))))
(gv-define-setter eat-term-parameter (value terminal parameter)
`(eat-term-set-parameter ,terminal ,parameter ,value))
(defun eat-term-input-function (terminal)
"Return the function used to send input from TERMINAL.