|  | 
 NAME     
 |  |  |  | complete, freecompletion – file name completion 
 | 
 SYNOPSIS     
 |  |  |  | #include <u.h> #include <libc.h>
 #include <complete.h> 
    
    
    typedef struct CompletionCompletion;
 struct Completion{
 
 };|  |  |  | uchar advance; uchar complete;
 char *string;
 int nmatch;
 int nfile;
 char **filename;
 
 | 
 Completion* complete(char *dir, char *s); 
    
    
    void freecompletion(Completion *c);
 
 | 
 DESCRIPTION     
 |  |  |  | The 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
    nmatch and 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. 
    
    
    The flag 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. 
    
    
    The flag complete reports whether the extended file name uniquely
    identifies a file. If true, 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. 
    
    
    The freecompletion function frees a Completion structure and its
    contents. 
    
    
    In rio(1) and acme(1), file name completion is triggered by a
    control-F character or an Insert character. 
 | 
 SOURCE     
 SEE ALSO    
 DIAGNOSTICS     
 |  |  |  | The complete function returns a null pointer and sets errstr if
    the directory is unreadable or there is some other error. 
 | 
 BUGS     
 |  |  |  | The behavior of file name completion should be controlled by the
    plumber. 
 | 
 |  |