The ppath Reference Manual

Table of Contents

Next: , Previous: , Up: (dir)   [Contents][Index]

The ppath Reference Manual

This is the ppath Reference Manual, version 0.1, generated automatically by Declt version 2.4 "Will Decker" on Wed Jun 20 12:25:09 2018 GMT+0.


Next: , Previous: , Up: Top   [Contents][Index]

1 Introduction

Build Status

A Common Lisp path strings manipulation library.

This library is a path strings manipulation library inspired by Python's os.path. All functionality from os.path is supported on major operation systems (OSX, Linux, Windows).

The philosophy behind is to use simple strings and "dumb" string manipulation functions to handle paths and filenames. Where possible the corresponding OS system functions are called.

Supported [tested] compilers: LispWorks (6.1PE and 7.0), CCL, SBCL. Tested on the following platforms:

Windows

Limitations: On Win32 assumed OS versions with Unicode support.

Linux

OSX

Usage

The library consist of 3 packages: ppath, ppath-nt and ppath-posix. The generic package ppath forwards calls to appropriate OS-dependent library. It exports only functions available for the current platform.

Semantical difference from Python's os.path module

API description

function ppath:abspath (path)

Convert relative path to absolute. If path is absolute return it unchanged. If path is empty return current directory.

On POSIX systems invariant: (abspath path) == (normpath (join (getcwd) path))

function ppath:basename (path)

Extract the base name (filename) of the path.

Example: On Windows:

CL-USER > (basename "C:\\dir\\file.txt")
=> file.txt

On POSIX:

CL-USER > (basename "/foo/bar")
=> bar

Invariant: (basename path) == (cdr (split path))

function ppath:commonprefix (&rest paths)

Get the common prefix substring of all strings in paths. The separators are not translated, so paths interpreted just as normal strings.

paths components could also be lists of strings, like results of split operation on paths. In this case the comparison happens elementwise.

Example:

CL-USER > (commonprefix '("/home/username/dir" "/home/user/test"))
=> /home/user

function ppath:dirname (path)

Get the directory name of the path.

Example:

CL-USER > (dirname "/foo/bar")
=> /foo

Example (Windows):

CL-USER > (dirname "C:\\dir\\file.txt")
=>  C:\\dir

Invariant: (dirname path) == (car (split path))

function ppath:exists (path)

Check if the path is an existing path. On POSIX returns nil for broken symbolic links.

function ppath:expanduser (PATH)

Expand ~ and ~user in the path with the contents of user's home path.

Return path unchanged if unable to expand.

On Windows the path is taken either from HOME or USERPROFILE, or constructed via HOMEPATH and HOMEDRIVE. On error just return original path value. On POSIX systems the ~ is replaced with contents of the HOME environment variable or taken from password database (/etc/passwd or similar).

Examples (POSIX): (given the user "username" with home directory /Users/username)

CL-USER > (expanduser "~/dir")
=> /Users/username/dir
CL-USER > (expanduser "~root/dir")
=> /root/dir

Windows: if HOMEPATH is "users\dir" and HOMEDRIVE is "C:\",

CL-USER > (expanduser "~test")
=> C:\users\test

function ppath:expandvars (path &optional (modify-in-quotes t))

Expand the path replacing environment variables with their contents.

The variables like ${var} and $var (and additionally %var% on Windows) are getting replaced by their values.

All unknown or malformed variables ignored and kept as it is.

The difference between Windows and POSIX systems is that on Windows variables inside single quotes are not expanded, i.e. "'$HOME'" will remain "'$HOME'", while on POSIX systems it will be expanded. The optional argument modify-in-quotes allows to change this behavior.

This behavior kept for compatibility with Python's os.path.expandvars.

Example:

CL-USER > (expandvars "$HOME/.bashrc")
=> /home/username/.bashrc
CL-USER > (osicat-posix:setenv "foo" "abcd")
=> 0
CL-USER > (expandvars "'$foo'$bar" nil)
=> '$foo'$bar
CL-USER > (expandvars "'$foo'$bar" t)
=> 'abcd'$bar

function ppath:getatime (path)

Return the last access time for the path.

Return value is seconds since Unix Epoch (1970-01-01T00:00:00Z).

Return nil if unable to access file or get its attributes.

function ppath:getctime (path)

Return the last status change time for the path.

Return value is seconds since Unix Epoch (1970-01-01T00:00:00Z).

Return nil if unable to access file or get its attributes.

function ppath:getmtime (path)

Return the last modification time for the path.

Return value is seconds since Unix Epoch (1970-01-01T00:00:00Z).

Return nil if unable to access file or get its attributes.

function ppath:getsize (path)

Get the file size in bytes of the path.

Return nil if unable to access file or get its attributes.

function ppath:isabs (path)

Determine if the path is an absolute pathname.

This function never checks for file existance nor address file system but rather performs string manipulations to determine if the path is an absolute filename.

Examples (POSIX):

CL-USER > (isabs "/Sources/lisp")
=> t
CL-USER > (isabs "my/dir")
=> nil

Examples (Windows):

CL-USER > (isabs "\\\\host-name\\share-name\\")
=> t

function ppath:isdir (path)

Determine if path is an existing directory. If the path is symlink then the invariant (and (islink path) (isdir path)) == t holds.

function ppath:isfile (path)

Determine if the path exists and a file. Returns also t for symbolic links.

function ppath:islink (path)

Determine if the path is symbolic link.

On Windows always return nil.

function ppath:ismount (path)

Test if the path is a mount point.

On POSIX it is a directory where another filesystem is mounted.

On Windows for local paths it should be an absolute path, for UNC it should be mount point of the host

Example:

CL-USER > (ismount "/mnt")
=> nil
CL-USER > (ismount "/mnt/cdrom")
=> t

function ppath:join (path &rest paths)

Join paths provided, merging (if absolute) and inserting missing separators.

Example:

CL-USER > (join "a/b" "x/y")
=> a/b\\x/y
CL-USER > (join "c:\\hello" "world/test.txt")
=> c:\\hello\\world/test.txt
CL-USER > (join "/foo" "bar" "baz")
=> /foo/bar/baz
CL-USER > (join "/foo/" "bar/" "baz/")
=> /foo/bar/baz/

function ppath:lexists (path)

Check if the path is an existing path.

Checks for existance regardless if path is a link(even broken) or a file/directory.

On Windows exists = lexists.

function ppath:normcase (path)

Normalize the path.

On Windows, replace slash with backslahes and lowers the case of the path.

On POSIX do nothing and just return path.

function ppath:normpath (path)

Normalize path, removing unnecessary/redundant parts, like dots, double slashes, etc. Expanding .. as well.

Example:

CL-USER > (normpath "///..//./foo/.//bar")
=> /foo/bar

function ppath:realpath (path)

Return real path of the file, following symlinks if necessary. On Windows just return (abspath path). The path shall be already expanded properly.

Return nil if path does not exist or not accessible

function ppath:relpath (path &optional (start "."))

Return the relative version of the path.

If startdir provided, use this as a current directory to resolve against.

function ppath:samefile (path1 path2)

Determine if path1 and path2 are the paths to the same file. If one of the paths is symlink to another they considered the same.

Not available on Windows.

function ppath:sameopenfile (stream1 stream2)

Determine if the open file streams stream1 and stream2 are of the same file.

Not available on Windows.

function ppath:split (path)

Split the path into the pair (directory . filename). If the path ends with "/", the file component is empty.

On Windows, if the head is a drive name, the slashes are not stripped from it.

Examples: (On Windows)

CL-USER > (split "c:\\Sources\\lisp")
=> ("c:\\Sources" . "lisp")
CL-USER > (split "\\\\host-name\\share-name\\dir1\\dir2")
=> ("\\\\host-name\\share-name\\dir1" . "dir2")

(on POSIX)

CL-USER > (split "/foo/bar")
=> ("/foo" . "bar")
CL-USER > (split "/foo/bar/")
=> ("/foo/bar/" . "")

function ppath:splitdrive (path)

Split a path to the drive (with letter) and path after the drive.

This function also parses the UNC paths, providing \hostname\mountpoint as a drive part.

On POSIX drive is an empty string.

Invariant: (concatenate 'string (car (splitdrive path)) (cdr (splitdrive path))) == path

Example:

CL-USER > (splitdrive "C:\Sources\lisp")
=> ("C:" "\Sources\lisp")

function ppath:splitext (path)

Split path to root and extension. Return a pair (root . ext)

If the filename component of the path starts with dot, like .cshrc, considering no extension.

Invariant: (concatenate 'string root ext) == path

Examples:

CL-USER > (splitext "~/test.cshrc")
=> ("~/test" . ".cshrc")
CL-USER > (splitext "~/notes.txt")
=> ("~/notes" . ".txt")

function ppath:splitunc (path)

Split a pathname with UNC path. UNC syntax: \\host-name\share-name\file_path

Return a cons pair ("\\host-name\share-name" . "\file_path")

Not available on POSIX.

Author

Copyrights

License

Licensed under the BSD License.


Next: , Previous: , Up: Top   [Contents][Index]

2 Systems

The main system appears first, followed by any subsystem dependency.


Previous: , Up: Systems   [Contents][Index]

2.1 ppath

Author

Alexey Veretennikov

License

BSD

Description

A Common Lisp path handling library based on Python’s os.path module

Long Description

[![Build Status](https://travis-ci.org/fourier/ppath.svg?branch=master)](https://travis-ci.org/fourier/ppath)
# A Common Lisp path strings manipulation library.

This library is a path strings manipulation library inspired by Python’s **os.path**. All functionality from **os.path** is supported on major operation systems (OSX, Linux, Windows).

The philosophy behind is to use simple strings and "dumb" string manipulation functions to handle paths and filenames. Where possible the corresponding OS system functions are called.

Supported [tested] compilers: LispWorks (6.1PE and 7.0), CCL, SBCL.
Tested on the following platforms:

#### Windows
- Clozure CL Version 1.11-r16635 (WindowsX8664)
- LispWorks 6.1.1 Personal Edition 32bit
- LispWorks 7.0 Hobbyist Edition 32bit
- SBCL 1.3.15

Limitations: On Win32 assumed OS versions with Unicode support.

#### Linux
- SBCL 1.3.14
- CCL 1.11.5

#### OSX
- Lispworks 7.0 Hobbyist DV Edition 32bit
- Clozure CL Version 1.11

## Usage
The library consist of 3 packages: *ppath*, *ppath-nt* and *ppath-posix*. The generic package *ppath* forwards calls to appropriate OS-dependent library. It exports only functions available for the current platform.

## Semantical difference from Python’s os.path module
- Where possible do not raise an error, but rather return “‘nil“‘.
- “‘samestat“‘ function is not implemented (makes no sense since osicat’s wrapper around stat()/fstat() calls is used)
- “‘walk“‘ is not implemented (there is already a couple of good implementations around)

## API description

### *function* ppath:abspath (“‘path“‘)
Convert relative “‘path“‘ to absolute.
If path is absolute return it unchanged.
If path is empty return current directory.

On POSIX systems invariant:
“‘(abspath path) == (normpath (join (getcwd) path))“‘



### *function* ppath:basename (“‘path“‘)
Extract the base name (filename) of the “‘path“‘.

Example:
On Windows:
“‘lisp
CL-USER > (basename "C:\\dir\\file.txt")
=> file.txt
“‘

On POSIX:
“‘lisp
CL-USER > (basename "/foo/bar")
=> bar
“‘

Invariant:
“‘(basename path) == (cdr (split path))“‘


### *function* ppath:commonprefix (“‘&rest paths“‘)
Get the common prefix substring of all strings in “‘paths“‘. The separators are not translated, so paths interpreted just as normal strings.

“‘paths“‘ components could also be lists of strings, like results of “‘split“‘ operation on paths. In this case the comparison happens elementwise.

Example:

“‘lisp
CL-USER > (commonprefix ’("/home/username/dir" "/home/user/test"))
=> /home/user
“‘

### *function* ppath:dirname (“‘path“‘)
Get the directory name of the “‘path“‘.

Example:

“‘lisp
CL-USER > (dirname "/foo/bar")
=> /foo
“‘

Example (Windows):

“‘lisp
CL-USER > (dirname "C:\\dir\\file.txt")
=> C:\\dir
“‘
Invariant: “‘(dirname path) == (car (split path))“‘

### *function* ppath:exists (“‘path“‘)
Check if the “‘path“‘ is an existing path.
On POSIX returns “‘nil“‘ for broken symbolic links.


### *function* ppath:expanduser (“‘PATH“‘)
Expand ~ and ~user in the “‘path“‘ with the contents of user’s home path.

* ~ - home directory
* ~user - user’s home directory

Return “‘path“‘ unchanged if unable to expand.

On Windows the path is taken either from **HOME** or **USERPROFILE**, or constructed via **HOMEPATH** and **HOMEDRIVE**.
On error just return original “‘path“‘ value.
On POSIX systems the ~ is replaced with contents of the **HOME** environment variable or taken from password database (“‘/etc/passwd“‘ or similar).

Examples (POSIX): (given the user "username" with home directory /Users/username)

“‘lisp
CL-USER > (expanduser "~/dir")
=> /Users/username/dir
CL-USER > (expanduser "~root/dir")
=> /root/dir
“‘

Windows: if **HOMEPATH** is "users\dir" and **HOMEDRIVE** is "C:\\",

“‘lisp
CL-USER > (expanduser "~test")
=> C:\users\test
“‘

### *function* ppath:expandvars (“‘path &optional (modify-in-quotes t)“‘)

Expand the “‘path“‘ replacing environment variables with their contents.

The variables like “‘${var}“‘ and “‘$var“‘ (and additionally “‘%var%“‘ on Windows) are getting replaced by their values.

All unknown or malformed variables ignored and kept as it is.

The difference between Windows and POSIX systems is that on Windows variables inside single quotes are not expanded, i.e. "“‘’$HOME’“‘" will remain "“‘’$HOME’“‘", while on POSIX systems it will be expanded. The optional argument “‘modify-in-quotes“‘ allows to change this behavior.
This behavior kept for compatibility with Python’s “‘os.path.expandvars“‘.

Example:
“‘lisp
CL-USER > (expandvars "$HOME/.bashrc")
=> /home/username/.bashrc
CL-USER > (osicat-posix:setenv "foo" "abcd")
=> 0
CL-USER > (expandvars "’$foo’$bar" nil)
=> ’$foo’$bar
CL-USER > (expandvars "’$foo’$bar" t)
=> ’abcd’$bar
“‘

### *function* ppath:getatime (“‘path“‘)
Return the last access time for the “‘path“‘.

Return value is seconds since Unix Epoch (1970-01-01T00:00:00Z).

Return “‘nil“‘ if unable to access file or get its attributes.

### *function* ppath:getctime (“‘path“‘)
Return the last status change time for the “‘path“‘.

Return value is seconds since Unix Epoch (1970-01-01T00:00:00Z).

Return “‘nil“‘ if unable to access file or get its attributes.

### *function* ppath:getmtime (“‘path“‘)
Return the last modification time for the “‘path“‘.

Return value is seconds since Unix Epoch (1970-01-01T00:00:00Z).

Return “‘nil“‘ if unable to access file or get its attributes.

### *function* ppath:getsize (“‘path“‘)
Get the file size in bytes of the “‘path“‘.

Return “‘nil“‘ if unable to access file or get its attributes.

### *function* ppath:isabs (“‘path“‘)
Determine if the “‘path“‘ is an absolute pathname.

This function never checks for file existance nor address
file system but rather performs string manipulations to
determine if the “‘path“‘ is an absolute filename.

Examples (POSIX):
“‘lisp
CL-USER > (isabs "/Sources/lisp")
=> t
CL-USER > (isabs "my/dir")
=> nil
“‘

Examples (Windows):
“‘lisp
CL-USER > (isabs "\\\\host-name\\share-name\\")
=> t
“‘

### *function* ppath:isdir (“‘path“‘)
Determine if “‘path“‘ is an existing directory. If the “‘path“‘ is symlink then the invariant
“‘(and (islink path) (isdir path)) == t“‘
holds.

### *function* ppath:isfile (“‘path“‘)
Determine if the “‘path“‘ exists and a file. Returns also “‘t“‘ for symbolic links.

### *function* ppath:islink (“‘path“‘)
Determine if the “‘path“‘ is symbolic link.

On Windows always return “‘nil“‘.

### *function* ppath:ismount (“‘path“‘)
Test if the “‘path“‘ is a mount point.

On POSIX it is a directory where another filesystem is mounted.

On Windows for local paths it should be an absolute path, for UNC it should be mount point of the host

Example:
“‘lisp
CL-USER > (ismount "/mnt")
=> nil
CL-USER > (ismount "/mnt/cdrom")
=> t
“‘

### *function* ppath:join (“‘path &rest paths“‘)
Join paths provided, merging (if absolute) and
inserting missing separators.

Example:
“‘lips
CL-USER > (join "a/b" "x/y")
=> a/b\\x/y
CL-USER > (join "c:\\hello" "world/test.txt")
=> c:\\hello\\world/test.txt
CL-USER > (join "/foo" "bar" "baz")
=> /foo/bar/baz
CL-USER > (join "/foo/" "bar/" "baz/")
=> /foo/bar/baz/
“‘

### *function* ppath:lexists (“‘path“‘)
Check if the “‘path“‘ is an existing path.

Checks for existance regardless if “‘path“‘ is a link(even broken) or a file/directory.

On Windows “‘exists“‘ = “‘lexists“‘.

### *function* ppath:normcase (“‘path“‘)
Normalize the “‘path“‘.

On Windows, replace slash with backslahes and lowers the case of the “‘path“‘.

On POSIX do nothing and just return “‘path“‘.

### *function* ppath:normpath (“‘path“‘)
Normalize path, removing unnecessary/redundant parts, like dots, double slashes, etc. Expanding “‘..“‘ as well.

Example:
“‘lisp
CL-USER > (normpath "///..//./foo/.//bar")
=> /foo/bar
“‘

### *function* ppath:realpath (“‘path“‘)
Return real “‘path“‘ of the file, following symlinks if necessary. On Windows just return (abspath path). The “‘path“‘ shall be already expanded properly.

Return “‘nil“‘ if “‘path“‘ does not exist or not accessible

### *function* ppath:relpath (“‘path &optional (start ".")“‘)
Return the relative version of the “‘path“‘.

If “‘startdir“‘ provided, use this as a current directory to resolve against.

### *function* ppath:samefile (“‘path1 path2“‘)
Determine if “‘path1“‘ and “‘path2“‘ are the paths to the same file.
If one of the paths is symlink to another they considered the same.

*Not available on Windows.*

### *function* ppath:sameopenfile (“‘stream1 stream2“‘)
Determine if the open file streams “‘stream1“‘ and “‘stream2“‘ are of the same file.

*Not available on Windows.*

### *function* ppath:split (“‘path“‘)
Split the path into the pair “‘(directory . filename)“‘.
If the path ends with "/", the file component is empty.

On Windows, if the head is a drive name, the slashes are not stripped from it.

Examples:
(On Windows)
“‘lisp
CL-USER > (split "c:\\Sources\\lisp")
=> ("c:\\Sources" . "lisp")
CL-USER > (split "\\\\host-name\\share-name\\dir1\\dir2")
=> ("\\\\host-name\\share-name\\dir1" . "dir2")
“‘

(on POSIX)
“‘lisp
CL-USER > (split "/foo/bar")
=> ("/foo" . "bar")
CL-USER > (split "/foo/bar/")
=> ("/foo/bar/" . "")
“‘

### *function* ppath:splitdrive (“‘path“‘)
Split a “‘path“‘ to the drive (with letter) and path after the drive.

This function also parses the UNC paths, providing \\hostname\mountpoint as a drive part.

On POSIX drive is an empty string.

Invariant: “‘(concatenate ’string (car (splitdrive path)) (cdr (splitdrive path))) == path“‘

Example:
“‘lisp
CL-USER > (splitdrive "C:\Sources\lisp")
=> ("C:" "\Sources\lisp")
“‘

### *function* ppath:splitext (“‘path“‘)
Split “‘path“‘ to root and extension. Return a pair “‘(root . ext)“‘

If the filename component of the “‘path“‘ starts with dot, like “‘.cshrc“‘, considering no extension.

Invariant: “‘(concatenate ’string root ext) == path“‘

Examples:
“‘lisp
CL-USER > (splitext "~/test.cshrc")
=> ("~/test" . ".cshrc")
CL-USER > (splitext "~/notes.txt")
=> ("~/notes" . ".txt")
“‘

### *function* ppath:splitunc (“‘path“‘)
Split a pathname with UNC path. UNC syntax: “‘\\host-name\share-name\file_path“‘

Return a cons pair “‘("\\host-name\share-name" . "\file_path")“‘

*Not available on POSIX.*


## Author

* Alexey Veretennikov (alexey.veretennikov@gmail.com)

## Copyrights

- Python and Python documentation Copyright (c) 1990-2018, Python Software Foundation.
- Parts of Python documentation on https://docs.python.org/2.7/library/os.path.html were used and adapted when necessary to the current implementation.

## License

Licensed under the BSD License.

Version

0.1

Dependencies
Source

ppath.asd (file)

Component

src (module)


Next: , Previous: , Up: Top   [Contents][Index]

3 Modules

Modules are listed depth-first from the system components tree.


Next: , Previous: , Up: Modules   [Contents][Index]

3.1 ppath/src

Parent

ppath (system)

Location

src/

Components

Previous: , Up: Modules   [Contents][Index]

3.2 ppath/src/details

Parent

src (module)

Location

src/details/

Components

Next: , Previous: , Up: Top   [Contents][Index]

4 Files

Files are sorted by type and then listed depth-first from the systems components trees.


Previous: , Up: Files   [Contents][Index]

4.1 Lisp


Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.1 ppath.asd

Location

ppath.asd

Systems

ppath (system)

Packages

ppath-asd


Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.2 ppath/src/details/constants.lisp

Parent

details (module)

Location

src/details/constants.lisp

Packages

ppath.details.constants

Exported Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.3 ppath/src/details/posix-cffi.lisp

Dependency

constants.lisp (file)

Parent

details (module)

Location

src/details/posix-cffi.lisp

Packages

ppath.details.posix.cffi

Exported Definitions

getpid (function)

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.4 ppath/src/details/generic.lisp

Dependency

posix-cffi.lisp (file)

Parent

details (module)

Location

src/details/generic.lisp

Packages

ppath.details.generic

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.5 ppath/src/details/posix.lisp

Dependency

generic.lisp (file)

Parent

details (module)

Location

src/details/posix.lisp

Packages

ppath.details.posix

Exported Definitions
Internal Definitions

Previous: , Up: Lisp files   [Contents][Index]

4.1.6 ppath/src/ppath.lisp

Dependency

details (module)

Parent

src (module)

Location

src/ppath.lisp

Packages

ppath

Exported Definitions
Internal Definitions

splitunc (function)


Next: , Previous: , Up: Top   [Contents][Index]

5 Packages

Packages are listed by definition order.


Next: , Previous: , Up: Packages   [Contents][Index]

5.1 ppath-asd

Source

ppath.asd

Use List

Next: , Previous: , Up: Packages   [Contents][Index]

5.2 ppath.details.constants

Source

constants.lisp (file)

Use List
Used By List

ppath.details.posix

Exported Definitions

Next: , Previous: , Up: Packages   [Contents][Index]

5.3 ppath.details.posix.cffi

Source

posix-cffi.lisp (file)

Use List
Exported Definitions

getpid (function)

Internal Definitions

Next: , Previous: , Up: Packages   [Contents][Index]

5.4 ppath.details.generic

Source

generic.lisp (file)

Use List
Exported Definitions
Internal Definitions

Next: , Previous: , Up: Packages   [Contents][Index]

5.5 ppath.details.posix

Source

posix.lisp (file)

Nickname

ppath-posix

Use List
Exported Definitions
Internal Definitions

Previous: , Up: Packages   [Contents][Index]

5.6 ppath

Source

ppath.lisp (file)

Use List
Exported Definitions
Internal Definitions

splitunc (function)


Next: , Previous: , Up: Top   [Contents][Index]

6 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


Next: , Previous: , Up: Definitions   [Contents][Index]

6.1 Exported definitions


Next: , Previous: , Up: Exported definitions   [Contents][Index]

6.1.1 Constants

Constant: +current-dir+
Package

ppath.details.constants

Source

constants.lisp (file)

Constant: +path-separator+
Package

ppath.details.constants

Source

constants.lisp (file)

Constant: +posix-separator+
Package

ppath.details.constants

Source

constants.lisp (file)

Constant: +secs-between-epochs+

Seconds between 1.1.1601 and 1.1.1970

Package

ppath.details.constants

Source

constants.lisp (file)

Constant: +sep-string+
Package

ppath.details.constants

Source

constants.lisp (file)

Constant: +separator+
Package

ppath.details.constants

Source

constants.lisp (file)

Constant: +unc-prefix+
Package

ppath.details.constants

Source

constants.lisp (file)

Constant: +up-dir+
Package

ppath.details.constants

Source

constants.lisp (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

6.1.2 Functions

Function: abspath PATH

Return an absolute path.

Package

ppath.details.posix

Source

posix.lisp (file)

Function: abspath PATH

Convert relative PATH to absolute. If path is absolute return it unchanged, if path is empty return current directory

On POSIX systems invariant:
(abspath path) == (normpath (join (getcwd) path))
holds

Package

ppath

Source

ppath.lisp (file)

Function: basename PATH

Returns filename component of the PATH

Package

ppath.details.posix

Source

posix.lisp (file)

Function: basename PATH

Extract the base name (filename) of the PATH.

Example:
On Windows:
CL-USER > (basename "C:\\dir\\file.txt")
=> file.txt

On POSIX:
CL-USER > (basename "/foo/bar")
=> bar

Invariant: (basename path) == (cdr (split path))

Package

ppath

Source

ppath.lisp (file)

Function: commonprefix &rest PATHS

Get the common prefix substring of all strings in PATHS. PATHS components could also be lists of strings, like results of SPLIT operation on paths.
If no common prefix return empty string.

Package

ppath.details.generic

Source

generic.lisp (file)

Function: commonprefix &rest PATHS

Get the common prefix substring of all strings in PATHS. The separators are not translated, so paths interpreted just as normal strings.
PATHS components could also be lists of strings, like results of
SPLIT operation on paths. In this case the comparison happens elementwise.

Example:
CL-USER > (commonprefix ’("/home/username/dir" "/home/user/test"))
=> /home/user

Package

ppath

Source

ppath.lisp (file)

Function: concat &rest STRS

Concatenate strings in a portable manner, converting to unicode string if necessary

Package

ppath.details.generic

Source

generic.lisp (file)

Function: dirname PATH

Get the directory name of the PATH.

Example:
CL-USER > (dirname "/foo/bar")
=> /foo

Example (Windows):
CL-USER > (dirname "C:\\dir\\file.txt")
=> C:\\dir

Invariant: (dirname path) == (car (split path))

Package

ppath

Source

ppath.lisp (file)

Function: exists PATH

Return true if path exists. If file is a broken link return nil

Package

ppath.details.posix

Source

posix.lisp (file)

Function: exists PATH

Check if the PATH is an existing path.
On POSIX returns nil for broken symbolic links.

Package

ppath

Source

ppath.lisp (file)

Function: expanduser PATH

Expand ~ and ~user inside the PATH.
If the PATH not starts with ~ it return unchanged. Return PATH unchanged if unable to expand

Package

ppath.details.posix

Source

posix.lisp (file)

Function: expanduser PATH

Expand ~ and ~user in the PATH with the contents of user’s home path.
~ - home directory
~user - user’s home directory
Return PATH unchanged if unable to expand.

On Windows the path is taken either from HOME or USERPROFILE, or constructed via HOMEPATH and HOMEDRIVE.
On error just return original PATH value.
On POSIX systems the ~ is replaced with contents of the HOME environment variable or taken from password database (/etc/passwd or similar).

Examples (POSIX): (given the user "username" with home directory /Users/username)
CL-USER > (expanduser "~/dir")
=> /Users/username/dir
CL-USER > (expanduser "~root/dir")
=> /root/dir

Windows: if HOMEPATH is "users\dir" and HOMEDRIVE is "C:\\",
CL-USER > (expanduser "~test")
=> C:\users\test

Package

ppath

Source

ppath.lisp (file)

Function: expandvars PATH &optional MODIFY-IN-QUOTES

Expand environment variables in PATH of form $VAR and ${VAR}, if variables exist. Otherwise they stay unchanged in the output. Optional argument MODIFY-IN-QUOTES if set to t (default) perform replacement inside single quotes. Otherwise strings like ’$HOME’ will left as it is.

Package

ppath.details.posix

Source

posix.lisp (file)

Function: expandvars PATH &optional MODIFY-IN-QUOTES

Expand the PATH replacing environment variables with their contents.
The variables like ${var} and $var (and additionally %var% on Windows) are getting replaced by their values.
All unknown or malformed variables ignored and kept as it is.

The difference between Windows and Posix systems is that on Windows variables inside single quotes are not
expanded, i.e. "’$HOME’" will remain "’$HOME’", while on Posix systems it will be expanded. The optional argument MODIFY-IN-QUOTES allows to change this behavior. This behavior kept for compatibility with Python’s os.path.expandvars.

Example:
CL-USER > (expandvars "$HOME/.bashrc")
=> /home/fourier/.bashrc

CL-USER > (osicat-posix:setenv "foo" "abcd")
=> 0
CL-USER > (expandvars "’$foo’$bar" nil)
=> ’$foo’$bar
CL-USER > (expandvars "’$foo’$bar" t)
=> ’abcd’$bar

Package

ppath

Source

ppath.lisp (file)

Function: get-temp-path ()

Return the path to the temporary files directory

Package

ppath.details.generic

Source

generic.lisp (file)

Function: getatime PATH

Return the last access time for the PATH.
Return value is seconds since Unix Epoch (1970-01-01T00:00:00Z).

Package

ppath.details.posix

Source

posix.lisp (file)

Function: getatime PATH

Return the last access time for the PATH.
Return value is seconds since Unix Epoch (1970-01-01T00:00:00Z). Return nil if unable to access file or get its attributes.

Package

ppath

Source

ppath.lisp (file)

Function: getctime PATH

Return the last status change time for the PATH.
Return value is seconds since Unix Epoch (1970-01-01T00:00:00Z).

Package

ppath.details.posix

Source

posix.lisp (file)

Function: getctime PATH

Return the last status change time for the PATH.
Return value is seconds since Unix Epoch (1970-01-01T00:00:00Z). Return nil if unable to access file or get its attributes.

Package

ppath

Source

ppath.lisp (file)

Function: getcwd ()

Get the current working directory as a string

Package

ppath.details.generic

Source

generic.lisp (file)

Function: getenv NAME

Get system environment variable value.

Package

ppath.details.generic

Source

generic.lisp (file)

Function: getmtime PATH

Return the last modification time for the PATH.
Return value is seconds since Unix Epoch (1970-01-01T00:00:00Z).

Package

ppath.details.posix

Source

posix.lisp (file)

Function: getmtime PATH

Return the last modification time for the PATH.
Return value is seconds since Unix Epoch (1970-01-01T00:00:00Z). Return nil if unable to access file or get its attributes.

Package

ppath

Source

ppath.lisp (file)

Function: getpid ()
Package

ppath.details.posix.cffi

Source

posix-cffi.lisp (file)

Function: getpid ()

Return the current process id

Package

ppath.details.generic

Source

generic.lisp (file)

Function: getsize PATH

Return the file size

Package

ppath.details.posix

Source

posix.lisp (file)

Function: getsize PATH

Get the file size in bytes of the PATH.
Return nil if unable to access file or get its attributes.

Package

ppath

Source

ppath.lisp (file)

Function: isabs PATH

Return t if the path is absolute.

Package

ppath.details.posix

Source

posix.lisp (file)

Function: isabs PATH

Determine if the PATH is an absolute pathname.
This function never checks for file existance nor address file system but rather performs string manipulations to determine if the PATH is an absolute filename.

Examples (POSIX):
CL-USER > (isabs "/Sources/lisp")
=> t
CL-USER > (isabs "my/dir")
=> nil

Examples (Windows):
CL-USER > isabs "\\\\host-name\\share-name\\")
=> t

Package

ppath

Source

ppath.lisp (file)

Function: isdir PATH

Determine if the PATH is a directory

Package

ppath.details.posix

Source

posix.lisp (file)

Function: isdir PATH

Determine if PATH is an existing directory. If the PATH is symlink then the invariant (and (islink PATH) (isdir PATH)) holds.

Package

ppath

Source

ppath.lisp (file)

Function: isfile PATH

Determine if the PATH is a regular file

Package

ppath.details.posix

Source

posix.lisp (file)

Function: isfile PATH

Determine if the PATH exists and a file. Returns also t for symbolic links.

Package

ppath

Source

ppath.lisp (file)

Function: islink PATH

Determine if the PATH is a symbolic link

Package

ppath.details.posix

Source

posix.lisp (file)

Function: islink PATH

Determine if the PATH is symbolic link. On Windows always return nil.

Package

ppath

Source

ppath.lisp (file)

Function: ismount PATH

Determine if the PATH is a mount point

Package

ppath.details.posix

Source

posix.lisp (file)

Function: ismount PATH

Test if the path is a mount point.
On POSIX it is a directory where another filesystem is mounted. On Windows for local paths it should be
an absolute path, for UNC it should be mount point of the host

Example:
CL-USER > (ismount "/mnt")
=> nil
CL-USER > (ismount "/mnt/cdrom")
=> t

Package

ppath

Source

ppath.lisp (file)

Function: join PATH &rest PATHS
Package

ppath.details.posix

Source

posix.lisp (file)

Function: join PATH &rest PATHS

Join paths provided, merging (if absolute) and inserting missing separators.

Example:
CL-USER > (join "a/b" "x/y")
=> a/b\\x/y
CL-USER > (join "c:\\hello" "world/test.txt") => c:\\hello\\world/test.txt
CL-USER > (join "/foo" "bar" "baz")
=> /foo/bar/baz
CL-USER > (join "/foo/" "bar/" "baz/")
=> /foo/bar/baz/

Package

ppath

Source

ppath.lisp (file)

Function: lexists PATH

Return true if path exists, regardless if its a link(even broken) or a file/directory

Package

ppath.details.posix

Source

posix.lisp (file)

Function: lexists PATH

Check if the PATH is an existing path.
Checks for existance regardless if PATH is a link(even broken) or a file/directory. On Windows exists=lexists.

Package

ppath

Source

ppath.lisp (file)

Function: normcase PATH

Normalize case of PATH.
On case-sensitive file systems (default on Linux and OSX) just returns PATH unchanged

Package

ppath.details.posix

Source

posix.lisp (file)

Function: normcase PATH

Normalize the PATH.
On Windows, replace slash with backslahes and lowers the case of the PATH. On POSIX do nothing and just return PATH.

Package

ppath

Source

ppath.lisp (file)

Function: normpath PATH

Normalize path, removing unnecessary/redundant parts, like dots, double slashes, etc. Expanding .. as well.
Example:
///..//./foo/.//bar => /foo/bar

Package

ppath.details.posix

Source

posix.lisp (file)

Function: normpath PATH

Normalize path, removing unnecessary/redundant parts, like dots, double slashes, etc. Expanding .. as well.

Example:
CL-USER > (normpath "///..//./foo/.//bar")
=> /foo/bar

Package

ppath

Source

ppath.lisp (file)

Function: realpath FILENAME

Return real path of the file, following symlinks if necessary

Package

ppath.details.posix

Source

posix.lisp (file)

Function: realpath PATH

Return real PATH of the file, following symlinks if necessary. On Windows just return (abspath path).
The PATH shall be already expanded properly.
Return nil if PATH does not exist or not accessible

Package

ppath

Source

ppath.lisp (file)

Function: relpath PATH &optional START

Convert PATH from absolute to relative

Package

ppath.details.posix

Source

posix.lisp (file)

Function: relpath PATH &optional START

Return the relative version of the PATH.
If STARTDIR specified, use this as a current directory to resolve against.

Package

ppath

Source

ppath.lisp (file)

Function: samefile PATH1 PATH2

Determine if PATH1 and PATH2 are the paths to the same file.
If one of the paths is symlink to another they considered the same.

Package

ppath.details.posix

Source

posix.lisp (file)

Function: samefile PATH1 PATH2

Determine if PATH1 and PATH2 are the paths to the same file.
If one of the paths is symlink to another they considered the same.

Not available on Windows.

Package

ppath

Source

ppath.lisp (file)

Function: sameopenfile STREAM1 STREAM2

Determine if the open file streams STREAM1 and STREAM2 are of the same file

Package

ppath.details.posix

Source

posix.lisp (file)

Function: sameopenfile FP1 FP2

Determine if the open file streams STREAM1 and STREAM2 are of the same file.

Not available on Windows.

Package

ppath

Source

ppath.lisp (file)

Function: split PATH

Split the path into the pair (directory . filename). If the path ends with "/", the file component is empty

Package

ppath.details.posix

Source

posix.lisp (file)

Function: split PATH

Split the path into the pair (directory . filename).
If the path ends with "/", the file component is empty

On Windows, if the head is a drive name, the slashes are not stripped from it.

Examples:
(On Windows)
CL-USER > (split "c:\\Sources\\lisp")
=> ("c:\\Sources" . "lisp")
CL-USER > (split "\\\\host-name\\share-name\\dir1\\dir2")
=> ("\\\\host-name\\share-name\\dir1" . "dir2")
(on POSIX)
CL-USER > (split "/foo/bar")
=> ("/foo" . "bar")
CL-USER > (split "/foo/bar/")
=> ("/foo/bar/" . "")

Package

ppath

Source

ppath.lisp (file)

Function: splitdrive PATH

Split a path to the drive (with letter) and path after drive.
This function also parses the UNC paths, providing \\hostname\mountpoint
as a drive part.

On POSIX drive is an empty string.

Invariant: (concatenate ’string (car (splitdrive path)) (cdr (splitdrive path))) == path

Example:
CL-USER > (splitdrive "C:\Sources\lisp")
=> ("C:" "\Sources\lisp")

Package

ppath

Source

ppath.lisp (file)

Function: splitext PATH

Split path to path and extension. Extension is the text after the last dot.
Invariant: (concatenate ’string root ext) == p)

Package

ppath.details.generic

Source

generic.lisp (file)

Function: splitext PATH

Split PATH to root and extension. Return a pair (root . ext)
If the filename component of the PATH starts with dot, like .cshrc, considering no extension. Invariant: (concatenate ’string root ext) == path

Examples:
CL-USER > (splitext "~/test.cshrc")
=> ("~/test" . ".cshrc")
CL-USER > (splitext "~/notes.txt")
=> ("~/notes" . ".txt")

Package

ppath

Source

ppath.lisp (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

6.1.3 Conditions

Condition: path-error ()
Package

ppath.details.generic

Source

generic.lisp (file)

Direct superclasses

error (condition)

Direct methods
Direct slots
Slot: function
Initargs

:function

Initform

(quote (quote ppath.details.generic::unknown))

Readers

path-error-function (generic function)

Slot: reason
Initargs

:reason

Readers

reason (generic function)


Previous: , Up: Exported definitions   [Contents][Index]

6.1.4 Types

Type: string-type ()
Package

ppath.details.generic

Source

generic.lisp (file)


Previous: , Up: Definitions   [Contents][Index]

6.2 Internal definitions


Next: , Previous: , Up: Internal definitions   [Contents][Index]

6.2.1 Constants

Constant: +path-max+
Package

ppath.details.posix.cffi

Source

posix-cffi.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

6.2.2 Macros

Macro: osicat-check-no-file &body BODY
Package

ppath.details.posix

Source

posix.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

6.2.3 Functions

Function: array-to-hex ARR
Package

ppath.details.posix.cffi

Source

posix-cffi.lisp (file)

Function: dirname PATH

Returns directory component of the PATH

Package

ppath.details.posix

Source

posix.lisp (file)

Function: fd-from-stream STREAM

Get the posix file handle from open STREAM

Package

ppath.details.posix

Source

posix.lisp (file)

Function: foreign-ptr-to-string PTR LENGTH
Package

ppath.details.posix.cffi

Source

posix-cffi.lisp (file)

Function: getpwnam USERNAME

Get the list of values from DirectoryService (and /etc/passwd) by user name. Returns the list:
username
password(will have only * most likely)
user id
group id
full user name
user home directory
user shell

Package

ppath.details.posix

Source

posix.lisp (file)

Function: getpwuid UID

Get the list of values from DirectoryService (and /etc/passwd) by user id. Returns the list:
username
password(will have only * most likely)
user id
group id
full user name
user home directory
user shell

Package

ppath.details.posix

Source

posix.lisp (file)

Function: getuid ()

Get the current user id

Package

ppath.details.posix

Source

posix.lisp (file)

Function: or-strings ARG &rest ARGS

Auxulary helper function, return the first not empty string from its arguments

Package

ppath.details.posix

Source

posix.lisp (file)

Function: samestat ST1 ST2

Tests if 2 osicat-posix:stat structs are the same

Package

ppath.details.posix

Source

posix.lisp (file)

Function: split-components PATH

Splits the path to the list of elements using slash as a separator. Separators are not omitted. Example:
(split-components "/abc/def/gh//12")
=> ("/" "abc" "/" "def" "/" "gh" "//" "12")

Package

ppath.details.posix

Source

posix.lisp (file)

Function: splitunc PATH

Split a pathname with UNC path. UNC syntax: \\host-name\share-name\file_path
Return a cons pair (\\host-name\share-name . \file_path)

Not available on POSIX.

Package

ppath

Source

ppath.lisp (file)


Previous: , Up: Internal definitions   [Contents][Index]

6.2.4 Generic functions

Generic Function: path-error-function CONDITION
Package

ppath.details.generic

Methods
Method: path-error-function (CONDITION path-error)
Source

generic.lisp (file)

Generic Function: reason CONDITION
Package

ppath.details.generic

Methods
Method: reason (CONDITION path-error)
Source

generic.lisp (file)


Previous: , Up: Top   [Contents][Index]

Appendix A Indexes


Next: , Previous: , Up: Indexes   [Contents][Index]

A.1 Concepts

Jump to:   F   L   M   P  
Index Entry  Section

F
File, Lisp, ppath.asd: The ppath<dot>asd file
File, Lisp, ppath/src/details/constants.lisp: The ppath/src/details/constants<dot>lisp file
File, Lisp, ppath/src/details/generic.lisp: The ppath/src/details/generic<dot>lisp file
File, Lisp, ppath/src/details/posix-cffi.lisp: The ppath/src/details/posix-cffi<dot>lisp file
File, Lisp, ppath/src/details/posix.lisp: The ppath/src/details/posix<dot>lisp file
File, Lisp, ppath/src/ppath.lisp: The ppath/src/ppath<dot>lisp file

L
Lisp File, ppath.asd: The ppath<dot>asd file
Lisp File, ppath/src/details/constants.lisp: The ppath/src/details/constants<dot>lisp file
Lisp File, ppath/src/details/generic.lisp: The ppath/src/details/generic<dot>lisp file
Lisp File, ppath/src/details/posix-cffi.lisp: The ppath/src/details/posix-cffi<dot>lisp file
Lisp File, ppath/src/details/posix.lisp: The ppath/src/details/posix<dot>lisp file
Lisp File, ppath/src/ppath.lisp: The ppath/src/ppath<dot>lisp file

M
Module, ppath/src: The ppath/src module
Module, ppath/src/details: The ppath/src/details module

P
ppath.asd: The ppath<dot>asd file
ppath/src: The ppath/src module
ppath/src/details: The ppath/src/details module
ppath/src/details/constants.lisp: The ppath/src/details/constants<dot>lisp file
ppath/src/details/generic.lisp: The ppath/src/details/generic<dot>lisp file
ppath/src/details/posix-cffi.lisp: The ppath/src/details/posix-cffi<dot>lisp file
ppath/src/details/posix.lisp: The ppath/src/details/posix<dot>lisp file
ppath/src/ppath.lisp: The ppath/src/ppath<dot>lisp file

Jump to:   F   L   M   P  

Next: , Previous: , Up: Indexes   [Contents][Index]

A.2 Functions

Jump to:   A   B   C   D   E   F   G   I   J   L   M   N   O   P   R   S  
Index Entry  Section

A
abspath: Exported functions
abspath: Exported functions
array-to-hex: Internal functions

B
basename: Exported functions
basename: Exported functions

C
commonprefix: Exported functions
commonprefix: Exported functions
concat: Exported functions

D
dirname: Exported functions
dirname: Internal functions

E
exists: Exported functions
exists: Exported functions
expanduser: Exported functions
expanduser: Exported functions
expandvars: Exported functions
expandvars: Exported functions

F
fd-from-stream: Internal functions
foreign-ptr-to-string: Internal functions
Function, abspath: Exported functions
Function, abspath: Exported functions
Function, array-to-hex: Internal functions
Function, basename: Exported functions
Function, basename: Exported functions
Function, commonprefix: Exported functions
Function, commonprefix: Exported functions
Function, concat: Exported functions
Function, dirname: Exported functions
Function, dirname: Internal functions
Function, exists: Exported functions
Function, exists: Exported functions
Function, expanduser: Exported functions
Function, expanduser: Exported functions
Function, expandvars: Exported functions
Function, expandvars: Exported functions
Function, fd-from-stream: Internal functions
Function, foreign-ptr-to-string: Internal functions
Function, get-temp-path: Exported functions
Function, getatime: Exported functions
Function, getatime: Exported functions
Function, getctime: Exported functions
Function, getctime: Exported functions
Function, getcwd: Exported functions
Function, getenv: Exported functions
Function, getmtime: Exported functions
Function, getmtime: Exported functions
Function, getpid: Exported functions
Function, getpid: Exported functions
Function, getpwnam: Internal functions
Function, getpwuid: Internal functions
Function, getsize: Exported functions
Function, getsize: Exported functions
Function, getuid: Internal functions
Function, isabs: Exported functions
Function, isabs: Exported functions
Function, isdir: Exported functions
Function, isdir: Exported functions
Function, isfile: Exported functions
Function, isfile: Exported functions
Function, islink: Exported functions
Function, islink: Exported functions
Function, ismount: Exported functions
Function, ismount: Exported functions
Function, join: Exported functions
Function, join: Exported functions
Function, lexists: Exported functions
Function, lexists: Exported functions
Function, normcase: Exported functions
Function, normcase: Exported functions
Function, normpath: Exported functions
Function, normpath: Exported functions
Function, or-strings: Internal functions
Function, realpath: Exported functions
Function, realpath: Exported functions
Function, relpath: Exported functions
Function, relpath: Exported functions
Function, samefile: Exported functions
Function, samefile: Exported functions
Function, sameopenfile: Exported functions
Function, sameopenfile: Exported functions
Function, samestat: Internal functions
Function, split: Exported functions
Function, split: Exported functions
Function, split-components: Internal functions
Function, splitdrive: Exported functions
Function, splitext: Exported functions
Function, splitext: Exported functions
Function, splitunc: Internal functions

G
Generic Function, path-error-function: Internal generic functions
Generic Function, reason: Internal generic functions
get-temp-path: Exported functions
getatime: Exported functions
getatime: Exported functions
getctime: Exported functions
getctime: Exported functions
getcwd: Exported functions
getenv: Exported functions
getmtime: Exported functions
getmtime: Exported functions
getpid: Exported functions
getpid: Exported functions
getpwnam: Internal functions
getpwuid: Internal functions
getsize: Exported functions
getsize: Exported functions
getuid: Internal functions

I
isabs: Exported functions
isabs: Exported functions
isdir: Exported functions
isdir: Exported functions
isfile: Exported functions
isfile: Exported functions
islink: Exported functions
islink: Exported functions
ismount: Exported functions
ismount: Exported functions

J
join: Exported functions
join: Exported functions

L
lexists: Exported functions
lexists: Exported functions

M
Macro, osicat-check-no-file: Internal macros
Method, path-error-function: Internal generic functions
Method, reason: Internal generic functions

N
normcase: Exported functions
normcase: Exported functions
normpath: Exported functions
normpath: Exported functions

O
or-strings: Internal functions
osicat-check-no-file: Internal macros

P
path-error-function: Internal generic functions
path-error-function: Internal generic functions

R
realpath: Exported functions
realpath: Exported functions
reason: Internal generic functions
reason: Internal generic functions
relpath: Exported functions
relpath: Exported functions

S
samefile: Exported functions
samefile: Exported functions
sameopenfile: Exported functions
sameopenfile: Exported functions
samestat: Internal functions
split: Exported functions
split: Exported functions
split-components: Internal functions
splitdrive: Exported functions
splitext: Exported functions
splitext: Exported functions
splitunc: Internal functions

Jump to:   A   B   C   D   E   F   G   I   J   L   M   N   O   P   R   S  

Next: , Previous: , Up: Indexes   [Contents][Index]

A.3 Variables

Jump to:   +  
C   F   R   S  
Index Entry  Section

+
+current-dir+: Exported constants
+path-max+: Internal constants
+path-separator+: Exported constants
+posix-separator+: Exported constants
+secs-between-epochs+: Exported constants
+sep-string+: Exported constants
+separator+: Exported constants
+unc-prefix+: Exported constants
+up-dir+: Exported constants

C
Constant, +current-dir+: Exported constants
Constant, +path-max+: Internal constants
Constant, +path-separator+: Exported constants
Constant, +posix-separator+: Exported constants
Constant, +secs-between-epochs+: Exported constants
Constant, +sep-string+: Exported constants
Constant, +separator+: Exported constants
Constant, +unc-prefix+: Exported constants
Constant, +up-dir+: Exported constants

F
function: Exported conditions

R
reason: Exported conditions

S
Slot, function: Exported conditions
Slot, reason: Exported conditions

Jump to:   +  
C   F   R   S  

Previous: , Up: Indexes   [Contents][Index]

A.4 Data types

Jump to:   C   P   S   T  
Index Entry  Section

C
Condition, path-error: Exported conditions

P
Package, ppath: The ppath package
Package, ppath-asd: The ppath-asd package
Package, ppath.details.constants: The ppath<dot>details<dot>constants package
Package, ppath.details.generic: The ppath<dot>details<dot>generic package
Package, ppath.details.posix: The ppath<dot>details<dot>posix package
Package, ppath.details.posix.cffi: The ppath<dot>details<dot>posix<dot>cffi package
path-error: Exported conditions
ppath: The ppath system
ppath: The ppath package
ppath-asd: The ppath-asd package
ppath.details.constants: The ppath<dot>details<dot>constants package
ppath.details.generic: The ppath<dot>details<dot>generic package
ppath.details.posix: The ppath<dot>details<dot>posix package
ppath.details.posix.cffi: The ppath<dot>details<dot>posix<dot>cffi package

S
string-type: Exported types
System, ppath: The ppath system

T
Type, string-type: Exported types

Jump to:   C   P   S   T