(rontolisp) docs
← Functions

uiop:merge-pathnames*

(uiop:merge-pathnames* specified &optional defaults)

Merges the specified path onto defaults and returns the result -- UIOP's defaults-aware variant of merge-pathnames, and the one portable libraries call to build a path relative to a data directory. Both arguments take either spelling (a pathname or a namestring); the result is a pathname.

Omitting defaults merges against "" (the namestring designating the working directory), which leaves specified unchanged -- the same answer uiop:get-pathname-defaults gives with the initial *default-pathname-defaults*.

Backend support

Works on all four backends: it is a Lisp-source definition over merge-pathnames, compiled into the program when used. The compile paths additionally fold to a literal every call whose arguments they can resolve at compile time -- a string literal, or a reference to a top-level defparameter bound to one -- which is what makes (uiop:merge-pathnames* *data-directory* "UnicodeData.txt") in a bundled library cost nothing at run time.