Subject: [bug#36230] Fw: [bug#36230] [PATCH] Add emacs-multi-term

From: Baptiste Strazzulla <[email-masked]>
Date: Sun, 23 Jun 2019 18:35:10 +0000

Second attempt. I hope everything is at it's right place this time.

Regards

________________________________________
From: Ludovic Courtès <[email-masked]>
Sent: Tuesday, June 18, 2019 2:59 PM
To: Baptiste Strazzulla
Cc: [email-masked]
Subject: Re: [bug#36230] [PATCH] Add emacs-multi-term

Hello,

Baptiste Strazzulla <[email-masked]> skribis:

> From 3118853b54988c68828c5e7e266d4959151b64cf Mon Sep 17 00:00:00 2001
> From: Zzull <[email-masked]>
> Date: Sat, 15 Jun 2019 22:32:19 +0200
> Subject: [PATCH] gnu: Add emacs-multi-term
>
> * gnu/packages/emacs-xyz.scm (emacs-multi-term): New variable

[...]

> +    (arguments
> +     `(#:phases
> +       (modify-phases %standard-phases
> +         ;; FIXME: `patch-el-files' crashes with the following error:
> +         ;; unable to locate "zsh".

Then I think you should add zsh as an input, such that ‘patch-el-files’
can modify the .el file to refer to zsh by its absolute file name.

> +    (description
> +     "By default, term.el provides a great terminal emulator in Emacs.  But it
> +lacks the following:

Could you replace this description by one that says what
emacs-multi-term is/does, rather than what term.el doesn’t do well?  :-)

See
<https://www.gnu.org/software/guix/manual/en/html_node/Synopses-and-Descriptions.html>.

Thank you!

Ludo’.
From 98ea2610efba5b656565aeea43f3e9a50b06e6c5 Mon Sep 17 00:00:00 2001
From: Zzull <[email-masked]>
Date: Sat, 15 Jun 2019 22:32:19 +0200
Subject: [PATCH] gnu: Add emacs-multi-term

* gnu/packages/emacs-xyz.scm (emacs-multi-term): New variable
---
 gnu/packages/emacs-xyz.scm | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index dcdbcf7dd0..ecd9518646 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -16081,3 +16081,34 @@ themselves live in an Org-mode file.  As such, this leverages the power of
 Org-mode (the notes may have outlines, latex fragments, babel, etc...) while
 acting like notes that are made @emph{in} the document.")
     (license license:gpl3+)))
+
+(define-public emacs-multi-term
+  (package
+    (name "emacs-multi-term")
+    (version "1.2")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/emacsorphanage/multi-term.git")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1bn6zx931vz2fa72ab999r33bxv8brn3cqmalvq25x7s4z3q1lyi"))))
+    (build-system emacs-build-system)
+    (propagated-inputs `(("zsh" ,zsh)))
+    (home-page "https://github.com/emacsorphanage/multi-term")
+    (synopsis "Manage multiple terminal buffers in Emacs")
+    (description
+     "This package enhances @{term.el} with the following features:
+
+@enumerate
+@item Functions to switch between multiple terminal buffers
+@item List of keys to be intercepted by @{emacs-multi-term} instead of by the
+underlying terminal
+@item Kills the unused buffer left after exiting the terminal
+@item Kills the running sub-processes along with the terminal when killing the
+it forcibly
+@item Dedicated window for debugging program
+@end enumerate")
+    (license license:gpl3+)))
-- 
2.22.0