From 978aff91668499354372d5088607c73d3cc080b2 Mon Sep 17 00:00:00 2001 From: Akib Azmain Turja Date: Sat, 10 Dec 2022 02:14:28 +0600 Subject: [PATCH] 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. --- eat.el | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/eat.el b/eat.el index 1a4d1e0..d76f741 100644 --- a/eat.el +++ b/eat.el @@ -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.