[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/eat a21e665120 2/4: Use full command as title in shell int
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/eat a21e665120 2/4: Use full command as title in shell integration |
Date: |
Sun, 4 Dec 2022 12:58:33 -0500 (EST) |
branch: elpa/eat
commit a21e665120bf787792c367f5236378d3db27def1
Author: Akib Azmain Turja <akib@disroot.org>
Commit: Akib Azmain Turja <akib@disroot.org>
Use full command as title in shell integration
* integration/bash (__eat_in_prompt_command): Rename to
'__eat_inhibit_preexec'.
* integration/bash (__eat_before_exec): Inhibit further
'__eat_preexec' calls until next prompt.
* integration/bash (__eat_preexec): Use 'history' to get the
real command typed by the user.
---
eat.el | 5 +++--
integration/bash | 14 +++++++++-----
2 files changed, 12 insertions(+), 7 deletions(-)
diff --git a/eat.el b/eat.el
index 7b1f4cd87f..1f937ea8f2 100644
--- a/eat.el
+++ b/eat.el
@@ -249,8 +249,9 @@ This value is used by terminal programs to identify the
terminal."
(function :tag "Function"))
:group 'eat-term)
-;; Upgrading Eat causes `eat-term-terminfo-directory' to be outdated,
-;; so update it if not modified by user (or something else).
+;; Upgrading Eat causes `eat-term-terminfo-directory' and
+;; `eat-term-shell-integration-directory' to be outdated, so update it
+;; if not modified by user (or something else).
(defvar eat--install-path nil
"Path to directory where Eat is installed.")
diff --git a/integration/bash b/integration/bash
index dcc639a552..1c2a5c379d 100644
--- a/integration/bash
+++ b/integration/bash
@@ -25,27 +25,31 @@ __eat_prompt_command () {
__eat_preexec () {
# "${PWD/$HOME/'~'}" converts "/home/akib/org/" to "~/org/".
# The next one is substituted with '$', or '#' if we're "root".
+ # The final one gets the real command typed by the user from the
+ # history.
printf '\e]2;%s@%s:%s%s %s\e\\' "$USER" "$HOSTNAME" \
"${PWD/$HOME/'~'}" \
- "$(test $UID -eq 0 && echo '#' || echo '$')" "$BASH_COMMAND"
+ "$(test $UID -eq 0 && echo '#' || echo '$')" \
+ "$(history 1 | sed 's/ *[0-9]* *//')"
}
-__eat_in_prompt_command=no
+__eat_inhibit_preexec=yes
__eat_before_prompt_command ()
{
- __eat_in_prompt_command=yes
+ __eat_inhibit_preexec=yes
}
__eat_after_prompt_command ()
{
- __eat_in_prompt_command=no
+ __eat_inhibit_preexec=no
}
__eat_before_exec () {
- if test $__eat_in_prompt_command = no \
+ if test $__eat_inhibit_preexec = no \
&& test "$BASH_COMMAND" != __eat_before_prompt_command
then
+ __eat_inhibit_preexec=yes
__eat_preexec
fi
}