2004-04-10 18:53:55 +00:00
|
|
|
.TH CLEANNAME 3
|
|
|
|
.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
|
2005-01-03 06:40:20 +00:00
|
|
|
.B /usr/local/plan9/src/lib9/cleanname.c
|
2004-04-10 18:53:55 +00:00
|
|
|
.SH SEE ALSO
|
|
|
|
.IR cleanname (1)
|