Function: rng-relative-path
rng-relative-path is a byte-compiled function defined in
rng-uri.el.gz.
Signature
(rng-relative-path PATH BASE-PATH)
Source Code
;; Defined in /usr/src/emacs/lisp/nxml/rng-uri.el.gz
(defun rng-relative-path (path base-path)
(let ((segments (rng-split-path path))
(base-segments (rng-split-path base-path)))
(when (> (length base-segments) 1)
(setq base-segments (nbutlast base-segments)))
(if (or (member "." segments)
(member ".." segments)
(member "." base-segments)
(member ".." base-segments))
path
(while (and segments
base-segments
(string= (car segments)
(car base-segments)))
(setq segments (cdr segments))
(setq base-segments (cdr base-segments)))
(while base-segments
(setq base-segments (cdr base-segments))
(setq segments (cons ".." segments)))
(when (equal (car segments) "")
(setq segments (cons "." segments)))
(rng-join-path segments))))