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() {