All you need to know when hacking (modifying) GNU libtextstyle or when building
it off the git repository.


Requirements
============

You will need reasonably recent versions of the build tools:

  * A C compiler; on Cygwin or mingw also a C++ compiler. Such as GNU GCC.
    + Homepage:
      https://gcc.gnu.org/

  * GNU automake 1.13 or newer
    + Homepage:
      https://www.gnu.org/software/automake/

  * GNU autoconf
    + Homepage:
      https://www.gnu.org/software/autoconf/

  * GNU m4
    + Homepage:
      https://www.gnu.org/software/m4/

  * GNU texinfo
    + Homepage:
      https://www.gnu.org/software/texinfo/

  * Perl
    + Homepage:
      https://www.perl.org/

  * TeX (for making the doc in .dvi, .ps or .pdf format)
    + Homepage:
      https://tug.org/teTeX/

  * Either an internet connection or a recent copy of GNU gnulib.
    + Homepage:
      https://www.gnu.org/software/gnulib/

  * GNU tar (for creating distributable tarballs)
    + Homepage:
      https://www.gnu.org/software/tar/

  * GNU Wget
    + Homepage:
      https://www.gnu.org/software/wget/

And, of course, the packages listed in the DEPENDENCIES file.


Building off the git repository
===============================

Access to the git repository is described at
  https://savannah.gnu.org/git/?group=gettext

After fetching the sources from the repository, go into the 'libtextstyle'
directory, peek at the comments in autogen.sh, then run "./autogen.sh";
then you can proceed with "./configure" as usual.


Submitting patches
==================

Patches should be sent to bug-gettext@gnu.org, the bug/feature mailing
list.  You can subscribe to the mailing list, or see the list
archives, by following links from
https://savannah.gnu.org/mail/?group=gettext .

To email a patch you can use a shell command like 'git format-patch
-1' to create a file, and then attach the file to your email.  

Changes you commit should contain the log entries in the commit message.
For the style of a ChangeLog entry, see the "Change Logs" section of
the GNU coding standards:

  https://www.gnu.org/prep/standards/html_node/Change-Logs.html


Testing
=======

The unit tests don't cover much of the functionality.

To test the output on various terminal emulators, use the --color=test
option on the 'color-hello' or 'color-filter' program.

To test the signal handling, use the 'color-filter' program: run
  yes | ./filter '.*'
and exercise the various signals.
