Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
libtecla(3)		   Library Functions Manual		   libtecla(3)

NAME
       libtecla	- An interactive command-line input library.

SYNOPSIS
       cc ... -ltecla -lcurses

DESCRIPTION
       The tecla library provides programs with	interactive command line edit-
       ing 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 the calling program.

       The various parts of the	library	are documented in  the	following  man
       pages:

	 tecla(7)	       -  Use level documentation of the
			       command-line editing facilities
			       provided	by gl_get_line().
	 gl_get_line(3)	       -  The interactive line-input module.
	 gl_io_mode(3)	       -  How to use gl_get_line() in an
			       incremental, non-blocking fashion.
	 cpl_complete_word(3)  -  The word completion module.
	 ef_expand_file(3)     -  The filename expansion module.
	 pca_lookup_file(3)    -  A directory-list based filename
			       lookup and completion module.

       In  addition there is one optional application distributed with the li-
       brary:

	 enhance(1)	       -  Add command-line editing to third
				  party	applications.

THREAD SAFETY
       If the library is compiled  with	 -D_POSIX_C_SOURCE=199506L,  reentrant
       versions	of as many functions as	possible are used. This	includes using
       getpwuid_r() and	getpwnam_r() instead of	getpwuid() and getpwnam() when
       looking	up the home directories	of specific users in the password file
       (for ~user/ expansion), and readdir_r() instead of readdir() for	 read-
       ing  directory  entries	when  doing filename completion. The reentrant
       version of the library is usually called	libtecla_r.a instead of	libte-
       cla.a, so if only the latter is available, it probably isn't  the  cor-
       rect version to link with threaded programs.

       Reentrant  functions  for  iterating  through  the password file	aren't
       available, so when the library is compiled to be	reentrant, TAB comple-
       tion of incomplete usernames in	~username/  expressions	 is  disabled.
       This doesn't disable expansion of complete ~username expressions, which
       can  be	done  reentrantly, or expansion	of the parts of	filenames that
       follow them, so this doesn't remove much	functionality.

       The terminfo functions setupterm(), tigetstr(), tigetnum() and  tputs()
       also aren't reentrant, but very few programs will want to interact with
       multiple	 terminals,  so	this shouldn't prevent this library from being
       used in threaded	programs.

LIBRARY	VERSION	NUMBER
       The version number of the library can be	queried	 using	the  following
       function.

	void libtecla_version(int *major, int *minor, int *micro);

       On  return,  this function records the three components of the libtecla
       version number in *major, *minor, *micro. The  formal  meaning  of  the
       three components	is as follows.

	major -	Incrementing this number implies that a	change has
		been made to the library's public interface, which
		makes it binary	incompatible  with programs that
		were linked with previous shared versions of the
		tecla library.

	minor -	This number is incremented by one whenever
		additional functionality, such as new functions	or
		modules, are added to the library.

	micro -	This is	incremented whenever modifications to the
		library	are made which make no changes to the
		public interface, but which fix	bugs and/or improve
		the behind-the-scenes implementation.

TRIVIA
       In Spanish, a "tecla" is	the key	of a keyboard. Since this library cen-
       ters  on	 keyboard  input,  and	given that I wrote much	of the library
       while working in	Chile, this seemed like	a suitable name.

FILES
       libtecla.a    -	 The tecla library.
       libtecla.h    -	 The tecla header file.
       ~/.teclarc    -	 The tecla personal customization file.

SEE ALSO
       gl_get_line(3), tecla(7), gl_io_mode(3),	ef_expand_file(3),
       cpl_complete_word(3), pca_lookup_file(3), enhance(1)

AUTHOR
       Martin Shepherd	(mcs@astro.caltech.edu)

ACKNOWLEDGMENTS
       Markus Gyger  - Lots of assistance, including help with
		       shared libraries, configuration information,
		       particularly for	Solaris; modifications to
		       support C++ compilers, improvements for ksh
		       users, faster cursor motion, output
		       buffering, and changes to make gl_get_line()
		       8-bit clean.
       Mike MacFaden - Suggestions, feedback and testing that led
		       to many of the major new	functions that were
		       added in	version	1.4.0.
       Tim Eliseo    - Many vi-mode bindings and fixes.

								   libtecla(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=libtecla&sektion=3&manpath=FreeBSD+Ports+15.0>

home | help