commit:     6caef5feb18d261c4a1c99444dc46028c68a8d9a
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sat Dec 17 07:46:36 2022 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Sat Dec 17 07:48:58 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6caef5fe

x11-misc/emacs-desktop-mail: Inline the wrapper shell script

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 ...ktop-mail-1.0.ebuild => emacs-desktop-mail-1.1.ebuild} | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/x11-misc/emacs-desktop-mail/emacs-desktop-mail-1.0.ebuild 
b/x11-misc/emacs-desktop-mail/emacs-desktop-mail-1.1.ebuild
similarity index 61%
rename from x11-misc/emacs-desktop-mail/emacs-desktop-mail-1.0.ebuild
rename to x11-misc/emacs-desktop-mail/emacs-desktop-mail-1.1.ebuild
index 07495faea5b4..92d93860fb2f 100644
--- a/x11-misc/emacs-desktop-mail/emacs-desktop-mail-1.0.ebuild
+++ b/x11-misc/emacs-desktop-mail/emacs-desktop-mail-1.1.ebuild
@@ -27,21 +27,22 @@ src_install() {
                MimeType=x-scheme-handler/mailto;
        EOF
 
+       # The Desktop Entry Specification does not allow field codes like %u
+       # inside a quoted argument, therefore we need a shell wrapper.
+       # We want to pass a literal '"(message-mailto \"$1\")"' in the -c
+       # command, but in the desktop entry '"', '\', and '$' must be escaped
+       # as '\\"', '\\\\', and '\\$', respectively. Yet another level of
+       # backslash escapes is needed for '\' and '$' in the here-document.
        newmenu - emacsclient-mail.desktop <<-EOF
                [Desktop Entry]
                Type=Application
                Name=Emacsclient (mail)
                NoDisplay=true
-               Exec=${EPREFIX}/usr/libexec/emacs/emacsclient-mail-wrapper.sh %u
+               Exec=${EPREFIX}/bin/bash -c "exec 
${EPREFIX}/usr/bin/emacsclient \
+--eval \\\\"(message-mailto \\\\\\\\\\\\"\\\\\$1\\\\\\\\\\\\")\\\\"" bash %u
                Terminal=false
                MimeType=x-scheme-handler/mailto;
        EOF
-
-       exeinto /usr/libexec/emacs
-       newexe - emacsclient-mail-wrapper.sh <<-EOF
-               #!${EPREXIX}/bin/bash
-               exec ${EPREFIX}/usr/bin/emacsclient --eval "(message-mailto 
\\"\$1\\")"
-       EOF
 }
 
 pkg_postinst() {

Reply via email to