Subject: [bug#42526] [PATCH] gnu: Add emacs-shx.

From: "LaFreniere, Joseph" <[email-masked]>
Date: Sat, 25 Jul 2020 08:29:26 -0500

Oleg Pykhalov <[email-masked]> writes:
> Could you also take a look on running test suite in a package 
> recipe, please?

Thank you for pointing that out.  A new patch file is attached 
with tests enabled and passing:
> starting phase `check'
> ✔ shx-tokenize works with apostrophes.
> ✔ shx-tokenize works with partial apostrophes.
> ✔ shx-tokenize returns nil when quoting doesn't match.
> ✔ shx-tokenize works with apostrophes and quotation marks.
> ✔ shx-tokenize works with escaped spaces.
> ✔ shx-tokenize works with escaped quotation marks.
> ✔ shx-tokenize works with escaped characters
> ✔ shx-tokenize works with a directory specified.
> ✔ shx--get-user-cmd returns nil for empty string
> ✔ shx--get-user-cmd returns command with correct prefix
> ✔ shx--safe-as-markup-p recognizes unsafe command
> ✔ shx--safe-as-markup-p recognizes a safe command
> ✔ shx--safe-as-markup-p handles undocumented command
> ✔ shx--quote-regexp matches escaped regexps correctly
> ✔ shx--quote-regexp matches unescaped regexps correctly
> ✔ shx--get-timer-list is empty
> ✔ shx--shx-timer-list grows by 1
> ✔ shx--get-timer-list becomes empty
> ✔ shx.el passes checkdoc
> ✔ shx-cat concatenates strings correctly
> ✔ shx-cat propertizes text correctly
> ✔ shx--shell-command finds the default shell
> ✔ shx--replace-from-list acts sequentially
> ✔ shx--replace-from-list performs the correct replacements
> ✔ shx-el passes check-declare-file
> ✔ shx-cmd-syntax recognizes command with arguments
> ✔ shx-cmd-syntax recognizes alphabetical command names
> ✔ shx-cmd-syntax recognizes hyphenated command names
> ✔ shx--shell-quote-no-quotation-marks escapes string
> ✔ shx.el passes byte-compilation
> ✔ shx-tokenize-filenames works with relative and absolute paths.
> ✔ shx--all-commands lists user command functions
> phase `check' succeeded after 0.2 seconds

--
Joseph LaFreniere
>From 26be119a3353863b3b66757e319ea82f24b16f38 Mon Sep 17 00:00:00 2001
From: Joseph LaFreniere <[email-masked]>
Date: Fri, 24 Jul 2020 21:38:06 -0500
Subject: [PATCH] gnu: Add emacs-shx.

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

diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 836a3950f8..6cc2d4671a 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -3918,6 +3918,38 @@ the speedbar window.")
      "This package provides commands to quickly switch between shell buffers.")
     (license license:gpl3+)))
 
+(define-public emacs-shx
+  (package
+    (name "emacs-shx")
+    (version "1.4.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/riscy/shx-for-emacs")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32 "0p9b621rgy34r1hl9xfzxh4xpx9gpsr3n330ypfxhlr0s5754j73"))))
+    (build-system emacs-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         ;; A docstring provides examples of mapping hosts to programs in /bin.
+         ;; These examples are valid as-is.
+         (delete 'patch-el-files))
+       #:tests? #t
+       #:test-command
+       '("emacs" "--batch" "--quiet"
+         "--script" "test/script.el")))
+    (home-page "https://github.com/riscy/shx-for-emacs")
+    (synopsis "Extras for the comint-mode shell")
+    (description
+     "This package extends @code{comint-mode}: it parses markup in the output
+stream, enabling plots and graphics to be embedded, and adds command-line
+functions which plug into Emacs (e.g. use @code{:e <filename>} to edit a
+file).")
+    (license license:gpl3+)))
+
 (define-public emacs-names
   (let ((commit "d8baba5360e5253938a25d3e005455b6d2d86971")
         (version "20151201.0")
-- 
2.27.0