[ Main Table Of Contents | Table Of Contents | Keyword Index ]

linenoise_devguide(n) 1 doc "Tcl Line Editor"


linenoise_devguide - Linenoise - The Developer's Guide

Table Of Contents


Welcome to Linenoise, a binding to Antirez's linenoise minimal line editor library, as modified and extended by Steve Bennet of Workware.au

This document is a guide for developers working on Linenoise, i.e. maintainers fixing bugs, extending the package's functionality, etc.

Please read

  1. Linenoise - License,

  2. Linenoise - How To Get The Sources, and

  3. Linenoise - The Installer's Guide

first, if that was not done already.

Here we assume that the sources are already available in a directory of your choice, and that you not only know how to build and install them, but also have all the necessary requisites to actually do so. The guide to the sources in particular also explains which source code management system is used, where to find it, how to set it up, etc.

Developing for Linenoise

Architecture & Concepts

The system's architecture is super simple. There are only two layers, consisting of the linenoise core, and of the binding sitting on top. The user sees only the binding, and nothing else.


To develop for linenoise the following packages and applications must be available in the environment. These are all used by the build.tcl helper application.


A Tcl application provided by Tcllib, for the validation and conversion of doctools-formatted text.


A Tcl package and application supporting an simplifying the build scripts. The installation guide provides the information on where to find it.

Directory structure


This helper application provides various operations needed by a developer for linenoise, like regenerating the documentation, building and installing linenoise, etc.

Running the command like

	./build.tcl help

will provide more details about the available operations and their arguments.


This directory contains the documentation sources. They are written in doctools format.


This directory contains the documentation converted to regular manpages (nroff) and HTML. It is called embedded because these files, while derived, are part of the git repository, i.e. embedded into it. This enables us to place these files where they are visible when serving the project's web interface.

Package Code

The Tcl code with embbeded C implementing the basic binding.


The Tcl code aggregating the basics into the final API as seen by the user.


Andreas Kupries (Tcl Binding), Steve Bennett (extended linenoise C library), Salvatore Sanfilippo (Antirez, original linenoise C library).

Bugs, Ideas, Feedback

This document, and the package it describes, will undoubtedly contain bugs and other problems. Please report them at the Issues tracker. Ideas for enhancements you may have for either package, application, and/or the documentation are also very welcome and should be reported at the Issues tracker as well.


console, edit line, line editor, line reading, linenoise, raw mode, read line, terminal, tty