mirror of
https://github.com/nix-community/home-manager.git
synced 2026-10-30 16:10:45 +00:00
Switches `home.sessionPath` and `home.sessionSearchVariables` from concatenation to the merge helper added in the previous commit. The first merge preserves configured-first search order while removing duplicate entries. Later merge blocks preserve inherited positions. Entries that expand to an empty string are ignored. Statically empty entries also produce an evaluation warning so an accidental current-directory entry does not disappear silently. Fish gets a native merge helper because babelfish rejects the POSIX helper's quoted pattern removal, and Fish stores names ending in PATH as lists. Candidate assignments and merge calls are translated together so references to earlier search variables observe the same values as the POSIX file. The native helper also preserves newline-bearing values through Fish command substitutions. A shared behavioral fixture sources both generated files for first and later merges. It covers expansion and escaping, cross-variable references, unset and empty values, duplicates, separator-bearing entries, empty fields, Fish list shape, helper cleanup, and leading, embedded, and trailing newlines. Removes `prependToVar`, which has no consumers left and produced the self-referential form this replaces. It was public through `lib.hm.shell`, so the release notes include migration guidance.