diff options
Diffstat (limited to 'pkgs/applications/editors/emacs/build-support/wrapper.sh')
-rw-r--r-- | pkgs/applications/editors/emacs/build-support/wrapper.sh | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/pkgs/applications/editors/emacs/build-support/wrapper.sh b/pkgs/applications/editors/emacs/build-support/wrapper.sh new file mode 100644 index 0000000000000..44762bd4582b0 --- /dev/null +++ b/pkgs/applications/editors/emacs/build-support/wrapper.sh @@ -0,0 +1,53 @@ +#!@bash@ + +IFS=: + +newLoadPath=() +newNativeLoadPath=() +addedNewLoadPath= +addedNewNativeLoadPath= + +if [[ -n $EMACSLOADPATH ]] +then + while read -rd: entry + do + if [[ -z $entry && -z $addedNewLoadPath ]] + then + newLoadPath+=(@wrapperSiteLisp@) + addedNewLoadPath=1 + fi + newLoadPath+=("$entry") + done <<< "$EMACSLOADPATH:" +else + newLoadPath+=(@wrapperSiteLisp@) + newLoadPath+=("") +fi + +# NOTE: Even though we treat EMACSNATIVELOADPATH like EMACSLOADPATH in +# this wrapper, empty elements in EMACSNATIVELOADPATH have no special +# meaning for Emacs. Only non-empty elements in EMACSNATIVELOADPATH +# will be prepended to native-comp-eln-load-path. +# https://git.savannah.gnu.org/cgit/emacs.git/tree/lisp/startup.el?id=3685387e609753293c4518be75e77c659c3b2d8d#n599 +if [[ -n $EMACSNATIVELOADPATH ]] +then + while read -rd: entry + do + if [[ -z $entry && -z $addedNewNativeLoadPath ]] + then + newNativeLoadPath+=(@wrapperSiteLispNative@) + addedNewNativeLoadPath=1 + fi + newNativeLoadPath+=("$entry") + done <<< "$EMACSNATIVELOADPATH:" +else + newNativeLoadPath+=(@wrapperSiteLispNative@) + newNativeLoadPath+=("") +fi + +export EMACSLOADPATH="${newLoadPath[*]}" +export emacsWithPackages_siteLisp=@wrapperSiteLisp@ + +export EMACSNATIVELOADPATH="${newNativeLoadPath[*]}" +export emacsWithPackages_siteLispNative=@wrapperSiteLispNative@ + +exec @prog@ "$@" |