\input texinfo    @c -*-texinfo-*-
@c %**start of header (This is for running Texinfo on a region.)
@setfilename history.info
@settitle GNU History Library
@include version.texi

@c %**end of header (This is for running Texinfo on a region.)

@copying
This document describes the GNU History library
(version @value{VERSION}, @value{UPDATED}),
a programming tool that provides a consistent user interface for
recalling lines of previously typed input.

Copyright @copyright{} 1988--2014 Free Software Foundation, Inc.

@quotation
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with no
Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is included in the section entitled
``GNU Free Documentation License''.

@end quotation
@end copying

@dircategory Libraries
@direntry
* History: (history).       The GNU history library API.
@end direntry

@titlepage
@title GNU History Library
@subtitle Edition @value{EDITION}, for @code{History Library} Version @value{VERSION}.
@subtitle @value{UPDATED-MONTH}
@author Chet Ramey, Case Western Reserve University
@author Brian Fox, Free Software Foundation

@page

@vskip 0pt plus 1filll
@insertcopying

@end titlepage

@contents

@ifnottex
@node Top
@top GNU History Library

This document describes the GNU History library, a programming tool that
provides a consistent user interface for recalling lines of previously
typed input.

@menu
* Using History Interactively::	  GNU History User's Manual.
* Programming with GNU History::  GNU History Programmer's Manual.
* GNU Free Documentation License::	License for copying this manual.
* Concept Index::		  Index of concepts described in this manual.
* Function and Variable Index::	  Index of externally visible functions
				  and variables.
@end menu
@end ifnottex

@syncodeindex fn vr

@include hsuser.texi
@include hstech.texi

@node GNU Free Documentation License
@appendix GNU Free Documentation License

@include fdl.texi

@node Concept Index
@appendix Concept Index
@printindex cp

@node Function and Variable Index
@appendix Function and Variable Index
@printindex vr

@bye
