diff options
author | cvs2git <rtems-devel@rtems.org> | 2003-01-28 19:56:06 +0000 |
---|---|---|
committer | cvs2git <rtems-devel@rtems.org> | 2003-01-28 19:56:06 +0000 |
commit | abcd9035763ff87a4afd0b9adad5b77e4dbb52ec (patch) | |
tree | 7d52bf74324906a4adb23350ddea72f65b16ae90 /avl-1.4.0/avl.texinfo | |
parent | 66d25567fe424bb55fde088f3d45e9ed044400c1 (diff) |
This commit was manufactured by cvs2svn to create tag 'rtems-addon-rtems-addon-packages-20030128
packages-20030128'.
Sprout from ncurses-gnu 2002-12-19 15:34:54 UTC Eric Norum <WENorum@lbl.gov> 'Latest ncurses add-on'
Cherrypick from addons 2002-06-28 21:58:41 UTC Eric Norum <WENorum@lbl.gov> 'Useful add-on libraries':
README
RTEMS_Makefiles/Makefile.avl
RTEMS_Makefiles/Makefile.common
RTEMS_Makefiles/Makefile.site
avl-1.4.0/AUTHORS
avl-1.4.0/COPYING
avl-1.4.0/ChangeLog
avl-1.4.0/INSTALL
avl-1.4.0/Makefile.am
avl-1.4.0/Makefile.in
avl-1.4.0/NEWS
avl-1.4.0/README
avl-1.4.0/THANKS
avl-1.4.0/TODO
avl-1.4.0/aclocal.m4
avl-1.4.0/avl.c
avl-1.4.0/avl.h
avl-1.4.0/avl.html
avl-1.4.0/avl.info
avl-1.4.0/avl.texinfo
avl-1.4.0/avl.text
avl-1.4.0/avlt.c
avl-1.4.0/avlt.h
avl-1.4.0/avltr.c
avl-1.4.0/avltr.h
avl-1.4.0/configure
avl-1.4.0/configure.in
avl-1.4.0/install-sh
avl-1.4.0/missing
avl-1.4.0/mkinstalldirs
avl-1.4.0/rb.c
avl-1.4.0/rb.h
avl-1.4.0/texinfo.tex
avl-1.4.0/thread-test.c
examples/avl/BuildTests.sh
examples/avl/Makefile
examples/avl/README
examples/avl/init.c
examples/ncurses/BuildTests.sh
examples/ncurses/Makefile
examples/ncurses/README
examples/ncurses/init.c
examples/readline/.gdbinit
examples/readline/Makefile
examples/readline/init.c
examples/readline/rlgeneric.c
ncurses-5.2/ANNOUNCE
ncurses-5.2/Ada95/Makefile.in
ncurses-5.2/Ada95/README
ncurses-5.2/Ada95/TODO
ncurses-5.2/Ada95/gen/Makefile.in
ncurses-5.2/Ada95/gen/gen.c
ncurses-5.2/Ada95/gen/html.m4
ncurses-5.2/Ada95/gen/normal.m4
ncurses-5.2/Ada95/gen/table.m4
ncurses-5.2/Ada95/gen/terminal_interface-curses-aux.ads.m4
ncurses-5.2/Ada95/gen/terminal_interface-curses-forms-field_types.ads.m4
ncurses-5.2/Ada95/gen/terminal_interface-curses-forms-field_user_data.ads.m4
ncurses-5.2/Ada95/gen/terminal_interface-curses-forms-form_user_data.ads.m4
ncurses-5.2/Ada95/gen/terminal_interface-curses-forms.ads.m4
ncurses-5.2/Ada95/gen/terminal_interface-curses-menus-item_user_data.ads.m4
ncurses-5.2/Ada95/gen/terminal_interface-curses-menus-menu_user_data.ads.m4
ncurses-5.2/Ada95/gen/terminal_interface-curses-menus.ads.m4
ncurses-5.2/Ada95/gen/terminal_interface-curses-mouse.ads.m4
ncurses-5.2/Ada95/gen/terminal_interface-curses-panels-user_data.ads.m4
ncurses-5.2/Ada95/gen/terminal_interface-curses-panels.ads.m4
ncurses-5.2/Ada95/gen/terminal_interface-curses.ads.m4
ncurses-5.2/Ada95/samples/Makefile.in
ncurses-5.2/Ada95/samples/README
ncurses-5.2/Ada95/samples/explain.txt
ncurses-5.2/Ada95/samples/rain.adb
ncurses-5.2/Ada95/samples/rain.ads
ncurses-5.2/Ada95/samples/sample-curses_demo-attributes.adb
ncurses-5.2/Ada95/samples/sample-curses_demo-attributes.ads
ncurses-5.2/Ada95/samples/sample-curses_demo-mouse.adb
ncurses-5.2/Ada95/samples/sample-curses_demo-mouse.ads
ncurses-5.2/Ada95/samples/sample-curses_demo.adb
ncurses-5.2/Ada95/samples/sample-curses_demo.ads
ncurses-5.2/Ada95/samples/sample-explanation.adb
ncurses-5.2/Ada95/samples/sample-explanation.ads
ncurses-5.2/Ada95/samples/sample-form_demo-aux.adb
ncurses-5.2/Ada95/samples/sample-form_demo-aux.ads
ncurses-5.2/Ada95/samples/sample-form_demo-handler.adb
ncurses-5.2/Ada95/samples/sample-form_demo-handler.ads
ncurses-5.2/Ada95/samples/sample-form_demo.adb
ncurses-5.2/Ada95/samples/sample-form_demo.ads
ncurses-5.2/Ada95/samples/sample-function_key_setting.adb
ncurses-5.2/Ada95/samples/sample-function_key_setting.ads
ncurses-5.2/Ada95/samples/sample-header_handler.adb
ncurses-5.2/Ada95/samples/sample-header_handler.ads
ncurses-5.2/Ada95/samples/sample-helpers.adb
ncurses-5.2/Ada95/samples/sample-helpers.ads
ncurses-5.2/Ada95/samples/sample-keyboard_handler.adb
ncurses-5.2/Ada95/samples/sample-keyboard_handler.ads
ncurses-5.2/Ada95/samples/sample-manifest.ads
ncurses-5.2/Ada95/samples/sample-menu_demo-aux.adb
ncurses-5.2/Ada95/samples/sample-menu_demo-aux.ads
ncurses-5.2/Ada95/samples/sample-menu_demo-handler.adb
ncurses-5.2/Ada95/samples/sample-menu_demo-handler.ads
ncurses-5.2/Ada95/samples/sample-menu_demo.adb
ncurses-5.2/Ada95/samples/sample-menu_demo.ads
ncurses-5.2/Ada95/samples/sample-my_field_type.adb
ncurses-5.2/Ada95/samples/sample-my_field_type.ads
ncurses-5.2/Ada95/samples/sample-text_io_demo.adb
ncurses-5.2/Ada95/samples/sample-text_io_demo.ads
ncurses-5.2/Ada95/samples/sample.adb
ncurses-5.2/Ada95/samples/sample.ads
ncurses-5.2/Ada95/samples/status.adb
ncurses-5.2/Ada95/samples/status.ads
ncurses-5.2/Ada95/samples/tour.adb
ncurses-5.2/Ada95/samples/tour.ads
ncurses-5.2/Ada95/src/Makefile.in
ncurses-5.2/Ada95/src/terminal_interface-curses-aux.adb
ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-alpha.adb
ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-alpha.ads
ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-alphanumeric.adb
ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-alphanumeric.ads
ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-enumeration-ada.adb
ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-enumeration-ada.ads
ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-enumeration.adb
ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-enumeration.ads
ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-intfield.adb
ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-intfield.ads
ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-ipv4_address.adb
ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-ipv4_address.ads
ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-numeric.adb
ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-numeric.ads
ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-regexp.adb
ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-regexp.ads
ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-user-choice.adb
ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-user-choice.ads
ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-user.adb
ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-user.ads
ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types.adb
ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_user_data.adb
ncurses-5.2/Ada95/src/terminal_interface-curses-forms-form_user_data.adb
ncurses-5.2/Ada95/src/terminal_interface-curses-forms.adb
ncurses-5.2/Ada95/src/terminal_interface-curses-menus-item_user_data.adb
ncurses-5.2/Ada95/src/terminal_interface-curses-menus-menu_user_data.adb
ncurses-5.2/Ada95/src/terminal_interface-curses-menus.adb
ncurses-5.2/Ada95/src/terminal_interface-curses-mouse.adb
ncurses-5.2/Ada95/src/terminal_interface-curses-panels-user_data.adb
ncurses-5.2/Ada95/src/terminal_interface-curses-panels.adb
ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-aux.adb
ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-aux.ads
ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-complex_io.adb
ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-complex_io.ads
ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-decimal_io.adb
ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-decimal_io.ads
ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-enumeration_io.adb
ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-enumeration_io.ads
ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-fixed_io.adb
ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-fixed_io.ads
ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-float_io.adb
ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-float_io.ads
ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-integer_io.adb
ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-integer_io.ads
ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-modular_io.adb
ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-modular_io.ads
ncurses-5.2/Ada95/src/terminal_interface-curses-text_io.adb
ncurses-5.2/Ada95/src/terminal_interface-curses-text_io.ads
ncurses-5.2/Ada95/src/terminal_interface-curses.adb
ncurses-5.2/Ada95/src/terminal_interface.ads
ncurses-5.2/INSTALL
ncurses-5.2/MANIFEST
ncurses-5.2/Makefile.glibc
ncurses-5.2/Makefile.in
ncurses-5.2/Makefile.os2
ncurses-5.2/NEWS
ncurses-5.2/README
ncurses-5.2/README.emx
ncurses-5.2/README.glibc
ncurses-5.2/TO-DO
ncurses-5.2/aclocal.m4
ncurses-5.2/announce.html.in
ncurses-5.2/c++/Makefile.in
ncurses-5.2/c++/NEWS
ncurses-5.2/c++/PROBLEMS
ncurses-5.2/c++/README-first
ncurses-5.2/c++/cursesapp.cc
ncurses-5.2/c++/cursesapp.h
ncurses-5.2/c++/cursesf.cc
ncurses-5.2/c++/cursesf.h
ncurses-5.2/c++/cursesm.cc
ncurses-5.2/c++/cursesm.h
ncurses-5.2/c++/cursesmain.cc
ncurses-5.2/c++/cursesp.cc
ncurses-5.2/c++/cursesp.h
ncurses-5.2/c++/cursespad.cc
ncurses-5.2/c++/cursesw.cc
ncurses-5.2/c++/cursesw.h
ncurses-5.2/c++/cursslk.cc
ncurses-5.2/c++/cursslk.h
ncurses-5.2/c++/demo.cc
ncurses-5.2/c++/edit_cfg.sh
ncurses-5.2/c++/etip.h.in
ncurses-5.2/c++/headers
ncurses-5.2/c++/internal.h
ncurses-5.2/c++/modules
ncurses-5.2/config.guess
ncurses-5.2/config.sub
ncurses-5.2/configure
ncurses-5.2/configure.in
ncurses-5.2/convert_configure.pl
ncurses-5.2/dist.mk
ncurses-5.2/doc/hackguide.doc
ncurses-5.2/doc/html/Ada95.html
ncurses-5.2/doc/html/ada/files.htm
ncurses-5.2/doc/html/ada/files/T.htm
ncurses-5.2/doc/html/ada/funcs.htm
ncurses-5.2/doc/html/ada/funcs/A.htm
ncurses-5.2/doc/html/ada/funcs/B.htm
ncurses-5.2/doc/html/ada/funcs/C.htm
ncurses-5.2/doc/html/ada/funcs/D.htm
ncurses-5.2/doc/html/ada/funcs/E.htm
ncurses-5.2/doc/html/ada/funcs/F.htm
ncurses-5.2/doc/html/ada/funcs/G.htm
ncurses-5.2/doc/html/ada/funcs/H.htm
ncurses-5.2/doc/html/ada/funcs/I.htm
ncurses-5.2/doc/html/ada/funcs/K.htm
ncurses-5.2/doc/html/ada/funcs/L.htm
ncurses-5.2/doc/html/ada/funcs/M.htm
ncurses-5.2/doc/html/ada/funcs/N.htm
ncurses-5.2/doc/html/ada/funcs/O.htm
ncurses-5.2/doc/html/ada/funcs/P.htm
ncurses-5.2/doc/html/ada/funcs/Q.htm
ncurses-5.2/doc/html/ada/funcs/R.htm
ncurses-5.2/doc/html/ada/funcs/S.htm
ncurses-5.2/doc/html/ada/funcs/T.htm
ncurses-5.2/doc/html/ada/funcs/U.htm
ncurses-5.2/doc/html/ada/funcs/V.htm
ncurses-5.2/doc/html/ada/funcs/W.htm
ncurses-5.2/doc/html/ada/index.htm
ncurses-5.2/doc/html/ada/main.htm
ncurses-5.2/doc/html/ada/table.html
ncurses-5.2/doc/html/ada/terminal_interface-curses-aux__adb.htm
ncurses-5.2/doc/html/ada/terminal_interface-curses-aux__ads.htm
ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-alpha__adb.htm
ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-alpha__ads.htm
ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__adb.htm
ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__ads.htm
ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm
ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm
ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__adb.htm
ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__ads.htm
ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-intfield__adb.htm
ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-intfield__ads.htm
ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__adb.htm
ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__ads.htm
ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-numeric__adb.htm
ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-numeric__ads.htm
ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-regexp__adb.htm
ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-regexp__ads.htm
ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__adb.htm
ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__ads.htm
ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-user__adb.htm
ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-user__ads.htm
ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types__adb.htm
ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types__ads.htm
ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_user_data__adb.htm
ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_user_data__ads.htm
ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-form_user_data__adb.htm
ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-form_user_data__ads.htm
ncurses-5.2/doc/html/ada/terminal_interface-curses-forms__adb.htm
ncurses-5.2/doc/html/ada/terminal_interface-curses-forms__ads.htm
ncurses-5.2/doc/html/ada/terminal_interface-curses-menus-item_user_data__adb.htm
ncurses-5.2/doc/html/ada/terminal_interface-curses-menus-item_user_data__ads.htm
ncurses-5.2/doc/html/ada/terminal_interface-curses-menus-menu_user_data__adb.htm
ncurses-5.2/doc/html/ada/terminal_interface-curses-menus-menu_user_data__ads.htm
ncurses-5.2/doc/html/ada/terminal_interface-curses-menus__adb.htm
ncurses-5.2/doc/html/ada/terminal_interface-curses-menus__ads.htm
ncurses-5.2/doc/html/ada/terminal_interface-curses-mouse__adb.htm
ncurses-5.2/doc/html/ada/terminal_interface-curses-mouse__ads.htm
ncurses-5.2/doc/html/ada/terminal_interface-curses-panels-user_data__adb.htm
ncurses-5.2/doc/html/ada/terminal_interface-curses-panels-user_data__ads.htm
ncurses-5.2/doc/html/ada/terminal_interface-curses-panels__adb.htm
ncurses-5.2/doc/html/ada/terminal_interface-curses-panels__ads.htm
ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-aux__adb.htm
ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-aux__ads.htm
ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-complex_io__adb.htm
ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-complex_io__ads.htm
ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-decimal_io__adb.htm
ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-decimal_io__ads.htm
ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-enumeration_io__adb.htm
ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-enumeration_io__ads.htm
ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-fixed_io__adb.htm
ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-fixed_io__ads.htm
ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-float_io__adb.htm
ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-float_io__ads.htm
ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-integer_io__adb.htm
ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-integer_io__ads.htm
ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-modular_io__adb.htm
ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-modular_io__ads.htm
ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io__adb.htm
ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io__ads.htm
ncurses-5.2/doc/html/ada/terminal_interface-curses__adb.htm
ncurses-5.2/doc/html/ada/terminal_interface-curses__ads.htm
ncurses-5.2/doc/html/ada/terminal_interface__ads.htm
ncurses-5.2/doc/html/announce.html
ncurses-5.2/doc/html/hackguide.html
ncurses-5.2/doc/html/index.html
ncurses-5.2/doc/html/man/captoinfo.1m.html
ncurses-5.2/doc/html/man/clear.1.html
ncurses-5.2/doc/html/man/curs_addch.3x.html
ncurses-5.2/doc/html/man/curs_addchstr.3x.html
ncurses-5.2/doc/html/man/curs_addstr.3x.html
ncurses-5.2/doc/html/man/curs_attr.3x.html
ncurses-5.2/doc/html/man/curs_beep.3x.html
ncurses-5.2/doc/html/man/curs_bkgd.3x.html
ncurses-5.2/doc/html/man/curs_border.3x.html
ncurses-5.2/doc/html/man/curs_clear.3x.html
ncurses-5.2/doc/html/man/curs_color.3x.html
ncurses-5.2/doc/html/man/curs_delch.3x.html
ncurses-5.2/doc/html/man/curs_deleteln.3x.html
ncurses-5.2/doc/html/man/curs_extend.3x.html
ncurses-5.2/doc/html/man/curs_getch.3x.html
ncurses-5.2/doc/html/man/curs_getstr.3x.html
ncurses-5.2/doc/html/man/curs_getyx.3x.html
ncurses-5.2/doc/html/man/curs_inch.3x.html
ncurses-5.2/doc/html/man/curs_inchstr.3x.html
ncurses-5.2/doc/html/man/curs_initscr.3x.html
ncurses-5.2/doc/html/man/curs_inopts.3x.html
ncurses-5.2/doc/html/man/curs_insch.3x.html
ncurses-5.2/doc/html/man/curs_insstr.3x.html
ncurses-5.2/doc/html/man/curs_instr.3x.html
ncurses-5.2/doc/html/man/curs_kernel.3x.html
ncurses-5.2/doc/html/man/curs_mouse.3x.html
ncurses-5.2/doc/html/man/curs_move.3x.html
ncurses-5.2/doc/html/man/curs_outopts.3x.html
ncurses-5.2/doc/html/man/curs_overlay.3x.html
ncurses-5.2/doc/html/man/curs_pad.3x.html
ncurses-5.2/doc/html/man/curs_print.3x.html
ncurses-5.2/doc/html/man/curs_printw.3x.html
ncurses-5.2/doc/html/man/curs_refresh.3x.html
ncurses-5.2/doc/html/man/curs_scanw.3x.html
ncurses-5.2/doc/html/man/curs_scr_dump.3x.html
ncurses-5.2/doc/html/man/curs_scroll.3x.html
ncurses-5.2/doc/html/man/curs_slk.3x.html
ncurses-5.2/doc/html/man/curs_termattrs.3x.html
ncurses-5.2/doc/html/man/curs_termcap.3x.html
ncurses-5.2/doc/html/man/curs_terminfo.3x.html
ncurses-5.2/doc/html/man/curs_touch.3x.html
ncurses-5.2/doc/html/man/curs_trace.3x.html
ncurses-5.2/doc/html/man/curs_util.3x.html
ncurses-5.2/doc/html/man/curs_window.3x.html
ncurses-5.2/doc/html/man/default_colors.3x.html
ncurses-5.2/doc/html/man/define_key.3x.html
ncurses-5.2/doc/html/man/form.3x.html
ncurses-5.2/doc/html/man/form_cursor.3x.html
ncurses-5.2/doc/html/man/form_data.3x.html
ncurses-5.2/doc/html/man/form_driver.3x.html
ncurses-5.2/doc/html/man/form_field.3x.html
ncurses-5.2/doc/html/man/form_field_attributes.3x.html
ncurses-5.2/doc/html/man/form_field_buffer.3x.html
ncurses-5.2/doc/html/man/form_field_info.3x.html
ncurses-5.2/doc/html/man/form_field_just.3x.html
ncurses-5.2/doc/html/man/form_field_new.3x.html
ncurses-5.2/doc/html/man/form_field_opts.3x.html
ncurses-5.2/doc/html/man/form_field_userptr.3x.html
ncurses-5.2/doc/html/man/form_field_validation.3x.html
ncurses-5.2/doc/html/man/form_fieldtype.3x.html
ncurses-5.2/doc/html/man/form_hook.3x.html
ncurses-5.2/doc/html/man/form_new.3x.html
ncurses-5.2/doc/html/man/form_new_page.3x.html
ncurses-5.2/doc/html/man/form_opts.3x.html
ncurses-5.2/doc/html/man/form_page.3x.html
ncurses-5.2/doc/html/man/form_post.3x.html
ncurses-5.2/doc/html/man/form_requestname.3x.html
ncurses-5.2/doc/html/man/form_userptr.3x.html
ncurses-5.2/doc/html/man/form_win.3x.html
ncurses-5.2/doc/html/man/infocmp.1m.html
ncurses-5.2/doc/html/man/infotocap.1m.html
ncurses-5.2/doc/html/man/keybound.3x.html
ncurses-5.2/doc/html/man/keyok.3x.html
ncurses-5.2/doc/html/man/menu.3x.html
ncurses-5.2/doc/html/man/menu_attributes.3x.html
ncurses-5.2/doc/html/man/menu_cursor.3x.html
ncurses-5.2/doc/html/man/menu_driver.3x.html
ncurses-5.2/doc/html/man/menu_format.3x.html
ncurses-5.2/doc/html/man/menu_hook.3x.html
ncurses-5.2/doc/html/man/menu_items.3x.html
ncurses-5.2/doc/html/man/menu_mark.3x.html
ncurses-5.2/doc/html/man/menu_new.3x.html
ncurses-5.2/doc/html/man/menu_opts.3x.html
ncurses-5.2/doc/html/man/menu_pattern.3x.html
ncurses-5.2/doc/html/man/menu_post.3x.html
ncurses-5.2/doc/html/man/menu_requestname.3x.html
ncurses-5.2/doc/html/man/menu_spacing.3x.html
ncurses-5.2/doc/html/man/menu_userptr.3x.html
ncurses-5.2/doc/html/man/menu_win.3x.html
ncurses-5.2/doc/html/man/mitem_current.3x.html
ncurses-5.2/doc/html/man/mitem_name.3x.html
ncurses-5.2/doc/html/man/mitem_new.3x.html
ncurses-5.2/doc/html/man/mitem_opts.3x.html
ncurses-5.2/doc/html/man/mitem_userptr.3x.html
ncurses-5.2/doc/html/man/mitem_value.3x.html
ncurses-5.2/doc/html/man/mitem_visible.3x.html
ncurses-5.2/doc/html/man/ncurses.3x.html
ncurses-5.2/doc/html/man/panel.3x.html
ncurses-5.2/doc/html/man/resizeterm.3x.html
ncurses-5.2/doc/html/man/term.5.html
ncurses-5.2/doc/html/man/term.7.html
ncurses-5.2/doc/html/man/terminfo.5.html
ncurses-5.2/doc/html/man/tic.1m.html
ncurses-5.2/doc/html/man/toe.1m.html
ncurses-5.2/doc/html/man/tput.1.html
ncurses-5.2/doc/html/man/tset.1.html
ncurses-5.2/doc/html/man/wresize.3x.html
ncurses-5.2/doc/html/ncurses-intro.html
ncurses-5.2/doc/ncurses-intro.doc
ncurses-5.2/form/Makefile.in
ncurses-5.2/form/READ.ME
ncurses-5.2/form/fld_arg.c
ncurses-5.2/form/fld_attr.c
ncurses-5.2/form/fld_current.c
ncurses-5.2/form/fld_def.c
ncurses-5.2/form/fld_dup.c
ncurses-5.2/form/fld_ftchoice.c
ncurses-5.2/form/fld_ftlink.c
ncurses-5.2/form/fld_info.c
ncurses-5.2/form/fld_just.c
ncurses-5.2/form/fld_link.c
ncurses-5.2/form/fld_max.c
ncurses-5.2/form/fld_move.c
ncurses-5.2/form/fld_newftyp.c
ncurses-5.2/form/fld_opts.c
ncurses-5.2/form/fld_pad.c
ncurses-5.2/form/fld_page.c
ncurses-5.2/form/fld_stat.c
ncurses-5.2/form/fld_type.c
ncurses-5.2/form/fld_user.c
ncurses-5.2/form/form.h
ncurses-5.2/form/form.priv.h
ncurses-5.2/form/frm_cursor.c
ncurses-5.2/form/frm_data.c
ncurses-5.2/form/frm_def.c
ncurses-5.2/form/frm_driver.c
ncurses-5.2/form/frm_hook.c
ncurses-5.2/form/frm_opts.c
ncurses-5.2/form/frm_page.c
ncurses-5.2/form/frm_post.c
ncurses-5.2/form/frm_req_name.c
ncurses-5.2/form/frm_scale.c
ncurses-5.2/form/frm_sub.c
ncurses-5.2/form/frm_user.c
ncurses-5.2/form/frm_win.c
ncurses-5.2/form/fty_alnum.c
ncurses-5.2/form/fty_alpha.c
ncurses-5.2/form/fty_enum.c
ncurses-5.2/form/fty_int.c
ncurses-5.2/form/fty_ipv4.c
ncurses-5.2/form/fty_num.c
ncurses-5.2/form/fty_regex.c
ncurses-5.2/form/headers
ncurses-5.2/form/llib-lform
ncurses-5.2/form/modules
ncurses-5.2/include/Caps
ncurses-5.2/include/MKhashsize.sh
ncurses-5.2/include/MKncurses_def.sh
ncurses-5.2/include/MKparametrized.sh
ncurses-5.2/include/MKterm.h.awk.in
ncurses-5.2/include/Makefile.in
ncurses-5.2/include/capdefaults.c
ncurses-5.2/include/curses.h.in
ncurses-5.2/include/edit_cfg.sh
ncurses-5.2/include/headers
ncurses-5.2/include/nc_alloc.h
ncurses-5.2/include/nc_panel.h
ncurses-5.2/include/ncurses_cfg.hin
ncurses-5.2/include/ncurses_defs
ncurses-5.2/include/term_entry.h
ncurses-5.2/include/termcap.h.in
ncurses-5.2/include/tic.h
ncurses-5.2/include/unctrl.h.in
ncurses-5.2/install-sh
ncurses-5.2/man/MKterminfo.sh
ncurses-5.2/man/Makefile.in
ncurses-5.2/man/captoinfo.1m
ncurses-5.2/man/clear.1
ncurses-5.2/man/curs_addch.3x
ncurses-5.2/man/curs_addchstr.3x
ncurses-5.2/man/curs_addstr.3x
ncurses-5.2/man/curs_attr.3x
ncurses-5.2/man/curs_beep.3x
ncurses-5.2/man/curs_bkgd.3x
ncurses-5.2/man/curs_border.3x
ncurses-5.2/man/curs_clear.3x
ncurses-5.2/man/curs_color.3x
ncurses-5.2/man/curs_delch.3x
ncurses-5.2/man/curs_deleteln.3x
ncurses-5.2/man/curs_extend.3x
ncurses-5.2/man/curs_getch.3x
ncurses-5.2/man/curs_getstr.3x
ncurses-5.2/man/curs_getyx.3x
ncurses-5.2/man/curs_inch.3x
ncurses-5.2/man/curs_inchstr.3x
ncurses-5.2/man/curs_initscr.3x
ncurses-5.2/man/curs_inopts.3x
ncurses-5.2/man/curs_insch.3x
ncurses-5.2/man/curs_insstr.3x
ncurses-5.2/man/curs_instr.3x
ncurses-5.2/man/curs_kernel.3x
ncurses-5.2/man/curs_mouse.3x
ncurses-5.2/man/curs_move.3x
ncurses-5.2/man/curs_outopts.3x
ncurses-5.2/man/curs_overlay.3x
ncurses-5.2/man/curs_pad.3x
ncurses-5.2/man/curs_print.3x
ncurses-5.2/man/curs_printw.3x
ncurses-5.2/man/curs_refresh.3x
ncurses-5.2/man/curs_scanw.3x
ncurses-5.2/man/curs_scr_dump.3x
ncurses-5.2/man/curs_scroll.3x
ncurses-5.2/man/curs_slk.3x
ncurses-5.2/man/curs_termattrs.3x
ncurses-5.2/man/curs_termcap.3x
ncurses-5.2/man/curs_terminfo.3x
ncurses-5.2/man/curs_touch.3x
ncurses-5.2/man/curs_trace.3x
ncurses-5.2/man/curs_util.3x
ncurses-5.2/man/curs_window.3x
ncurses-5.2/man/default_colors.3x
ncurses-5.2/man/define_key.3x
ncurses-5.2/man/form.3x
ncurses-5.2/man/form_cursor.3x
ncurses-5.2/man/form_data.3x
ncurses-5.2/man/form_driver.3x
ncurses-5.2/man/form_field.3x
ncurses-5.2/man/form_field_attributes.3x
ncurses-5.2/man/form_field_buffer.3x
ncurses-5.2/man/form_field_info.3x
ncurses-5.2/man/form_field_just.3x
ncurses-5.2/man/form_field_new.3x
ncurses-5.2/man/form_field_opts.3x
ncurses-5.2/man/form_field_userptr.3x
ncurses-5.2/man/form_field_validation.3x
ncurses-5.2/man/form_fieldtype.3x
ncurses-5.2/man/form_hook.3x
ncurses-5.2/man/form_new.3x
ncurses-5.2/man/form_new_page.3x
ncurses-5.2/man/form_opts.3x
ncurses-5.2/man/form_page.3x
ncurses-5.2/man/form_post.3x
ncurses-5.2/man/form_requestname.3x
ncurses-5.2/man/form_userptr.3x
ncurses-5.2/man/form_win.3x
ncurses-5.2/man/infocmp.1m
ncurses-5.2/man/infotocap.1m
ncurses-5.2/man/keybound.3x
ncurses-5.2/man/keyok.3x
ncurses-5.2/man/make_sed.sh
ncurses-5.2/man/man_db.renames
ncurses-5.2/man/manlinks.sed
ncurses-5.2/man/menu.3x
ncurses-5.2/man/menu_attributes.3x
ncurses-5.2/man/menu_cursor.3x
ncurses-5.2/man/menu_driver.3x
ncurses-5.2/man/menu_format.3x
ncurses-5.2/man/menu_hook.3x
ncurses-5.2/man/menu_items.3x
ncurses-5.2/man/menu_mark.3x
ncurses-5.2/man/menu_new.3x
ncurses-5.2/man/menu_opts.3x
ncurses-5.2/man/menu_pattern.3x
ncurses-5.2/man/menu_post.3x
ncurses-5.2/man/menu_requestname.3x
ncurses-5.2/man/menu_spacing.3x
ncurses-5.2/man/menu_userptr.3x
ncurses-5.2/man/menu_win.3x
ncurses-5.2/man/mitem_current.3x
ncurses-5.2/man/mitem_name.3x
ncurses-5.2/man/mitem_new.3x
ncurses-5.2/man/mitem_opts.3x
ncurses-5.2/man/mitem_userptr.3x
ncurses-5.2/man/mitem_value.3x
ncurses-5.2/man/mitem_visible.3x
ncurses-5.2/man/ncurses.3x
ncurses-5.2/man/panel.3x
ncurses-5.2/man/resizeterm.3x
ncurses-5.2/man/term.5
ncurses-5.2/man/term.7
ncurses-5.2/man/terminfo.head
ncurses-5.2/man/terminfo.tail
ncurses-5.2/man/tic.1m
ncurses-5.2/man/toe.1m
ncurses-5.2/man/tput.1
ncurses-5.2/man/tset.1
ncurses-5.2/man/wresize.3x
ncurses-5.2/menu/Makefile.in
ncurses-5.2/menu/READ.ME
ncurses-5.2/menu/eti.h
ncurses-5.2/menu/headers
ncurses-5.2/menu/llib-lmenu
ncurses-5.2/menu/m_attribs.c
ncurses-5.2/menu/m_cursor.c
ncurses-5.2/menu/m_driver.c
ncurses-5.2/menu/m_format.c
ncurses-5.2/menu/m_global.c
ncurses-5.2/menu/m_hook.c
ncurses-5.2/menu/m_item_cur.c
ncurses-5.2/menu/m_item_nam.c
ncurses-5.2/menu/m_item_new.c
ncurses-5.2/menu/m_item_opt.c
ncurses-5.2/menu/m_item_top.c
ncurses-5.2/menu/m_item_use.c
ncurses-5.2/menu/m_item_val.c
ncurses-5.2/menu/m_item_vis.c
ncurses-5.2/menu/m_items.c
ncurses-5.2/menu/m_new.c
ncurses-5.2/menu/m_opts.c
ncurses-5.2/menu/m_pad.c
ncurses-5.2/menu/m_pattern.c
ncurses-5.2/menu/m_post.c
ncurses-5.2/menu/m_req_name.c
ncurses-5.2/menu/m_scale.c
ncurses-5.2/menu/m_spacing.c
ncurses-5.2/menu/m_sub.c
ncurses-5.2/menu/m_userptr.c
ncurses-5.2/menu/m_win.c
ncurses-5.2/menu/menu.h
ncurses-5.2/menu/menu.priv.h
ncurses-5.2/menu/mf_common.h
ncurses-5.2/menu/modules
ncurses-5.2/misc/Makefile.in
ncurses-5.2/misc/chkdef.cmd
ncurses-5.2/misc/cleantic.cmd
ncurses-5.2/misc/cmpdef.cmd
ncurses-5.2/misc/emx.src
ncurses-5.2/misc/form.def
ncurses-5.2/misc/form.ref
ncurses-5.2/misc/indent.pro
ncurses-5.2/misc/makedef.cmd
ncurses-5.2/misc/makellib
ncurses-5.2/misc/menu.def
ncurses-5.2/misc/menu.ref
ncurses-5.2/misc/ncurses.def
ncurses-5.2/misc/ncurses.ref
ncurses-5.2/misc/panel.def
ncurses-5.2/misc/panel.ref
ncurses-5.2/misc/run_tic.in
ncurses-5.2/misc/shlib
ncurses-5.2/misc/tabset/std
ncurses-5.2/misc/tabset/stdcrt
ncurses-5.2/misc/tabset/vt100
ncurses-5.2/misc/tabset/vt300
ncurses-5.2/misc/tdlint
ncurses-5.2/misc/terminfo.src
ncurses-5.2/mk-0th.awk
ncurses-5.2/mk-1st.awk
ncurses-5.2/mk-2nd.awk
ncurses-5.2/mkinstalldirs
ncurses-5.2/ncurses/Makefile.in
ncurses-5.2/ncurses/README
ncurses-5.2/ncurses/SigAction.h
ncurses-5.2/ncurses/base/MKkeyname.awk
ncurses-5.2/ncurses/base/MKlib_gen.sh
ncurses-5.2/ncurses/base/MKunctrl.awk
ncurses-5.2/ncurses/base/README
ncurses-5.2/ncurses/base/define_key.c
ncurses-5.2/ncurses/base/keybound.c
ncurses-5.2/ncurses/base/keyok.c
ncurses-5.2/ncurses/base/lib_addch.c
ncurses-5.2/ncurses/base/lib_addstr.c
ncurses-5.2/ncurses/base/lib_beep.c
ncurses-5.2/ncurses/base/lib_bkgd.c
ncurses-5.2/ncurses/base/lib_box.c
ncurses-5.2/ncurses/base/lib_chgat.c
ncurses-5.2/ncurses/base/lib_clear.c
ncurses-5.2/ncurses/base/lib_clearok.c
ncurses-5.2/ncurses/base/lib_clrbot.c
ncurses-5.2/ncurses/base/lib_clreol.c
ncurses-5.2/ncurses/base/lib_color.c
ncurses-5.2/ncurses/base/lib_colorset.c
ncurses-5.2/ncurses/base/lib_delch.c
ncurses-5.2/ncurses/base/lib_delwin.c
ncurses-5.2/ncurses/base/lib_dft_fgbg.c
ncurses-5.2/ncurses/base/lib_echo.c
ncurses-5.2/ncurses/base/lib_endwin.c
ncurses-5.2/ncurses/base/lib_erase.c
ncurses-5.2/ncurses/base/lib_flash.c
ncurses-5.2/ncurses/base/lib_freeall.c
ncurses-5.2/ncurses/base/lib_getch.c
ncurses-5.2/ncurses/base/lib_getstr.c
ncurses-5.2/ncurses/base/lib_hline.c
ncurses-5.2/ncurses/base/lib_immedok.c
ncurses-5.2/ncurses/base/lib_inchstr.c
ncurses-5.2/ncurses/base/lib_initscr.c
ncurses-5.2/ncurses/base/lib_insch.c
ncurses-5.2/ncurses/base/lib_insdel.c
ncurses-5.2/ncurses/base/lib_insstr.c
ncurses-5.2/ncurses/base/lib_instr.c
ncurses-5.2/ncurses/base/lib_isendwin.c
ncurses-5.2/ncurses/base/lib_leaveok.c
ncurses-5.2/ncurses/base/lib_mouse.c
ncurses-5.2/ncurses/base/lib_move.c
ncurses-5.2/ncurses/base/lib_mvwin.c
ncurses-5.2/ncurses/base/lib_newterm.c
ncurses-5.2/ncurses/base/lib_newwin.c
ncurses-5.2/ncurses/base/lib_nl.c
ncurses-5.2/ncurses/base/lib_overlay.c
ncurses-5.2/ncurses/base/lib_pad.c
ncurses-5.2/ncurses/base/lib_printw.c
ncurses-5.2/ncurses/base/lib_redrawln.c
ncurses-5.2/ncurses/base/lib_refresh.c
ncurses-5.2/ncurses/base/lib_restart.c
ncurses-5.2/ncurses/base/lib_scanw.c
ncurses-5.2/ncurses/base/lib_screen.c
ncurses-5.2/ncurses/base/lib_scroll.c
ncurses-5.2/ncurses/base/lib_scrollok.c
ncurses-5.2/ncurses/base/lib_scrreg.c
ncurses-5.2/ncurses/base/lib_set_term.c
ncurses-5.2/ncurses/base/lib_slk.c
ncurses-5.2/ncurses/base/lib_slkatr_set.c
ncurses-5.2/ncurses/base/lib_slkatrof.c
ncurses-5.2/ncurses/base/lib_slkatron.c
ncurses-5.2/ncurses/base/lib_slkatrset.c
ncurses-5.2/ncurses/base/lib_slkattr.c
ncurses-5.2/ncurses/base/lib_slkclear.c
ncurses-5.2/ncurses/base/lib_slkcolor.c
ncurses-5.2/ncurses/base/lib_slkinit.c
ncurses-5.2/ncurses/base/lib_slklab.c
ncurses-5.2/ncurses/base/lib_slkrefr.c
ncurses-5.2/ncurses/base/lib_slkset.c
ncurses-5.2/ncurses/base/lib_slktouch.c
ncurses-5.2/ncurses/base/lib_touch.c
ncurses-5.2/ncurses/base/lib_ungetch.c
ncurses-5.2/ncurses/base/lib_vline.c
ncurses-5.2/ncurses/base/lib_wattroff.c
ncurses-5.2/ncurses/base/lib_wattron.c
ncurses-5.2/ncurses/base/lib_winch.c
ncurses-5.2/ncurses/base/lib_window.c
ncurses-5.2/ncurses/base/memmove.c
ncurses-5.2/ncurses/base/nc_panel.c
ncurses-5.2/ncurses/base/resizeterm.c
ncurses-5.2/ncurses/base/safe_sprintf.c
ncurses-5.2/ncurses/base/sigaction.c
ncurses-5.2/ncurses/base/tries.c
ncurses-5.2/ncurses/base/version.c
ncurses-5.2/ncurses/base/vsscanf.c
ncurses-5.2/ncurses/base/wresize.c
ncurses-5.2/ncurses/curses.priv.h
ncurses-5.2/ncurses/fifo_defs.h
ncurses-5.2/ncurses/llib-lncurses
ncurses-5.2/ncurses/modules
ncurses-5.2/ncurses/tinfo/MKcaptab.awk
ncurses-5.2/ncurses/tinfo/MKfallback.sh
ncurses-5.2/ncurses/tinfo/MKnames.awk
ncurses-5.2/ncurses/tinfo/README
ncurses-5.2/ncurses/tinfo/access.c
ncurses-5.2/ncurses/tinfo/add_tries.c
ncurses-5.2/ncurses/tinfo/alloc_entry.c
ncurses-5.2/ncurses/tinfo/alloc_ttype.c
ncurses-5.2/ncurses/tinfo/captoinfo.c
ncurses-5.2/ncurses/tinfo/comp_error.c
ncurses-5.2/ncurses/tinfo/comp_expand.c
ncurses-5.2/ncurses/tinfo/comp_hash.c
ncurses-5.2/ncurses/tinfo/comp_parse.c
ncurses-5.2/ncurses/tinfo/comp_scan.c
ncurses-5.2/ncurses/tinfo/doalloc.c
ncurses-5.2/ncurses/tinfo/free_ttype.c
ncurses-5.2/ncurses/tinfo/getenv_num.c
ncurses-5.2/ncurses/tinfo/home_terminfo.c
ncurses-5.2/ncurses/tinfo/init_keytry.c
ncurses-5.2/ncurses/tinfo/keys.list
ncurses-5.2/ncurses/tinfo/lib_acs.c
ncurses-5.2/ncurses/tinfo/lib_baudrate.c
ncurses-5.2/ncurses/tinfo/lib_cur_term.c
ncurses-5.2/ncurses/tinfo/lib_data.c
ncurses-5.2/ncurses/tinfo/lib_has_cap.c
ncurses-5.2/ncurses/tinfo/lib_kernel.c
ncurses-5.2/ncurses/tinfo/lib_longname.c
ncurses-5.2/ncurses/tinfo/lib_napms.c
ncurses-5.2/ncurses/tinfo/lib_options.c
ncurses-5.2/ncurses/tinfo/lib_print.c
ncurses-5.2/ncurses/tinfo/lib_raw.c
ncurses-5.2/ncurses/tinfo/lib_setup.c
ncurses-5.2/ncurses/tinfo/lib_termcap.c
ncurses-5.2/ncurses/tinfo/lib_termname.c
ncurses-5.2/ncurses/tinfo/lib_tgoto.c
ncurses-5.2/ncurses/tinfo/lib_ti.c
ncurses-5.2/ncurses/tinfo/lib_tparm.c
ncurses-5.2/ncurses/tinfo/lib_tputs.c
ncurses-5.2/ncurses/tinfo/lib_ttyflags.c
ncurses-5.2/ncurses/tinfo/make_keys.c
ncurses-5.2/ncurses/tinfo/name_match.c
ncurses-5.2/ncurses/tinfo/parse_entry.c
ncurses-5.2/ncurses/tinfo/read_entry.c
ncurses-5.2/ncurses/tinfo/read_termcap.c
ncurses-5.2/ncurses/tinfo/setbuf.c
ncurses-5.2/ncurses/tinfo/strings.c
ncurses-5.2/ncurses/tinfo/write_entry.c
ncurses-5.2/ncurses/trace/README
ncurses-5.2/ncurses/trace/lib_trace.c
ncurses-5.2/ncurses/trace/lib_traceatr.c
ncurses-5.2/ncurses/trace/lib_tracebits.c
ncurses-5.2/ncurses/trace/lib_tracechr.c
ncurses-5.2/ncurses/trace/lib_tracedmp.c
ncurses-5.2/ncurses/trace/lib_tracemse.c
ncurses-5.2/ncurses/trace/trace_buf.c
ncurses-5.2/ncurses/trace/trace_tries.c
ncurses-5.2/ncurses/trace/trace_xnames.c
ncurses-5.2/ncurses/tty/MKexpanded.sh
ncurses-5.2/ncurses/tty/hardscroll.c
ncurses-5.2/ncurses/tty/hashmap.c
ncurses-5.2/ncurses/tty/lib_mvcur.c
ncurses-5.2/ncurses/tty/lib_tstp.c
ncurses-5.2/ncurses/tty/lib_twait.c
ncurses-5.2/ncurses/tty/lib_vidattr.c
ncurses-5.2/ncurses/tty/tty_display.h
ncurses-5.2/ncurses/tty/tty_input.h
ncurses-5.2/ncurses/tty/tty_update.c
ncurses-5.2/panel/Makefile.in
ncurses-5.2/panel/headers
ncurses-5.2/panel/llib-lpanel
ncurses-5.2/panel/modules
ncurses-5.2/panel/p_above.c
ncurses-5.2/panel/p_below.c
ncurses-5.2/panel/p_bottom.c
ncurses-5.2/panel/p_delete.c
ncurses-5.2/panel/p_hidden.c
ncurses-5.2/panel/p_hide.c
ncurses-5.2/panel/p_move.c
ncurses-5.2/panel/p_new.c
ncurses-5.2/panel/p_replace.c
ncurses-5.2/panel/p_show.c
ncurses-5.2/panel/p_top.c
ncurses-5.2/panel/p_update.c
ncurses-5.2/panel/p_user.c
ncurses-5.2/panel/p_win.c
ncurses-5.2/panel/panel.c
ncurses-5.2/panel/panel.h
ncurses-5.2/panel/panel.priv.h
ncurses-5.2/progs/MKtermsort.sh
ncurses-5.2/progs/Makefile.in
ncurses-5.2/progs/capconvert
ncurses-5.2/progs/clear.c
ncurses-5.2/progs/clear.sh
ncurses-5.2/progs/dump_entry.c
ncurses-5.2/progs/dump_entry.h
ncurses-5.2/progs/infocmp.c
ncurses-5.2/progs/modules
ncurses-5.2/progs/progs.priv.h
ncurses-5.2/progs/tic.c
ncurses-5.2/progs/toe.c
ncurses-5.2/progs/tput.c
ncurses-5.2/progs/tset.c
ncurses-5.2/sysdeps/unix/sysv/linux/Makefile
ncurses-5.2/sysdeps/unix/sysv/linux/alpha/configure
ncurses-5.2/sysdeps/unix/sysv/linux/configure
ncurses-5.2/sysdeps/unix/sysv/linux/edit_man.sed
ncurses-5.2/sysdeps/unix/sysv/linux/edit_man.sh
ncurses-5.2/sysdeps/unix/sysv/linux/run_tic.sh
ncurses-5.2/tack/COPYING
ncurses-5.2/tack/HISTORY
ncurses-5.2/tack/Makefile.in
ncurses-5.2/tack/README
ncurses-5.2/tack/ansi.c
ncurses-5.2/tack/charset.c
ncurses-5.2/tack/color.c
ncurses-5.2/tack/control.c
ncurses-5.2/tack/crum.c
ncurses-5.2/tack/edit.c
ncurses-5.2/tack/fun.c
ncurses-5.2/tack/init.c
ncurses-5.2/tack/menu.c
ncurses-5.2/tack/modes.c
ncurses-5.2/tack/modules
ncurses-5.2/tack/output.c
ncurses-5.2/tack/pad.c
ncurses-5.2/tack/scan.c
ncurses-5.2/tack/sync.c
ncurses-5.2/tack/sysdep.c
ncurses-5.2/tack/tack.1
ncurses-5.2/tack/tack.c
ncurses-5.2/tack/tack.h
ncurses-5.2/tar-copy.sh
ncurses-5.2/test/Makefile.in
ncurses-5.2/test/README
ncurses-5.2/test/blue.c
ncurses-5.2/test/bs.6
ncurses-5.2/test/bs.c
ncurses-5.2/test/cardfile.c
ncurses-5.2/test/cardfile.dat
ncurses-5.2/test/configure
ncurses-5.2/test/configure.in
ncurses-5.2/test/ditto.c
ncurses-5.2/test/dots.c
ncurses-5.2/test/filter.c
ncurses-5.2/test/firework.c
ncurses-5.2/test/firstlast.c
ncurses-5.2/test/gdc.6
ncurses-5.2/test/gdc.c
ncurses-5.2/test/hanoi.c
ncurses-5.2/test/hashtest.c
ncurses-5.2/test/keynames.c
ncurses-5.2/test/knight.c
ncurses-5.2/test/lrtest.c
ncurses-5.2/test/modules
ncurses-5.2/test/ncurses.c
ncurses-5.2/test/ncurses_tst.hin
ncurses-5.2/test/newdemo.c
ncurses-5.2/test/railroad.c
ncurses-5.2/test/rain.c
ncurses-5.2/test/tclock.c
ncurses-5.2/test/test.priv.h
ncurses-5.2/test/testaddch.c
ncurses-5.2/test/testcurs.c
ncurses-5.2/test/testscanw.c
ncurses-5.2/test/tracemunch
ncurses-5.2/test/view.c
ncurses-5.2/test/worm.c
ncurses-5.2/test/xmas.c
Cherrypick from master 2003-01-28 19:56:05 UTC Joel Sherrill <joel.sherrill@OARcorp.com> '2003-01-28 Joel Sherrill <joel@OARcorp.com>':
ChangeLog
RTEMS_Makefiles/Makefile.bfd
RTEMS_Makefiles/Makefile.libtecla
RTEMS_Makefiles/Makefile.ncurses
RTEMS_Makefiles/Makefile.ncurses-5.3
RTEMS_Makefiles/Makefile.readline-4.3
SUPPORT
VERSION
bit
bit_bfd
libtecla-1.4.1/CHANGES
libtecla-1.4.1/INSTALL
libtecla-1.4.1/LICENSE.TERMS
libtecla-1.4.1/Makefile
libtecla-1.4.1/Makefile.in
libtecla-1.4.1/Makefile.rules
libtecla-1.4.1/Makefile.stub
libtecla-1.4.1/PORTING
libtecla-1.4.1/README
libtecla-1.4.1/RELEASE.NOTES
libtecla-1.4.1/config.guess
libtecla-1.4.1/config.sub
libtecla-1.4.1/configure
libtecla-1.4.1/configure.in
libtecla-1.4.1/cplfile.c
libtecla-1.4.1/cplfile.h
libtecla-1.4.1/cplmatch.c
libtecla-1.4.1/demo.c
libtecla-1.4.1/demo2.c
libtecla-1.4.1/direader.c
libtecla-1.4.1/direader.h
libtecla-1.4.1/enhance.c
libtecla-1.4.1/expand.c
libtecla-1.4.1/freelist.c
libtecla-1.4.1/freelist.h
libtecla-1.4.1/getline.c
libtecla-1.4.1/getline.h
libtecla-1.4.1/hash.c
libtecla-1.4.1/hash.h
libtecla-1.4.1/history.c
libtecla-1.4.1/history.h
libtecla-1.4.1/homedir.c
libtecla-1.4.1/homedir.h
libtecla-1.4.1/html/changes.html
libtecla-1.4.1/html/cpl_complete_word.html
libtecla-1.4.1/html/ef_expand_file.html
libtecla-1.4.1/html/enhance.html
libtecla-1.4.1/html/gl_get_line.html
libtecla-1.4.1/html/index.html
libtecla-1.4.1/html/libtecla.html
libtecla-1.4.1/html/pca_lookup_file.html
libtecla-1.4.1/html/release.html
libtecla-1.4.1/install-sh
libtecla-1.4.1/keytab.c
libtecla-1.4.1/keytab.h
libtecla-1.4.1/libtecla.h
libtecla-1.4.1/libtecla.map
libtecla-1.4.1/man3/cfc_file_start.3
libtecla-1.4.1/man3/cfc_literal_escapes.3
libtecla-1.4.1/man3/cfc_set_check_fn.3
libtecla-1.4.1/man3/cpl_add_completion.3
libtecla-1.4.1/man3/cpl_complete_word.3
libtecla-1.4.1/man3/cpl_file_completions.3
libtecla-1.4.1/man3/cpl_last_error.3
libtecla-1.4.1/man3/cpl_list_completions.3
libtecla-1.4.1/man3/cpl_record_error.3
libtecla-1.4.1/man3/del_CplFileConf.3
libtecla-1.4.1/man3/del_ExpandFile.3
libtecla-1.4.1/man3/del_GetLine.3
libtecla-1.4.1/man3/del_PathCache.3
libtecla-1.4.1/man3/del_PcaPathConf.3
libtecla-1.4.1/man3/del_WordCompletion.3
libtecla-1.4.1/man3/ef_expand_file.3
libtecla-1.4.1/man3/ef_last_error.3
libtecla-1.4.1/man3/ef_list_expansions.3
libtecla-1.4.1/man3/enhance.3
libtecla-1.4.1/man3/gl_change_terminal.3
libtecla-1.4.1/man3/gl_clear_history.3
libtecla-1.4.1/man3/gl_configure_getline.3
libtecla-1.4.1/man3/gl_customize_completion.3
libtecla-1.4.1/man3/gl_echo_mode.3
libtecla-1.4.1/man3/gl_get_line.3
libtecla-1.4.1/man3/gl_group_history.3
libtecla-1.4.1/man3/gl_ignore_signal.3
libtecla-1.4.1/man3/gl_last_signal.3
libtecla-1.4.1/man3/gl_limit_history.3
libtecla-1.4.1/man3/gl_load_history.3
libtecla-1.4.1/man3/gl_lookup_history.3
libtecla-1.4.1/man3/gl_prompt_style.3
libtecla-1.4.1/man3/gl_range_of_history.3
libtecla-1.4.1/man3/gl_resize_history.3
libtecla-1.4.1/man3/gl_save_history.3
libtecla-1.4.1/man3/gl_show_history.3
libtecla-1.4.1/man3/gl_size_of_history.3
libtecla-1.4.1/man3/gl_state_of_history.3
libtecla-1.4.1/man3/gl_terminal_size.3
libtecla-1.4.1/man3/gl_toggle_history.3
libtecla-1.4.1/man3/gl_trap_signal.3
libtecla-1.4.1/man3/gl_watch_fd.3
libtecla-1.4.1/man3/libtecla.3
libtecla-1.4.1/man3/libtecla_version.3
libtecla-1.4.1/man3/new_CplFileConf.3
libtecla-1.4.1/man3/new_ExpandFile.3
libtecla-1.4.1/man3/new_GetLine.3
libtecla-1.4.1/man3/new_PathCache.3
libtecla-1.4.1/man3/new_PcaPathConf.3
libtecla-1.4.1/man3/new_WordCompletion.3
libtecla-1.4.1/man3/pca_last_error.3
libtecla-1.4.1/man3/pca_lookup_file.3
libtecla-1.4.1/man3/pca_path_completions.3
libtecla-1.4.1/man3/pca_scan_path.3
libtecla-1.4.1/man3/pca_set_check_fn.3
libtecla-1.4.1/man3/ppc_file_start.3
libtecla-1.4.1/man3/ppc_literal_escapes.3
libtecla-1.4.1/pathutil.c
libtecla-1.4.1/pathutil.h
libtecla-1.4.1/pcache.c
libtecla-1.4.1/stringrp.c
libtecla-1.4.1/stringrp.h
libtecla-1.4.1/strngmem.c
libtecla-1.4.1/strngmem.h
libtecla-1.4.1/update_html
libtecla-1.4.1/update_version
libtecla-1.4.1/version.c
readline-4.3.orig/CHANGELOG
readline-4.3.orig/CHANGES
readline-4.3.orig/COPYING
readline-4.3.orig/INSTALL
readline-4.3.orig/MANIFEST
readline-4.3.orig/Makefile.in
readline-4.3.orig/README
readline-4.3.orig/USAGE
readline-4.3.orig/aclocal.m4
readline-4.3.orig/ansi_stdlib.h
readline-4.3.orig/bind.c
readline-4.3.orig/callback.c
readline-4.3.orig/chardefs.h
readline-4.3.orig/compat.c
readline-4.3.orig/complete.c
readline-4.3.orig/config.h.in
readline-4.3.orig/configure
readline-4.3.orig/configure.in
readline-4.3.orig/display.c
readline-4.3.orig/doc/Makefile.in
readline-4.3.orig/doc/hist.texinfo
readline-4.3.orig/doc/history.0
readline-4.3.orig/doc/history.3
readline-4.3.orig/doc/history.dvi
readline-4.3.orig/doc/history.html
readline-4.3.orig/doc/history.info
readline-4.3.orig/doc/history.ps
readline-4.3.orig/doc/history_3.ps
readline-4.3.orig/doc/hstech.texinfo
readline-4.3.orig/doc/hsuser.texinfo
readline-4.3.orig/doc/manvers.texinfo
readline-4.3.orig/doc/readline.0
readline-4.3.orig/doc/readline.3
readline-4.3.orig/doc/readline.dvi
readline-4.3.orig/doc/readline.html
readline-4.3.orig/doc/readline.info
readline-4.3.orig/doc/readline.ps
readline-4.3.orig/doc/readline_3.ps
readline-4.3.orig/doc/rlman.texinfo
readline-4.3.orig/doc/rltech.texinfo
readline-4.3.orig/doc/rluser.texinfo
readline-4.3.orig/doc/rluserman.dvi
readline-4.3.orig/doc/rluserman.html
readline-4.3.orig/doc/rluserman.info
readline-4.3.orig/doc/rluserman.ps
readline-4.3.orig/doc/rluserman.texinfo
readline-4.3.orig/doc/texi2dvi
readline-4.3.orig/doc/texi2html
readline-4.3.orig/doc/texinfo.tex
readline-4.3.orig/emacs_keymap.c
readline-4.3.orig/examples/Inputrc
readline-4.3.orig/examples/Makefile.in
readline-4.3.orig/examples/excallback.c
readline-4.3.orig/examples/fileman.c
readline-4.3.orig/examples/histexamp.c
readline-4.3.orig/examples/manexamp.c
readline-4.3.orig/examples/readlinebuf.h
readline-4.3.orig/examples/rl.c
readline-4.3.orig/examples/rlcat.c
readline-4.3.orig/examples/rlfe.c
readline-4.3.orig/examples/rltest.c
readline-4.3.orig/examples/rlversion.c
readline-4.3.orig/funmap.c
readline-4.3.orig/histexpand.c
readline-4.3.orig/histfile.c
readline-4.3.orig/histlib.h
readline-4.3.orig/history.c
readline-4.3.orig/history.h
readline-4.3.orig/histsearch.c
readline-4.3.orig/input.c
readline-4.3.orig/isearch.c
readline-4.3.orig/keymaps.c
readline-4.3.orig/keymaps.h
readline-4.3.orig/kill.c
readline-4.3.orig/macro.c
readline-4.3.orig/mbutil.c
readline-4.3.orig/misc.c
readline-4.3.orig/nls.c
readline-4.3.orig/parens.c
readline-4.3.orig/posixdir.h
readline-4.3.orig/posixjmp.h
readline-4.3.orig/posixstat.h
readline-4.3.orig/readline.c
readline-4.3.orig/readline.h
readline-4.3.orig/rlconf.h
readline-4.3.orig/rldefs.h
readline-4.3.orig/rlmbutil.h
readline-4.3.orig/rlprivate.h
readline-4.3.orig/rlshell.h
readline-4.3.orig/rlstdc.h
readline-4.3.orig/rltty.c
readline-4.3.orig/rltty.h
readline-4.3.orig/rltypedefs.h
readline-4.3.orig/rlwinsize.h
readline-4.3.orig/savestring.c
readline-4.3.orig/search.c
readline-4.3.orig/shell.c
readline-4.3.orig/shlib/Makefile.in
readline-4.3.orig/signals.c
readline-4.3.orig/support/config.guess
readline-4.3.orig/support/config.sub
readline-4.3.orig/support/install.sh
readline-4.3.orig/support/mkdirs
readline-4.3.orig/support/mkdist
readline-4.3.orig/support/shlib-install
readline-4.3.orig/support/shobj-conf
readline-4.3.orig/support/wcwidth.c
readline-4.3.orig/tcap.h
readline-4.3.orig/terminal.c
readline-4.3.orig/text.c
readline-4.3.orig/tilde.c
readline-4.3.orig/tilde.h
readline-4.3.orig/undo.c
readline-4.3.orig/util.c
readline-4.3.orig/vi_keymap.c
readline-4.3.orig/vi_mode.c
readline-4.3.orig/xmalloc.c
readline-4.3.orig/xmalloc.h
readline-4.3/CHANGELOG-ReadLine
readline-4.3/CHANGES
readline-4.3/COPYING
readline-4.3/INSTALL
readline-4.3/MANIFEST
readline-4.3/Makefile.in
readline-4.3/README
readline-4.3/USAGE
readline-4.3/aclocal.m4
readline-4.3/ansi_stdlib.h
readline-4.3/bind.c
readline-4.3/callback.c
readline-4.3/chardefs.h
readline-4.3/compat.c
readline-4.3/complete.c
readline-4.3/config.h.in
readline-4.3/configure
readline-4.3/configure.in
readline-4.3/display.c
readline-4.3/doc/Makefile.in
readline-4.3/doc/hist.texinfo
readline-4.3/doc/history.3
readline-4.3/doc/hstech.texinfo
readline-4.3/doc/hsuser.texinfo
readline-4.3/doc/manvers.texinfo
readline-4.3/doc/readline.3
readline-4.3/doc/rlman.texinfo
readline-4.3/doc/rltech.texinfo
readline-4.3/doc/rluser.texinfo
readline-4.3/doc/rluserman.texinfo
readline-4.3/doc/texi2dvi
readline-4.3/doc/texi2html
readline-4.3/doc/texinfo.tex
readline-4.3/emacs_keymap.c
readline-4.3/examples/Inputrc
readline-4.3/examples/Makefile.in
readline-4.3/examples/excallback.c
readline-4.3/examples/fileman.c
readline-4.3/examples/histexamp.c
readline-4.3/examples/manexamp.c
readline-4.3/examples/readlinebuf.h
readline-4.3/examples/rl.c
readline-4.3/examples/rlcat.c
readline-4.3/examples/rlfe.c
readline-4.3/examples/rltest.c
readline-4.3/examples/rlversion.c
readline-4.3/funmap.c
readline-4.3/histexpand.c
readline-4.3/histfile.c
readline-4.3/histlib.h
readline-4.3/history.c
readline-4.3/history.h
readline-4.3/histsearch.c
readline-4.3/input.c
readline-4.3/isearch.c
readline-4.3/keymaps.c
readline-4.3/keymaps.h
readline-4.3/kill.c
readline-4.3/macro.c
readline-4.3/mbutil.c
readline-4.3/misc.c
readline-4.3/nls.c
readline-4.3/parens.c
readline-4.3/posixdir.h
readline-4.3/posixjmp.h
readline-4.3/posixstat.h
readline-4.3/readline.c
readline-4.3/readline.h
readline-4.3/rlconf.h
readline-4.3/rldefs.h
readline-4.3/rlmbutil.h
readline-4.3/rlprivate.h
readline-4.3/rlshell.h
readline-4.3/rlstdc.h
readline-4.3/rltty.c
readline-4.3/rltty.h
readline-4.3/rltypedefs.h
readline-4.3/rlwinsize.h
readline-4.3/savestring.c
readline-4.3/search.c
readline-4.3/shell.c
readline-4.3/shlib/Makefile.in
readline-4.3/signals.c
readline-4.3/support/config.guess
readline-4.3/support/config.sub
readline-4.3/support/install.sh
readline-4.3/support/mkdirs
readline-4.3/support/mkdist
readline-4.3/support/shlib-install
readline-4.3/support/shobj-conf
readline-4.3/support/wcwidth.c
readline-4.3/tcap.h
readline-4.3/terminal.c
readline-4.3/text.c
readline-4.3/tilde.c
readline-4.3/tilde.h
readline-4.3/undo.c
readline-4.3/util.c
readline-4.3/vi_keymap.c
readline-4.3/vi_mode.c
readline-4.3/xmalloc.c
readline-4.3/xmalloc.h
readline-doc-4.3/MANIFEST.doc
readline-doc-4.3/doc/history.0
readline-doc-4.3/doc/history.dvi
readline-doc-4.3/doc/history.html
readline-doc-4.3/doc/history.info
readline-doc-4.3/doc/history.ps
readline-doc-4.3/doc/history_3.ps
readline-doc-4.3/doc/readline.0
readline-doc-4.3/doc/readline.dvi
readline-doc-4.3/doc/readline.html
readline-doc-4.3/doc/readline.info
readline-doc-4.3/doc/readline.ps
readline-doc-4.3/doc/readline_3.ps
readline-doc-4.3/doc/rluserman.dvi
readline-doc-4.3/doc/rluserman.html
readline-doc-4.3/doc/rluserman.info
readline-doc-4.3/doc/rluserman.ps
Diffstat (limited to 'avl-1.4.0/avl.texinfo')
-rw-r--r-- | avl-1.4.0/avl.texinfo | 679 |
1 files changed, 679 insertions, 0 deletions
diff --git a/avl-1.4.0/avl.texinfo b/avl-1.4.0/avl.texinfo new file mode 100644 index 0000000..9d06324 --- /dev/null +++ b/avl-1.4.0/avl.texinfo @@ -0,0 +1,679 @@ +\input texinfo @c -*-texinfo-*- +@c %**start of header +@setfilename avl.info +@settitle libavl manual +@setchapternewpage on +@c %**end of header + +@syncodeindex vr cp +@syncodeindex fn cp +@syncodeindex tp cp + +@ifinfo +This file documents libavl, a library for the manipulation of balanced +binary trees. + +Copyright 1998, 1999 Free Software Foundation, Inc. + +Permission is granted to make and distribute verbatim copies of this +manual provided the copyright notice and this permission notice are +preserved on all copies. + +@ignore +Permission is granted to process this file through TeX and print the +results, provided the printed document carries a copying permission +notice identical to this one except for the removal of this paragraph +(this paragraph not being relevant to the printed manual). + +@end ignore +Permission is granted to copy and distribute modified versions of this +manual under the conditions for verbatim copying, provided that the +entire resulting derived work is distributed under the terms of a +permission notice identical to this one. + +Permission is granted to copy and distribute translations of this manual +into another language, under the above conditions for modified versions, +except that this permission notice may be stated in a translation +approved by the Free Software Foundation. +@end ifinfo + +@titlepage +@title libavl +@subtitle A library for manipulation of balanced binary trees +@author Ben Pfaff + +@page +@vskip 0pt plus 1filll +Copyright @copyright{} 1998, 1999 Free Software Foundation, Inc. + +Permission is granted to make and distribute verbatim copies of this +manual provided the copyright notice and this permission notice are +preserved on all copies. + +Permission is granted to copy and distribute modified versions of this +manual under the conditions for verbatim copying, provided that the +entire resulting derived work is distributed under the terms of a +permission notice identical to this one. + +Permission is granted to copy and distribute translations of this manual +into another language, under the above conditions for modified versions, +except that this permission notice may be stated in a translation +approved by the Free Software Foundation. +@end titlepage + +@node Top, Introduction to balanced binary trees, (dir), (dir) + +@ifinfo +This document describes libavl, a library for manipulation of balanced +binary trees. + +This document applies to libavl version 1.4.0. +@end ifinfo + +@menu +* Introduction to balanced binary trees:: +* Introduction to threaded trees:: +* Types:: +* Functions:: +* Tree Creation:: +* Insertion:: +* Searching:: +* Iteration:: +* Conversion:: +* Author:: +* Index:: +@end menu + +@node Introduction to balanced binary trees, Introduction to threaded trees, Top, Top +@chapter Introduction to balanced binary trees + +@cindex hash table +Consider some techniques that can be used to find a particular item in a +data set. Typical methods include sequential searching, digital +searching, hash tables, and binary searching. + +Sequential searching is simple, but slow (O(n)). Digital searching +requires that the entire data set be known in advance, and memory +efficient implementations are slow. + +Hash tables are fast (O(1)) for static data sets, but they can be +wasteful of memory. It can be difficult to choose an effective hash +function. Some hash tables variants also make deletion an expensive +operation. + +@cindex binary tree +Binary search techniques work almost as quickly (O(log(n)) on an ordered +table, or on a binary tree. Binary trees also allow easy iteration over +the data in the tree in sorted order. With hash tables it is necessary +to sort the data before iterating, and after sorting the data is no +longer in hash form. + +Binary trees are efficient for insertion, deletion, and searching, if +data are inserted in random order. But, if data are inserted in order +using a naive algorithm, binary search degenerates to sequential search. + +@cindex red-black tree +@cindex AVL tree +@cindex rebalancing +In turn, this problem can be solved by @dfn{rebalancing} the tree after +each insertion or deletion. In rebalancing, nodes are rearranged via +transformations called @dfn{rotations} using an algorithm that tends to +minimize the tree's height. + +There are several schemes for rebalancing binary trees. The two most +common types of balanced tree are @dfn{AVL trees} and @dfn{red-black +trees}. libavl implements both types: + +@itemize @bullet +@item +@cindex Landis, E. M. +@cindex Adel'son-Velskii, G. M. +AVL trees, invented by Russian mathematicians G. M. Adel'son-Velskii and +E. M. Landis, ensure that, for each node, the difference in height +between its subtrees (the @dfn{balance factor}) is not greater than 1. + +@item +Red-black trees, invented by R. Bayer and studied at length by +L. J. Guibas and R. Sedgewick, assign each node of a tree a color (red +or black), and specify a set of rules governing how red and black nodes +may be arranged. +@end itemize + +The table below presents a comparison among unbalanced binary trees, AVL +trees, and red-black trees. In the table, @var{n} is the number of +nodes in the tree and @var{h} is the tree's height before the +operation. @dfn{lg} is the base-2 logarithm function. + +@multitable @columnfractions .05 .30 .35 .30 + +@need 333 +@item @w{Operation} +@item +@tab Binary Tree +@tab AVL Tree +@tab Red-Black Tree + +@need 333 +@item @w{Time per insertion or deletion} +@item +@tab O(@var{h}) +@tab O(lg @var{n}) +@tab O(lg @var{n}) + +@need 333 +@item @w{Time for insertion of @var{k} nodes having sequential values} +@item +@tab O(@math{@var{k}^2}) +@tab O(@var{n} lg @var{n}) +@tab O(@var{n} lg @var{n}) + +@need 333 +@item @w{Time for insertion of @var{k} nodes having random values} +@item +@tab O(@var{n} lg @var{n}) +@tab O(@var{n} lg @var{n}) +@tab O(@var{n} lg @var{n}) + +@need 333 +@item @w{Maximum number of rotations per insertion} +@item +@tab 0 +@tab 1 +@tab lg @var{n} + +@need 333 +@item @w{Maximum number of rotations per deletion} +@item +@tab 0 +@tab lg @var{n} +@tab lg @var{n} + +@need 333 +@item @w{Maximum @var{h} as a function of @var{n}} +@item +@tab @var{n} +@tab 1.44 lg (@var{n} + 2) - .328 +@tab 2 lg (@var{n} + 1) + +@need 333 +@item @w{Minimum @var{n} as a function of @var{h}} +@item +@tab @var{h} +@tab 2^((@var{h} + .328) / 1.44) - 2 +@tab 2^(@var{h} / 2) - 1 +@end multitable + +There are alternatives to AVL trees that share some of their properties. +For instance, skip lists, 2-3 trees, and splay trees all allow O(log(n)) +insertion and deletion. The main disadvantage of these methods is that +their operations are not as well documented in the literature. + +@node Introduction to threaded trees, Types, Introduction to balanced binary trees, Top +@chapter Introduction to threaded trees + +@dfn{Threading} is a clever method that simplifies binary tree +traversal. + +Nodes in a unthreaded binary tree that have zero or one subnodes have +two or one null subnode pointers, respectively. In a threaded binary +tree, a left child pointer that would otherwise be null is used to point +to the node's inorder@footnote{In tree traversal, @dfn{inorder} refers +to visiting the nodes in their sorted order from smallest to largest.} +predecessor, and in a null right child pointer points to its inorder +successor. + +In a threaded tree, it is always possible to find the next node and the +previous node of a node, given only a pointer to the node in question. +In an unthreaded tree, it's also necessary to have a list of the nodes +between the node in question and root of the tree. + +Advantages of a threaded tree compared to an unthreaded one include: + +@itemize @bullet +@item +Faster traversal and less memory usage during traversal, since no stack +need be maintained. + +@item +Greater generality, since one can go from a node to its successor or +predecessor given only the node, simplifying algorithms that require +moving forward and backward in a tree. +@end itemize + +Some disadvantages of threaded trees are: + +@itemize @bullet +@item +Slower insertion and deletion, since threads need to be maintained. In +somes cases, this can be alleviated by constructing the tree as an +unthreaded tree, then threading it with a special libavl function. + +@item +In theory, threaded trees need two extra bits per node to indicate +whether each child pointer points to an ordinary node or the node's +successor/predecessor node. In libavl, however, these bits are stored +in a byte that is used for structure alignment padding in unthreaded +binary trees, so no extra storage is used. +@end itemize + +A @dfn{right-threaded binary tree} is similar to a threaded binary tree, +but threads are only maintained on the right side of each node. This +allows for traversal to the right (toward larger values) but not to the +left (toward smaller values). Right-threaded trees are convenient when +the properties of a threaded tree are desirable, but traversal in +reverse sort order is not necessary. Not threading the left links saves +time in insertions and deletions. + +Left-threaded binary trees also exist, but they are not implemented by +libavl. The same effect can be obtained by sorting the tree in the +opposite order. + +@node Types, Functions, Introduction to threaded trees, Top +@chapter Types + +The following types are defined and used by libavl: + +@deftp {Data Type} avl_tree +@deftpx {Data Type} avlt_tree +@deftpx {Data Type} avltr_tree +@deftpx {Data Type} rb_tree +These are the data types used to represent a tree. Although they are +defined in the libavl header files, it should never be necessary to +access them directly. Instead, all accesses should take place through +libavl functions. +@end deftp + +@deftp {Data Type} avl_node +@deftpx {Data Type} avlt_node +@deftpx {Data Type} avltr_node +@deftpx {Data Type} rb_node +These are the data types used to represent individual nodes in a tree. +Similar cautions apply as with @code{avl_tree} structures. +@end deftp + +@deftp {Data Type} avl_traverser +@deftpx {Data Type} avlt_traverser +@deftpx {Data Type} avltr_traverser +@deftpx {Data Type} rb_traverser +These are the data types used by the @code{avl_traverse} family of +functions to iterate across the tree. Again, these are opaque +structures. +@end deftp + +@deftp {Data Type} avl_comparison_func +Every tree must have an ordering defined by a function of this type. It +must have the following signature: + +@smallexample +int @var{compare} (const void *@var{a}, const void *@var{b}, void *@var{param}) +@end smallexample + +The return value is expected to be like that returned by @code{strcmp} +in the standard C library: negative if @var{a} < @var{b}, zero if +@var{a} = @var{b}, positive if @var{a} > @var{b}. @var{param} is an +arbitrary value defined by the user when the tree was created. +@end deftp + +@deftp {Data Type} avl_node_func +This is a class of function called to perform an operation on a data +item. Functions of this type have the following signature: + +@smallexample +void @var{operate} (void *@var{data}, void *@var{param}) +@end smallexample + +@var{data} is the data item and @var{param} is an arbitrary user-defined +value set when the tree was created. +@end deftp + +@deftp {Data Type} avl_copy_func + +This is a class of function called to make a new copy of a node's data. +Functions of this type have the following signature: + +@smallexample +void *@var{copy} (void *@var{data}, void *@var{param}) +@end smallexample + +The function should return a new copy of @var{data}. @var{param} is an +arbitrary user-defined value set when the tree was created. +@end deftp + +@defmac AVL_MAX_HEIGHT +This macro defines the maximum height of an AVL tree that can be handled +by functions that maintain a stack of nodes descended. The default +value is 32, which allows for AVL trees with a maximum number of nodes +between 5,704,880 and 4,294,967,295, depending on order of insertion. +This macro may be defined by the user before including any AVL tree +header file, in which case libavl will honor that value. +@end defmac + +@defmac RB_MAX_HEIGHT +This macro defines the maximum height of an AVL tree that can be handled +by functions that maintain a stack of nodes descended. The default +value is 32, which allows for red-black trees with a maximum number of +nodes of at least 65535. This macro may be defined by the user before +including the red-black tree header file, in which case libavl will +honor that value. +@end defmac + +@node Functions, Tree Creation, Types, Top +@chapter Functions + +@cindex unthreaded +@cindex threads +@cindex right threads +libavl is four libraries in one: + +@itemize @bullet +@item +An unthreaded AVL tree library. + +@item +A threaded AVL tree library. + +@item +A right-threaded AVL tree library. + +@item +A red-black tree library. +@end itemize + +Identifiers in these libraries are prefixed by @code{avl_}, +@code{avlt_}, @code{avltr_}, and @code{rb_}, with corresponding header +files @file{avl.h}, @file{avlt.h}, @file{avltr.h}, and @file{rb.h}, +respectively. The functions that they declare are defined in the +@file{.c} files with the same names. + +Most tree functions are implemented in all three libraries, but +threading allows more generality of operation. So, the threaded and +right-threaded libraries offer a few additional functions for finding +the next or previous node from a given node. In addition, they offer +functions for converting trees from threaded or right-threaded +representations to unthreaded, and vice versa.@footnote{In general, you +should build the sort of tree that you need to use, but occasionally it +is useful to convert between tree types.} + +@node Tree Creation, Insertion, Functions, Top +@chapter Tree Creation + +These functions deal with creation and destruction of AVL trees. + +@deftypefun {avl_tree *} avl_create (avl_comparison_func @var{compare}, void *@var{param}) +@deftypefunx {avlt_tree *} avlt_create (avlt_comparison_func @var{compare}, void *@var{param}) +@deftypefunx {avltr_tree *} avltr_create (avltr_comparison_func @var{compare}, void *@var{param}) +@deftypefunx {rb_tree *} rb_create (avl_comparison_func @var{compare}, void *@var{param}) +Create a new, empty tree with comparison function @var{compare}. +Arbitrary user data @var{param} is saved so that it can be passed to +user callback functions. +@end deftypefun + +@deftypefun {void} avl_destroy (avl_tree *@var{tree}, avl_node_func @var{free}) +@deftypefunx {void} avlt_destroy (avlt_tree *@var{tree}, avl_node_func @var{free}) +@deftypefunx {void} avltr_destroy (avltr_tree *@var{tree}, avl_node_func @var{free}) +@deftypefunx {void} rb_destroy (rb_tree *@var{tree}, avl_node_func @var{free}) +Destroys @var{tree}, releasing all of its storage. If @var{free} is +non-null, then it is called for every node in postorder before that node +is freed. +@end deftypefun + +@deftypefun {void} avl_free (avl_tree *@var{tree}) +@deftypefunx {void} avlt_free (avlt_tree *@var{tree}) +@deftypefunx {void} avltr_free (avltr_tree *@var{tree}) +@deftypefunx {void} rb_free (rb_tree *@var{tree}) +Destroys @var{tree}, releasing all of its storage. The data in each +node is freed with a call to the standard C library function +@code{free}. +@end deftypefun + +@deftypefun {avl_tree *} avl_copy (const avl_tree *@var{tree}, avl_copy_func @var{copy}) +@deftypefunx {avlt_tree *} avl_copy (const avlt_tree *@var{tree}, avl_copy_func @var{copy}) +@deftypefunx {avltr_tree *} avl_copy (const avltr_tree *@var{tree}, avl_copy_func @var{copy}) +@deftypefunx {rb_tree *} rb_copy (const rb_tree *@var{tree}, avl_copy_func @var{copy}) +Copies the contents of @var{tree} into a new tree, and returns the new +tree. If @var{copy} is non-null, then it is called to make a new copy +of each node's data; otherwise, the node data is copied verbatim into +the new tree. +@end deftypefun + +@deftypefun int avl_count (const avl_tree *@var{tree}) +@deftypefunx int avlt_count (const avlt_tree *@var{tree}) +@deftypefunx int avltr_count (const avltr_tree *@var{tree}) +@deftypefunx int rb_count (const rb_tree *@var{tree}) +Returns the number of nodes in @var{tree}. +@end deftypefun + +@deftypefun {void *} xmalloc (size_t @var{size}) +This is not a function defined by libavl. Instead, it is a function +that the user program can define. It must allocate @var{size} bytes +using @code{malloc} and return it. It can handle out-of-memory errors +however it chooses, but it may not ever return a null pointer. + +If there is an @code{xmalloc} function defined for use by libavl, the +source files (@file{avl.c}, @file{avlt.c}, @file{avltr.c}, @file{rb.c}) +must be compiled with @code{HAVE_XMALLOC} defined. Otherwise, the +library will use its internal static @code{xmalloc}, which handles +out-of-memory errors by printing a message @samp{virtual memory +exhausted} to stderr and terminating the program with exit code +@code{EXIT_FAILURE}. +@end deftypefun + +@node Insertion, Searching, Tree Creation, Top +@chapter Insertion and Deletion + +These function insert nodes, delete nodes, and search for nodes in +trees. + +@deftypefun {void **} avl_probe (avl_tree *@var{tree}, void *@var{data}) +@deftypefunx {void **} avlt_probe (avlt_tree *@var{tree}, void *@var{data}) +@deftypefunx {void **} avltr_probe (avltr_tree *@var{tree}, void *@var{data}) +@deftypefunx {void **} rb_probe (rb_tree *@var{tree}, void *@var{data}) +These are the workhorse functions for tree insertion. They search +@var{tree} for a node with data matching @var{data}. If found, a +pointer to the matching data is returned. Otherwise, a new node is +created for @var{data}, and a pointer to that data is returned. In +either case, the pointer returned can be changed by the user, but the +key data used by the tree's comparison must not be changed@footnote{It +can be changed if this would not change the ordering of the nodes in the +tree; i.e., if this would not cause the data in the node to be less than +or equal to the previous node's data or greater than or equal to the +next node's data.}. + +It is usually easier to use one of the @code{avl_insert} or +@code{avl_replace} functions instead of @code{avl_probe} directly. + +@strong{Please note:} It's not a particularly good idea to insert a null +pointer as a data item into a tree, because several libavl functions +return a null pointer to indicate failure. You can sometimes avoid a +problem by using functions that return a pointer to a pointer instead of +a plain pointer. Also be wary of this when casting an arithmetic type +to a void pointer for insertion---on typical architectures, 0's become +null pointers when this is done. +@end deftypefun + +@deftypefun {void *} avl_insert (avl_tree *@var{tree}, void *@var{data}) +@deftypefunx {void *} avlt_insert (avlt_tree *@var{tree}, void *@var{data}) +@deftypefunx {void *} avltr_insert (avltr_tree *@var{tree}, void *@var{data}) +@deftypefunx {void *} rb_insert (rb_tree *@var{tree}, void *@var{data}) +If a node with data matching @var{data} exists in @var{tree}, returns +the matching data item. Otherwise, inserts @var{data} into @var{tree} +and returns a null pointer. +@end deftypefun + +@deftypefun void avl_force_insert (avl_tree *@var{tree}, void *@var{data}) +@deftypefunx void avlt_force_insert (avlt_tree *@var{tree}, void *@var{data}) +@deftypefunx void avltr_force_insert (avltr_tree *@var{tree}, void *@var{data}) +@deftypefunx void rb_force_insert (rb_tree *@var{tree}, void *@var{data}) +Inserts @var{data} into @var{tree}. If a node with data matching +@var{data} exists in @var{tree}, aborts the program with an assertion +violation. This function is implemented as a macro; if it is used, the +standard C header @code{assert.h} must also be included. If macro +@code{NDEBUG} is defined when a libavl header is included, these +functions are short-circuited to a direct call to @code{avl_insert}, +and no check is performed. +@end deftypefun + +@deftypefun {void *} avl_replace (avl_tree *@var{tree}, void *@var{data}) +@deftypefunx {void *} avlt_replace (avlt_tree *@var{tree}, void *@var{data}) +@deftypefunx {void *} avltr_replace (avltr_tree *@var{tree}, void *@var{data}) +@deftypefunx {void *} rb_replace (rb_tree *@var{tree}, void *@var{data}) +If a node with data matching @var{data}, such that the comparison +function returns 0, exists in @var{tree}, replaces the node's data with +@var{data} and returns the node's former contents. Otherwise, inserts +@var{data} into @var{tree} and returns a null pointer. +@end deftypefun + +@deftypefun {void *} avl_delete (avl_tree *@var{tree}, const void *@var{data}) +@deftypefunx {void *} avlt_delete (avlt_tree *@var{tree}, const void *@var{data}) +@deftypefunx {void *} avltr_delete (avltr_tree *@var{tree}, const void *@var{data}) +@deftypefunx {void *} rb_delete (rb_tree *@var{tree}, const void *@var{data}) +Searches @var{tree} for a node with data matching @var{data}. If found, +the node is deleted and its data is returned. Otherwise, returns a null +pointer. +@end deftypefun + +@deftypefun {void *} avl_force_delete (avl_tree *@var{tree}, const void *@var{data}) +@deftypefunx {void *} avlt_force_delete (avlt_tree *@var{tree}, const void *@var{data}) +@deftypefunx {void *} avltr_force_delete (avltr_tree *@var{tree}, const void *@var{data}) +@deftypefunx {void *} rb_force_delete (rb_tree *@var{tree}, const void *@var{data}) +Deletes a node with data matching @var{data} from @var{tree}. If no +matching node is found, aborts the program with an assertion violation. +If macro @code{NDEBUG} is declared when a libavl header is included, +these functions are short-circuited to a direct call to +@code{avl_delete}, and no check is performed. +@end deftypefun + +@node Searching, Iteration, Insertion, Top +@chapter Searching + +These function search a tree for an item without making an insertion or +a deletion. + +@deftypefun {void *} avl_find (avl_tree *@var{tree}, const void *@var{data}) +@deftypefunx {void **} avlt_find (avlt_tree *@var{tree}, const void *@var{data}) +@deftypefunx {void **} avltr_find (avltr_tree *@var{tree}, const void *@var{data}) +@deftypefunx {void *} rb_find (rb_tree *@var{tree}, const void *@var{data}) +Searches @var{tree} for a node with data matching @var{data}, If found, +returns the node's data (for threaded and right-threaded trees, a +pointer to the node's data). Otherwise, returns a null pointer. +@end deftypefun + +@deftypefun {void *} avl_find_close (avl_tree *@var{tree}, const void *@var{data}) +@deftypefunx {void **} avlt_find_close (avlt_tree *@var{tree}, const void *@var{data}) +@deftypefunx {void **} avltr_find_close (avltr_tree *@var{tree}, const void *@var{data}) +@deftypefunx {void *} rb_find_close (rb_tree *@var{tree}, const void *@var{data}) +Searches @var{tree} for a node with data matching @var{data}. If found, +returns the node's data (for threaded and right-threaded trees, a +pointer to the node's data). If no matching item is found, then it +finds a node whose data is ``close'' to @var{data}; either the node +closest in value to @var{data}, or the node either before or after the +node with the closest value. Returns a null pointer if the tree does +not contain any nodes. +@end deftypefun + +@node Iteration, Conversion, Searching, Top +@chapter Iteration + +These functions allow the caller to iterate across the items in a tree. + +@deftypefun void avl_walk (const avl_tree *@var{tree}, avl_node_func @var{operate}, void *@var{param}) +@deftypefunx void avlt_walk (const avlt_tree *@var{tree}, avl_node_func @var{operate}, void *@var{param}) +@deftypefunx void avltr_walk (const avltr_tree *@var{tree}, avl_node_func @var{operate}, void *@var{param}) +@deftypefunx void rb_walk (const rb_tree *@var{tree}, avl_node_func @var{operate}, void *@var{param}) +Walks through all the nodes in @var{tree}, and calls function +@var{operate} for each node in inorder. @var{param} overrides the value +passed to @code{avl_create} (and family) for this operation only. +@var{operate} must not change the key data in the nodes in a way that +would reorder the data values or cause two values to become equal. +@end deftypefun + +@deftypefun {void *} avl_traverse (const avl_tree *@var{tree}, avl_traverser *@var{trav}) +@deftypefunx {void *} avlt_traverse (const avlt_tree *@var{tree}, avlt_traverser *@var{trav}) +@deftypefunx {void *} avltr_traverse (const avltr_tree *@var{tree}, avltr_traverser *@var{trav}) +@deftypefunx {void *} rb_traverse (const rb_tree *@var{tree}, rb_traverser *@var{trav}) +Returns each of @var{tree}'s nodes' data values in sequence, then a null +pointer to indicate the last item. @var{trav} must be initialized +before the first call, either in a declaration like that below, or using +one of the functions below. + +@smallexample +avl_traverser trav = AVL_TRAVERSER_INIT; +@end smallexample + +Each @code{avl_traverser} (and family) is a separate, independent +iterator. + +For threaded and right-threaded trees, @code{avlt_next} or +@code{avltr_next}, respectively, are faster and more memory-efficient +than @code{avlt_traverse} or @code{avltr_traverse}. +@end deftypefun + +@deftypefun {void *} avl_init_traverser (avl_traverser *@var{trav}) +@deftypefunx {void *} avlt_init_traverser (avlt_traverser *@var{trav}) +@deftypefunx {void *} avltr_init_traverser (avltr_traverser *@var{trav}) +@deftypefunx {void *} rb_init_traverser (rb_traverser *@var{trav}) +Initializes the specified tree traverser structure. After this function +is called, the next call to the corresponding @code{*_traverse} function +will return the smallest value in the appropriate tree. +@end deftypefun + +@deftypefun {void **} avlt_next (const avlt_tree *@var{tree}, void **@var{data}) +@deftypefunx {void **} avltr_next (const avltr_tree *@var{tree}, void **@var{data}) +@var{data} must be a null pointer or a pointer to a data item in AVL +tree @var{tree}. Returns a pointer to the next data item after +@var{data} in @var{tree} in inorder (this is the first item if +@var{data} is a null pointer), or a null pointer if @var{data} was the +last item in @var{tree}. +@end deftypefun + +@deftypefun {void **} avltr_prev (const avltr_tree *@var{tree}, void **@var{data}) +@var{data} must be a null pointer or a pointer to a data item in AVL +tree @var{tree}. Returns a pointer to the previous data item before +@var{data} in @var{tree} in inorder (this is the last, or greatest +valued, item if @var{data} is a null pointer), or a null pointer if +@var{data} was the first item in @var{tree}. +@end deftypefun + +@node Conversion, Author, Iteration, Top +@chapter Conversion + +@deftypefun {avlt_tree *} avlt_thread (avl_tree *@var{tree}) +@deftypefunx {avltr_tree *} avltr_thread (avl_tree *@var{tree}) +Adds symmetric threads or right threads, respectively, to unthreaded AVL +tree @var{tree} and returns a pointer to @var{tree} cast to the +appropriate type. After one of these functions is called, threaded or +right-threaded functions, as appropriate, must be used with @var{tree}; +unthreaded functions may not be used. +@end deftypefun + +@deftypefun {avl_tree *} avlt_unthread (avlt_tree *@var{tree}) +@deftypefunx {avl_tree *} avltr_unthread (avltr_tree *@var{tree}) +Cuts all threads in threaded or right-threaded, respectively, AVL tree +@var{tree} and returns a pointer to @var{tree} cast to @code{avl_tree +*}. After one of these functions is called, unthreaded functions must +be used with @var{tree}; threaded or right-threaded functions may not be +used. +@end deftypefun + +@node Author, Index, Conversion, Top +@chapter Author + +@cindex Pfaff, Benjamin Levy +@cindex author +@cindex Knuth, Donald Ervin +@cindex @cite{Art of Computer Programming} +libavl was written by Ben Pfaff @email{blp@@gnu.org}. + +libavl's generic tree algorithms and AVL algorithms are based on those +found in Donald Knuth's venerable @cite{Art of Computer Programming} +series from Addison-Wesley, primarily Volumes 1 and 3. libavl's +red-black tree algorithms are based on those found in Cormen et al., +@cite{Introduction to Algorithms}, 2nd ed., from MIT Press. + +@node Index, , Author, Top +@unnumbered Index + +@printindex cp + +@contents +@bye |