35 lines
709 B
Plaintext
35 lines
709 B
Plaintext
|
.TH CLEANNAME 2
|
||
|
.SH NAME
|
||
|
cleanname \- clean a path name
|
||
|
.SH SYNOPSIS
|
||
|
.B #include <u.h>
|
||
|
.br
|
||
|
.B #include <libc.h>
|
||
|
.sp
|
||
|
.B
|
||
|
char* cleanname(char *filename)
|
||
|
.SH DESCRIPTION
|
||
|
.I Cleanname
|
||
|
takes a
|
||
|
.I filename
|
||
|
and by lexical processing only returns the shortest string that names the same (possibly
|
||
|
hypothetical) file.
|
||
|
It eliminates multiple and trailing slashes, and it lexically interprets
|
||
|
.B .
|
||
|
and
|
||
|
.B ..
|
||
|
directory components in the name.
|
||
|
The string is overwritten in place.
|
||
|
.PP
|
||
|
The shortest string
|
||
|
.I cleanname
|
||
|
can return is two bytes: the null-terminated string
|
||
|
\f(CW"."\f1.
|
||
|
Therefore
|
||
|
.I filename
|
||
|
must contain room for at least two bytes.
|
||
|
.SH SOURCE
|
||
|
.B /sys/src/libc/port/cleanname.c
|
||
|
.SH SEE ALSO
|
||
|
.IR cleanname (1)
|