summaryrefslogtreecommitdiff
path: root/man/2/complete
diff options
context:
space:
mode:
authorCharles.Forsyth <devnull@localhost>2007-01-15 21:04:26 +0000
committerCharles.Forsyth <devnull@localhost>2007-01-15 21:04:26 +0000
commit8911721efbf3b3721376e2baa30bae002c2975c2 (patch)
treeaa059ffa39c2c4f1cd5ed2e137dcb9b079de2717 /man/2/complete
parent0e96539ff7cff23233d3f0a64bb285b385a3a1f4 (diff)
20070115
Diffstat (limited to 'man/2/complete')
-rw-r--r--man/2/complete83
1 files changed, 83 insertions, 0 deletions
diff --git a/man/2/complete b/man/2/complete
new file mode 100644
index 00000000..19fab2e5
--- /dev/null
+++ b/man/2/complete
@@ -0,0 +1,83 @@
+.TH COMPLETE 2
+.SH NAME
+complete \- file name completion
+.SH SYNOPSIS
+.EX
+include "complete.m";
+complete := load Complete Complete->PATH;
+
+Completion: adt {
+ advance: int; # whether forward progress has been made
+ complete: int; # whether the completion now represents a file or directory
+ str: string; # string to advance, suffixed " " (file) or "/" (directory)
+ nmatch: int; # number of files that matched
+ filename: array of string; # their names
+};
+
+init: fn();
+complete: fn(dir, s: string): (ref Completion, string);
+.EX
+.SH DESCRIPTION
+.B Complete
+implements file name completion.
+.PP
+.B Init
+must be called before any other operation of the module.
+.PP
+Given a directory
+.I dir
+and a string
+.IR s ,
+.B complete
+returns a tuple
+.BI ( c,\ err ),
+where
+.I c
+is an analysis of the file names in that directory that begin with the string
+.IR s .
+The field
+.B nmatch
+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.
+On an error,
+.I c
+is nil and
+.I err
+is a diagnostic string.
+.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.
+.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 str
+will be set to the extension; that is, the value of
+.B str
+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 str
+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.
+.SH SOURCE
+.B /appl/lib/complete.b
+.SH SEE ALSO
+.IR names (2)
+.SH DIAGNOSTICS
+The
+.I complete
+function returns a nil reference and a diagnostic string
+if the directory is unreadable or there is some other error.