[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/eat eab01e693b: Add new command 'eat-compile-terminfo'
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/eat eab01e693b: Add new command 'eat-compile-terminfo' |
Date: |
Thu, 30 Mar 2023 04:00:59 -0400 (EDT) |
branch: elpa/eat
commit eab01e693b3935f719310ed1f24f8b6b08899cce
Author: Akib Azmain Turja <akib@disroot.org>
Commit: Akib Azmain Turja <akib@disroot.org>
Add new command 'eat-compile-terminfo'
* eat.el (eat-compile-terminfo): New command.
* eat.texi (Hello Terminal): Refer to 'Common Problems'.
* eat.texi (Common Problems): Add instructions to compile
Terminfo databases with 'eat-compile-terminfo'.
---
Makefile | 2 +-
eat.el | 34 ++++++++++++++++++++++++++++++++++
eat.texi | 30 +++++++++++++++++++++---------
3 files changed, 56 insertions(+), 10 deletions(-)
diff --git a/Makefile b/Makefile
index cc509b1f92..558d360731 100644
--- a/Makefile
+++ b/Makefile
@@ -38,7 +38,7 @@ pdf: eat.pdf
terminfo: eat.ti
test -d terminfo || mkdir terminfo
env TERMINFO=./terminfo $(TIC) -x eat.ti
-# We don't know which directory was created, it depend on the
+# We don't know which directory was created, it depends on the
# case-sensitivity of the file-system. So make sure both are created.
test -d terminfo/e || mkdir terminfo/e
test -d terminfo/65 || mkdir terminfo/65
diff --git a/eat.el b/eat.el
index 16d5485c9d..e01ee3ad23 100644
--- a/eat.el
+++ b/eat.el
@@ -6637,6 +6637,40 @@ N defaults to 1. Interactively, N is the prefix
argument."
(add-hook 'kill-buffer-hook #'eat-trace--cleanup nil t))
+;;;; Miscellaneous.
+
+(defun eat-compile-terminfo ()
+ "Compile terminfo databases of Eat."
+ (interactive)
+ ;; Check for required files and programs.
+ (let ((source-path (expand-file-name "eat.ti" eat--install-path))
+ (tic-path (executable-find "tic")))
+ (unless (file-exists-p source-path)
+ (error "Eat not installed properly: %s"
+ "Terminfo source file not found"))
+ (unless tic-path
+ (error "Terminfo compiler `tic' not found"))
+ (message "Compiling terminfo databases...")
+ ;; Compile.
+ (let* ((command (format "env TERMINFO=\"%s\" %s -x %s"
+ eat-term-terminfo-directory tic-path
+ source-path))
+ (status
+ (with-temp-buffer
+ (make-directory eat-term-terminfo-directory 'parents)
+ (let ((proc (start-process-shell-command
+ "eat-terminfo-compile"
+ (current-buffer) command)))
+ (while (process-live-p proc)
+ (sleep-for 0.02))
+ (process-exit-status proc)))))
+ (if (= status 0)
+ (message "Compiling terminfo databases...done")
+ (message "Compiling terminfo databases...error")
+ (error "Command `%s' exited with non-zero exit code %i"
+ command status)))))
+
+
;;;; Footer.
(defun eat-reload ()
diff --git a/eat.texi b/eat.texi
index 0cb4ab9a4a..83e753a54f 100644
--- a/eat.texi
+++ b/eat.texi
@@ -121,7 +121,8 @@ terminal and run the default shell
(@pxref{Interactive Shell,,, emacs, GNU Emacs Manual}) in it. You
should get a shell prompt and be able to write shell commands and
execute them. Full screen programs like @samp{htop}, @samp{lynx} and
-Emacs will work inside it, just like other any other terminal.
+Emacs will work inside it, just like other any other terminal. (If
+the terminal doesn't work as expected, @pxref{Common Problems}.)
If an Eat terminal already exists, @kbd{M-x eat} will switch to it.
To create a new terminal, call it with a prefix argument like this,
@@ -939,22 +940,33 @@ Eat does something unexpected, such as hangs, garbled
text, etc.
@section Terminal Not Recognized
If your program says that it can't recognize the terminal, probably
-the @env{TERM} environment has a wrong value.
+the @env{TERM} environment variable has a wrong value.
+@vindex eat-term-name
Check the value of @env{TERM}, if it's not set to something like
@samp{eat-...}, check the user option @code{eat-term-name}. If that's
correct that your shell might be changing the @env{TERM} environment
variable. If @code{eat-term-name} isn't correct, customize to a
suitable value and try again, your problem should be fixed.
+@vindex eat-term-terminfo-directory
If @env{TERM} has the correct value, then probably the Terminfo
-entries of Eat are missing. This can happen if you manually install
-Eat. Check that whether the values of the environment value
-@env{TERM} and the user option @code{eat-term-terminfo-directory}
-match. If they match, customize @code{eat-term-terminfo-directory} to
-the directory that contains the Terminfo database, the program should
-now recognize Eat. If they don't match, then your shell is probably
-responsible for the problem.
+databases of Eat are missing. This can happen if you have installed
+Eat without using the package from NonGNU ELPA
+(@pxref{Packages,,, emacs, GNU Emacs Manual}). Check that whether
+the values of the environment variable @env{TERMINFO} and the user
+option @code{eat-term-terminfo-directory} match. If they match,
+customize @code{eat-term-terminfo-directory} to the directory
+containing the Terminfo databases, the program should now recognize
+Eat. If they don't match, then your shell is probably responsible for
+the problem.
+
+@findex eat-compile-terminfo
+If you can't find the directory containing Terminfo databases, you can
+compile it yourself. First, set @code{eat-term-terminfo-directory} to
+the directory where to put the Terminfo databases. Then invoke the
+command @command{eat-compile-terminfo} to compile the Terminfo
+databases.
@node Garbled Text
@cindex garbled text
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [nongnu] elpa/eat eab01e693b: Add new command 'eat-compile-terminfo',
ELPA Syncer <=