Index: configf.scm ================================================================== --- configf.scm +++ configf.scm @@ -136,14 +136,17 @@ res) (regex-case inl (configf:comment-rx _ (loop (configf:read-line inp res) curr-section-name #f #f)) (configf:blank-l-rx _ (loop (configf:read-line inp res) curr-section-name #f #f)) - (configf:include-rx ( x include-file ) (let ((curr-dir (current-directory))) - (change-directory (pathname-directory path)) - (read-config include-file res allow-system environ-patt: environ-patt curr-section: curr-section-name) - (change-directory curr-dir) + (configf:include-rx ( x include-file ) (let ((curr-dir (current-directory)) + (conf-dir (pathname-directory path))) + (if conf-dir + (begin + (change-directory conf-dir) + (read-config include-file res allow-system environ-patt: environ-patt curr-section: curr-section-name) + (change-directory curr-dir))) (loop (configf:read-line inp res) curr-section-name #f #f))) (configf:section-rx ( x section-name ) (loop (configf:read-line inp res) section-name #f #f)) (configf:key-sys-pr ( x key cmd ) (if allow-system (let ((alist (hash-table-ref/default res curr-section-name '())) (val-proc (lambda ()