The Tecla command-line editing library.
The tecla library provides UNIX and LINUX programs with interactive
command line editing facilities, similar to those of the UNIX tcsh
shell. In addition to simple command-line editing, it supports recall
of previously entered command lines, TAB completion of file names or
other tokens, and in-line wild-card expansion of filenames. The
internal functions which perform file-name completion and wild-card
expansion are also available externally for optional use by programs.
In addition, the library includes a path-searching module. This
allows an application to provide completion and lookup of files
located in UNIX style paths. Although not built into the line editor
by default, it can easily be called from custom tab-completion
callback functions. This was originally conceived for completing the
names of executables and providing a way to look up their locations in
the user's PATH environment variable, but it can easily be asked to
look up and complete other types of files in any list of directories.
Note that special care has been taken to allow the use of this library
in threaded programs. The option to enable this is discussed in the
Makefile, and specific discussions of thread safety are presented in
the included man pages.
The current version is version 1.6.3. This may be obtained from:
For the sake of automated scripts, the following URL always points to
the latest version. Note that the version number can be found in the
The library is distributed under a permissive non-copyleft
free software license (the X11 license with
the name of the copyright holder changed). This is compatible with,
but not as restrictive as the GNU GPL.
The list of major changes that accompany each new release can be found
The gory details of changes in the latest and previous versions of the
library can be found here.
The following are html versions of the libtecla man pages:
- tecla - Documentation for users of programs which use gl_get_line().
- libtecla - A programmers introduction to the tecla library.
- gl_get_line - The interactive line-input function.
- gl_io_mode - Using gl_get_line() in a non-blocking fashion.
- cpl_complete_word - The word (eg. filename) completion function.
- ef_expand_file - The filename expansion function.
- pca_lookup_file - A directory-list based filename lookup and completion module.
- enhance - A program that adds command-line editing to third party programs.
Martin Shepherd (09-Nov-2014)