pathname

Path Manipulation Utilities

Functions

FunctionDescription
pn_copyInternal: copy bytes from src to dst.
pn_dirnameGet directory portion of path. Returns length written to out. “/usr/bin/gcc” …
pn_extnameGet file extension including dot. Returns length written to out. “foo.tar.gz”…
pn_is_absoluteCheck if path is absolute (starts with /).
pn_normalizeNormalize path: resolve . and .. components, collapse multiple slashes. Retur…
pn_split_extSplit path into stem and extension. Returns stem length. “archive.tar.gz” -> …
pn_join3Join 3 path segments: a/b/c. Returns length written to out.
pn_has_extCheck if path has given extension. Case-sensitive.

Details

pn_copy

fn pn_copy(dst: &i8, doff: i64, src: &i8, soff: i64, n: i64)

Internal: copy bytes from src to dst.

pn_dirname

fn pn_dirname(path: &i8, len: i64, out: &i8) -> i64

Get directory portion of path. Returns length written to out. “/usr/bin/gcc” -> “/usr/bin”, “foo.txt” -> “.”, “/” -> “/”

pn_extname

fn pn_extname(path: &i8, len: i64, out: &i8) -> i64

Get file extension including dot. Returns length written to out. “foo.tar.gz” -> “.gz”, “Makefile” -> "" (returns 0)

pn_is_absolute

fn pn_is_absolute(path: &i8) -> i64

Check if path is absolute (starts with /).

pn_normalize

fn pn_normalize(path: &i8, len: i64, out: &i8) -> i64

Normalize path: resolve . and .. components, collapse multiple slashes. Returns length written to out.

pn_split_ext

fn pn_split_ext(path: &i8, len: i64, stem: &i8, ext: &i8) -> i64

Split path into stem and extension. Returns stem length. “archive.tar.gz” -> stem=“archive.tar”, ext=".gz"

pn_join3

fn pn_join3(a: &i8, al: i64, b: &i8, bl: i64, c: &i8, cl: i64, out: &i8) -> i64

Join 3 path segments: a/b/c. Returns length written to out.

pn_has_ext

fn pn_has_ext(path: &i8, len: i64, ext: &i8, elen: i64) -> i64

Check if path has given extension. Case-sensitive.