This is needed for individual site-init files to be loaded, since Emacs
from Git now complains about missing lexical-binding cookies.

Drop any initial blank lines when installing site-init files in
elisp-site-file-install. Instead, insert blank lines when concatenating
the files in elisp-site-regen.

Signed-off-by: Ulrich Müller <u...@gentoo.org>
---
 eclass/elisp-common.eclass | 20 ++++++++++++--------
 1 file changed, 12 insertions(+), 8 deletions(-)

diff --git a/eclass/elisp-common.eclass b/eclass/elisp-common.eclass
index 117544e94b35..b0cbd36bb621 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
@@ -627,11 +627,11 @@ 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; }
+               # Delete any leading blank lines
+               :x; /\S/! { N; s/.*\n//; bx; }
                # Insert a header, unless we already look at one
-               /^;.*${PN}/I! s/^/;;; ${PN} site-lisp configuration\n\n/
-               1 s/^/\n/
+               /^;.*${PN}/I! \
+                       s/^/;;; ${PN} site-lisp configuration  
-*-lexical-binding:t-*-\n\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.
+       # /^;/s/\s*-\*-.*// deletes file-local-var cookies from comment lines.
+       # /\S/,$!d deletes any initial blank lines.
+       # $G inserts a blank line after each file.
+       sed -s '/^;/s/\s*-\*-.*//;/\S/,$!d;$G' "${sflist[@]}" </dev/null \
+               >>"${T}"/site-gentoo.el || ret=$?
        cat <<-EOF >>"${T}"/site-gentoo.el || ret=$?
-
        ${page}
        (provide 'site-gentoo)
 
-- 
2.49.0


Reply via email to