emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/eat 0e1af38de9 1/3: Support Emacs 27.1


From: ELPA Syncer
Subject: [nongnu] elpa/eat 0e1af38de9 1/3: Support Emacs 27.1
Date: Sat, 7 Oct 2023 07:00:16 -0400 (EDT)

branch: elpa/eat
commit 0e1af38de91c0e6f63ea3e88440eff3fc40568c7
Author: Akib Azmain Turja <akib@disroot.org>
Commit: Akib Azmain Turja <akib@disroot.org>

    Support Emacs 27.1
    
    * eat.el: Depend on Emacs 27.1.  Require 'compat' and 'term'.
    * eat.el (eat-term-color-*): Inherit 'term-color-*' in Emacs
    27.
    * eat.el (eat--t-sixel-render-bitmap): Call 'mapconcat' with
    three arguments.
    * eat.el (eat-yank-from-kill-ring): Signal error in Emacs 27.
    * eat.el (eat--eshell-setup-proc-and-term): Don't error if
    process mark is invalid.
    * eat.el (eat-eshell-mode): Properly revert
    'eshell-variable-aliases-list' when disabling the mode.
    * eat.el (eat--trace-exec)
    (eat--trace-eshell-adjust-make-process-args): Make sure
    'lisp-data-mode' is defined before calling.
---
 README.org | 12 ++++++++++--
 eat.el     | 50 +++++++++++++++++++++++++++++++++++++-------------
 2 files changed, 47 insertions(+), 15 deletions(-)

diff --git a/README.org b/README.org
index 15396f9802..4776af77a3 100644
--- a/README.org
+++ b/README.org
@@ -98,13 +98,21 @@ be accessed with =C-h i m Eat=, also available 
[[https://elpa.nongnu.org/nongnu-
 
 * Installation
 
-Eat requires at least Emacs 28.1 or above.
+Eat requires at least Emacs 27.1 or above.
 
 ** NonGNU ELPA
 
 Eat is available on NonGNU ELPA.  So you can just do
 =M-x package-install RET eat RET=.
 
+If you're on Emacs 27, you'll need to add NonGNU ELPA to your
+~package-archives~ by putting the following in your ~init.el~:
+
+#+begin_src emacs-lisp
+(add-to-list 'package-archives
+             '("nongnu" . "https://elpa.nongnu.org/nongnu/";))
+#+end_src
+
 ** Quelpa
 
 #+begin_src emacs-lisp
@@ -145,7 +153,7 @@ native-compiled Term even without byte-compilation, and 
when Eat is
 byte-compiled, Eat is more than three times fast.  Also, Term
 flickers, just try to run =emacs -nw= in it.  It doesn't support
 remote connections, for example over Tramp.  However, it's builtin
-from the early days of Emacs, while Eat needs atleast Emacs 28.1.
+from the early days of Emacs, while Eat needs atleast Emacs 27.1.
 
 ** Vterm
 
diff --git a/eat.el b/eat.el
index 08127d2211..2d69861c46 100644
--- a/eat.el
+++ b/eat.el
@@ -5,7 +5,7 @@
 ;; Author: Akib Azmain Turja <akib@disroot.org>
 ;; Created: 2022-08-15
 ;; Version: 0.8
-;; Package-Requires: ((emacs "28.1") (compat "29.1"))
+;; Package-Requires: ((emacs "27.1") (compat "29.1"))
 ;; Keywords: terminals processes
 ;; Homepage: https://codeberg.org/akib/emacs-eat
 
@@ -81,11 +81,13 @@
 
 ;;; Code:
 
+(require 'compat)
 (require 'subr-x)
 (require 'cl-lib)
 (require 'ansi-color)
 (require 'color)
 (require 'shell)
+(require 'term)
 (require 'url)
 
 ;; Needed by `eat-reload'.
@@ -780,7 +782,11 @@ If your process is choking on big inputs, try lowering the 
value."
     (dolist (color colors)
       (let ((face (intern (format "eat-term-color-%i" face-counter))))
         (custom-declare-face
-         face `((t :inherit ,(intern (format "ansi-color-%s" color))))
+         face `((t :inherit
+                   ,(intern (format (if (>= emacs-major-version 28)
+                                        "ansi-color-%s"
+                                      "term-color-%s")
+                                    color))))
          (format "Face used to render %s color text." color)
          :group 'eat-term)
         (put (intern (format "eat-term-color-%s" color))
@@ -790,8 +796,11 @@ If your process is choking on big inputs, try lowering the 
value."
     (dolist (color colors)
       (let ((face (intern (format "eat-term-color-%i" face-counter))))
         (custom-declare-face
-         face `((t :inherit ,(intern (format "ansi-color-bright-%s"
-                                             color))))
+         face `((t :inherit
+                   ,(intern (format (if (>= emacs-major-version 28)
+                                        "ansi-color-bright-%s"
+                                      "term-color-%s")
+                                    color))))
          (format "Face used to render bright %s color text." color)
          :group 'eat-term)
         (put (intern (format "eat-term-color-bright-%s" color))
@@ -3086,7 +3095,7 @@ CHAR-SIZE is the width and height of a character."
                             color-key-length)
                     (mapconcat (lambda (line)
                                  (format "\"%s\",\n" line))
-                               color-map)
+                               color-map "")
                     (mapconcat (lambda (row)
                                  (format "\"%s\"" (string-join
                                                    (nreverse row))))
@@ -5610,6 +5619,8 @@ argument COUNT specifies how many times to insert 
CHARACTER."
                      (prefix-numeric-value current-prefix-arg)))
   (eat-self-input count character))
 
+(defvar yank-transform-functions) ; In `simple'.
+
 (defun eat-yank (&optional arg)
   "Same as `yank', but for Eat.
 
@@ -5630,8 +5641,14 @@ ARG is passed to `yank', which see."
   "Same as `yank-from-kill-ring', but for Eat.
 
 STRING and ARG are passed to `yank-pop', which see."
-  (interactive (list (read-from-kill-ring "Yank from kill-ring: ")
-                     current-prefix-arg))
+  (interactive
+   (progn
+     (unless (>= emacs-major-version 28)
+       (error "`eat-yank-from-kill-ring' requires at least Emacs 28"))
+     (list (read-from-kill-ring "Yank from kill-ring: ")
+           current-prefix-arg)))
+  (unless (>= emacs-major-version 28)
+    (error "`eat-yank-from-kill-ring' requires at least Emacs 28"))
   (when eat-terminal
     (funcall eat--synchronize-scroll-function
              (eat--synchronize-scroll-windows 'force-selected))
@@ -7182,6 +7199,8 @@ PROGRAM can be a shell command."
 
 (defvar eshell-last-output-start) ; In `esh-mode'.
 (defvar eshell-last-output-end) ; In `esh-mode'.
+(defvar eshell-output-filter-functions) ; In `esh-mode'.
+(defvar eshell-parent-buffer) ; In `em-term'.
 (declare-function eshell-head-process "esh-cmd" ())
 (declare-function eshell-resume-eval "esh-cmd" ())
 
@@ -7242,8 +7261,11 @@ PROGRAM can be a shell command."
   (unless eat-terminal
     (process-put proc 'adjust-window-size-function
                  #'eat--adjust-process-window-size)
-    (setq eat-terminal (eat-term-make (current-buffer)
-                                      (process-mark proc)))
+    (setq eat-terminal
+          (eat-term-make (current-buffer)
+                         (if (marker-buffer (process-mark proc))
+                             (process-mark proc)
+                           (point-max))))
     (set-marker (process-mark proc) (eat-term-end eat-terminal))
     (setf (eat-term-parameter eat-terminal 'input-function)
           #'eat--send-input)
@@ -7385,7 +7407,7 @@ modify its argument to change the filter, the sentinel 
and invoke
                  ('t t)
                  ('ask (not (y-or-n-p "The program stty can't be \
 found, input won't be shown if terminal emulation is enabled.  \
-Disable terminal emulation?")))
+Disable terminal emulation? ")))
                  ((and (pred functionp) function)
                   (apply function command args)))))
       (funcall fn command args)
@@ -7635,7 +7657,9 @@ symbol `buffer', in which case the point of current 
buffer is set."
              (member elem
                      '(("TERM" eat--eshell-term-name t)
                        ("TERMINFO" eat-term-terminfo-directory t)
-                       ("INSIDE_EMACS" eat-term-inside-emacs t))))
+                       ("INSIDE_EMACS" eat-term-inside-emacs t)
+                       ("EAT_SHELL_INTEGRATION_DIR"
+                        eat-term-shell-integration-directory t))))
            eshell-variable-aliases-list))
     (advice-remove #'eshell-gather-process-output
                    #'eat--eshell-adjust-make-process-args)
@@ -7822,7 +7846,7 @@ FN, `eat-exec', which see."
           (dolist (var eat--trace-recorded-variables)
             (push (cons var (symbol-value var)) variables)))
         (with-current-buffer buf
-          (lisp-data-mode)
+          (when (fboundp 'lisp-data-mode) (lisp-data-mode))
           (insert ";; -*- mode: lisp-data -*-\n")
           (eat--trace-log time 'create 'eat width height
                           variables))))))
@@ -7947,7 +7971,7 @@ see."
                   (dolist (var eat--trace-recorded-variables)
                     (push (cons var (symbol-value var)) variables))
                   (with-current-buffer buf
-                    (lisp-data-mode)
+                    (when (fboundp 'lisp-data-mode) (lisp-data-mode))
                     (insert ";; -*- lisp-data -*-\n")
                     (eat--trace-log time 'create 'eshell width height
                                     variables)))))))))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]