complete

COMPLETE(3)                 Library Functions Manual                 COMPLETE(3)



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
       /src/libcomplete

SEE ALSO
       rio(1), acme(1)

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.



                                                                     COMPLETE(3)