linenoise_devguide - Linenoise - The Developer's Guide
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.
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.
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.
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
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.
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.
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.
Copyright © 2013 Andreas Kupries