typedef struct CompletionCompletion;
Completion* complete(char *dir, char *s);
void freecompletion(Completion *c);
complete function implements file name completion.
Given a directory
dir and a string
s, it returns an analysis of the file names in that directory that begin with the string
s. The fields
nfile will be set to the number of files that match the prefix and
filename will be filled in with their names.
If the file named is a directory, a slash character will be appended to it.
If no files match the string,
nmatch will be zero, but
complete will return the full set of files in the directory, with
nfile set to their number.
advance reports whether the string
s can be extended without changing the set of files that match. If true,
string will be set to the extension; that is, the value of
string may be appended to
s by the caller to extend the embryonic file name unambiguously.
complete reports whether the extended file name uniquely identifies a file.
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.
freecompletion function frees a
Completion structure and its contents.
file name completion is triggered by a control-F character or an Insert character.