Blame


1 cfa37a7b 2004-04-10 devnull .TH COMPLETE 3
2 cfa37a7b 2004-04-10 devnull .SH NAME
3 058b0118 2005-01-03 devnull complete, freecompletion \- file name completion
4 cfa37a7b 2004-04-10 devnull .SH SYNOPSIS
5 cfa37a7b 2004-04-10 devnull .B #include <u.h>
6 cfa37a7b 2004-04-10 devnull .br
7 cfa37a7b 2004-04-10 devnull .B #include <libc.h>
8 cfa37a7b 2004-04-10 devnull .br
9 cfa37a7b 2004-04-10 devnull .B #include <complete.h>
10 cfa37a7b 2004-04-10 devnull .PP
11 cfa37a7b 2004-04-10 devnull .ft L
12 cfa37a7b 2004-04-10 devnull .nf
13 cfa37a7b 2004-04-10 devnull .ta \w' 'u +\w' 'u +\w' 'u +\w' 'u +\w' 'u
14 cfa37a7b 2004-04-10 devnull typedef struct Completion Completion;
15 cfa37a7b 2004-04-10 devnull struct Completion{
16 c8b6342d 2005-01-13 devnull uchar advance;
17 c8b6342d 2005-01-13 devnull uchar complete;
18 c8b6342d 2005-01-13 devnull char *string;
19 c8b6342d 2005-01-13 devnull int nmatch;
20 c8b6342d 2005-01-13 devnull int nfile;
21 c8b6342d 2005-01-13 devnull char **filename;
22 cfa37a7b 2004-04-10 devnull };
23 cfa37a7b 2004-04-10 devnull
24 cfa37a7b 2004-04-10 devnull .fi
25 cfa37a7b 2004-04-10 devnull .PP
26 cfa37a7b 2004-04-10 devnull .B
27 cfa37a7b 2004-04-10 devnull .ta \w'\fLchar* 'u
28 cfa37a7b 2004-04-10 devnull
29 cfa37a7b 2004-04-10 devnull .PP
30 cfa37a7b 2004-04-10 devnull .B
31 cfa37a7b 2004-04-10 devnull Completion* complete(char *dir, char *s);
32 cfa37a7b 2004-04-10 devnull .PP
33 cfa37a7b 2004-04-10 devnull .B
34 cfa37a7b 2004-04-10 devnull void freecompletion(Completion *c);
35 cfa37a7b 2004-04-10 devnull .SH DESCRIPTION
36 cfa37a7b 2004-04-10 devnull The
37 cfa37a7b 2004-04-10 devnull .I complete
38 cfa37a7b 2004-04-10 devnull function implements file name completion.
39 cfa37a7b 2004-04-10 devnull Given a directory
40 cfa37a7b 2004-04-10 devnull .I dir
41 cfa37a7b 2004-04-10 devnull and a string
42 cfa37a7b 2004-04-10 devnull .IR s ,
43 cfa37a7b 2004-04-10 devnull it returns an analysis of the file names in that directory that begin with the string
44 cfa37a7b 2004-04-10 devnull .IR s .
45 cfa37a7b 2004-04-10 devnull The fields
46 cfa37a7b 2004-04-10 devnull .B nmatch
47 cfa37a7b 2004-04-10 devnull and
48 cfa37a7b 2004-04-10 devnull .B nfile
49 cfa37a7b 2004-04-10 devnull will be set to the number of files that match the prefix and
50 cfa37a7b 2004-04-10 devnull .B filename
51 cfa37a7b 2004-04-10 devnull will be filled in with their names.
52 cfa37a7b 2004-04-10 devnull If the file named is a directory, a slash character will be appended to it.
53 cfa37a7b 2004-04-10 devnull .PP
54 cfa37a7b 2004-04-10 devnull If no files match the string,
55 cfa37a7b 2004-04-10 devnull .B nmatch
56 cfa37a7b 2004-04-10 devnull will be zero, but
57 cfa37a7b 2004-04-10 devnull .I complete
58 cfa37a7b 2004-04-10 devnull will return the full set of files in the directory, with
59 cfa37a7b 2004-04-10 devnull .I nfile
60 cfa37a7b 2004-04-10 devnull set to their number.
61 cfa37a7b 2004-04-10 devnull .PP
62 cfa37a7b 2004-04-10 devnull The flag
63 cfa37a7b 2004-04-10 devnull .B advance
64 cfa37a7b 2004-04-10 devnull reports whether the string
65 cfa37a7b 2004-04-10 devnull .I s
66 cfa37a7b 2004-04-10 devnull can be extended without changing the set of files that match. If true,
67 cfa37a7b 2004-04-10 devnull .B string
68 cfa37a7b 2004-04-10 devnull will be set to the extension; that is, the value of
69 cfa37a7b 2004-04-10 devnull .B string
70 cfa37a7b 2004-04-10 devnull may be appended to
71 cfa37a7b 2004-04-10 devnull .I s
72 cfa37a7b 2004-04-10 devnull by the caller to extend the embryonic file name unambiguously.
73 cfa37a7b 2004-04-10 devnull .PP
74 cfa37a7b 2004-04-10 devnull The flag
75 cfa37a7b 2004-04-10 devnull .B complete
76 cfa37a7b 2004-04-10 devnull reports whether the extended file name uniquely identifies a file.
77 cfa37a7b 2004-04-10 devnull If true,
78 cfa37a7b 2004-04-10 devnull .B string
79 cfa37a7b 2004-04-10 devnull will be suffixed with a blank, or a slash and a blank,
80 cfa37a7b 2004-04-10 devnull depending on whether the resulting file name identifies a plain file or a directory.
81 cfa37a7b 2004-04-10 devnull .PP
82 cfa37a7b 2004-04-10 devnull The
83 cfa37a7b 2004-04-10 devnull .I freecompletion
84 cfa37a7b 2004-04-10 devnull function frees a
85 cfa37a7b 2004-04-10 devnull .B Completion
86 cfa37a7b 2004-04-10 devnull structure and its contents.
87 cfa37a7b 2004-04-10 devnull .PP
88 cfa37a7b 2004-04-10 devnull In
89 d32deab1 2020-08-16 rsc .MR rio (1)
90 cfa37a7b 2004-04-10 devnull and
91 d32deab1 2020-08-16 rsc .MR acme (1) ,
92 cfa37a7b 2004-04-10 devnull file name completion is triggered by a control-F character or an Insert character.
93 cfa37a7b 2004-04-10 devnull .SH SOURCE
94 c3674de4 2005-01-11 devnull .B \*9/src/libcomplete
95 cfa37a7b 2004-04-10 devnull .SH SEE ALSO
96 d32deab1 2020-08-16 rsc .MR rio (1) ,
97 d32deab1 2020-08-16 rsc .MR acme (1)
98 cfa37a7b 2004-04-10 devnull .SH DIAGNOSTICS
99 cfa37a7b 2004-04-10 devnull The
100 cfa37a7b 2004-04-10 devnull .I complete
101 cfa37a7b 2004-04-10 devnull function returns a null pointer and sets
102 cfa37a7b 2004-04-10 devnull .I errstr
103 cfa37a7b 2004-04-10 devnull if the directory is unreadable or there is some other error.
104 cfa37a7b 2004-04-10 devnull .SH BUGS
105 cfa37a7b 2004-04-10 devnull The behavior of file name completion should be controlled by the plumber.