summaryrefslogtreecommitdiff
path: root/eclass/elisp-common.eclass
diff options
context:
space:
mode:
Diffstat (limited to 'eclass/elisp-common.eclass')
-rw-r--r--eclass/elisp-common.eclass24
1 files changed, 14 insertions, 10 deletions
diff --git a/eclass/elisp-common.eclass b/eclass/elisp-common.eclass
index 117544e94b35..654b302bb39a 100644
--- a/eclass/elisp-common.eclass
+++ b/eclass/elisp-common.eclass
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# @ECLASS: elisp-common.eclass
@@ -626,12 +626,12 @@ elisp-modules-install() {
elisp-site-file-install() {
local sf="${1##*/}" my_pn="${2:-${PN}}" modules ret
- local add_header="1 {
- # Find first non-empty line
- :x; /^\$/ { n; bx; }
- # Insert a header, unless we already look at one
- /^;.*${PN}/I! s/^/;;; ${PN} site-lisp configuration\n\n/
- 1 s/^/\n/
+ local add_header="0,/\S/ {
+ # Delete any leading blank lines
+ /\S/! d
+ # Insert a header, unless we are already looking at one
+ /^;.*${PN}/I! \
+ i ;;; ${PN} site-lisp configuration -*-lexical-binding:t-*-\n
}"
[[ ${sf} == [0-9][0-9]*-gentoo*.el ]] \
@@ -711,11 +711,15 @@ elisp-site-regen() {
;; DO NOT EDIT THIS FILE
;;; Code:
+
EOF
- # Use sed instead of cat here, since files may miss a trailing newline.
- sed '$q' "${sflist[@]}" </dev/null >>"${T}"/site-gentoo.el || ret=$?
+ # Concatenate all site initialisation files.
+ # 1{/^;/s/\s*-\*-.*-\*-//} deletes file-local-var cookies from line 1.
+ # /\S/,$!d deletes any leading blank lines.
+ # $G inserts a blank line after each file.
+ sed -s '1{/^;/s/\s*-\*-.*-\*-//};/\S/,$!d;$G' "${sflist[@]}" \
+ </dev/null >>"${T}"/site-gentoo.el || ret=$?
cat <<-EOF >>"${T}"/site-gentoo.el || ret=$?
-
${page}
(provide 'site-gentoo)