This is an import of readline that is used by gdb.

To send patches, follow the gdb patch submission instructions in
../gdb/CONTRIBUTE.  For maintainers, see ../gdb/MAINTAINERS.

If you need to patch readline, please document the changes here.

To import, copy the upstream readline sources into the "readline"
subdirectory, remembering to (1) remove any files that were deleted
upstream, and (2) merge the one small configure.ac patch that gdb
carries.

If your import removes the need for a local patch, please remember to
update this file.

Individual upstream readline patches can be directly imported using
"git am".  You can see the current patch level by looking at
readline/patchlevel.
