summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'x11-misc/emacs-desktop-mail/emacs-desktop-mail-1.1.ebuild')
-rw-r--r--x11-misc/emacs-desktop-mail/emacs-desktop-mail-1.1.ebuild54
1 files changed, 54 insertions, 0 deletions
diff --git a/x11-misc/emacs-desktop-mail/emacs-desktop-mail-1.1.ebuild b/x11-misc/emacs-desktop-mail/emacs-desktop-mail-1.1.ebuild
new file mode 100644
index 000000000000..92d93860fb2f
--- /dev/null
+++ b/x11-misc/emacs-desktop-mail/emacs-desktop-mail-1.1.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+NEED_EMACS=28
+
+inherit elisp desktop xdg-utils
+
+DESCRIPTION="Desktop entries for handling mailto URIs with GNU Emacs"
+HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Emacs"
+S="${WORKDIR}"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+src_compile() { :; }
+
+src_install() {
+ newmenu - emacs-mail.desktop <<-EOF
+ [Desktop Entry]
+ Type=Application
+ Name=GNU Emacs (mail)
+ NoDisplay=true
+ Exec=${EPREXIX}/usr/bin/emacs -f message-mailto %u
+ Terminal=false
+ 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}/bin/bash -c "exec ${EPREFIX}/usr/bin/emacsclient \
+--eval \\\\"(message-mailto \\\\\\\\\\\\"\\\\\$1\\\\\\\\\\\\")\\\\"" bash %u
+ Terminal=false
+ MimeType=x-scheme-handler/mailto;
+ EOF
+}
+
+pkg_postinst() {
+ xdg_desktop_database_update
+}
+
+pkg_postrm() {
+ xdg_desktop_database_update
+}