Subject: Re: [bug#39093] [PATCH] gnu: Add emacs-vterm.

From: Ludovic Courtès <[email-masked]>
Date: Tue, 21 Jan 2020 15:07:10 +0100

Hello Joseph,

"LaFreniere, Joseph" <[email-masked]> skribis:

>>>From 06223ab2ed07b3fbfb2dfd95aa0a5fce1c44baf9 Mon Sep 17 00:00:00 2001
> From: Joseph LaFreniere <[email-masked]>
> Date: Mon, 6 Jan 2020 20:56:35 -0600
> Subject: [PATCH] gnu: Add emacs-vterm.
>
> * gnu/packages/emacs-xyz.scm (emacs-vterm): New variable.

Neat!

> +                (modules '((guix build utils)))
> +                (snippet
> +                 '(begin
> +                    (delete-file "vterm-module-make.el")
> +                    (substitute* "vterm.el"
> +                      (((string-append "\\(or \\(require 'vterm-module nil t\\)\n"
> +                                       "^.*\\(and \\(require 'vterm-module-make\\)\n"
> +                                       "^.*\\(require 'vterm-module\\)\\)\\)"))
> +                       "(module-load \"vterm-module.so)"))
> +                    (make-file-writable "vterm.el")

Apparently this substitution doesn’t have the desired effect.  Also,
I strongly recommend using literal strings as patterns.

Actually, what about performing this substitution as a phase instead of
here?  We could probably use ‘emacs-substitute-sexps’ to do that, which
should be nicer, and we could also hard-code the absolute file name of
‘vterm-module.so’.

How does that sound?

The rest LGTM!

Thanks,
Ludo’.