105 lines
2.3 KiB
Text
105 lines
2.3 KiB
Text
.TH COMPLETE 2
|
|
.SH NAME
|
|
complete \- file name completion
|
|
.SH SYNOPSIS
|
|
.B #include <u.h>
|
|
.br
|
|
.B #include <libc.h>
|
|
.br
|
|
.B #include <complete.h>
|
|
.PP
|
|
.ft L
|
|
.nf
|
|
.ta \w' 'u +\w' 'u +\w' 'u +\w' 'u +\w' 'u
|
|
typedef struct Completion Completion;
|
|
struct Completion{
|
|
uchar advance; /* whether forward progress has been made */
|
|
uchar complete; /* whether the completion now represents a file or directory */
|
|
char *string; /* the string to advance, suffixed " " or "/" for file or directory */
|
|
int nmatch; /* number of files that matched */
|
|
int nfile; /* number of files returned */
|
|
char **filename; /* their names */
|
|
};
|
|
|
|
.fi
|
|
.PP
|
|
.B
|
|
.ta \w'\fLchar* 'u
|
|
|
|
.PP
|
|
.B
|
|
Completion* complete(char *dir, char *s);
|
|
.PP
|
|
.B
|
|
void freecompletion(Completion *c);
|
|
.SH DESCRIPTION
|
|
The
|
|
.I complete
|
|
function implements file name completion.
|
|
Given a directory
|
|
.I dir
|
|
and a string
|
|
.IR s ,
|
|
it returns an analysis of the file names in that directory that begin with the string
|
|
.IR s .
|
|
The fields
|
|
.B nmatch
|
|
and
|
|
.B nfile
|
|
will be set to the number of files that match the prefix and
|
|
.B filename
|
|
will be filled in with their names.
|
|
If the file named is a directory, a slash character will be appended to it.
|
|
.PP
|
|
If no files match the string,
|
|
.B nmatch
|
|
will be zero, but
|
|
.I complete
|
|
will return the full set of files in the directory, with
|
|
.I nfile
|
|
set to their number.
|
|
.PP
|
|
The flag
|
|
.B advance
|
|
reports whether the string
|
|
.I s
|
|
can be extended without changing the set of files that match. If true,
|
|
.B string
|
|
will be set to the extension; that is, the value of
|
|
.B string
|
|
may be appended to
|
|
.I s
|
|
by the caller to extend the embryonic file name unambiguously.
|
|
.PP
|
|
The flag
|
|
.B complete
|
|
reports whether the extended file name uniquely identifies a file.
|
|
If true,
|
|
.B string
|
|
will be suffixed with a blank, or a slash and a blank,
|
|
depending on whether the resulting file name identifies a plain file or a directory.
|
|
.PP
|
|
The
|
|
.I freecompletion
|
|
function frees a
|
|
.B Completion
|
|
structure and its contents.
|
|
.PP
|
|
In
|
|
.IR rio (1)
|
|
and
|
|
.IR acme (1),
|
|
file name completion is triggered by a control-F character or an Insert character.
|
|
.SH SOURCE
|
|
.B /sys/src/libcomplete
|
|
.SH SEE ALSO
|
|
.IR rio (1),
|
|
.IR acme (1)
|
|
.SH DIAGNOSTICS
|
|
The
|
|
.I complete
|
|
function returns a null pointer and sets
|
|
.I errstr
|
|
if the directory is unreadable or there is some other error.
|
|
.SH BUGS
|
|
The behavior of file name completion should be controlled by the plumber.
|