b0VIM 7.31Re@Dlorryinspiron~lorry/data/dev/racket/lib/xdgbasedir/xdgbasedir.rkt 3210#"! Utp>ad>jPOF7O  X  \   c M .  { Q  v u t @  Pm@  #f)) (dir "XDG_RUNTIME_DIR" subdir) (if (string-not-empty? (getenv "XDG_RUNTIME_DIR"))(define (xdgbasedir-runtime-dir [subdir ""])(define (xdgbasedir-config-dirs [subdir ""]) (dirs "XDG_CONFIG_DIRS" subdir))(define (xdgbasedir-data-dirs [subdir ""]) (dirs "XDG_DATA_DIRS" subdir))(define (xdgbasedir-cache-home [subdir ""]) (dir "XDG_CACHE_HOME" subdir))(define (xdgbasedir-config-home [subdir ""]) (dir "XDG_CONFIG_HOME" subdir))(define (xdgbasedir-data-home [subdir ""]) (dir "XDG_DATA_HOME" subdir));==================================================; Exported Functions;================================================== (map (λ (path) (build-path path subdir)) main-paths)))) main-paths (if (equal? subdir "") (default var))]) (map (λ (path) (build-path path)) (string-split env-var ":")) (if (string-not-empty? env-var) [main-paths (let* ([env-var (getenv var)](define (dirs var subdir) (build-path main-path subdir)))) (build-path main-path) (if (equal? subdir "") (default var))]) env-var (if (string-not-empty? env-var) [main-path (let* ([env-var (getenv var)](define (dir var subdir) (and str (not (equal? str ""))))(define (string-not-empty? str) [("XDG_CONFIG_DIRS") (list (build-path "/etc" "xdg"))])) (build-path "/usr" "share"))] [("XDG_DATA_DIRS") (list (build-path "/usr" "local" "share") [("XDG_CACHE_HOME") (build-path (getenv "HOME") ".cache")] [("XDG_CONFIG_HOME") (build-path (getenv "HOME") ".config")] [("XDG_DATA_HOME") (build-path (getenv "HOME") ".local" "share")] (case var(define (default var) [xdgbasedir-runtime-dir (->* () (path-string?) (or/c path? boolean?))])) [xdgbasedir-config-dirs (->* () (path-string?) (listof path?))] [xdgbasedir-data-dirs (->* () (path-string?) (listof path?))] [xdgbasedir-cache-home (->* () (path-string?) path?)] [xdgbasedir-config-home (->* () (path-string?) path?)] [xdgbasedir-data-home (->* () (path-string?) path?)] (contract-out(provide(require racket/contract)(require racket/string); Licensed under an MIT licence. Please see LICENCE.md for details.; Copyright (C) 2013 Lawrence Woodman#lang racket/base