From de9cbef68d4c3ea6cd003ce086e2d3487600ace7 Mon Sep 17 00:00:00 2001 From: rafan Date: Sat, 20 Jan 2007 07:32:02 +0000 Subject: Import ncurses 5.6-20061217 onto the vender branch Approved by: delphij --- contrib/ncurses/ANNOUNCE | 671 +- contrib/ncurses/AUTHORS | 38 + contrib/ncurses/INSTALL | 719 +- contrib/ncurses/MANIFEST | 70 +- contrib/ncurses/Makefile.in | 8 +- contrib/ncurses/Makefile.os2 | 31 +- contrib/ncurses/NEWS | 2763 ++- contrib/ncurses/README | 39 +- contrib/ncurses/README.emx | 37 +- contrib/ncurses/TO-DO | 193 +- contrib/ncurses/aclocal.m4 | 2708 ++- contrib/ncurses/announce.html.in | 616 +- contrib/ncurses/config.guess | 843 +- contrib/ncurses/config.sub | 363 +- contrib/ncurses/configure | 17929 ++++++++++---- contrib/ncurses/configure.in | 851 +- contrib/ncurses/convert_configure.pl | 29 + contrib/ncurses/dist.mk | 91 +- contrib/ncurses/doc/hackguide.doc | 809 +- .../doc/html/NCURSES-Programming-HOWTO.html | 6413 +++++ contrib/ncurses/doc/html/announce.html | 627 +- contrib/ncurses/doc/html/hackguide.html | 38 +- contrib/ncurses/doc/html/ncurses-intro.html | 66 +- contrib/ncurses/doc/ncurses-intro.doc | 2550 +- contrib/ncurses/form/Makefile.in | 23 +- contrib/ncurses/form/READ.ME | 33 +- contrib/ncurses/form/f_trace.c | 70 + contrib/ncurses/form/fld_arg.c | 46 +- contrib/ncurses/form/fld_attr.c | 54 +- contrib/ncurses/form/fld_current.c | 80 +- contrib/ncurses/form/fld_def.c | 355 +- contrib/ncurses/form/fld_dup.c | 68 +- contrib/ncurses/form/fld_ftchoice.c | 17 +- contrib/ncurses/form/fld_ftlink.c | 29 +- contrib/ncurses/form/fld_info.c | 57 +- contrib/ncurses/form/fld_just.c | 27 +- contrib/ncurses/form/fld_link.c | 64 +- contrib/ncurses/form/fld_max.c | 22 +- contrib/ncurses/form/fld_move.c | 15 +- contrib/ncurses/form/fld_newftyp.c | 79 +- contrib/ncurses/form/fld_opts.c | 38 +- contrib/ncurses/form/fld_pad.c | 23 +- contrib/ncurses/form/fld_page.c | 20 +- contrib/ncurses/form/fld_stat.c | 20 +- contrib/ncurses/form/fld_type.c | 25 +- contrib/ncurses/form/fld_user.c | 17 +- contrib/ncurses/form/form.h | 208 +- contrib/ncurses/form/form.priv.h | 184 +- contrib/ncurses/form/frm_cursor.c | 15 +- contrib/ncurses/form/frm_data.c | 114 +- contrib/ncurses/form/frm_def.c | 256 +- contrib/ncurses/form/frm_driver.c | 3133 ++- contrib/ncurses/form/frm_hook.c | 60 +- contrib/ncurses/form/frm_opts.c | 27 +- contrib/ncurses/form/frm_page.c | 34 +- contrib/ncurses/form/frm_post.c | 37 +- contrib/ncurses/form/frm_req_name.c | 171 +- contrib/ncurses/form/frm_scale.c | 22 +- contrib/ncurses/form/frm_sub.c | 26 +- contrib/ncurses/form/frm_user.c | 15 +- contrib/ncurses/form/frm_win.c | 27 +- contrib/ncurses/form/fty_alnum.c | 168 +- contrib/ncurses/form/fty_alpha.c | 181 +- contrib/ncurses/form/fty_enum.c | 239 +- contrib/ncurses/form/fty_int.c | 200 +- contrib/ncurses/form/fty_ipv4.c | 64 +- contrib/ncurses/form/fty_num.c | 277 +- contrib/ncurses/form/fty_regex.c | 170 +- contrib/ncurses/form/llib-lform | 144 +- contrib/ncurses/form/llib-lformw | 740 + contrib/ncurses/form/modules | 7 +- contrib/ncurses/include/Caps | 8 +- contrib/ncurses/include/Caps.aix4 | 16 +- contrib/ncurses/include/Caps.hpux11 | 1278 + contrib/ncurses/include/Caps.keys | 8 +- contrib/ncurses/include/Caps.osf1r5 | 10 +- contrib/ncurses/include/Caps.uwin | 16 +- contrib/ncurses/include/MKhashsize.sh | 28 + contrib/ncurses/include/MKkey_defs.sh | 25 +- contrib/ncurses/include/MKncurses_def.sh | 4 +- contrib/ncurses/include/MKparametrized.sh | 29 +- contrib/ncurses/include/MKterm.h.awk.in | 34 +- contrib/ncurses/include/curses.h.in | 391 +- contrib/ncurses/include/curses.tail | 120 +- contrib/ncurses/include/curses.wide | 128 +- contrib/ncurses/include/hashed_db.h | 67 + contrib/ncurses/include/nc_alloc.h | 25 +- contrib/ncurses/include/nc_tparm.h | 65 + contrib/ncurses/include/ncurses_cfg.hin | 18 +- contrib/ncurses/include/ncurses_defs | 46 +- contrib/ncurses/include/ncurses_dll.h | 41 +- contrib/ncurses/include/term_entry.h | 16 +- contrib/ncurses/include/tic.h | 82 +- contrib/ncurses/install-sh | 49 +- contrib/ncurses/man/Makefile.in | 17 +- contrib/ncurses/man/captoinfo.1m | 18 +- contrib/ncurses/man/clear.1 | 9 +- contrib/ncurses/man/curs_add_wch.3x | 5 +- contrib/ncurses/man/curs_add_wchstr.3x | 11 +- contrib/ncurses/man/curs_addch.3x | 70 +- contrib/ncurses/man/curs_addchstr.3x | 40 +- contrib/ncurses/man/curs_addstr.3x | 16 +- contrib/ncurses/man/curs_addwstr.3x | 15 +- contrib/ncurses/man/curs_attr.3x | 104 +- contrib/ncurses/man/curs_beep.3x | 12 +- contrib/ncurses/man/curs_bkgd.3x | 41 +- contrib/ncurses/man/curs_bkgrnd.3x | 19 +- contrib/ncurses/man/curs_border.3x | 39 +- contrib/ncurses/man/curs_border_set.3x | 11 +- contrib/ncurses/man/curs_clear.3x | 43 +- contrib/ncurses/man/curs_color.3x | 68 +- contrib/ncurses/man/curs_delch.3x | 6 +- contrib/ncurses/man/curs_deleteln.3x | 18 +- contrib/ncurses/man/curs_extend.3x | 15 +- contrib/ncurses/man/curs_get_wch.3x | 20 +- contrib/ncurses/man/curs_get_wstr.3x | 36 +- contrib/ncurses/man/curs_getcchar.3x | 8 +- contrib/ncurses/man/curs_getch.3x | 75 +- contrib/ncurses/man/curs_getstr.3x | 33 +- contrib/ncurses/man/curs_getyx.3x | 47 +- contrib/ncurses/man/curs_in_wch.3x | 6 +- contrib/ncurses/man/curs_in_wchstr.3x | 13 +- contrib/ncurses/man/curs_inch.3x | 14 +- contrib/ncurses/man/curs_inchstr.3x | 19 +- contrib/ncurses/man/curs_initscr.3x | 34 +- contrib/ncurses/man/curs_inopts.3x | 78 +- contrib/ncurses/man/curs_ins_wch.3x | 6 +- contrib/ncurses/man/curs_ins_wstr.3x | 14 +- contrib/ncurses/man/curs_insch.3x | 14 +- contrib/ncurses/man/curs_insstr.3x | 52 +- contrib/ncurses/man/curs_instr.3x | 16 +- contrib/ncurses/man/curs_inwstr.3x | 10 +- contrib/ncurses/man/curs_kernel.3x | 67 +- contrib/ncurses/man/curs_mouse.3x | 129 +- contrib/ncurses/man/curs_move.3x | 22 +- contrib/ncurses/man/curs_outopts.3x | 73 +- contrib/ncurses/man/curs_overlay.3x | 21 +- contrib/ncurses/man/curs_pad.3x | 102 +- contrib/ncurses/man/curs_print.3x | 16 +- contrib/ncurses/man/curs_printw.3x | 48 +- contrib/ncurses/man/curs_refresh.3x | 34 +- contrib/ncurses/man/curs_scanw.3x | 44 +- contrib/ncurses/man/curs_scr_dump.3x | 28 +- contrib/ncurses/man/curs_scroll.3x | 32 +- contrib/ncurses/man/curs_slk.3x | 110 +- contrib/ncurses/man/curs_termattrs.3x | 31 +- contrib/ncurses/man/curs_termcap.3x | 43 +- contrib/ncurses/man/curs_terminfo.3x | 137 +- contrib/ncurses/man/curs_touch.3x | 32 +- contrib/ncurses/man/curs_trace.3x | 16 +- contrib/ncurses/man/curs_util.3x | 94 +- contrib/ncurses/man/curs_window.3x | 67 +- contrib/ncurses/man/default_colors.3x | 28 +- contrib/ncurses/man/define_key.3x | 13 +- contrib/ncurses/man/form.3x | 76 +- contrib/ncurses/man/form_cursor.3x | 17 +- contrib/ncurses/man/form_data.3x | 6 +- contrib/ncurses/man/form_driver.3x | 43 +- contrib/ncurses/man/form_field.3x | 41 +- contrib/ncurses/man/form_field_attributes.3x | 19 +- contrib/ncurses/man/form_field_buffer.3x | 35 +- contrib/ncurses/man/form_field_info.3x | 17 +- contrib/ncurses/man/form_field_just.3x | 16 +- contrib/ncurses/man/form_field_new.3x | 36 +- contrib/ncurses/man/form_field_opts.3x | 30 +- contrib/ncurses/man/form_field_userptr.3x | 22 +- contrib/ncurses/man/form_field_validation.3x | 51 +- contrib/ncurses/man/form_fieldtype.3x | 70 +- contrib/ncurses/man/form_hook.3x | 16 +- contrib/ncurses/man/form_new.3x | 30 +- contrib/ncurses/man/form_new_page.3x | 14 +- contrib/ncurses/man/form_opts.3x | 16 +- contrib/ncurses/man/form_page.3x | 21 +- contrib/ncurses/man/form_post.3x | 35 +- contrib/ncurses/man/form_requestname.3x | 5 +- contrib/ncurses/man/form_userptr.3x | 22 +- contrib/ncurses/man/form_win.3x | 20 +- contrib/ncurses/man/infocmp.1m | 263 +- contrib/ncurses/man/infotocap.1m | 7 +- contrib/ncurses/man/key_defined.3x | 60 + contrib/ncurses/man/keybound.3x | 15 +- contrib/ncurses/man/keyok.3x | 8 +- contrib/ncurses/man/legacy_coding.3x | 82 + contrib/ncurses/man/make_sed.sh | 18 +- contrib/ncurses/man/man_db.renames | 34 +- contrib/ncurses/man/manlinks.sed | 59 +- contrib/ncurses/man/menu.3x | 65 +- contrib/ncurses/man/menu_attributes.3x | 16 +- contrib/ncurses/man/menu_cursor.3x | 12 +- contrib/ncurses/man/menu_driver.3x | 24 +- contrib/ncurses/man/menu_format.3x | 19 +- contrib/ncurses/man/menu_hook.3x | 16 +- contrib/ncurses/man/menu_items.3x | 36 +- contrib/ncurses/man/menu_mark.3x | 28 +- contrib/ncurses/man/menu_new.3x | 23 +- contrib/ncurses/man/menu_opts.3x | 18 +- contrib/ncurses/man/menu_pattern.3x | 35 +- contrib/ncurses/man/menu_post.3x | 22 +- contrib/ncurses/man/menu_requestname.3x | 12 +- contrib/ncurses/man/menu_spacing.3x | 6 +- contrib/ncurses/man/menu_userptr.3x | 22 +- contrib/ncurses/man/menu_win.3x | 20 +- contrib/ncurses/man/mitem_current.3x | 33 +- contrib/ncurses/man/mitem_name.3x | 11 +- contrib/ncurses/man/mitem_new.3x | 27 +- contrib/ncurses/man/mitem_opts.3x | 16 +- contrib/ncurses/man/mitem_userptr.3x | 22 +- contrib/ncurses/man/mitem_value.3x | 12 +- contrib/ncurses/man/ncurses.3x | 277 +- contrib/ncurses/man/panel.3x | 11 +- contrib/ncurses/man/resizeterm.3x | 20 +- contrib/ncurses/man/term.5 | 115 +- contrib/ncurses/man/term.7 | 30 +- contrib/ncurses/man/terminfo.head | 18 +- contrib/ncurses/man/terminfo.tail | 262 +- contrib/ncurses/man/tic.1m | 172 +- contrib/ncurses/man/toe.1m | 34 +- contrib/ncurses/man/tput.1 | 181 +- contrib/ncurses/man/tset.1 | 152 +- contrib/ncurses/man/wresize.3x | 8 +- contrib/ncurses/menu/Makefile.in | 21 +- contrib/ncurses/menu/READ.ME | 32 +- contrib/ncurses/menu/eti.h | 6 +- contrib/ncurses/menu/llib-lmenu | 55 +- contrib/ncurses/menu/llib-lmenuw | 547 + contrib/ncurses/menu/m_attribs.c | 26 +- contrib/ncurses/menu/m_cursor.c | 39 +- contrib/ncurses/menu/m_driver.c | 668 +- contrib/ncurses/menu/m_format.c | 70 +- contrib/ncurses/menu/m_global.c | 427 +- contrib/ncurses/menu/m_hook.c | 26 +- contrib/ncurses/menu/m_item_cur.c | 32 +- contrib/ncurses/menu/m_item_nam.c | 18 +- contrib/ncurses/menu/m_item_new.c | 131 +- contrib/ncurses/menu/m_item_opt.c | 59 +- contrib/ncurses/menu/m_item_top.c | 43 +- contrib/ncurses/menu/m_item_use.c | 16 +- contrib/ncurses/menu/m_item_val.c | 28 +- contrib/ncurses/menu/m_item_vis.c | 25 +- contrib/ncurses/menu/m_items.c | 36 +- contrib/ncurses/menu/m_new.c | 36 +- contrib/ncurses/menu/m_opts.c | 51 +- contrib/ncurses/menu/m_pad.c | 27 +- contrib/ncurses/menu/m_pattern.c | 57 +- contrib/ncurses/menu/m_post.c | 271 +- contrib/ncurses/menu/m_req_name.c | 76 +- contrib/ncurses/menu/m_scale.c | 19 +- contrib/ncurses/menu/m_spacing.c | 41 +- contrib/ncurses/menu/m_sub.c | 22 +- contrib/ncurses/menu/m_trace.c | 77 + contrib/ncurses/menu/m_userptr.c | 16 +- contrib/ncurses/menu/m_win.c | 22 +- contrib/ncurses/menu/menu.h | 8 +- contrib/ncurses/menu/menu.priv.h | 40 +- contrib/ncurses/menu/mf_common.h | 30 +- contrib/ncurses/menu/modules | 5 +- contrib/ncurses/misc/Makefile.in | 57 +- contrib/ncurses/misc/chkdef.cmd | 30 +- contrib/ncurses/misc/cleantic.cmd | 30 +- contrib/ncurses/misc/cmpdef.cmd | 30 +- contrib/ncurses/misc/csort | 36 + contrib/ncurses/misc/emx.src | 94 +- contrib/ncurses/misc/gen_edit.sh | 58 + contrib/ncurses/misc/jpf-indent | 119 + contrib/ncurses/misc/makedef.cmd | 30 +- contrib/ncurses/misc/ncu-indent | 130 + contrib/ncurses/misc/ncurses-config.in | 156 + contrib/ncurses/misc/run_tic.in | 80 +- contrib/ncurses/misc/shlib | 79 +- contrib/ncurses/misc/terminfo.src | 23412 ++++++++++--------- contrib/ncurses/mk-0th.awk | 38 +- contrib/ncurses/mk-1st.awk | 185 +- contrib/ncurses/mk-2nd.awk | 49 +- contrib/ncurses/mkinstalldirs | 3 +- contrib/ncurses/ncurses/Makefile.in | 125 +- contrib/ncurses/ncurses/README | 29 + contrib/ncurses/ncurses/README.IZ | 95 + contrib/ncurses/ncurses/SigAction.h | 14 +- contrib/ncurses/ncurses/base/MKkeyname.awk | 115 +- contrib/ncurses/ncurses/base/MKlib_gen.sh | 75 +- contrib/ncurses/ncurses/base/MKunctrl.awk | 44 +- contrib/ncurses/ncurses/base/README | 30 +- contrib/ncurses/ncurses/base/define_key.c | 23 +- contrib/ncurses/ncurses/base/key_defined.c | 76 + contrib/ncurses/ncurses/base/keybound.c | 15 +- contrib/ncurses/ncurses/base/keyok.c | 37 +- contrib/ncurses/ncurses/base/legacy_coding.c | 48 + contrib/ncurses/ncurses/base/lib_addch.c | 408 +- contrib/ncurses/ncurses/base/lib_addstr.c | 165 +- contrib/ncurses/ncurses/base/lib_beep.c | 9 +- contrib/ncurses/ncurses/base/lib_bkgd.c | 46 +- contrib/ncurses/ncurses/base/lib_box.c | 38 +- contrib/ncurses/ncurses/base/lib_chgat.c | 18 +- contrib/ncurses/ncurses/base/lib_clrbot.c | 8 +- contrib/ncurses/ncurses/base/lib_color.c | 364 +- contrib/ncurses/ncurses/base/lib_colorset.c | 15 +- contrib/ncurses/ncurses/base/lib_dft_fgbg.c | 22 +- contrib/ncurses/ncurses/base/lib_erase.c | 21 +- contrib/ncurses/ncurses/base/lib_freeall.c | 87 +- contrib/ncurses/ncurses/base/lib_getch.c | 253 +- contrib/ncurses/ncurses/base/lib_getstr.c | 41 +- contrib/ncurses/ncurses/base/lib_hline.c | 8 +- contrib/ncurses/ncurses/base/lib_initscr.c | 36 +- contrib/ncurses/ncurses/base/lib_insch.c | 99 +- contrib/ncurses/ncurses/base/lib_insdel.c | 6 +- contrib/ncurses/ncurses/base/lib_insnstr.c | 68 + contrib/ncurses/ncurses/base/lib_instr.c | 48 +- contrib/ncurses/ncurses/base/lib_mouse.c | 1014 +- contrib/ncurses/ncurses/base/lib_move.c | 9 +- contrib/ncurses/ncurses/base/lib_mvwin.c | 10 +- contrib/ncurses/ncurses/base/lib_newterm.c | 211 +- contrib/ncurses/ncurses/base/lib_newwin.c | 54 +- contrib/ncurses/ncurses/base/lib_overlay.c | 78 +- contrib/ncurses/ncurses/base/lib_pad.c | 39 +- contrib/ncurses/ncurses/base/lib_printw.c | 20 +- contrib/ncurses/ncurses/base/lib_redrawln.c | 13 +- contrib/ncurses/ncurses/base/lib_refresh.c | 15 +- contrib/ncurses/ncurses/base/lib_restart.c | 59 +- contrib/ncurses/ncurses/base/lib_screen.c | 141 +- contrib/ncurses/ncurses/base/lib_scroll.c | 92 +- contrib/ncurses/ncurses/base/lib_set_term.c | 300 +- contrib/ncurses/ncurses/base/lib_slk.c | 138 +- contrib/ncurses/ncurses/base/lib_slkatr_set.c | 20 +- contrib/ncurses/ncurses/base/lib_slkatrof.c | 15 +- contrib/ncurses/ncurses/base/lib_slkatron.c | 15 +- contrib/ncurses/ncurses/base/lib_slkatrset.c | 10 +- contrib/ncurses/ncurses/base/lib_slkattr.c | 12 +- contrib/ncurses/ncurses/base/lib_slkclear.c | 6 +- contrib/ncurses/ncurses/base/lib_slkcolor.c | 14 +- contrib/ncurses/ncurses/base/lib_slklab.c | 6 +- contrib/ncurses/ncurses/base/lib_slkrefr.c | 20 +- contrib/ncurses/ncurses/base/lib_slkset.c | 99 +- contrib/ncurses/ncurses/base/lib_ungetch.c | 8 +- contrib/ncurses/ncurses/base/lib_vline.c | 8 +- contrib/ncurses/ncurses/base/lib_wattroff.c | 19 +- contrib/ncurses/ncurses/base/lib_wattron.c | 21 +- contrib/ncurses/ncurses/base/lib_window.c | 108 +- contrib/ncurses/ncurses/base/resizeterm.c | 249 +- contrib/ncurses/ncurses/base/safe_sprintf.c | 84 +- contrib/ncurses/ncurses/base/sigaction.c | 64 +- contrib/ncurses/ncurses/base/tries.c | 25 +- contrib/ncurses/ncurses/base/version.c | 11 +- contrib/ncurses/ncurses/base/vsscanf.c | 19 +- contrib/ncurses/ncurses/base/wresize.c | 187 +- contrib/ncurses/ncurses/curses.priv.h | 905 +- contrib/ncurses/ncurses/llib-lncurses | 553 +- contrib/ncurses/ncurses/llib-lncursesw | 767 +- contrib/ncurses/ncurses/modules | 40 +- contrib/ncurses/ncurses/tinfo/MKcaptab.awk | 29 +- contrib/ncurses/ncurses/tinfo/MKfallback.sh | 31 +- contrib/ncurses/ncurses/tinfo/MKkeys_list.sh | 8 +- contrib/ncurses/ncurses/tinfo/MKnames.awk | 29 +- contrib/ncurses/ncurses/tinfo/README | 30 +- contrib/ncurses/ncurses/tinfo/access.c | 77 +- contrib/ncurses/ncurses/tinfo/add_tries.c | 6 +- contrib/ncurses/ncurses/tinfo/alloc_entry.c | 103 +- contrib/ncurses/ncurses/tinfo/alloc_ttype.c | 48 +- contrib/ncurses/ncurses/tinfo/captoinfo.c | 51 +- contrib/ncurses/ncurses/tinfo/comp_error.c | 32 +- contrib/ncurses/ncurses/tinfo/comp_expand.c | 16 +- contrib/ncurses/ncurses/tinfo/comp_hash.c | 22 +- contrib/ncurses/ncurses/tinfo/comp_parse.c | 167 +- contrib/ncurses/ncurses/tinfo/comp_scan.c | 526 +- contrib/ncurses/ncurses/tinfo/db_iterator.c | 227 + contrib/ncurses/ncurses/tinfo/doalloc.c | 4 +- contrib/ncurses/ncurses/tinfo/free_ttype.c | 16 +- contrib/ncurses/ncurses/tinfo/hashed_db.c | 260 + contrib/ncurses/ncurses/tinfo/home_terminfo.c | 15 +- contrib/ncurses/ncurses/tinfo/init_keytry.c | 50 +- contrib/ncurses/ncurses/tinfo/lib_acs.c | 185 +- contrib/ncurses/ncurses/tinfo/lib_cur_term.c | 10 +- contrib/ncurses/ncurses/tinfo/lib_data.c | 20 +- contrib/ncurses/ncurses/tinfo/lib_has_cap.c | 5 +- contrib/ncurses/ncurses/tinfo/lib_kernel.c | 8 +- contrib/ncurses/ncurses/tinfo/lib_napms.c | 19 +- contrib/ncurses/ncurses/tinfo/lib_options.c | 121 +- contrib/ncurses/ncurses/tinfo/lib_print.c | 9 +- contrib/ncurses/ncurses/tinfo/lib_raw.c | 226 +- contrib/ncurses/ncurses/tinfo/lib_setup.c | 411 +- contrib/ncurses/ncurses/tinfo/lib_termcap.c | 210 +- contrib/ncurses/ncurses/tinfo/lib_termname.c | 16 +- contrib/ncurses/ncurses/tinfo/lib_tgoto.c | 23 +- contrib/ncurses/ncurses/tinfo/lib_ti.c | 10 +- contrib/ncurses/ncurses/tinfo/lib_tparm.c | 477 +- contrib/ncurses/ncurses/tinfo/lib_tputs.c | 21 +- contrib/ncurses/ncurses/tinfo/lib_ttyflags.c | 94 +- contrib/ncurses/ncurses/tinfo/make_keys.c | 10 +- contrib/ncurses/ncurses/tinfo/name_match.c | 17 +- contrib/ncurses/ncurses/tinfo/parse_entry.c | 74 +- contrib/ncurses/ncurses/tinfo/read_entry.c | 455 +- contrib/ncurses/ncurses/tinfo/read_termcap.c | 91 +- contrib/ncurses/ncurses/tinfo/setbuf.c | 58 +- contrib/ncurses/ncurses/tinfo/strings.c | 23 +- contrib/ncurses/ncurses/tinfo/trim_sgr0.c | 328 + contrib/ncurses/ncurses/tinfo/write_entry.c | 372 +- contrib/ncurses/ncurses/trace/README | 30 +- contrib/ncurses/ncurses/trace/lib_trace.c | 98 +- contrib/ncurses/ncurses/trace/lib_traceatr.c | 139 +- contrib/ncurses/ncurses/trace/lib_tracebits.c | 6 +- contrib/ncurses/ncurses/trace/lib_tracechr.c | 36 +- contrib/ncurses/ncurses/trace/lib_tracedmp.c | 41 +- contrib/ncurses/ncurses/trace/lib_tracemse.c | 42 +- contrib/ncurses/ncurses/trace/trace_buf.c | 71 +- contrib/ncurses/ncurses/trace/varargs.c | 64 +- contrib/ncurses/ncurses/trace/visbuf.c | 227 +- contrib/ncurses/ncurses/tty/MKexpanded.sh | 6 +- contrib/ncurses/ncurses/tty/hashmap.c | 18 +- contrib/ncurses/ncurses/tty/lib_mvcur.c | 253 +- contrib/ncurses/ncurses/tty/lib_tstp.c | 12 +- contrib/ncurses/ncurses/tty/lib_twait.c | 213 +- contrib/ncurses/ncurses/tty/lib_vidattr.c | 72 +- contrib/ncurses/ncurses/tty/tty_display.h | 11 +- contrib/ncurses/ncurses/tty/tty_update.c | 639 +- contrib/ncurses/ncurses/widechar/charable.c | 80 + contrib/ncurses/ncurses/widechar/lib_add_wch.c | 113 + contrib/ncurses/ncurses/widechar/lib_box_set.c | 4 +- contrib/ncurses/ncurses/widechar/lib_cchar.c | 56 +- contrib/ncurses/ncurses/widechar/lib_get_wch.c | 50 +- contrib/ncurses/ncurses/widechar/lib_get_wstr.c | 76 +- contrib/ncurses/ncurses/widechar/lib_in_wch.c | 12 +- contrib/ncurses/ncurses/widechar/lib_in_wchnstr.c | 20 +- contrib/ncurses/ncurses/widechar/lib_ins_wch.c | 95 +- contrib/ncurses/ncurses/widechar/lib_inwstr.c | 36 +- contrib/ncurses/ncurses/widechar/lib_pecho_wchar.c | 57 + contrib/ncurses/ncurses/widechar/lib_slk_wset.c | 72 + contrib/ncurses/ncurses/widechar/lib_unget_wch.c | 49 +- contrib/ncurses/ncurses/widechar/lib_vid_attr.c | 252 +- contrib/ncurses/ncurses/widechar/lib_wacs.c | 43 +- contrib/ncurses/ncurses/widechar/lib_wunctrl.c | 13 +- contrib/ncurses/panel/Makefile.in | 23 +- contrib/ncurses/panel/llib-lpanel | 43 +- contrib/ncurses/panel/llib-lpanelw | 182 + contrib/ncurses/panel/p_above.c | 15 +- contrib/ncurses/panel/p_below.c | 15 +- contrib/ncurses/panel/p_bottom.c | 48 +- contrib/ncurses/panel/p_delete.c | 15 +- contrib/ncurses/panel/p_hidden.c | 15 +- contrib/ncurses/panel/p_hide.c | 19 +- contrib/ncurses/panel/p_move.c | 24 +- contrib/ncurses/panel/p_new.c | 58 +- contrib/ncurses/panel/p_replace.c | 27 +- contrib/ncurses/panel/p_show.c | 30 +- contrib/ncurses/panel/p_top.c | 9 +- contrib/ncurses/panel/p_update.c | 13 +- contrib/ncurses/panel/p_user.c | 22 +- contrib/ncurses/panel/p_win.c | 13 +- contrib/ncurses/panel/panel.c | 89 +- contrib/ncurses/panel/panel.h | 4 +- contrib/ncurses/panel/panel.priv.h | 20 +- contrib/ncurses/progs/MKtermsort.sh | 42 +- contrib/ncurses/progs/Makefile.in | 118 +- contrib/ncurses/progs/capconvert | 29 +- contrib/ncurses/progs/clear.c | 24 +- contrib/ncurses/progs/clear.sh | 28 + contrib/ncurses/progs/dump_entry.c | 424 +- contrib/ncurses/progs/dump_entry.h | 23 +- contrib/ncurses/progs/infocmp.c | 537 +- contrib/ncurses/progs/modules | 18 +- contrib/ncurses/progs/progs.priv.h | 22 +- contrib/ncurses/progs/tic.c | 597 +- contrib/ncurses/progs/toe.c | 488 +- contrib/ncurses/progs/tput.c | 99 +- contrib/ncurses/progs/tset.c | 223 +- contrib/ncurses/tack/COPYING | 8 +- contrib/ncurses/tack/HISTORY | 5 + contrib/ncurses/tack/Makefile.in | 103 +- contrib/ncurses/tack/ansi.c | 6 +- contrib/ncurses/tack/charset.c | 60 +- contrib/ncurses/tack/color.c | 114 +- contrib/ncurses/tack/control.c | 43 +- contrib/ncurses/tack/crum.c | 24 +- contrib/ncurses/tack/edit.c | 87 +- contrib/ncurses/tack/fun.c | 63 +- contrib/ncurses/tack/init.c | 28 +- contrib/ncurses/tack/menu.c | 6 +- contrib/ncurses/tack/modes.c | 22 +- contrib/ncurses/tack/modules | 29 +- contrib/ncurses/tack/output.c | 18 +- contrib/ncurses/tack/pad.c | 47 +- contrib/ncurses/tack/scan.c | 37 +- contrib/ncurses/tack/sync.c | 28 +- contrib/ncurses/tack/sysdep.c | 19 +- contrib/ncurses/tack/tack.1 | 31 +- contrib/ncurses/tack/tack.c | 39 +- contrib/ncurses/tack/tack.h | 207 +- contrib/ncurses/tar-copy.sh | 29 +- 486 files changed, 69401 insertions(+), 32682 deletions(-) create mode 100644 contrib/ncurses/AUTHORS create mode 100644 contrib/ncurses/doc/html/NCURSES-Programming-HOWTO.html create mode 100644 contrib/ncurses/form/f_trace.c create mode 100644 contrib/ncurses/form/llib-lformw create mode 100644 contrib/ncurses/include/Caps.hpux11 create mode 100644 contrib/ncurses/include/hashed_db.h create mode 100644 contrib/ncurses/include/nc_tparm.h create mode 100644 contrib/ncurses/man/key_defined.3x create mode 100644 contrib/ncurses/man/legacy_coding.3x create mode 100644 contrib/ncurses/menu/llib-lmenuw create mode 100644 contrib/ncurses/menu/m_trace.c create mode 100755 contrib/ncurses/misc/csort create mode 100755 contrib/ncurses/misc/gen_edit.sh create mode 100755 contrib/ncurses/misc/jpf-indent create mode 100755 contrib/ncurses/misc/ncu-indent create mode 100644 contrib/ncurses/misc/ncurses-config.in create mode 100644 contrib/ncurses/ncurses/README.IZ create mode 100644 contrib/ncurses/ncurses/base/key_defined.c create mode 100644 contrib/ncurses/ncurses/base/legacy_coding.c create mode 100644 contrib/ncurses/ncurses/base/lib_insnstr.c create mode 100644 contrib/ncurses/ncurses/tinfo/db_iterator.c create mode 100644 contrib/ncurses/ncurses/tinfo/hashed_db.c create mode 100644 contrib/ncurses/ncurses/tinfo/trim_sgr0.c create mode 100644 contrib/ncurses/ncurses/widechar/charable.c create mode 100644 contrib/ncurses/ncurses/widechar/lib_add_wch.c create mode 100644 contrib/ncurses/ncurses/widechar/lib_pecho_wchar.c create mode 100644 contrib/ncurses/ncurses/widechar/lib_slk_wset.c create mode 100644 contrib/ncurses/panel/llib-lpanelw (limited to 'contrib/ncurses') diff --git a/contrib/ncurses/ANNOUNCE b/contrib/ncurses/ANNOUNCE index 7b5f4ef..bbeeb89 100644 --- a/contrib/ncurses/ANNOUNCE +++ b/contrib/ncurses/ANNOUNCE @@ -1,486 +1,463 @@ + Announcing ncurses 5.6 - Announcing ncurses 5.2 - - The ncurses (new curses) library is a free software emulation of - curses in System V Release 4.0, and more. It uses terminfo format, - supports pads and color and multiple highlights and forms characters - and function-key mapping, and has all the other SYSV-curses + The ncurses (new curses) library is a free software emulation of + curses in System V Release 4.0, and more. It uses terminfo format, + supports pads and color and multiple highlights and forms characters + and function-key mapping, and has all the other SYSV-curses enhancements over BSD curses. - In mid-June 1995, the maintainer of 4.4BSD curses declared that he - considered 4.4BSD curses obsolete, and is encouraging the keepers of - Unix releases such as BSD/OS, freeBSD and netBSD to switch over to - ncurses. + In mid-June 1995, the maintainer of 4.4BSD curses declared that he + considered 4.4BSD curses obsolete, and encouraged the keepers of Unix + releases such as BSD/OS, FreeBSD and NetBSD to switch over to ncurses. - The ncurses code was developed under GNU/Linux. It should port easily - to any ANSI/POSIX-conforming UNIX. It has even been ported to OS/2 - Warp! + The ncurses code was developed under GNU/Linux. It has been in use for + some time with OpenBSD as the system curses library, and on FreeBSD + and NetBSD as an external package. It should port easily to any + ANSI/POSIX-conforming UNIX. It has even been ported to OS/2 Warp! The distribution includes the library and support utilities, including - a terminfo compiler tic(1), a decompiler infocmp(1), clear(1), - tput(1), tset(1), and a termcap conversion tool captoinfo(1). Full + a terminfo compiler tic(1), a decompiler infocmp(1), clear(1), + tput(1), tset(1), and a termcap conversion tool captoinfo(1). Full manual pages are provided for the library and tools. - The ncurses distribution is available via anonymous FTP at the GNU - distribution site [1]ftp://ftp.gnu.org/pub/gnu/ncurses. - It is also available at [2]ftp://dickey.his.com/ncurses. + The ncurses distribution is available via anonymous FTP at the GNU + distribution site [1]ftp://ftp.gnu.org/gnu/ncurses/ . + It is also available at [2]ftp://invisible-island.net/ncurses/ . Release Notes - This release is designed to be upward compatible from ncurses 5.0 and - 5.1; very few applications will require recompilation, depending on - the platform. These are the highlights from the change-log since - ncurses 5.1 release. + This release is designed to be upward compatible from ncurses 5.0 + through 5.5; very few applications will require recompilation, + depending on the platform. These are the highlights from the + change-log since ncurses 5.5 release. Interface changes: - * change type of ospeed variable back to short to match its use in - legacy applications. It was altered after ncurses 4.2 to speed_t - to repair a type mismatch which was introduced after 1.9.4 in - 1995. The principal users of termcap continued to use short, which - is not the same size. - NOTE: A few applications will have to be recompiled (about 1% of - the programs in a typical Linux distribution, 10% of the programs - that use ncurses). These are easy to identify with nm or strings. - * remove a private function _nc_can_clear_with(), which was built - with the configure --enable-expanded option but not used. - * add several private functions (prefixed with "_nc_") for tracing - chtype values in the debug library, and for better access and - buffer limit checking. + * generate linkable stubs for some macros: + getbegx, getbegy, getcurx, getcury, getmaxx, getmaxy, getparx, + getpary, getpary, + and (for libncursesw) + wgetbkgrnd New features and improvements: - * rewrote tgoto() to make it better support existing termcap - applications which use hardcoded strings rather than obtain all of - their information from the termcap file. If the string does not - appear to be a terminfo string (i.e., does not refer to a "%p" - parameter, or terminfo-style padding), and termcap support is - configured, tgoto() will interpret it as termcap. Otherwise, as - before, it will use tparm(). - * to ensure that the tgoto() changes work properly, added checks to - tic which report capabilities that do not reference the expected - number of parameters. - * new configure script options: - + option --disable-root-environ adds runtime checks which tell - ncurses to disregard $TERMINFO and similar environment - variables if the current user is root, or running - setuid/setgid. - + option --disable-assumed-color allows you to use the pre-5.1 - convention of default colors used for color-pair 0 to be - configured (see assume_default_colors()). - + implement configure script options that transform installed - program names, e.g., --program-prefix, including the manpage - names and cross references. - + option --with-database allows you to specify a different - terminfo source-file to install. On OS/2 EMX, the default is - misc/emx.src, otherwise misc/terminfo.src - + option --with-default-terminfo-dir allows you to specify the - default terminfo database directory. - + option --with-libtool allows you to build with libtool. - NOTE: libtool uses a different notation for numbering shared - library versions from the existing ncurses configuration. - + option --with-manpage-tbl causes the manpages to be - preprocessed by tbl(1) prior to installation, - + option --without-curses-h causes the installation process to - install curses.h as ncurses.h and make appropriate changes to - headers and manpages. - * modified configure script options: - + change symbol used by the --install-prefix configure option - from INSTALL_PREFIX to DESTDIR (the latter has become common - usage although the name is misleading). - + modify ld -rpath options (e.g., Linux, and Solaris) to use an - absolute pathname for the build tree's lib directory, - avoiding confusion with directories relative to the current - one with the installed programs. - + modified misc/run_tic.in to use tic -o, to eliminate - dependency on $TERMINFO variable for installs. - * terminfo database: - + updated xterm terminfo entries to match XFree86 xterm patch - #146. - + added amiga-vnc, Matrix Orbital, and QNX qansi to - misc/terminfo.src. - + added os2 entry to misc/emx.src. - + add S0 and E0 extensions to screen's terminfo entry since - otherwise the FreeBSD port makes it pass termcap equivalents - to tgoto, which would be misinterpreted by older versions of - ncurses. - * improvements to program usability: - + modify programs to use curses_version() string to report the - version of ncurses with which they are compiled rather than - the NCURSES_VERSION string. The function returns the patch - level in addition to the major and minor version numbers. - + modify tput program so it can be renamed or invoked via a - link as 'reset' or 'init', producing the same effect as - tput reset or tput init. - + add error checking to infocmp's -v and -m options to ensure - that the option value is indeed a number. - * improved performance: - + replace a lookup table in lib_vidattr.c used to decode - no_color_video with a logic expression which is faster. + * library + + support hashed databases for the terminal descriptions. This + uses the Berkeley database, has been tested for several + versions on different platforms. + + add use_legacy_coding() function to support lynx's + font-switching feature. + + add extension nofilter(), to cancel a prior filter() call. + + add/install a package config script, e.g., ncurses5-config or + ncursesw5-config, according to configuration options. + + provide ifdef for NCURSES_NOMACROS which suppresses most + macro definitions from curses.h, i.e., where a macro is + defined to override a function to improve performance. + + make ifdef's consistent in curses.h for the extended colors + so the header file can be used for the normal curses library. + The header file installed for extended colors is a variation + of the wide-character configuration. + + improve tgetstr() by making the return value point into the + user's buffer, if provided. + + add ifdef's allowing ncurses to be built with tparm() using + either varargs (the existing status), or using a + fixed-parameter list (to match X/Open). + + widen the test for xterm kmous a little to allow for other + strings than "\E[M", e.g., for xterm-sco functionality in + xterm. + + modify wgetnstr() to return KEY_RESIZE if a sigwinch occurs. + + move prototypes for wide-character trace functions from + curses.tail to curses.wide to avoid accidental reference to + those if _XOPEN_SOURCE_EXTENDED is defined without ensuring + that is included. + + change the way shared libraries (other than libtool) are + installed. Rather than copying the build-tree's libraries, + link the shared objects into the install directory. This + makes the --with-rpath option work except with $(DESTDIR). + + several improvements for rendering in hpterm. These are only + available if the library is configured using + --enable-xmc-glitch. + + Add NCURSES_NO_HARD_TABS and NCURSES_NO_MAGIC_COOKIE + environment variables to allow runtime suppression of the + related hard-tabs and xmc-glitch features. + * programs: + + add new test programs: chgat.c, demo_altkeys.c, echochar.c, + foldkeys.c, movewindow.c, redraw.c, (noting that existing + test programs also were modified to test additional + features). + + modify tack to test extended capability function-key strings. + + modify toe to access termcap data, e.g., via cgetent() + functions, or as a text file if those are not available. + + improve infocmp/tic -f option formatting. + + add toe -a option, to show all databases. This uses new + private interfaces in the ncurses library for iterating + through the list of databases. + + modify MKfallback.sh to use tic -x when constructing fallback + tables to allow extended capabilities to be retrieved from a + fallback entry. + * terminal database + + add terminfo entries for xfce terminal (xfce) and multi gnome + terminal (mgt) + + add nsterm-16color entry + + updated mlterm terminfo entry + + add kon, kon2 and jfbterm terminfo entry + + remove invis capability from klone+sgr, mainly used by linux + entry, since it does not really do this + + add ka2, kb1, kb3, kc2 to vt220-keypad as an extension + + add shifted up/down arrow codes to xterm-new as kind/kri + strings + + add hpterm-color terminfo entry + + add 256color variants of terminfo entries for programs which + are reported to implement this feature + + correct order of use-clauses in rxvt-basic entry which made + codes for f1-f4 vt100-style rather than vt220-style. Major bug fixes: - * correct manlinks.sed script introduced in ncurses 5.1 to avoid - using ERE "\+", which is not understood by standard versions of - sed. This happens to work with GNU sed, but is not portable, and - was the initial motivation for this release. - * remove "hpux10.*" case from CF_SHARED_OPTS configure script macro. - This differed from the "hpux*" case by using reversed symbolic - links, which made the 5.1 version not match the configuration of - 5.0 shared libraries. - * guard against corrupt terminfo data: - + modify tparm() to disallow arithmetic on strings, analyze the - varargs list to read strings as strings and numbers as - numbers. - + modify tparm()'s internal function spop() to treat a null - pointer as an empty string. - + modify parse_format() in lib_tparm.c to ignore precision if - it is longer than 10000. - + rewrote limit checks in lib_mvcur.c using new functions - _nc_safe_strcat(), etc. Made other related changes to check - lengths used for strcat() and strcpy(). - * corrections to screen optimization: - + added special case in lib_vidattr.c to reset underline and - standout for devices that have no sgr0 defined. - + change handling of non_dest_scroll_region in tty_update.c to - clear text after it is shifted in rather than before shifting - out. Also correct row computation. - + modify rs2 capability in xterm-r6 and similar entries where - cursor save/restore bracketed the sequence for resetting - video attributes. The cursor restore would undo that. - * UTF-8 support: - + when checking LC_ALL, LC_CTYPE, and LANG environment - variables for UTF-8 locale, ignore those which are set to an - empty value, as per SUSV2. - + encode 0xFFFD in UTF-8 with 3 bytes, not 2. - + modify _nc_utf8_outch() to avoid sign-extension when checking - for out-of-range value. - * other library fixes: - + added checks for an empty $HOME environment variable, to - avoid retrieving terminfo descriptions from ./.terminfo . - + change functions _nc_parse_entry() and postprocess_termcap() - to avoid using strtok(), because it is non-reentrant. - + initialize fds[] array to 0's in _nc_timed_wait(); apparently - poll() only sets the revents members of that array when there - is activity corresponding to the related file. - + add a check for null pointer in Make_Enum_Type(). - + fix a heap problem with the c++ binding. - + correct missing includes for in several places, - including the C++ binding. This is not noted by gcc unless we - use the -fno-builtin option. - * several fixes for tic: - + add a check for empty buffers returned by fgets() in - comp_scan.c next_char() function, in case tic is run on a - non-text file (fixes a core dump). - + modify tic to verify that its inputs are really files, in - case someone tries to read a directory (or /dev/zero). - + correct an uninitialized parameter to open_tempfile() in - tic.c which made "tic -I" give an ambiguous error message - about tmpnam. - + correct logic in adjust_cancels(), which did not check both - alternatives when reclassifying an extended name between - boolean, number and string, causing an infinite loop in tic. - * using new checks in tic for parameter counts in capability - strings, found/fixed several errors both in the terminfo database - and in the include/Caps file. - + modified several terminfo capability strings, including the - definitions for setaf, setab, in include/Caps to indicate - that the entries are parameterized. This information is used - to tell which strings are translated when converting to - termcap. This fixes a problem where the generated termcap - would contain a spurious "%p1" for the terminfo "%p1%d". - + correct parameter counts in include/Caps for dclk as well as - some printer-specific capabilities: csnm, defc, scs, scsd, - smgtp, smglp. - * various fixes for install scripts used to support configure - --srcdir and --with-install-prefix. - * correct several mismatches between manpage filename and ".TH" - directives, renaming dft_fgbg.3x to default_colors.3x and - menu_attribs.3x to menu_attributes.3x. + * correct a typo in configure --with-bool option for the case where + --without-cxx is used. + * move assignment from environment variable ESCDELAY from initscr() + down to newterm() so the environment variable affects timeouts for + terminals opened with newterm() as well. + * modify werase to clear multicolumn characters that extend into a + derived window. + * modify wchgat() to mark updated cells as changed so a refresh will + repaint those cells. + * correct logic in wadd_wch() and wecho_wch(), which did not guard + against passing the multi-column attribute into a call on + waddch(), e.g., using data returned by win_wch() + * fix redrawing of windows other than stdscr using wredrawln() by + touching the corresponding rows in curscr. + * reduce memory leaks in repeated calls to tgetent() by remembering + the last TERMINAL* value allocated to hold the corresponding data + and freeing that if the tgetent() result buffer is the same as the + previous call. + * modify read_termtype() so the term_names data is always allocated + as part of the str_table, a better fix for a memory leak. + * fix wins_nwstr(), which did not handle single-column non-8bit + codes. + * modify wbkgrnd() to avoid clearing the A_CHARTEXT attribute bits + since those record the state of multicolumn characters. + * improve SIGWINCH handling by postponing its effect during + newterm(), etc., when allocating screens. + * remove 970913 feature for copying subwindows as they are moved in + mvwin(). + * add checks in waddchnstr() and wadd_wchnstr() to stop copying when + a null character is found. + * add some checks to ensure current position is within scrolling + region before scrolling on a new line. + * add a workaround to ACS mapping to allow applications such as + test/blue.c to use the "PC ROM" characters by masking them with + A_ALTCHARSET. This worked up til 5.5, but was lost in the revision + of legacy coding. Portability: * configure script: - + newer config.guess, config.sub, including changes to support - OS/2 EMX. The configure script for OS/2 EMX still relies on a - patch since there is no (working) support for that platform - in the main autoconf distribution. - + make configure script checks on variables $GCC and $GXX - consistently compare against 'yes' rather than test if they - are nonnull, since either may be set to the corresponding - name of the C or C++ compiler. - + change configure script to use AC_CANONICAL_SYSTEM rather - than AC_CANONICAL_HOST, which means that configure --target - will set a default program-prefix. - + modify the check for big-core to force a couple of memory - accesses, which may work as needed for older/less-capable - machines (if not, there's still the explicit configure - option). - + modify configure test for tcgetattr() to allow for old - implementations, e.g., on BeOS, which only defined it as a + + new options: + + --with-hashed-db + Use Berkeley hashed database for storing terminfo + data rather than storing each compiled entry in a + separate binary file within a directory tree. + + --without-dlsym + Do not use dlsym() to load GPM dynamically. + + --with-valgrind + Simplify building for testing with valgrind. + + --enable-wgetch-events + Compile with experimental wgetch-events code. + + --enable-signed-char + Store booleans in "signed char" rather than "char". + + + improved options: + + --disable-largefile + make the option work both ways. + + --with-gpm + The option now accepts a parameter, i.e., the name + of the dynamic GPM library to load via dlopen() + + --disable-symlinks + The option now allows one to disable symlink() in + tic even when link() does not work. + + * other configure/build issues: + + remove special case for Darwin in CF_XOPEN_SOURCE configure macro. - + add configure check for filesystems (such as OS/2 EMX) which - do not distinguish between upper/lowercase filenames, use - this to fix tags rules in makefiles. - + add MKncurses_def.sh to generate fallback definitions for - ncurses_cfg.h, to quiet gcc -Wundef warnings, modified - ifdef's in code to consistently use "#if" rather than - "#ifdef". - + change most remaining unquoted parameters of test in - configure script to use quotes, for instance fixing a problem - in the --disable-database option. - + modify scripts so that "make install.data" works on OS/2 EMX. - + modify scripts and makefiles so the Ada95 directory builds on - OS/2 EMX. + + add configure check to ensure that SIGWINCH is defined on + platforms such as OS X which exclude that when _XOPEN_SOURCE, + etc., are defined + + use ld's -search_paths_first option on Darwin to work around + odd search rules on that platform. + + improve ifdef's for _POSIX_VDISABLE in tset to work with Mac + OS X. + + modify configure script to ensure that if the C compiler is + used rather than the loader in making shared libraries, the + $(CFLAGS) variable is also used. + + use ${CC} rather than ${LD} in shared library rules for + IRIX64, Solaris to help ensure that initialization sections + are provided for extra linkage requirements, e.g., of C++ + applications. + + improve some shared-library configure scripting for Linux, + FreeBSD and NetBSD to make --with-shlib-version work. + + split up dependency of names.c and codes.c in + ncurses/Makefile to work with parallel make. + + modify MKlib_gen.sh to change preprocessor-expanded _Bool + back to bool. + + modify progs/Makefile.in to make tput init work properly with + cygwin, i.e., do not pass a .exe in the reference string used + in check_aliases. * library: - + replaced case-statement in _nc_tracebits() for CSIZE with a - table to simplify working around implementations that define - random combinations of the related macros to zero. - + improved OS/2 mouse support by retrying as a 2-button mouse - if code fails to set up a 3-button mouse. - + added private entrypoint _nc_basename(), used to consolidate - related code in progs, as well as accommodating OS/2 EMX - pathnames. - + alter definition of NCURSES_CONST to make it non-empty. - + redefine 'TEXT' in menu.h for AMIGA, since it is reported to - have an (unspecified) symbol conflict. - * programs: - + modified progs/tset.c and tack/sysdep.c to build with sgttyb - interface if neither termio or termios is available. Tested - this with FreeBSD 2.1.5 (which does have termios - but the - sgttyb does work). + + ignore wide-acs line-drawing characters that wcwidth() claims + are not one-column. This is a workaround for Solaris' broken + locale support. + + reduce name-pollution in term.h by removing #define's for + HAVE_xxx symbols. + + fix #ifdef in c++/internal.h for QNX 6.1 + * test programs: + + modify test/configure script to allow building test programs + with PDCurses/X11. + + modified test programs to allow some to work with NetBSD + curses. Several do not because NetBSD curses implements a + subset of X/Open curses, and also lacks much of SVr4 + additions. But it is enough for comparison. + + improved test/configure to build test/ncurses on HPUX 11 + using the vendor curses. + + change configure script to produce test/Makefile from data + file. Features of Ncurses The ncurses package is fully compatible with SVr4 (System V Release 4) curses: - * All 257 of the SVr4 calls have been implemented (and are + * All 257 of the SVr4 calls have been implemented (and are documented). - * Full support for SVr4 curses features including keyboard mapping, - color, forms-drawing with ACS characters, and automatic + * Full support for SVr4 curses features including keyboard mapping, + color, forms-drawing with ACS characters, and automatic recognition of keypad and function keys. - * An emulation of the SVr4 panels library, supporting a stack of + * An emulation of the SVr4 panels library, supporting a stack of windows with backing store, is included. - * An emulation of the SVr4 menus library, supporting a uniform but + * An emulation of the SVr4 menus library, supporting a uniform but flexible interface for menu programming, is included. - * An emulation of the SVr4 form library, supporting data collection + * An emulation of the SVr4 form library, supporting data collection through on-screen forms, is included. - * Binary terminfo entries generated by the ncurses tic(1) - implementation are bit-for-bit-compatible with the entry format + * Binary terminfo entries generated by the ncurses tic(1) + implementation are bit-for-bit-compatible with the entry format SVr4 curses uses. * The utilities have options to allow you to filter terminfo entries - for use with less capable curses/terminfo versions such as the + for use with less capable curses/terminfo versions such as the HP/UX and AIX ports. The ncurses package also has many useful extensions over SVr4: - * The API is 8-bit clean and base-level conformant with the X/OPEN - curses specification, XSI curses (that is, it implements all BASE - level features, but not all EXTENDED features). Most - EXTENDED-level features not directly concerned with wide-character - support are implemented, including many function calls not - supported under SVr4 curses (but portability of all calls is - documented so you can use the SVr4 subset only). - * Unlike SVr3 curses, ncurses can write to the rightmost-bottommost - corner of the screen if your terminal has an insert-character + * The API is 8-bit clean and base-level conformant with the X/OPEN + curses specification, XSI curses (that is, it implements all BASE + level features, and most EXTENDED features). It includes many + function calls not supported under SVr4 curses (but portability of + all calls is documented so you can use the SVr4 subset only). + * Unlike SVr3 curses, ncurses can write to the rightmost-bottommost + corner of the screen if your terminal has an insert-character capability. * Ada95 and C++ bindings. - * Support for mouse event reporting with X Window xterm and OS/2 - console windows. + * Support for mouse event reporting with X Window xterm and FreeBSD + and OS/2 console windows. * Extended mouse support via Alessandro Rubini's gpm package. - * The function wresize() allows you to resize windows, preserving + * The function wresize() allows you to resize windows, preserving their data. * The function use_default_colors() allows you to use the terminal's default colors for the default color pair, achieving the effect of transparent colors. * The functions keyok() and define_key() allow you to better control - the use of function keys, e.g., disabling the ncurses KEY_MOUSE, - or by defining more than one control sequence to map to a given + the use of function keys, e.g., disabling the ncurses KEY_MOUSE, + or by defining more than one control sequence to map to a given key code. - * Support for 16-color terminals, such as aixterm and XFree86 xterm. - * Better cursor-movement optimization. The package now features a + * Support for 16-color terminals, such as aixterm and modern xterm. + * Better cursor-movement optimization. The package now features a cursor-local-movement computation more efficient than either BSD's or System V's. - * Super hardware scrolling support. The screen-update code - incorporates a novel, simple, and cheap algorithm that enables it - to make optimal use of hardware scrolling, line-insertion, and - line-deletion for screen-line movements. This algorithm is more + * Super hardware scrolling support. The screen-update code + incorporates a novel, simple, and cheap algorithm that enables it + to make optimal use of hardware scrolling, line-insertion, and + line-deletion for screen-line movements. This algorithm is more powerful than the 4.4BSD curses quickch() routine. - * Real support for terminals with the magic-cookie glitch. The - screen-update code will refrain from drawing a highlight if the - magic- cookie unattributed spaces required just before the - beginning and after the end would step on a non-space character. - It will automatically shift highlight boundaries when doing so - would make it possible to draw the highlight without changing the + * Real support for terminals with the magic-cookie glitch. The + screen-update code will refrain from drawing a highlight if the + magic- cookie unattributed spaces required just before the + beginning and after the end would step on a non-space character. + It will automatically shift highlight boundaries when doing so + would make it possible to draw the highlight without changing the visual appearance of the screen. - * It is possible to generate the library with a list of pre-loaded - fallback entries linked to it so that it can serve those terminal - types even when no terminfo tree or termcap file is accessible - (this may be useful for support of screen-oriented programs that + * It is possible to generate the library with a list of pre-loaded + fallback entries linked to it so that it can serve those terminal + types even when no terminfo tree or termcap file is accessible + (this may be useful for support of screen-oriented programs that must run in single-user mode). * The tic(1)/captoinfo utility provided with ncurses has the ability - to translate many termcaps from the XENIX, IBM and AT&T extension + to translate many termcaps from the XENIX, IBM and AT&T extension sets. * A BSD-like tset(1) utility is provided. * The ncurses library and utilities will automatically read terminfo - entries from $HOME/.terminfo if it exists, and compile to that - directory if it exists and the user has no write access to the - system directory. This feature makes it easier for users to have - personal terminfo entries without giving up access to the system + entries from $HOME/.terminfo if it exists, and compile to that + directory if it exists and the user has no write access to the + system directory. This feature makes it easier for users to have + personal terminfo entries without giving up access to the system terminfo directory. - * You may specify a path of directories to search for compiled - descriptions with the environment variable TERMINFO_DIRS (this - generalizes the feature provided by TERMINFO under stock System + * You may specify a path of directories to search for compiled + descriptions with the environment variable TERMINFO_DIRS (this + generalizes the feature provided by TERMINFO under stock System V.) - * In terminfo source files, use capabilities may refer not just to + * In terminfo source files, use capabilities may refer not just to other entries in the same source file (as in System V) but also to - compiled entries in either the system terminfo directory or the + compiled entries in either the system terminfo directory or the user's $HOME/.terminfo directory. - * A script (capconvert) is provided to help BSD users transition - from termcap to terminfo. It gathers the information in a TERMCAP - environment variable and/or a ~/.termcap local entries file and - converts it to an equivalent local terminfo tree under + * A script (capconvert) is provided to help BSD users transition + from termcap to terminfo. It gathers the information in a TERMCAP + environment variable and/or a ~/.termcap local entries file and + converts it to an equivalent local terminfo tree under $HOME/.terminfo. - * Automatic fallback to the /etc/termcap file can be compiled in - when it is not possible to build a terminfo tree. This feature is - neither fast nor cheap, you don't want to use it unless you have + * Automatic fallback to the /etc/termcap file can be compiled in + when it is not possible to build a terminfo tree. This feature is + neither fast nor cheap, you don't want to use it unless you have to, but it's there. - * The table-of-entries utility toe makes it easy for users to see + * The table-of-entries utility toe makes it easy for users to see exactly what terminal types are available on the system. * The library meets the XSI requirement that every macro entry point - have a corresponding function which may be linked (and will be - prototype-checked) if the macro definition is disabled with + have a corresponding function which may be linked (and will be + prototype-checked) if the macro definition is disabled with #undef. - * An HTML "Introduction to Programming with NCURSES" document - provides a narrative introduction to the curses programming + * An HTML "Introduction to Programming with NCURSES" document + provides a narrative introduction to the curses programming interface. State of the Package Numerous bugs present in earlier versions have been fixed; the library - is far more reliable than it used to be. Bounds checking in many - `dangerous' entry points has been improved. The code is now type-safe - according to gcc -Wall. The library has been checked for malloc leaks + is far more reliable than it used to be. Bounds checking in many + `dangerous' entry points has been improved. The code is now type-safe + according to gcc -Wall. The library has been checked for malloc leaks and arena corruption by the Purify memory-allocation tester. - The ncurses code has been tested with a wide variety of applications + The ncurses code has been tested with a wide variety of applications including (versions starting with those noted): cdk Curses Development Kit - [3]http://www.vexus.ca/CDK.html - [4]http://dickey.his.com/cdk. + [3]http://invisible-island.net/cdk/ + [4]http://www.vexus.ca/products/CDK/ ded directory-editor - [5]http://dickey.his.com/ded. + [5]http://invisible-island.net/ded/ dialog - the underlying application used in Slackware's setup, and the + the underlying application used in Slackware's setup, and the basis for similar applications on GNU/Linux. - [6]http://dickey.his.com/dialog. + [6]http://invisible-island.net/dialog/ lynx the character-screen WWW browser - [7]http://lynx.isc.org/release. + [7]http://lynx.isc.org/release/ - Midnight Commander 4.1 + Midnight Commander file manager - [8]www.gnome.org/mc/. + [8]http://www.ibiblio.org/mc/ mutt mail utility - [9]http://www.mutt.org. + [9]http://www.mutt.org/ ncftp file-transfer utility - [10]http://www.ncftp.com. + [10]http://www.ncftp.com/ nvi New vi versions 1.50 are able to use ncurses versions 1.9.7 and later. - [11]http://www.bostic.com/vi/. + [11]http://www.bostic.com/vi/ - tin - newsreader, supporting color, MIME - [12]http://www.tin.org. + pinfo + Lynx-like info browser. + [12]http://dione.ids.pl/~pborys/software/pinfo/ - taper - tape archive utility - [13]http://members.iinet.net.au/~yusuf/taper/. + tin + newsreader, supporting color, MIME [13]http://www.tin.org/ vh-1.6 Volks-Hypertext browser for the Jargon File - [14]http://www.bg.debian.org/Packages/unstable/text/vh.html. + [14]http://www.debian.org/Packages/unstable/text/vh.html as well as some that use ncurses for the terminfo support alone: minicom terminal emulator - [15]http://www.pp.clinet.fi/~walker/minicom.html. + [15]http://alioth.debian.org/projects/minicom/ vile vi-like-emacs - [16]http://dickey.his.com/vile. + [16]http://invisible-island.net/vile/ - The ncurses distribution includes a selection of test programs + The ncurses distribution includes a selection of test programs (including a few games). Who's Who and What's What - The original developers of ncurses are [17]Zeyd Ben-Halim and [18]Eric - S. Raymond. Ongoing work is being done by [19]Thomas Dickey and - [20]Jürgen Pfeifer. [21]Thomas Dickey acts as the maintainer for the - Free Software Foundation, which holds the copyright on ncurses. - Contact the current maintainers at [22]bug-ncurses@gnu.org. + Zeyd Ben-Halim started it from a previous package pcurses, written by + Pavel Curtis. Eric S. Raymond continued development. Juergen Pfeifer + wrote most of the form and menu libraries. Ongoing work is being done + by [17]Thomas Dickey. Thomas Dickey acts as the maintainer for the + Free Software Foundation, which holds the copyright on ncurses. + Contact the current maintainers at [18]bug-ncurses@gnu.org. - To join the ncurses mailing list, please write email to + To join the ncurses mailing list, please write email to bug-ncurses-request@gnu.org containing the line: subscribe @ This list is open to anyone interested in helping with the development and testing of this package. - Beta versions of ncurses and patches to the current release are made - available at [23]ftp://dickey.his.com/ncurses. + Beta versions of ncurses and patches to the current release are made + available at [19]ftp://invisible-island.net/ncurses/ . Future Plans - * Extended-level XPG4 conformance, with internationalization + * Extended-level XPG4 conformance, with internationalization support. * Ports to more systems, including DOS and Windows. - We need people to help with these projects. If you are interested in + We need people to help with these projects. If you are interested in working on them, please join the ncurses list. Other Related Resources - The distribution includes and uses a version of the terminfo-format - terminal description file maintained by Eric Raymond. - [24]http://earthspace.net/~esr/terminfo. + The distribution provides a newer version of the terminfo-format + terminal description file once maintained by [20]Eric Raymond . Unlike + the older version, the termcap and terminfo data are provided in the + same file, and provides several user-definable extensions beyond the + X/Open specification. - You can find lots of information on terminal-related topics not - covered in the terminfo file at [25]Richard Shuford's archive. + You can find lots of information on terminal-related topics not + covered in the terminfo file at [21]Richard Shuford's archive . References - 1. ftp://ftp.gnu.org/pub/gnu/ncurses - 2. ftp://dickey.his.com/ncurses - 3. http://www.vexus.ca/CDK.html - 4. http://dickey.his.com/cdk/cdk.html - 5. http://dickey.his.com/ded/ded.html - 6. http://dickey.his.com/dialog/dialog.html + 1. ftp://ftp.gnu.org/gnu/ncurses/ + 2. ftp://invisible-island.net/ncurses/ + 3. http://invisible-island.net/cdk/ + 4. http://www.vexus.ca/products/CDK/ + 5. http://invisible-island.net/ded/ + 6. http://invisible-island.net/dialog/ 7. http://lynx.isc.org/release/ - 8. file://localhost/usr/build/ncurses/ncurses-5.2-20001021/doc/html/www.gnome.org/mc/ + 8. http://www.ibiblio.org/mc/ 9. http://www.mutt.org/ 10. http://www.ncftp.com/ 11. http://www.bostic.com/vi/ - 12. http://www.tin.org/ - 13. http://members.iinet.net.au/~yusuf/taper/ - 14. http://www.bg.debian.org/Packages/unstable/text/vh.html - 15. http://www.pp.clinet.fi/~walker/minicom.html - 16. http://dickey.his.com/vile/vile.html - 17. mailto:zmbenhal@netcom.com - 18. http://www.ccil.org/~esr/home.html - 19. mailto:dickey@herndon4.his.com - 20. mailto:juergen.pfeifer@gmx.net - 21. mailto:dickey@herndon4.his.com - 22. mailto:bug-ncurses@gnu.org - 23. ftp://dickey.his.com/ncurses - 24. http://earthspace.net/~esr/terminfo - 25. http://www.cs.utk.edu/~shuford/terminal_index.html + 12. http://dione.ids.pl/~pborys/software/pinfo/ + 13. http://www.tin.org/ + 14. http://www.debian.org/Packages/unstable/text/vh.html + 15. http://alioth.debian.org/projects/minicom/ + 16. http://invisible-island.net/vile/ + 17. mailto:dickey@invisible-island.net + 18. mailto:bug-ncurses@gnu.org + 19. ftp://invisible-island.net/ncurses/ + 20. http://www.catb.org/~esr/terminfo/ + 21. http://www.cs.utk.edu/~shuford/terminal_index.html diff --git a/contrib/ncurses/AUTHORS b/contrib/ncurses/AUTHORS new file mode 100644 index 0000000..57904c4 --- /dev/null +++ b/contrib/ncurses/AUTHORS @@ -0,0 +1,38 @@ +------------------------------------------------------------------------------- +-- Copyright (c) 2006 Free Software Foundation, Inc. -- +-- -- +-- Permission is hereby granted, free of charge, to any person obtaining a -- +-- copy of this software and associated documentation files (the -- +-- "Software"), to deal in the Software without restriction, including -- +-- without limitation the rights to use, copy, modify, merge, publish, -- +-- distribute, distribute with modifications, sublicense, and/or sell copies -- +-- of the Software, and to permit persons to whom the Software is furnished -- +-- to do so, subject to the following conditions: -- +-- -- +-- The above copyright notice and this permission notice shall be included -- +-- in all copies or substantial portions of the Software. -- +-- -- +-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -- +-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -- +-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -- +-- NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -- +-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -- +-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -- +-- USE OR OTHER DEALINGS IN THE SOFTWARE. -- +-- -- +-- Except as contained in this notice, the name(s) of the above copyright -- +-- holders shall not be used in advertising or otherwise to promote the -- +-- sale, use or other dealings in this Software without prior written -- +-- authorization. -- +------------------------------------------------------------------------------- +-- $Id: AUTHORS,v 1.2 2006/10/28 21:44:52 tom Exp $ +------------------------------------------------------------------------------- +These are the principal authors/contributors of ncurses since 1.9.9e, +in decreasing order of their contribution: + +TD Thomas E. Dickey +JPF Juergen Pfeifer +ESR Eric S Raymond +AVL Alexander V Lukyanov +PB Philippe Blain +SV Sven Verdoolaege diff --git a/contrib/ncurses/INSTALL b/contrib/ncurses/INSTALL index 7255dff..45b13a9 100644 --- a/contrib/ncurses/INSTALL +++ b/contrib/ncurses/INSTALL @@ -1,4 +1,31 @@ --- $Id: INSTALL,v 1.52 2002/01/12 22:56:44 tom Exp $ +------------------------------------------------------------------------------- +-- Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. -- +-- -- +-- Permission is hereby granted, free of charge, to any person obtaining a -- +-- copy of this software and associated documentation files (the -- +-- "Software"), to deal in the Software without restriction, including -- +-- without limitation the rights to use, copy, modify, merge, publish, -- +-- distribute, distribute with modifications, sublicense, and/or sell copies -- +-- of the Software, and to permit persons to whom the Software is furnished -- +-- to do so, subject to the following conditions: -- +-- -- +-- The above copyright notice and this permission notice shall be included -- +-- in all copies or substantial portions of the Software. -- +-- -- +-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -- +-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -- +-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -- +-- NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -- +-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -- +-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -- +-- USE OR OTHER DEALINGS IN THE SOFTWARE. -- +-- -- +-- Except as contained in this notice, the name(s) of the above copyright -- +-- holders shall not be used in advertising or otherwise to promote the -- +-- sale, use or other dealings in this Software without prior written -- +-- authorization. -- +------------------------------------------------------------------------------- +-- $Id: INSTALL,v 1.114 2006/12/17 19:58:19 tom Exp $ --------------------------------------------------------------------- How to install Ncurses/Terminfo on your system --------------------------------------------------------------------- @@ -19,12 +46,6 @@ below. If you are converting from BSD curses and do not have root access, be sure to read the BSD CONVERSION NOTES section below. -If you are using a version of XFree86 xterm older than 3.1.2F, see the section -on RECENT XTERM VERSIONS below. - -If you are trying to build GNU Emacs using ncurses for terminal support, -read the USING NCURSES WITH EMACS section below. - If you are trying to build applications using gpm with ncurses, read the USING NCURSES WITH GPM section below. @@ -45,9 +66,9 @@ do anything else. REQUIREMENTS: ------------ -You will need the following in order to build and install ncurses under UNIX: +You will need the following to build and install ncurses under UNIX: - * ANSI C compiler (gcc is recommended) + * ANSI C compiler (gcc, for instance) * sh (bash will do) * awk (mawk or gawk will do) * sed @@ -64,9 +85,10 @@ INSTALLATION PROCEDURE: with it. The --prefix option to configure changes the root directory for installing - ncurses. The default is in subdirectories of /usr/local. Use - --prefix=/usr to replace your default curses distribution. This is the - default for Linux and BSD/OS users. + ncurses. The default is normally in subdirectories of /usr/local, except + for systems where ncurses is normally installed as a system library, e.g., + Linux, the various BSD systems and Cygwin. Use --prefix=/usr to replace + your default curses distribution. The package gets installed beneath the --prefix directory as follows: @@ -77,9 +99,20 @@ INSTALLATION PROCEDURE: In $(prefix)/include: C header files Under $(prefix)/man: the manual pages - Note however that the configure script attempts to locate previous - installation of ncurses, and will set the default prefix according to where - it finds the ncurses headers. + Note that the configure script attempts to locate previous installation of + ncurses, and will set the default prefix according to where it finds the + ncurses headers. + + Do not use commands such as + + make install prefix=XXX + + to change the prefix after configuration, since the prefix value is used + for some absolute pathnames such as TERMINFO. Instead do this + + make install DESTDIR=XXX + + See also the discussion of --with-install-prefix. 2. Type `./configure' in the top-level directory of the distribution to configure ncurses for your operating system and create the Makefiles. @@ -106,6 +139,16 @@ INSTALLATION PROCEDURE: libncurses.la (libtool) + If you configure using the --enable-widec option, a "w" is appended to the + library names (e.g., libncursesw.a), and the resulting libraries support + wide-characters, e.g., via a UTF-8 locale. The corresponding header files + are compatible with the non-wide-character configuration; wide-character + features are provided by ifdef's in the header files. The wide-character + library interfaces are not binary-compatible with the non-wide-character + version. Building and running the wide-character code relies on a fairly + recent implementation of libiconv. We have built this configuration on + Linux using libiconv, sometimes requiring libutf8. + If you do not specify any models, the normal and debug libraries will be configured. Typing `configure' with no arguments is equivalent to: @@ -158,6 +201,14 @@ INSTALLATION PROCEDURE: databases are SVr4-compatible, but most seem to be. Exceptions include DEC's Digital Unix (formerly known as OSF/1). + If you run the test programs WITHOUT installing terminfo, ncurses may + read the termcap file and cache that in $HOME/.terminfo, which will + thereafter be used instead of the terminfo database. See the comments + on "--enable-getcap-cache", to see why this is a Bad Thing. + + It is possible to configure ncurses to use other terminfo database formats. + A few are provided as examples in the include-directory (see --with-caps). + The ncurses program is designed specifically to test the ncurses library. You can use it to verify that the screen highlights work correctly, that cursor addressing and window scrolling works OK, etc. @@ -189,14 +240,14 @@ INSTALLATION PROCEDURE: with tbl(1) by specifying the configure option --with-manpage-tbl. If the system already has a curses library that you need to keep using - for some bizarre binary-compatibility reason, you'll need to distinguish - between it and ncurses. If ncurses is installed outside the standard - directories (/usr/include and /usr/lib) then all your users will need - to use the -I option to compile programs and -L to link them. + you'll need to distinguish between it and ncurses. See the discussion of + --disable-overwrite. If ncurses is installed outside the standard + directories (/usr/include and /usr/lib) then all your users will need to + use the -I option to compile programs and -L to link them. - If you have BSD curses installed in your system and you accidentally + If you have another curses installed in your system and you accidentally compile using its curses.h you'll end up with a large number of - undefined symbols at link time. _waddbytes is one of them. + undefined symbols at link time. IF YOU DO NOT HAVE ROOT: Change directory to the `progs' subdirectory and run the `capconvert' script. This script will deduce various things @@ -221,26 +272,6 @@ INSTALLATION PROCEDURE: which may be supported by C++. IF YOU USE THIS OPTION, BE ADVISED THAT YOU MAY NOT BE ABLE TO COMPILE (OR RUN) NCURSES APPLICATIONS WITH C++. -7. If you're running an older Linux, you must either (a) tell Linux that the - console terminal type is `linux' or (b) make a link to or copy of the - linux entry in the appropriate place under your terminfo directory, named - `console'. All 1.3 and many 1.2 distributions (including Yggdrasil and - Red Hat) already have the console type set to `linux'. - - The way to change the wired-in console type depends on the configuration - of your system. This may involve editing /etc/inittab, /etc/ttytype, - /etc/profile and other such files. - - Warning: this is not for the fainthearted, if you mess up your console - getty entries you can make your system unusable! However, if you are - a distribution maker, this is the right thing to do (see the note for - integrators near the end of this file). - - The easier way is to link or copy l/linux to c/console under your terminfo - directory. Note: this will go away next time you do `make install.data' - and you'll have to redo it. There is no need to have entries for all - possible screen sizes, ncurses will figure out the size automatically. - SUMMARY OF CONFIGURE OPTIONS: ---------------------------- @@ -290,14 +321,32 @@ SUMMARY OF CONFIGURE OPTIONS: Compile without hashmap scrolling-optimization code. This algorithm is the default. + --disable-home-terminfo + The $HOME/.terminfo directory is normally added to ncurses' search + list for reading/writing terminfo entries, since that directory is + more likely writable than the system terminfo database. Use this + option to disable the feature altogether. + + --disable-largefile + Disable compiler flags needed to use large-file interfaces. + --disable-leaks For testing, compile-in code that frees memory that normally would not be freed, to simplify analysis of memory-leaks. + --disable-lp64 + The header files will ignore use of the _LP64 symbol to make chtype + and mmask_t types 32 bits (they may be long on 64-bit hosts, for + compatibility with older releases). + + NOTE: this is potentially an ABI change, depending on existing + packages. The default for this option is "disabled" for ncurses + ABI 5, and "enabled" for ABI 6. + --disable-macros For testing, use functions rather than macros. The program will run - more slowly, but it is simpler to debug. This makes a header file - "nomacros.h". See also the --enable-expanded option. + more slowly, but it is simpler to debug. This defines NCURSES_NOMACROS + at build time. See also the --enable-expanded option. --disable-overwrite If you are installing ncurses on a system which contains another @@ -319,9 +368,10 @@ SUMMARY OF CONFIGURE OPTIONS: Compile without scroll-hints code. This option is ignored when hashmap scrolling is configured, which is the default. - --enable-add-ons=DIR... - This is used to check if this package is a glibc add-on. This is used - only by the glibc makefiles. + --disable-tparm-varargs + Portable programs should call tparm() using the fixed-length parameter + list documented in X/Open. ncurses provides varargs support for this + function. Use --disable-tparm-varargs to disable this support. --enable-assertions For testing, compile-in assertion code. This is used only for a few @@ -379,16 +429,41 @@ SUMMARY OF CONFIGURE OPTIONS: For testing, generate functions for certain macros to make them visible as such to the debugger. See also the --disable-macros option. + --enable-ext-colors + Extend the cchar_t structure to allow more than 16 colors to be + encoded. This applies only to the wide-character (--enable-widec) + configuration. + + NOTE: using this option will make libraries which are not binary- + compatible with libncursesw 5.4. None of the interfaces change, but + applications which have an array of cchar_t's must be recompiled. + + --enable-ext-mouse + Modify the encoding of mouse state to make room for a 5th mouse button. + That allows one to use ncurses with a wheel mouse with xterm or + similar X terminal emulators. + + NOTE: using this option will make libraries which are not binary- + compatible with libncursesw 5.4. None of the interfaces change, but + applications which have mouse mask mmask_t's must be recompiled. + --enable-getcap Use the 4.4BSD getcap code if available, or a bundled version of it to fetch termcap entries. Entries read in this way cannot use (make cross-references to) the terminfo tree, but it is faster than reading /etc/termcap. + If configured for one of the *BSD systems, this automatically uses + the hashed database system produced using cap_mkdb or similar tools. + In that case, there is no advantage in using the --enable-getcap-cache + option. + + See also the --with-hashed-db option. + --enable-getcap-cache Cache translated termcaps under the directory $HOME/.terminfo - NOTE: this sounds good - it makes ncurses run faster the second time. + NOTE: this sounds good - it makes ncurses run faster the second time. But look where the data comes from - an /etc/termcap containing lots of entries that are not up to date. If you configure with this option and forget to install the terminfo database before running an ncurses @@ -408,9 +483,17 @@ SUMMARY OF CONFIGURE OPTIONS: extended functions. --enable-rpath - Use rpath option when generating shared libraries, and with some - restrictions when linking the corresponding programs. This applies - mainly to systems using the GNU linker (read the manpage). + Use rpath option when generating shared libraries, and (with some + restrictions) when linking the corresponding programs. This originally + (in 1997) applied mainly to systems using the GNU linker (read the + manpage). + + More recently it is useful for systems that require special treatment + shared libraries in "unusual" locations. The "system" libraries reside + in directories which are on the loader's default search-path. While + you may be able to use workarounds such as the $LD_LIBRARY_PATH + environment variable, they do not work with setuid applications since + the LD_LIBRARY_PATH variable would be unset in that situation. --enable-safe-sprintf Compile with experimental safe-sprintf code. You may consider using @@ -424,6 +507,13 @@ SUMMARY OF CONFIGURE OPTIONS: changes. This option is the default, unless you have disabled the extended functions. + --enable-signed-char + The term.h header declares a Booleans[] array typed "char". But it + stores signed values there and "char" is not necessarily signed. + Some packagers choose to alter the type of Booleans[] though this + is not strictly compatible. This option allows one to implement this + alteration without patching the source code. + --enable-symlinks If your system supports symbolic links, make tic use symbolic links rather than hard links to save diskspace when writing aliases in the @@ -443,24 +533,37 @@ SUMMARY OF CONFIGURE OPTIONS: --enable-warnings Turn on GCC compiler warnings. There should be only a few. + --enable-wgetch-events + Compile with experimental wgetch-events code. See ncurses/README.IZ + --enable-widec - Compile with experimental wide-character code. This makes a different - version of the libraries (e.g., libncursesw.so), which stores - characters in 16-bits. We provide a simple UTF-8 driver and test - program to use this feature with terminals that can display UTF-8. + Compile with wide-character code. This makes a different version of + the libraries (e.g., libncursesw.so), which stores characters as + wide-characters, NOTE: applications compiled with this configuration are not compatible with those built for 8-bit characters. You cannot simply make a symbolic link to equate libncurses.so with libncursesw.so + NOTE: the Ada95 binding may be built against either version of the the + ncurses library, but you must decide which: the binding installs the + same set of files for either version. Currently (2002/6/22) it does + not use the extended features from the wide-character code, so it is + probably better to not install the binding for that configuration. + --enable-xmc-glitch Compile-in support experimental xmc (magic cookie) code. + --with-abi-version=NUM + Override the ABI version, which is used in shared library filenames. + Normally this is the same as the release version; some ports have + special requirements for compatibility. + --with-ada-compiler=CMD Specify the Ada95 compiler command (default "gnatmake") --with-ada-include=DIR - Tell where to install the Ada includes (default: + Tell where to install the Ada includes (default: PREFIX/lib/ada/adainclude) --with-ada-objects=DIR @@ -474,7 +577,7 @@ SUMMARY OF CONFIGURE OPTIONS: --with-build-cc=XXX If cross-compiling, specify a host C compiler, which is needed to - compile a few utilties which generate source modules for ncurses. + compile a few utilities which generate source modules for ncurses. If you do not give this option, the configure script checks if the $BUILD_CC variable is set, and otherwise defaults to gcc or cc. @@ -483,6 +586,11 @@ SUMMARY OF CONFIGURE OPTIONS: to do this if the target compiler has unusual flags which confuse the host compiler. + --with-build-cppflags=XXX + If cross-compiling, specify the host C preprocessor-flags. You might + need to do this if the target compiler has unusual flags which confuse + the host compiler. + --with-build-ldflags=XXX If cross-compiling, specify the host linker-flags. You might need to do this if the target linker has unusual flags which confuse the host @@ -501,6 +609,13 @@ SUMMARY OF CONFIGURE OPTIONS: to use a terminfo database which is compatible with the native applications. + --with-chtype=TYPE + Override type of chtype, which stores the video attributes and (if + --enable-widec is not given) a character. Prior to ncurses 5.5, this + was always unsigned long, but with ncurses 5.5, it may be unsigned. + Use this option if you need to preserve compatibility with 64-bit + executables. + --with-database=XXX Specify the terminfo source file to install. Usually you will wish to install ncurses' default (misc/terminfo.src). Certain systems @@ -509,6 +624,7 @@ SUMMARY OF CONFIGURE OPTIONS: --with-dbmalloc For testing, compile and link with Conor Cahill's dbmalloc library. + This also sets the --disable-leaks option. --with-debug Generate debug-libraries (default). These are named by adding "_g" @@ -518,12 +634,9 @@ SUMMARY OF CONFIGURE OPTIONS: Specify the default terminfo database directory. This is normally DATADIR/terminfo, e.g., /usr/share/terminfo. - --with-develop - Enable experimental/development options. This does not count those - that change the interface, such as --enable-widec. - --with-dmalloc For testing, compile and link with Gray Watson's dmalloc library. + This also sets the --disable-leaks option. --with-fallbacks=XXX Specify a list of fallback terminal descriptions which will be @@ -531,19 +644,75 @@ SUMMARY OF CONFIGURE OPTIONS: --with-gpm use Alessandro Rubini's GPM library to provide mouse support on the - Linux console. + Linux console. Prior to ncurses 5.5, this introduced a dependency on + the GPM library. + + Currently ncurses uses the dlsym() function to bind to the library at + runtime, so it is only necessary that the library be present when + ncurses is built, to obtain the filename (or soname) used in the + corresponding dlopen() call. If you give a value for this option, + e.g., + + --with-gpm=$HOME/tmp/test-gpm.so + + that overrides the configure check for the soname. + + See also --without-dlsym + + --with-hashed-db + Use a hashed database for storing terminfo data rather than storing + each compiled entry in a separate binary file within a directory + tree. + + If you use this option for configuring ncurses, tic will only be able + to write entries in the hashed database. infocmp can still read + entries from a directory tree as well as reading entries from the + hashed database. To do this, infocmp determines whether the $TERMINFO + variable points to a directory or a file, and reads the directory-tree + or hashed database respectively. + + You cannot have a directory containing both hashed-database and + filesystem-based terminfo entries. + + See also the --enable-getcap option. --with-install-prefix=XXX Allows you to specify an alternate location for installing ncurses after building it. The value you specify is prepended to the "real" - install location. This simplifies making binary packages. + install location. This simplifies making binary packages. The + makefile variable DESTDIR is set by this option. It is also possible + to use + make install DESTDIR=XXX + since the makefiles pass that variable to subordinate makes. NOTE: a few systems build shared libraries with fixed pathnames; this option probably will not work for those configurations. - --with-libtool - Generate libraries with libtool. If this option is selected, then - it overrides all other library model specifications. + --with-libtool[=XXX] + Generate libraries with libtool. If this option is selected, then it + overrides all other library model specifications. Note that libtool + must already be installed, uses makefile rules dependent on GNU make, + and does not promise to follow the version numbering convention of + other shared libraries on your system. However, if the --with-shared + option does not succeed, you may get better results with this option. + + If a parameter value is given, it must be the full pathname of the + particular version of libtool, e.g., + /usr/bin/libtool-1.2.3 + + It is possible to rebuild the configure script to use the automake + macros for libtool, e.g., AC_PROG_LIBTOOL. See the comments in + aclocal.m4 for CF_PROG_LIBTOOL, and ensure that you build configure + using the appropriate patch for autoconf from + http://invisible-island.net/autoconf/ + + --with-manpage-aliases + Tell the configure script you wish to create entries in the + man-directory for aliases to manpages which list them, e.g., the + functions in the panel manpage. This is the default. You can disable + it if your man program does this. You can also disable + --with-manpage-symlinks to install files containing a ".so" command + rather than symbolic links. --with-manpage-format=XXX Tell the configure script how you would like to install man-pages. The @@ -569,11 +738,17 @@ SUMMARY OF CONFIGURE OPTIONS: by running them through tbl to generate tables understandable by nroff. + --with-mmask-t=TYPE + Override type of mmask_t, which stores the mouse mask. Prior to + ncurses 5.5, this was always unsigned long, but with ncurses 5.5, it + may be unsigned. Use this option if you need to preserve compatibility + with 64-bit executables. + --with-ospeed=TYPE Override type of ospeed variable, which is part of the termcap compatibility interface. In termcap, this is a 'short', which works for a wide range of baudrates because ospeed is not the actual speed - but the encoded value, e.g., B9600 would be a small number such as 13. + but the encoded value, e.g., B9600 would be a small number such as 13. However the encoding scheme originally allowed for values "only" up to 38400bd. A newer set of definitions past 38400bd is not encoded as compactly, and is not guaranteed to fit into a short (see the function @@ -585,6 +760,11 @@ SUMMARY OF CONFIGURE OPTIONS: --with-normal Generate normal (i.e., static) libraries (default). + Note: on Linux, the configure script will attempt to use the GPM + library via the dlsym() function call. Use --without-dlsym to disable + this feature, or --without-gpm, depending on whether you wish to use + GPM. + --with-profile Generate profile-libraries These are named by adding "_p" to the root, e.g., libncurses_p.a @@ -592,20 +772,39 @@ SUMMARY OF CONFIGURE OPTIONS: --with-rcs-ids Compile-in RCS identifiers. Most of the C files have an identifier. + --with-rel-version=NUM + Override the release version, which may be used in shared library + filenames. This consists of a major and minor version number separated + by ".". Normally the major version number is the same as the ABI + version; some ports have special requirements for compatibility. + --with-shared Generate shared-libraries. The names given depend on the system for which you are building, typically using a ".so" suffix, along with symbolic links that refer to the release version. - + NOTE: Unless you override the configure script by setting the $CFLAGS environment variable, these will not be built with the -g debugging option. + NOTE: For some configurations, e.g., installing a new version of + ncurses shared libraries on a machine which already has ncurses + shared libraries, you may encounter problems with the linker. + For example, it may prevent you from running the build tree's + copy of tic (for installing the terminfo database) because it + loads the system's copy of the ncurses shared libraries. In that + case, using the misc/shlib script may be helpful, since it sets + $LD_LIBRARY_PATH to point to the build tree, e.g., + ./misc/shlib make install + --with-shlib-version=XXX Specify whether to use the release or ABI version for shared libraries. This is normally chosen automatically based on the type of system which you are building on. We use it for testing the configure script. + --with-sysmouse + use FreeBSD sysmouse interface provide mouse support on the console. + --with-system-type=XXX For testing, override the derived host system-type which is used to decide things such as the linker commands used to build shared @@ -617,16 +816,31 @@ SUMMARY OF CONFIGURE OPTIONS: Specify a search-list of terminfo directories which will be compiled into the ncurses library (default: DATADIR/terminfo) - --with-termlib + --with-termlib[=XXX] When building the ncurses library, organize this as two parts: the curses library (libncurses) and the low-level terminfo library (libtinfo). This is done to accommodate applications that use only the latter. The terminfo library is about half the size of the total. + If an option value is given, that overrides the name of the terminfo + library. For instance, if the wide-character version is built, the + terminfo library would be named libtinfow. But the libtinfow interface + is upward compatible from libtinfo, so it would be possible to overlay + libtinfo.so with a "wide" version of libtinfow.so by renaming it with + this option. + --with-termpath=XXX Specify a search-list of termcap files which will be compiled into the ncurses library (default: /etc/termcap:/usr/share/misc/termcap) + --with-trace + Configure the trace() function as part of the all models of the ncurses + library. Normally it is part of the debug (libncurses_g) library only. + + --with-valgrind + For testing, compile with debug option. + This also sets the --disable-leaks option. + --without-ada Suppress the configure script's check for Ada95, do not build the Ada95 binding and related demo. @@ -649,11 +863,23 @@ SUMMARY OF CONFIGURE OPTIONS: Suppress the configure script's check for C++, do not build the C++ binding and related demo. + --without-develop + Disable development options. This does not include those that change + the interface, such as --enable-widec. + + --without-dlsym + Do not use dlsym() to load GPM dynamically. + --without-progs Tell the configure script to suppress the build of ncurses' application programs (e.g., tic). The test applications will still be built if you type "make", though not if you simply do "make install". + --without-xterm-new + Tell the configure script to use "xterm-old" for the entry used in + the terminfo database. This will work with variations such as + X11R5 and X11R6 xterm. + COMPATIBILITY WITH OLDER VERSIONS OF NCURSES: -------------------------------------------- @@ -670,6 +896,218 @@ COMPATIBILITY WITH OLDER VERSIONS OF NCURSES: you may encounter when building a system with different versions of ncurses: + 5.6 (December 17, 2006) + Interface changes: + + + generate linkable stubs for some macros: + + getbegx, getbegy, getcurx, getcury, getmaxx, getmaxy, getparx, + getpary, getpary, + + and (for libncursesw) + + wgetbkgrnd + + Added extensions: + nofilter() + use_legacy_coding() + + Added internal functions: + _nc_first_db + _nc_get_source + _nc_handle_sigwinch + _nc_is_abs_path + _nc_is_dir_path + _nc_is_file_path + _nc_keep_tic_dir + _nc_keep_tic_dir + _nc_last_db + _nc_next_db + _nc_read_termtype + _nc_tic_dir + + Also (if using the hashed database configuration): + + _nc_db_close + _nc_db_first + _nc_db_get + _nc_db_have_data + _nc_db_have_index + _nc_db_next + _nc_db_open + _nc_db_put + + otherwise + + _nc_hashed_db + + Removed internal functions: + none + + Modified internal functions: + _nc_add_to_try + _nc_do_color + _nc_expand_try + _nc_remove_key + _nc_setupscreen + + 5.5 (October 10, 2005) + Interface changes: + + + terminfo installs "xterm-new" as "xterm" entry rather than + "xterm-old" (aka xterm-r6). + + + terminfo data is installed using the tic -x option (few systems + still use ncurses 4.2). + + + modify C++ binding to work with newer C++ compilers by providing + initializers and using modern casts. Old-style header names are + still used in this release to allow compiling with not-so-old + compilers. + + + form and menu libraries now work with wide-character data. + Applications which bypassed the form library and manipulated the + FIELD.buf data directly will not work properly with libformw, since + that no longer points to an array of char. The set_field_buffer() + and field_buffer() functions translate to/from the actual field + data. + + + change SP->_current_attr to a pointer, adjust ifdef's to ensure that + libtinfo.so and libtinfow.so have the same ABI. The reason for this + is that the corresponding data which belongs to the upper-level + ncurses library has a different size in each model. + + + winnstr() now returns multibyte character strings for the + wide-character configuration. + + + assume_default_colors() no longer requires that use_default_colors() + be called first. + + + data_ahead() now works with wide-characters. + + + slk_set() and slk_wset() now accept and store multibyte or + multicolumn characters. + + + start_color() now returns OK if colors have already been started. + start_color() also returns ERR if it cannot allocate memory. + + + pair_content() now returns -1 for consistency with init_pair() if it + corresponds to the default-color. + + + unctrl() now returns null if its parameter does not correspond + to an unsigned char. + + Added extensions: + Experimental mouse version 2 supports wheel mice with buttons + 4 and 5. This requires ABI 6 because it modifies the encoding + of mouse events. + + Experimental extended colors allows encoding of 256 foreground + and background colors, e.g., with the xterm-256color or + xterm-88color terminfo entries. This requires ABI 6 because + it changes the size of cchar_t. + + Added internal functions: + _nc_check_termtype2 + _nc_resolve_uses2 + _nc_retrace_cptr + _nc_retrace_cvoid_ptr + _nc_retrace_void_ptr + _nc_setup_term + + Removed internal functions: + none + + Modified internal functions: + _nc_insert_ch + _nc_save_str + _nc_trans_string + + 5.4 (February 8, 2004) + Interface changes: + + + add the remaining functions for X/Open curses wide-character support. + These are only available if the library is configured using the + --enable-widec option. + pecho_wchar() + slk_wset() + + + write getyx() and related 2-return macros in terms of getcury(), + getcurx(), etc. + + + simplify ifdef for bool declaration in curses.h + + + modify ifdef's in curses.h that disabled use of __attribute__() for + g++, since recent versions implement the cases which ncurses uses. + + + change some interfaces to use const: + define_key() + mvprintw() + mvwprintw() + printw() + vw_printw() + winsnstr() + wprintw() + + Added extensions: + key_defined() + + Added internal functions: + _nc_get_locale() + _nc_insert_ch() + _nc_is_charable() wide + _nc_locale_breaks_acs() + _nc_pathlast() + _nc_to_char() wide + _nc_to_widechar() wide + _nc_tparm_analyze() + _nc_trace_bufcat() debug + _nc_unicode_locale() + + Removed internal functions: + _nc_outstr() + _nc_sigaction() + + Modified internal functions: + _nc_remove_string() + _nc_retrace_chtype() + + 5.3 (October 12, 2002) + Interface changes: + + + change type for bool used in headers to NCURSES_BOOL, which usually + is the same as the compiler's definition for 'bool'. + + + add all but two functions for X/Open curses wide-character support. + These are only available if the library is configured using the + --enable-widec option. Missing functions are + pecho_wchar() + slk_wset() + + + add environment variable $NCURSES_ASSUMED_COLORS to modify the + assume_default_colors() extension. + + Added extensions: + is_term_resized() + resize_term() + + Added internal functions: + _nc_altcharset_name() debug + _nc_reset_colors() + _nc_retrace_bool() debug + _nc_retrace_unsigned() debug + _nc_rootname() + _nc_trace_ttymode() debug + _nc_varargs() debug + _nc_visbufn() debug + _nc_wgetch() + + Removed internal functions: + _nc_background() + + Modified internal functions: + _nc_freeall() debug + 5.2 (October 21, 2000) Interface changes: @@ -863,31 +1301,34 @@ COMPATIBILITY WITH OLDER VERSIONS OF NCURSES: IF YOU ARE A SYSTEM INTEGRATOR: ------------------------------ - Beginning with 1.9.9, the ncurses distribution includes both a tset - utility and /usr/share/tabset directory. If you are installing ncurses, - it is no longer either necessary or desirable to install tset-jv. - Configuration and Installation: - Configure with --prefix=/usr to make the install productions put - libraries and headers in the correct locations (overwriting any - previous curses libraries and headers). This will put the terminfo - hierarchy under /usr/share/terminfo; you may want to override this with - --datadir=/usr/share/misc; terminfo and tabset are installed under the - data directory. - - Please configure the ncurses library in a pure-terminfo mode; that - is, with the --disable-termcap option. This will make the ncurses - library smaller and faster. The ncurses library includes a termcap - emulation that queries the terminfo database, so even applications - that use raw termcap to query terminal characteristics will win - (providing you recompile and relink them!). - - If you must configure with termcap fallback enabled, you may also - wish to use the --enable-getcap option. This option speeds up - termcap-based startups, at the expense of not allowing personal - termcap entries to reference the terminfo tree. See the code in - ncurses/tinfo/read_termcap.c for details. + On platforms where ncurses is assumed to be installed in /usr/lib, + the configure script uses "/usr" as a default: + + Linux, FreeBSD, NetBSD, OpenBSD, Cygwin + + For other platforms, the default is "/usr/local". See the discussion + of the "--disable-overwrite" option. + + The location of the terminfo is set indirectly by the "--datadir" + configure option, e.g., /usr/share/terminfo, given a datadir of + /usr/share. You may want to override this if you are installing + ncurses libraries in nonstandard locations, but wish to share the + terminfo database. + + Normally the ncurses library is configured in a pure-terminfo mode; + that is, with the --disable-termcap option. This makes the ncurses + library smaller and faster. The ncurses library includes a termcap + emulation that queries the terminfo database, so even applications that + use raw termcap to query terminal characteristics will win (providing + you recompile and relink them!). + + If you must configure with termcap fallback enabled, you may also wish + to use the --enable-getcap option. This speeds up termcap-based + startups, at the expense of not allowing personal termcap entries to + reference the terminfo tree. See comments in + ncurses/tinfo/read_termcap.c for further details. Note that if you have $TERMCAP set, ncurses will use that value to locate termcap data. In particular, running from xterm will @@ -907,11 +1348,11 @@ IF YOU ARE A SYSTEM INTEGRATOR: Naming the Console Terminal - In various Linuxes (and possibly elsewhere) there has been a practice - of designating the system console driver type as `console'. Please - do not do this any more! It complicates peoples' lives, because it - can mean that several different terminfo entries from different - operating systems all logically want to be called `console'. + In various systems there has been a practice of designating the system + console driver type as `console'. Please do not do this! It + complicates peoples' lives, because it can mean that several different + terminfo entries from different operating systems all logically want to + be called `console'. Please pick a name unique to your console driver and set that up in the /etc/inittab table or local equivalent. Send the entry to the @@ -937,17 +1378,10 @@ RECENT XTERM VERSIONS: --------------------- The terminfo database file included with this distribution assumes you - are running an XFree86 xterm based on X11R6 (i.e., xterm-r6). The - earlier X11R5 entry (xterm-r5) is provided as well. - - If you are running XFree86 version 3.2 (actually 3.1.2F and up), you - should consider using the xterm-xf86-v32 (or later, the most recent - version is always named "xterm-xfree86") entry, which adds ANSI color - and the VT220 capabilities which have been added in XFree86. If you - are running a mixed network, however, where this terminal description - may be used on an older xterm, you may have problems, since - applications that assume these capabilities will produce incorrect - output on the older xterm (e.g., highlighting is not cleared). + are running a modern xterm based on XFree86 (i.e., xterm-new). The + earlier X11R6 entry (xterm-r6) and X11R5 entry (xterm-r5) is provided + as well. See the --without-xterm-new configure script option if you + are unable to update your system. CONFIGURING FALLBACK ENTRIES: @@ -956,7 +1390,8 @@ CONFIGURING FALLBACK ENTRIES: In order to support operation of ncurses programs before the terminfo tree is accessible (that is, in single-user mode or at OS installation time) the ncurses library can be compiled to include an array of - pre-fetched fallback entries. + pre-fetched fallback entries. This must be done on a machine which + has ncurses' infocmp and terminfo database installed. These entries are checked by setupterm() only when the conventional fetches from the terminfo tree and the termcap fallback (if configured) @@ -964,23 +1399,23 @@ CONFIGURING FALLBACK ENTRIES: shadow modifications to the on-disk entry for the same type, when that entry is accessible. - By default, there are no entries on the fallback list. After you - have built the ncurses suite for the first time, you can change - the list (the process needs infocmp(1)). To do so, use the script - MKfallback.sh. A configure script option --with-fallbacks does this - (it accepts a comma-separated list of the names you wish, and does - not require a rebuild). + By default, there are no entries on the fallback list. After you have + built the ncurses suite for the first time, you can change the list + (the process needs infocmp(1)). To do so, use the script + ncurses/tinfo/MKfallback.sh. A configure script option + --with-fallbacks does this (it accepts a comma-separated list of the + names you wish, and does not require a rebuild). If you wanted (say) to have linux, vt100, and xterm fallbacks, you would use the commands cd ncurses; - MKfallback.sh linux vt100 xterm >fallback.c + tinfo/MKfallback.sh linux vt100 xterm >fallback.c Then just rebuild and reinstall the library as you would normally. You can restore the default empty fallback list with - MKfallback.sh >fallback.c + tinfo/MKfallback.sh >fallback.c The overhead for an empty fallback list is one trivial stub function. Any non-empty fallback list is const-ed and therefore lives in sharable @@ -1060,45 +1495,37 @@ USING NCURSES WITH AFS: can't hard-link across them. The --enable-symlinks option copes with this by making tic use symbolic links. -USING NCURSES WITH EMACS: - GNU Emacs has its own termcap support. By default, it uses a mixture - of those functions and code linked from the host system's libraries. - You need to foil this and shut out the GNU termcap library entirely. - - In order to do this, hack the Linux config file (s/linux.h) to contain - a #define TERMINFO and set the symbol LIBS_TERMCAP to "-lncurses". - - We have submitted such a change for the 19.30 release, so it may - already be applied in your sources -- check for the #define TERMINFO. - USING NCURSES WITH GPM: - Ncurses 4.1 and up can be configured to use GPM (General Purpose Mouse) - which is used on Linux console. Be aware that GPM is commonly + Ncurses 4.1 and up can be configured to use GPM (General Purpose + Mouse) which is used on Linux console. Be aware that GPM is commonly installed as a shared library which contains a wrapper for the curses wgetch() function (libcurses.o). Some integrators have simplified - linking applications by combining all or part of libcurses.so (the BSD - curses) into the libgpm.so file, producing symbol conflicts with - ncurses (specifically the wgetch function). You may be able to work - around this problem by linking as follows: + linking applications by combining all or part of libcurses.so into the + libgpm.so file, producing symbol conflicts with ncurses (specifically + the wgetch function). This was originally the BSD curses, but + generally whatever curses library exists on the system. + + You may be able to work around this problem by linking as follows: cc -o foo foo.o -lncurses -lgpm -lncurses but the linker may not cooperate, producing mysterious errors. - A patched version of gpm is available: - - dickey.his.com:/ncurses/gpm-1.10-970125.tar.gz + See the FAQ, as well as the discussion under the --with-gpm option: - This patch is incorporated in gpm 1.12; however some integrators - are slow to update this library. Current distributions of gpm can - be configured properly using the --without-curses option. + http://invisible-island.net/ncurses/ncurses.faq.html#using_gpm_lib BUILDING NCURSES WITH A CROSS-COMPILER Ncurses can be built with a cross-compiler. Some parts must be built with the host's compiler since they are used for building programs (e.g., ncurses/make_hash and ncurses/make_keys) that generate tables - that are compiled into the ncurses library. You should set the - BUILD_CC environment variable to your host's compiler, and run the - configure script configuring for the cross-compiler. + that are compiled into the ncurses library. The essential thing to do + is set the BUILD_CC environment variable to your host's compiler, and + run the configure script configuring for the cross-compiler. + + The configure options --with-build-cc, etc., are provided to make this + simpler. Since make_hash and make_keys use only ANSI C features, it + is normally not necessary to provide the other options such as + --with-build-libs, but they are provided for completeness. Note that all of the generated source-files which are part of ncurses will be made if you use @@ -1109,6 +1536,12 @@ BUILDING NCURSES WITH A CROSS-COMPILER support for the tools used to generate the sources, e.g., sed, awk and Bourne-shell. + When ncurses has been successfully cross-compiled, you may want to use + "make install" (with a suitable target directory) to construct an + install tree. Note that in this case (as with the --with-fallbacks + option), ncurses uses the development platform's tic to do the + "make install.data" portion. + BUGS: Send any feedback to the ncurses mailing list at bug-ncurses@gnu.org. To subscribe send mail to @@ -1117,3 +1550,5 @@ BUGS: The Hacker's Guide in the doc directory includes some guidelines on how to report bugs in ways that will get them fixed most quickly. + +-- vile:txtmode diff --git a/contrib/ncurses/MANIFEST b/contrib/ncurses/MANIFEST index 4559e55..97faa38 100644 --- a/contrib/ncurses/MANIFEST +++ b/contrib/ncurses/MANIFEST @@ -1,4 +1,5 @@ ./ANNOUNCE +./AUTHORS ./Ada95/Makefile.in ./Ada95/README ./Ada95/TODO @@ -166,13 +167,11 @@ ./Ada95/src/terminal_interface.ads ./INSTALL ./MANIFEST -./Makefile.glibc ./Makefile.in ./Makefile.os2 ./NEWS ./README ./README.emx -./README.glibc ./TO-DO ./aclocal.m4 ./announce.html.in @@ -208,6 +207,7 @@ ./dist.mk ./doc/hackguide.doc ./doc/html/Ada95.html +./doc/html/NCURSES-Programming-HOWTO.html ./doc/html/ada/files.htm ./doc/html/ada/files/T.htm ./doc/html/ada/funcs.htm @@ -392,10 +392,13 @@ ./doc/html/man/form_requestname.3x.html ./doc/html/man/form_userptr.3x.html ./doc/html/man/form_win.3x.html +./doc/html/man/index.html ./doc/html/man/infocmp.1m.html ./doc/html/man/infotocap.1m.html +./doc/html/man/key_defined.3x.html ./doc/html/man/keybound.3x.html ./doc/html/man/keyok.3x.html +./doc/html/man/legacy_coding.3x.html ./doc/html/man/menu.3x.html ./doc/html/man/menu_attributes.3x.html ./doc/html/man/menu_cursor.3x.html @@ -434,6 +437,7 @@ ./doc/ncurses-intro.doc ./form/Makefile.in ./form/READ.ME +./form/f_trace.c ./form/fld_arg.c ./form/fld_attr.c ./form/fld_current.c @@ -477,9 +481,11 @@ ./form/fty_regex.c ./form/headers ./form/llib-lform +./form/llib-lformw ./form/modules ./include/Caps ./include/Caps.aix4 +./include/Caps.hpux11 ./include/Caps.keys ./include/Caps.osf1r5 ./include/Caps.uwin @@ -494,9 +500,11 @@ ./include/curses.tail ./include/curses.wide ./include/edit_cfg.sh +./include/hashed_db.h ./include/headers ./include/nc_alloc.h ./include/nc_panel.h +./include/nc_tparm.h ./include/ncurses_cfg.hin ./include/ncurses_defs ./include/ncurses_dll.h @@ -591,8 +599,10 @@ ./man/form_win.3x ./man/infocmp.1m ./man/infotocap.1m +./man/key_defined.3x ./man/keybound.3x ./man/keyok.3x +./man/legacy_coding.3x ./man/make_sed.sh ./man/man_db.renames ./man/manlinks.sed @@ -636,6 +646,7 @@ ./menu/eti.h ./menu/headers ./menu/llib-lmenu +./menu/llib-lmenuw ./menu/m_attribs.c ./menu/m_cursor.c ./menu/m_driver.c @@ -660,6 +671,7 @@ ./menu/m_scale.c ./menu/m_spacing.c ./menu/m_sub.c +./menu/m_trace.c ./menu/m_userptr.c ./menu/m_win.c ./menu/menu.h @@ -670,14 +682,18 @@ ./misc/chkdef.cmd ./misc/cleantic.cmd ./misc/cmpdef.cmd +./misc/csort ./misc/emx.src ./misc/form.def ./misc/form.ref -./misc/indent.pro +./misc/gen_edit.sh +./misc/jpf-indent ./misc/makedef.cmd ./misc/makellib ./misc/menu.def ./misc/menu.ref +./misc/ncu-indent +./misc/ncurses-config.in ./misc/ncurses.def ./misc/ncurses.ref ./misc/panel.def @@ -696,14 +712,17 @@ ./mkinstalldirs ./ncurses/Makefile.in ./ncurses/README +./ncurses/README.IZ ./ncurses/SigAction.h ./ncurses/base/MKkeyname.awk ./ncurses/base/MKlib_gen.sh ./ncurses/base/MKunctrl.awk ./ncurses/base/README ./ncurses/base/define_key.c +./ncurses/base/key_defined.c ./ncurses/base/keybound.c ./ncurses/base/keyok.c +./ncurses/base/legacy_coding.c ./ncurses/base/lib_addch.c ./ncurses/base/lib_addstr.c ./ncurses/base/lib_beep.c @@ -732,7 +751,7 @@ ./ncurses/base/lib_initscr.c ./ncurses/base/lib_insch.c ./ncurses/base/lib_insdel.c -./ncurses/base/lib_insstr.c +./ncurses/base/lib_insnstr.c ./ncurses/base/lib_instr.c ./ncurses/base/lib_isendwin.c ./ncurses/base/lib_leaveok.c @@ -803,9 +822,11 @@ ./ncurses/tinfo/comp_hash.c ./ncurses/tinfo/comp_parse.c ./ncurses/tinfo/comp_scan.c +./ncurses/tinfo/db_iterator.c ./ncurses/tinfo/doalloc.c ./ncurses/tinfo/free_ttype.c ./ncurses/tinfo/getenv_num.c +./ncurses/tinfo/hashed_db.c ./ncurses/tinfo/home_terminfo.c ./ncurses/tinfo/init_keytry.c ./ncurses/tinfo/lib_acs.c @@ -834,6 +855,7 @@ ./ncurses/tinfo/read_termcap.c ./ncurses/tinfo/setbuf.c ./ncurses/tinfo/strings.c +./ncurses/tinfo/trim_sgr0.c ./ncurses/tinfo/write_entry.c ./ncurses/trace/README ./ncurses/trace/lib_trace.c @@ -857,6 +879,8 @@ ./ncurses/tty/tty_display.h ./ncurses/tty/tty_input.h ./ncurses/tty/tty_update.c +./ncurses/widechar/charable.c +./ncurses/widechar/lib_add_wch.c ./ncurses/widechar/lib_box_set.c ./ncurses/widechar/lib_cchar.c ./ncurses/widechar/lib_erasewchar.c @@ -865,9 +889,10 @@ ./ncurses/widechar/lib_hline_set.c ./ncurses/widechar/lib_in_wch.c ./ncurses/widechar/lib_in_wchnstr.c -./ncurses/widechar/lib_ins_nwstr.c ./ncurses/widechar/lib_ins_wch.c ./ncurses/widechar/lib_inwstr.c +./ncurses/widechar/lib_pecho_wchar.c +./ncurses/widechar/lib_slk_wset.c ./ncurses/widechar/lib_unget_wch.c ./ncurses/widechar/lib_vid_attr.c ./ncurses/widechar/lib_vline_set.c @@ -876,6 +901,7 @@ ./panel/Makefile.in ./panel/headers ./panel/llib-lpanel +./panel/llib-lpanelw ./panel/modules ./panel/p_above.c ./panel/p_below.c @@ -908,12 +934,6 @@ ./progs/toe.c ./progs/tput.c ./progs/tset.c -./sysdeps/unix/sysv/linux/Makefile -./sysdeps/unix/sysv/linux/alpha/configure -./sysdeps/unix/sysv/linux/configure -./sysdeps/unix/sysv/linux/edit_man.sed -./sysdeps/unix/sysv/linux/edit_man.sh -./sysdeps/unix/sysv/linux/run_tic.sh ./tack/COPYING ./tack/HISTORY ./tack/Makefile.in @@ -940,31 +960,56 @@ ./tar-copy.sh ./test/Makefile.in ./test/README +./test/aclocal.m4 +./test/background.c ./test/blue.c ./test/bs.6 ./test/bs.c +./test/bulgarian-utf8.txt ./test/cardfile.c ./test/cardfile.dat +./test/chgat.c +./test/color_set.c ./test/configure ./test/configure.in +./test/demo_altkeys.c +./test/demo_defkey.c +./test/demo_forms.c +./test/demo_keyok.c +./test/demo_menus.c +./test/demo_panels.c +./test/demo_termcap.c ./test/ditto.c ./test/dots.c +./test/echochar.c +./test/edit_field.c +./test/edit_field.h ./test/filter.c ./test/firework.c ./test/firstlast.c +./test/foldkeys.c ./test/gdc.6 ./test/gdc.c ./test/hanoi.c ./test/hashtest.c +./test/ins_wide.c +./test/inserts.c ./test/keynames.c ./test/knight.c +./test/linux-color.dat +./test/listused.sh ./test/lrtest.c +./test/mk-test.awk ./test/modules +./test/movewindow.c ./test/ncurses.c ./test/ncurses_tst.hin ./test/newdemo.c +./test/programs ./test/railroad.c ./test/rain.c +./test/redraw.c +./test/savescreen.c ./test/tclock.c ./test/test.priv.h ./test/testaddch.c @@ -972,5 +1017,8 @@ ./test/testscanw.c ./test/tracemunch ./test/view.c +./test/widechars-utf8.txt ./test/worm.c ./test/xmas.c +./test/xterm-16color.dat +./test/xterm-88color.dat diff --git a/contrib/ncurses/Makefile.in b/contrib/ncurses/Makefile.in index 7a30d32..cb8cd42 100644 --- a/contrib/ncurses/Makefile.in +++ b/contrib/ncurses/Makefile.in @@ -1,6 +1,6 @@ -# $Id: Makefile.in,v 1.22 2001/10/27 18:17:22 tom Exp $ +# $Id: Makefile.in,v 1.24 2005/01/29 19:30:06 tom Exp $ ############################################################################## -# Copyright (c) 1998 Free Software Foundation, Inc. # +# Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. # # # # Permission is hereby granted, free of charge, to any person obtaining a # # copy of this software and associated documentation files (the "Software"), # @@ -65,6 +65,9 @@ preinstall : @ echo '' @ echo '** Configuration summary for NCURSES $(NCURSES_MAJOR).$(NCURSES_MINOR) $(NCURSES_PATCH):' @ echo '' + @ echo ' extended funcs: '`test @NCURSES_EXT_FUNCS@ != 0 && echo yes || echo no` + @ echo ' xterm terminfo: '@WHICH_XTERM@ + @ echo '' @ echo ' bin directory: '$(bindir) @ echo ' lib directory: '$(libdir) @ echo ' include directory: '$(includedir) @@ -89,5 +92,6 @@ mostlyclean \ realclean \ depend \ sources \ +tags \ uninstall \ install :: diff --git a/contrib/ncurses/Makefile.os2 b/contrib/ncurses/Makefile.os2 index 167ff65..1244455 100644 --- a/contrib/ncurses/Makefile.os2 +++ b/contrib/ncurses/Makefile.os2 @@ -1,8 +1,33 @@ +############################################################################## +# Copyright (c) 1998-2000,2006 Free Software Foundation, Inc. # +# # +# Permission is hereby granted, free of charge, to any person obtaining a # +# copy of this software and associated documentation files (the "Software"), # +# to deal in the Software without restriction, including without limitation # +# the rights to use, copy, modify, merge, publish, distribute, distribute # +# with modifications, sublicense, and/or sell copies of the Software, and to # +# permit persons to whom the Software is furnished to do so, subject to the # +# following conditions: # +# # +# The above copyright notice and this permission notice shall be included in # +# all copies or substantial portions of the Software. # +# # +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL # +# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # +# DEALINGS IN THE SOFTWARE. # +# # +# Except as contained in this notice, the name(s) of the above copyright # +# holders shall not be used in advertising or otherwise to promote the sale, # +# use or other dealings in this Software without prior written # +# authorization. # ################################################################################ -# Wrapper Makefile for ncurses library under OS/2. -################################################################################ -# $Id: Makefile.os2,v 1.10 2000/10/09 23:53:57 Ilya.Zakharevich Exp $ +# $Id: Makefile.os2,v 1.11 2006/04/22 21:46:17 tom Exp $ # +# Wrapper Makefile for ncurses library under OS/2. # Author: Juan Jose Garcia Ripoll . # Webpage: http://www.arrakis.es/~worm/ ################################################################################ diff --git a/contrib/ncurses/NEWS b/contrib/ncurses/NEWS index 9619348..6286091 100644 --- a/contrib/ncurses/NEWS +++ b/contrib/ncurses/NEWS @@ -1,10 +1,2405 @@ --- $Id: NEWS,v 1.690 2002/06/16 00:31:21 tom Exp $ +------------------------------------------------------------------------------- +-- Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. -- +-- -- +-- Permission is hereby granted, free of charge, to any person obtaining a -- +-- copy of this software and associated documentation files (the -- +-- "Software"), to deal in the Software without restriction, including -- +-- without limitation the rights to use, copy, modify, merge, publish, -- +-- distribute, distribute with modifications, sublicense, and/or sell copies -- +-- of the Software, and to permit persons to whom the Software is furnished -- +-- to do so, subject to the following conditions: -- +-- -- +-- The above copyright notice and this permission notice shall be included -- +-- in all copies or substantial portions of the Software. -- +-- -- +-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -- +-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -- +-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -- +-- NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -- +-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -- +-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -- +-- USE OR OTHER DEALINGS IN THE SOFTWARE. -- +-- -- +-- Except as contained in this notice, the name(s) of the above copyright -- +-- holders shall not be used in advertising or otherwise to promote the -- +-- sale, use or other dealings in this Software without prior written -- +-- authorization. -- +------------------------------------------------------------------------------- +-- $Id: NEWS,v 1.1056 2006/12/17 20:36:26 tom Exp $ +------------------------------------------------------------------------------- This is a log of changes that ncurses has gone through since Zeyd started working with Pavel Curtis' original work, pcurses, in 1992. -Changes through 1.9.9e are recorded by Zeyd M. Ben-Halim. -Changes since 1.9.9e are recorded by Thomas Dickey. +Changes through 1.9.9e are recorded by Zeyd M Ben-Halim. +Changes since 1.9.9e are recorded by Thomas E Dickey. + +Contributors include those who have provided patches (even small ones), as well +as those who provide useful information (bug reports, analyses). Changes with +no cited author are the work of Thomas E Dickey (TD). + +A few contributors are given in this file by their initials. +They each account for one percent or more of the changes since 1.9.9e. +See the AUTHORS file for the corresponding full names. + +Changes through 1.9.9e did not credit all contributions; +it is not possible to add this information. + +20061217 5.6 release for upload to ftp.gnu.org + +20061217 + + add ifdef's for for HPUX, which has the corresponding + definitions in . + + revert the va_copy() change from 20061202, since it was neither + correct nor portable. + + add $(LOCAL_LIBS) definition to progs/Makefile.in, needed for + rpath on Solaris. + + ignore wide-acs line-drawing characters that wcwidth() claims are + not one-column. This is a workaround for Solaris' broken locale + support. + +20061216 + + modify configure --with-gpm option to allow it to accept a parameter, + i.e., the name of the dynamic GPM library to load via dlopen() + (requested by Bryan Henderson). + + add configure option --with-valgrind (from vile). + + modify configure script AC_TRY_RUN and AC_TRY_LINK checks to use + 'return' in preference to 'exit()'. + +20061209 + + change default for --with-develop back to "no". + + add XTABS to tracing of TTY bits. + + updated autoconf patch to ifdef-out the misfeature which declares + exit() for configure tests. This fixes a redefinition warning on + Solaris. + + use ${CC} rather than ${LD} in shared library rules for IRIX64, + Solaris to help ensure that initialization sections are provided for + extra linkage requirements, e.g., of C++ applications (prompted by + comment by Casper Dik in newsgroup). + + rename "$target" in CF_MAN_PAGES to make it easier to distinguish + from the autoconf predefined symbol. There was no conflict, + since "$target" was used only in the generated edit_man.sh file, + but SuSE's rpm package contains a patch. + +20061202 + + update man/term.5 to reflect extended terminfo support and hashed + database configuration. + + updates for test/configure script. + + adapted from SuSE rpm package: + + remove long-obsolete workaround for broken-linker which declared + cur_term in tic.c + + improve error recovery in PUTC() macro when wcrtomb() does not + return usable results for an 8-bit character. + + patches from rpm package (SuSE): + + use va_copy() in extra varargs manipulation for tracing version + of printw, etc. + + use a va_list rather than a null in _nc_freeall()'s call to + _nc_printf_string(). + + add some see-also references in manpages to show related + wide-character functions (suggested by Claus Fischer). + +20061125 + + add a check in lib_color.c to ensure caller does not increase COLORS + above max_colors, which is used as an array index (discussion with + Simon Sasburg). + + add ifdef's allowing ncurses to be built with tparm() using either + varargs (the existing status), or using a fixed-parameter list (to + match X/Open). + +20061104 + + fix redrawing of windows other than stdscr using wredrawln() by + touching the corresponding rows in curscr (discussion with Dan + Gookin). + + add test/redraw.c + + add test/echochar.c + + review/cleanup manpage descriptions of error-returns for form- and + menu-libraries (prompted by FreeBSD docs/46196). + +20061028 + + add AUTHORS file -TD + + omit the -D options from output of the new config script --cflags + option (suggested by Ralf S Engelschall). + + make NCURSES_INLINE unconditionally defined in curses.h + +20061021 + + revert change to accommodate bash 3.2, since that breaks other + platforms, e.g., Solaris. + + minor fixes to NEWS file to simplify scripting to obtain list of + contributors. + + improve some shared-library configure scripting for Linux, FreeBSD + and NetBSD to make "--with-shlib-version" work. + + change configure-script rules for FreeBSD shared libraries to allow + for rpath support in versions past 3. + + use $(DESTDIR) in makefile rules for installing/uninstalling the + package config script (reports/patches by Christian Wiese, + Ralf S Engelschall). + + fix a warning in the configure script for NetBSD 2.0, working around + spurious blanks embedded in its ${MAKEFLAGS} symbol. + + change test/Makefile to simplify installing test programs in a + different directory when --enable-rpath is used. + +20061014 + + work around bug in bash 3.2 by adding extra quotes (Jim Gifford). + + add/install a package config script, e.g., "ncurses5-config" or + "ncursesw5-config", according to configuration options. + +20061007 + + add several GNU Screen terminfo variations with 16- and 256-colors, + and status line (Alain Bench). + + change the way shared libraries (other than libtool) are installed. + Rather than copying the build-tree's libraries, link the shared + objects into the install directory. This makes the --with-rpath + option work except with $(DESTDIR) (cf: 20000930). + +20060930 + + fix ifdef in c++/internal.h for QNX 6.1 + + test-compiled with (old) egcs-1.1.2, modified configure script to + not unset the $CXX and related variables which would prevent this. + + fix a few terminfo.src typos exposed by improvments to "-f" option. + + improve infocmp/tic "-f" option formatting. + +20060923 + + make --disable-largefile option work (report by Thomas M Ott). + + updated html documentation. + + add ka2, kb1, kb3, kc2 to vt220-keypad as an extension -TD + + minor improvements to rxvt+pcfkeys -TD + +20060916 + + move static data from lib_mouse.c into SCREEN struct. + + improve ifdef's for _POSIX_VDISABLE in tset to work with Mac OS X + (report by Michail Vidiassov). + + modify CF_PATH_SYNTAX to ensure it uses the result from --prefix + option (from lynx changes) -TD + + adapt AC_PROG_EGREP check, noting that this is likely to be another + place aggravated by POSIXLY_CORRECT. + + modify configure check for awk to ensure that it is found (prompted + by report by Christopher Parker). + + update config.sub + +20060909 + + add kon, kon2 and jfbterm terminfo entry (request by Till Maas) -TD + + remove invis capability from klone+sgr, mainly used by linux entry, + since it does not really do this -TD + +20060903 + + correct logic in wadd_wch() and wecho_wch(), which did not guard + against passing the multi-column attribute into a call on waddch(), + e.g., using data returned by win_wch() (cf: 20041023) + (report by Sadrul H Chowdhury). + +20060902 + + fix kterm's acsc string -TD + + fix for change to tic/infocmp in 20060819 to ensure no blank is + embedded into a termcap description. + + workaround for 20050806 ifdef's change to allow visbuf.c to compile + when using --with-termlib --with-trace options. + + improve tgetstr() by making the return value point into the user's + buffer, if provided (patch by Miroslav Lichvar (see Redhat Bugzilla + #202480)). + + correct libraries needed for foldkeys (report by Stanislav Ievlev) + +20060826 + + add terminfo entries for xfce terminal (xfce) and multi gnome + terminal (mgt) -TD + + add test/foldkeys.c + +20060819 + + modify tic and infocmp to avoid writing trailing blanks on terminfo + source output (Debian #378783). + + modify configure script to ensure that if the C compiler is used + rather than the loader in making shared libraries, the $(CFLAGS) + variable is also used (Redhat Bugzilla #199369). + + port hashed-db code to db2 and db3. + + fix a bug in tgetent() from 20060625 and 20060715 changes + (patch/analysis by Miroslav Lichvar (see Redhat Bugzilla #202480)). + +20060805 + + updated xterm function-keys terminfo to match xterm #216 -TD + + add configure --with-hashed-db option (tested only with FreeBSD 6.0, + e.g., the db 1.8.5 interface). + +20060729 + + modify toe to access termcap data, e.g., via cgetent() functions, + or as a text file if those are not available. + + use _nc_basename() in tset to improve $SHELL check for csh/sh. + + modify _nc_read_entry() and _nc_read_termcap_entry() so infocmp, + can access termcap data when the terminfo database is disabled. + +20060722 + + widen the test for xterm kmous a little to allow for other strings + than \E[M, e.g., for xterm-sco functionality in xterm. + + update xterm-related terminfo entries to match xterm patch #216 -TD + + update config.guess, config.sub + +20060715 + + fix for install-rule in Ada95 to add terminal_interface.ads + and terminal_interface.ali (anonymous posting in comp.lang.ada). + + correction to manpage for getcchar() (report by William McBrine). + + add test/chgat.c + + modify wchgat() to mark updated cells as changed so a refresh will + repaint those cells (comments by Sadrul H Chowdhury and William + McBrine). + + split up dependency of names.c and codes.c in ncurses/Makefile to + work with parallel make (report/analysis by Joseph S Myers). + + suppress a warning message (which is ignored) for systems without + an ldconfig program (patch by Justin Hibbits). + + modify configure script --disable-symlinks option to allow one to + disable symlink() in tic even when link() does not work (report by + Nigel Horne). + + modify MKfallback.sh to use tic -x when constructing fallback tables + to allow extended capabilities to be retrieved from a fallback entry. + + improve leak-checking logic in tgetent() from 20060625 to ensure that + it does not free the current screen (report by Miroslav Lichvar). + +20060708 + + add a check for _POSIX_VDISABLE in tset (NetBSD #33916). + + correct _nc_free_entries() and related functions used for memory leak + checking of tic. + +20060701 + + revert a minor change for magic-cookie support from 20060513, which + caused unexpected reset of attributes, e.g., when resizing test/view + in color mode. + + note in clear manpage that the program ignores command-line + parameters (prompted by Debian #371855). + + fixes to make lib_gen.c build properly with changes to the configure + --disable-macros option and NCURSES_NOMACROS (cf: 20060527) + + update/correct several terminfo entries -TD + + add some notes regarding copyright to terminfo.src -TD + +20060625 + + fixes to build Ada95 binding with gnat-4.1.0 + + modify read_termtype() so the term_names data is always allocated as + part of the str_table, a better fix for a memory leak (cf: 20030809). + + reduce memory leaks in repeated calls to tgetent() by remembering the + last TERMINAL* value allocated to hold the corresponding data and + freeing that if the tgetent() result buffer is the same as the + previous call (report by "Matt" for FreeBSD gnu/98975). + + modify tack to test extended capability function-key strings. + + improved gnome terminfo entry (GenToo #122566). + + improved xterm-256color terminfo entry (patch by Alain Bench). + +20060617 + + fix two small memory leaks related to repeated tgetent() calls + with TERM=screen (report by "Matt" for FreeBSD gnu/98975). + + add --enable-signed-char to simplify Debian package. + + reduce name-pollution in term.h by removing #define's for HAVE_xxx + symbols. + + correct typo in curs_terminfo.3x (Debian #369168). + +20060603 + + enable the mouse in test/movewindow.c + + improve a limit-check in frm_def.c (John Heasley). + + minor copyright fixes. + + change configure script to produce test/Makefile from data file. + +20060527 + + add a configure option --enable-wgetch-events to enable + NCURSES_WGETCH_EVENTS, and correct the associated loop-logic in + lib_twait.c (report by Bernd Jendrissek). + + remove include/nomacros.h from build, since the ifdef for + NCURSES_NOMACROS makes that obsolete. + + add entrypoints for some functions which were only provided as macros + to make NCURSES_NOMACROS ifdef work properly: getcurx(), getcury(), + getbegx(), getbegy(), getmaxx(), getmaxy(), getparx() and getpary(), + wgetbkgrnd(). + + provide ifdef for NCURSES_NOMACROS which suppresses most macro + definitions from curses.h, i.e., where a macro is defined to override + a function to improve performance. Allowing a developer to suppress + these definitions can simplify some application (discussion with + Stanislav Ievlev). + + improve description of memu/meml in terminfo manpage. + +20060520 + + if msgr is false, reset video attributes when doing an automargin + wrap to the next line. This makes the ncurses 'k' test work properly + for hpterm. + + correct caching of keyname(), which was using only half of its table. + + minor fixes to memory-leak checking. + + make SCREEN._acs_map and SCREEN._screen_acs_map pointers rather than + arrays, making ACS_LEN less visible to applications (suggested by + Stanislav Ievlev). + + move chunk in SCREEN ifdef'd for USE_WIDEC_SUPPORT to the end, so + _screen_acs_map will have the same offset in both ncurses/ncursesw, + making the corresponding tinfo/tinfow libraries binary-compatible + (cf: 20041016, report by Stanislav Ievlev). + +20060513 + + improve debug-tracing for EmitRange(). + + change default for --with-develop to "yes". Add NCURSES_NO_HARD_TABS + and NCURSES_NO_MAGIC_COOKIE environment variables to allow runtime + suppression of the related hard-tabs and xmc-glitch features. + + add ncurses version number to top-level manpages, e.g., ncurses, tic, + infocmp, terminfo as well as form, menu, panel. + + update config.guess, config.sub + + modify ncurses.c to work around a bug in NetBSD 3.0 curses + (field_buffer returning null for a valid field). The 'r' test + appears to not work with that configuration since the new_fieldtype() + function is broken in that implementation. + +20060506 + + add hpterm-color terminfo entry -TD + + fixes to compile test-programs with HPUX 11.23 + +20060422 + + add copyright notices to files other than those that are generated, + data or adapted from pdcurses (reports by William McBrine, David + Taylor). + + improve rendering on hpterm by not resetting attributes at the end + of doupdate() if the terminal has the magic-cookie feature (report + by Bernd Rieke). + + add 256color variants of terminfo entries for programs which are + reported to implement this feature -TD + +20060416 + + fix typo in change to NewChar() macro from 20060311 changes, which + broke tab-expansion (report by Frederic L W Meunier). + +20060415 + + document -U option of tic and infocmp. + + modify tic/infocmp to suppress smacs/rmacs when acsc is suppressed + due to size limit, e.g., converting to termcap format. Also + suppress them if the output format does not contain acsc and it + was not VT100-like, i.e., a one-one mapping (Novell #163715). + + add configure check to ensure that SIGWINCH is defined on platforms + such as OS X which exclude that when _XOPEN_SOURCE, etc., are + defined (report by Nicholas Cole) + +20060408 + + modify write_object() to not write coincidental extensions of an + entry made due to it being referenced in a use= clause (report by + Alain Bench). + + another fix for infocmp -i option, which did not ensure that some + escape sequences had comparable prefixes (report by Alain Bench). + +20060401 + + improve discussion of init/reset in terminfo and tput manpages + (report by Alain Bench). + + use is3 string for a fallback of rs3 in the reset program; it was + using is2 (report by Alain Bench). + + correct logic for infocmp -i option, which did not account for + multiple digits in a parameter (cf: 20040828) (report by Alain + Bench). + + move _nc_handle_sigwinch() to lib_setup.c to make --with-termlib + option work after 20060114 changes (report by Arkadiusz Miskiewicz). + + add copyright notices to test-programs as needed (report by William + McBrine). + +20060318 + + modify ncurses.c 'F' test to combine the wide-characters with color + and/or video attributes. + + modify test/ncurses to use CTL/Q or ESC consistently for exiting + a test-screen (some commands used 'x' or 'q'). + +20060312 + + fix an off-by-one in the scrolling-region change (cf_ 20060311). + +20060311 + + add checks in waddchnstr() and wadd_wchnstr() to stop copying when + a null character is found (report by Igor Bogomazov). + + modify progs/Makefile.in to make "tput init" work properly with + cygwin, i.e., do not pass a ".exe" in the reference string used + in check_aliases (report by Samuel Thibault). + + add some checks to ensure current position is within scrolling + region before scrolling on a new line (report by Dan Gookin). + + change some NewChar() usage to static variables to work around + stack garbage introduced when cchar_t is not packed (Redhat #182024). + +20060225 + + workarounds to build test/movewindow with PDcurses 2.7. + + fix for nsterm-16color entry (patch by Alain Bench). + + correct a typo in infocmp manpage (Debian #354281). + +20060218 + + add nsterm-16color entry -TD + + updated mlterm terminfo entry -TD + + remove 970913 feature for copying subwindows as they are moved in + mvwin() (discussion with Bryan Christ). + + modify test/demo_menus.c to demonstrate moving a menu (both the + window and subwindow) using shifted cursor-keys. + + start implementing recursive mvwin() in movewindow.c (incomplete). + + add a fallback definition for GCC_PRINTFLIKE() in test.priv.h, + for movewindow.c (report by William McBrine). + + add help-message to test/movewindow.c + +20060211 + + add test/movewindow.c, to test mvderwin(). + + fix ncurses soft-key test so color changes are shown immediately + rather than delayed. + + modify ncurses soft-key test to hide the keys when exiting the test + screen. + + fixes to build test programs with PDCurses 2.7, e.g., its headers + rely on autoconf symbols, and it declares stubs for nonfunctional + terminfo and termcap entrypoints. + +20060204 + + improved test/configure to build test/ncurses on HPUX 11 using the + vendor curses. + + documented ALTERNATE CONFIGURATIONS in the ncurses manpage, for the + benefit of developers who do not read INSTALL. + +20060128 + + correct form library Window_To_Buffer() change (cf: 20040516), which + should ignore the video attributes (report by Ricardo Cantu). + +20060121 + + minor fixes to xmc-glitch experimental code: + + suppress line-drawing + + implement max_attributes + tested with xterm. + + minor fixes for the database iterator. + + fix some buffer limits in c++ demo (comment by Falk Hueffner in + Debian #348117). + +20060114 + + add toe -a option, to show all databases. This uses new private + interfaces in the ncurses library for iterating through the list of + databases. + + fix toe from 20000909 changes which made it not look at + $HOME/.terminfo + + make toe's -v option parameter optional as per manpage. + + improve SIGWINCH handling by postponing its effect during newterm(), + etc., when allocating screens. + +20060111 + + modify wgetnstr() to return KEY_RESIZE if a sigwinch occurs. Use + this in test/filter.c + + fix an error in filter() modification which caused some applications + to fail. + +20060107 + + check if filter() was called when getting the screensize. Keep it + at 1 if so (based on Redhat #174498). + + add extension nofilter(). + + refined the workaround for ACS mapping. + + make ifdef's consistent in curses.h for the extended colors so the + header file can be used for the normal curses library. The header + file installed for extended colors is a variation of the + wide-character configuration (report by Frederic L W Meunier). + +20051231 + + add a workaround to ACS mapping to allow applications such as + test/blue.c to use the "PC ROM" characters by masking them with + A_ALTCHARSET. This worked up til 5.5, but was lost in the revision + of legacy coding (report by Michael Deutschmann). + + add a null-pointer check in the wide-character version of + calculate_actual_width() (report by Victor Julien). + + improve test/ncurses 'd' (color-edit) test by allowing the RGB + values to be set independently (patch by William McBrine). + + modify test/configure script to allow building test programs with + PDCurses/X11. + + modified test programs to allow some to work with NetBSD curses. + Several do not because NetBSD curses implements a subset of X/Open + curses, and also lacks much of SVr4 additions. But it's enough for + comparison. + + update config.guess and config.sub + +20051224 + + use BSD-specific fix for return-value from cgetent() from CVS where + an unknown terminal type would be reportd as "database not found". + + make tgetent() return code more readable using new symbols + TGETENT_YES, etc. + + remove references to non-existent "tctest" program. + + remove TESTPROGS from progs/Makefile.in (it was referring to code + that was never built in that directory). + + typos in curs_addchstr.3x, some doc files (noticed in OpenBSD CVS). + +20051217 + + add use_legacy_coding() function to support lynx's font-switching + feature. + + fix formatting in curs_termcap.3x (report by Mike Frysinger). + + modify MKlib_gen.sh to change preprocessor-expanded _Bool back to + bool. + +20051210 + + extend test/ncurses.c 's' (overlay window) test to exercise overlay(), + overwrite() and copywin() with different combinations of colors and + attributes (including background color) to make it easy to see the + effect of the different functions. + + corrections to menu/m_global.c for wide-characters (report by + Victor Julien). + +20051203 + + add configure option --without-dlsym, allowing developers to + configure GPM support without using dlsym() (discussion with Michael + Setzer). + + fix wins_nwstr(), which did not handle single-column non-8bit codes + (Debian #341661). + +20051126 + + move prototypes for wide-character trace functions from curses.tail + to curses.wide to avoid accidental reference to those if + _XOPEN_SOURCE_EXTENDED is defined without ensuring that is + included. + + add/use NCURSES_INLINE definition. + + change some internal functions to use int/unsigned rather than the + short equivalents. + +20051119 + + remove a redundant check in lib_color.c (Debian #335655). + + use ld's -search_paths_first option on Darwin to work around odd + search rules on that platform (report by Christian Gennerat, analysis + by Andrea Govoni). + + remove special case for Darwin in CF_XOPEN_SOURCE configure macro. + + ignore EINTR in tcgetattr/tcsetattr calls (Debian #339518). + + fix several bugs in test/bs.c (patch by Stephen Lindholm). + +20051112 + + other minor fixes to cygwin based on tack -TD + + correct smacs in cygwin (Debian #338234, report by Baurzhan + Ismagulov, who noted that it was fixed in Cygwin). + +20051029 + + add shifted up/down arrow codes to xterm-new as kind/kri strings -TD + + modify wbkgrnd() to avoid clearing the A_CHARTEXT attribute bits + since those record the state of multicolumn characters (Debian + #316663). + + modify werase to clear multicolumn characters that extend into + a derived window (Debian #316663). + +20051022 + + move assignment from environment variable ESCDELAY from initscr() + down to newterm() so the environment variable affects timeouts for + terminals opened with newterm() as well. + + fix a memory leak in keyname(). + + add test/demo_altkeys.c + + modify test/demo_defkey.c to exit from loop via 'q' to allow + leak-checking, as well as fix a buffer size in winnstr() call. + +20051015 + + correct order of use-clauses in rxvt-basic entry which made codes for + f1-f4 vt100-style rather than vt220-style (report by Gabor Z Papp). + + suppress configure check for gnatmake if Ada95/Makefile.in is not + found. + + correct a typo in configure --with-bool option for the case where + --without-cxx is used (report by Daniel Jacobowitz). + + add a note to INSTALL's discussion of --with-normal, pointing out + that one may wish to use --without-gpm to ensure a completely + static link (prompted by report by Felix von Leitner). + +20051010 5.5 release for upload to ftp.gnu.org + +20051008 + + document in demo_forms.c some portability issues. + +20051001 + + document side-effect of werase() which sets the cursor position. + + save/restore the current position in form field editing to make + overlay mode work. + +20050924 + + correct header dependencies in progs, allowing parallel make (report + by Daniel Jacobowitz). + + modify CF_BUILD_CC to ensure that pre-setting $BUILD_CC overrides + the configure check for --with-build-cc (report by Daniel Jacobowitz). + + modify CF_CFG_DEFAULTS to not use /usr as the default prefix for + NetBSD. + + update config.guess and config.sub from + http://subversions.gnu.org/cgi-bin/viewcvs/config/config/ + +20050917 + + modify sed expression which computes path for /usr/lib/terminfo + symbolic link in install to ensure that it does not change unexpected + levels of the path (Gentoo #42336). + + modify default for --disable-lp64 configure option to reduce impact + on existing 64-bit builds. Enabling the _LP64 option may change the + size of chtype and mmask_t. However, for ABI 6, it is enabled by + default (report by Mike Frysinger). + + add configure script check for --enable-ext-mouse, bump ABI to 6 by + default if it is used. + + improve configure script logic for bumping ABI to omit this if the + --with-abi-version option was used. + + update address for Free Software Foundation in tack's source. + + correct wins_wch(), which was not marking the filler-cells of + multi-column characters (cf: 20041023). + +20050910 + + modify mouse initialization to ensure that Gpm_Open() is called only + once. Otherwise GPM gets confused in its initialization of signal + handlers (Debian #326709). + +20050903 + + modify logic for backspacing in a multiline form field to ensure that + it works even when the preceding line is full (report by Frank van + Vugt). + + remove comment about BUGS section of ncurses manpage (Debian #325481) + +20050827 + + document some workarounds for shared and libtool library + configurations in INSTALL (see --with-shared and --with-libtool). + + modify CF_GCC_VERSION and CF_GXX_VERSION macros to accommodate + cross-compilers which emit the platform name in their version + message, e.g., + arm-sa1100-linux-gnu-g++ (GCC) 4.0.1 + (report by Frank van Vugt). + +20050820 + + start updating documentation for upcoming 5.5 release. + + fix to make libtool and libtinfo work together again (cf: 20050122). + + fixes to allow building traces into libtinfo + + add debug trace to tic that shows if/how ncurses will write to the + lower corner of a terminal's screen. + + update llib-l* files. + +20050813 + + modify initializers in c++ binding to build with old versions of g++. + + improve special case for 20050115 repainting fix, ensuring that if + the first changed cell is not a character that the range to be + repainted is adjusted to start at a character's beginning (Debian + #316663). + +20050806 + + fixes to build on QNX 6.1 + + improve configure script checks for Intel 9.0 compiler. + + remove #include's for libc.h (obsolete). + + adjust ifdef's in curses.priv.h so that when cross-compiling to + produce comp_hash and make_keys, no dependency on wchar.h is needed. + That simplifies the build-cppflags (report by Frank van Vugt). + + move modules related to key-binding into libtinfo to fix linkage + problem caused by 20050430 changes to MKkeyname.sh (report by + Konstantin Andreev). + +20050723 + + updates/fixes for configure script macros from vile -TD + + make prism9's sgr string agree with the rest of the terminfo -TD + + make vt220's sgr0 string consistent with sgr string, do this for + several related cases -TD + + improve translation to termcap by filtering the 'me' (sgr0) strings + as in the runtime call to tgetent() (prompted by a discussion with + Thomas Klausner). + + improve tic check for sgr0 versus sgr(0), to help ensure that sgr0 + resets line-drawing. + +20050716 + + fix special cases for trimming sgr0 for hurd and vt220 (Debian + #318621). + + split-out _nc_trim_sgr0() from modifications made to tgetent(), to + allow it to be used by tic to provide information about the runtime + changes that would be made to sgr0 for termcap applications. + + modify make_sed.sh to make the group-name in the NAME section of + form/menu library manpage agree with the TITLE string when renaming + is done for Debian (Debian #78866). + +20050702 + + modify parameter type in c++ binding for insch() and mvwinsch() to + be consistent with underlying ncurses library (was char, is chtype). + + modify treatment of Intel compiler to allow _GNU_SOURCE to be defined + on Linux. + + improve configure check for nanosleep(), checking that it works since + some older systems such as AIX 4.3 have a nonworking version. + +20050625 + + update config.guess and config.sub from + http://subversions.gnu.org/cgi-bin/viewcvs/config/config/ + + modify misc/shlib to work in test-directory. + + suppress $suffix in misc/run_tic.sh when cross-compiling. This + allows cross-compiles to use the host's tic program to handle the + "make install.data" step. + + improve description of $LINES and $COLUMNS variables in manpages + (prompted by report by Dave Ulrick). + + improve description of cross-compiling in INSTALL + + add NCURSES-Programming-HOWTO.html by Pradeep Padala + (see http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/). + + modify configure script to obtain soname for GPM library (discussion + with Daniel Jacobowitz). + + modify configure script so that --with-chtype option will still + compute the unsigned literals suffix for constants in curses.h + (report by Daniel Jacobowitz: + + patches from Daniel Jacobowitz: + + the man_db.renames entry for tack.1 was backwards. + + tack.1 had some 1m's that should have been 1M's. + + the section for curs_inwstr.3 was wrong. + +20050619 + + correction to --with-chtype option (report by Daniel Jacobowitz). + +20050618 + + move build-time edit_man.sh and edit_man.sed scripts to top directory + to simplify reusing them for renaming tack's manpage (prompted by a + review of Debian package). + + revert minor optimization from 20041030 (Debian #313609). + + libtool-specific fixes, tested with libtool 1.4.3, 1.5.0, 1.5.6, + 1.5.10 and 1.5.18 (all work except as noted previously for the c++ + install using libtool 1.5.0): + + modify the clean-rule in c++/Makefile.in to work with IRIX64 make + program. + + use $(LIBTOOL_UNINSTALL) symbol, overlooked in 20030830 + + add configure options --with-chtype and --with-mmask-t, to allow + overriding of the non-LP64 model's use of the corresponding types. + + revise test for size of chtype (and mmask_t), which always returned + "long" due to an uninitialized variable (report by Daniel Jacobowitz). + +20050611 + + change _tracef's that used "%p" format for va_list values to ignore + that, since on some platforms those are not pointers. + + fixes for long-formats in printf's due to largefile support. + +20050604 + + fixes for termcap support: + + reset pointer to _nc_curr_token.tk_name when the input stream is + closed, which could point to free memory (cf: 20030215). + + delink TERMTYPE data which is used by the termcap reader, so that + extended names data will be freed consistently. + + free pointer to TERMTYPE data in _nc_free_termtype() rather than + its callers. + + add some entrypoints for freeing permanently allocated data via + _nc_freeall() when NO_LEAKS is defined. + + amend 20041030 change to _nc_do_color to ensure that optimization is + applied only when the terminal supports back_color_erase (bce). + +20050528 + + add sun-color terminfo entry -TD + + correct a missing assignment in c++ binding's method + NCursesPanel::UserPointer() from 20050409 changes. + + improve configure check for large-files, adding check for dirent64 + from vile -TD + + minor change to configure script to improve linker options for the + Ada95 tree. + +20050515 + + document error conditions for ncurses library functions (report by + Stanislav Ievlev). + + regenerated html documentation for ada binding. + see ftp://invisible-island.net/ncurses/patches/gnathtml + +20050507 + + regenerated html documentation for manpages. + + add $(BUILD_EXEEXT) suffix to invocation of make_keys in + ncurses/Makefile (Gentoo #89772). + + modify c++/demo.cc to build with g++ -fno-implicit-templates option + (patch by Mike Frysinger). + + modify tic to filter out long extended names when translating to + termcap format. Only two characters are permissible for termcap + capability names. + +20050430 + + modify terminfo entries xterm-new and rxvt to add strings for + shift-, control-cursor keys. + + workaround to allow c++ binding to compile with g++ 2.95.3, which + has a broken implementation of static_cast<> (patch by Jeff Chua). + + modify initialization of key lookup table so that if an extended + capability (tic -x) string is defined, and its name begins with 'k', + it will automatically be treated as a key. + + modify test/keynames.c to allow for the possibility of extended + key names, e.g., via define_key(), or via "tic -x". + + add test/demo_termcap.c to show the contents of given entry via the + termcap interface. + +20050423 + + minor fixes for vt100/vt52 entries -TD + + add configure option --enable-largefile + + corrected libraries used to build Ada95/gen/gen, found in testing + gcc 4.0.0. + +20050416 + + update config.guess, config.sub + + modify configure script check for _XOPEN_SOURCE, disable that on + Darwin whose header files have problems (patch by Chris Zubrzycki). + + modify form library Is_Printable_String() to use iswprint() rather + than wcwidth() for determining if a character is printable. The + latter caused it to reject menu items containing non-spacing + characters. + + modify ncurses test program's F-test to handle non-spacing characters + by combining them with a reverse-video blank. + + review/fix several gcc -Wconversion warnings. + +20050409 + + correct an off-by-one error in m_driver() for mouse-clicks used to + position the mouse to a particular item. + + implement test/demo_menus.c + + add some checks in lib_mouse to ensure SP is set. + + modify C++ binding to make 20050403 changes work with the configure + --enable-const option. + +20050403 + + modify start_color() to return ERR if it cannot allocate memory. + + address g++ compiler warnings in C++ binding by adding explicit + member initialization, assignment operators and copy constructors. + Most of the changes simply preserve the existing semantics of the + binding, which can leak memory, etc., but by making these features + visible, it provides a framework for improving the binding. + + improve C++ binding using static_cast, etc. + + modify configure script --enable-warnings to add options to g++ to + correspond to the gcc --enable-warnings. + + modify C++ binding to use some C internal functions to make it + compile properly on Solaris (and other platforms). + +20050327 + + amend change from 20050320 to limit it to configurations with a + valid locale. + + fix a bug introduced in 20050320 which broke the translation of + nonprinting characters to uparrow form (report by Takahashi Tamotsu). + +20050326 + + add ifdef's for _LP64 in curses.h to avoid using wasteful 64-bits for + chtype and mmask_t, but add configure option --disable-lp64 in case + anyone used that configuration. + + update misc/shlib script to account for Mac OS X (report by Michail + Vidiassov). + + correct comparison for wrapping multibyte characters in + waddch_literal() (report by Takahashi Tamotsu). + +20050320 + + add -c and -w options to tset to allow user to suppress ncurses' + resizing of the terminal emulator window in the special case where it + is not able to detect the true size (report by Win Delvaux, Debian + #300419). + + modify waddch_nosync() to account for locale zn_CH.GBK, which uses + codes 128-159 as part of multibyte characters (report by Wang + WenRui, Debian #300512). + +20050319 + + modify ncurses.c 'd' test to make it work with 88-color + configuration, i.e., by implementing scrolling. + + improve scrolling in ncurses.c 'c' and 'C' tests, e.g., for 88-color + configuration. + +20050312 + + change tracemunch to use strict checking. + + modify ncurses.c 'p' test to test line-drawing within a pad. + + implement environment variable NCURSES_NO_UTF8_ACS to support + miscellaneous terminal emulators which ignore alternate character + set escape sequences when in UTF-8 mode. + +20050305 + + change NCursesWindow::err_handler() to a virtual function (request by + Steve Beal). + + modify fty_int.c and fty_num.c to handle wide characters (report by + Wolfgang Gutjahr). + + adapt fix for fty_alpha.c to fty_alnum.c, which also handled normal + and wide characters inconsistently (report by Wolfgang Gutjahr). + + update llib-* files to reflect internal interface additions/changes. + +20050226 + + improve test/configure script, adding tests for _XOPEN_SOURCE, etc., + from lynx. + + add aixterm-16color terminfo entry -TD + + modified xterm-new terminfo entry to work with tgetent() changes -TD + + extended changes in tgetent() from 20040710 to allow the substring of + sgr0 which matches rmacs to be at the beginning of the sgr0 string + (request by Thomas Wolff). Wolff says the visual effect in + combination with pre-20040710 ncurses is improved. + + fix off-by-one in winnstr() call which caused form field validation + of multibyte characters to ignore the last character in a field. + + correct logic in winsch() for inserting multibyte strings; the code + would clear cells after the insertion rather than push them to the + right (cf: 20040228). + + fix an inconsistency in Check_Alpha_Field() between normal and wide + character logic (report by Wolfgang Gutjahr). + +20050219 + + fix a bug in editing wide-characters in form library: deleting a + nonwide character modified the previous wide-character. + + update manpage to describe NCURSES_MOUSE_VERSION 2. + + correct manpage description of mouseinterval() (Debian #280687). + + add a note to default_colors.3x explaining why this extension was + added (Debian #295083). + + add traces to panel library. + +20050212 + + improve editing of wide-characters in form library: left/right + cursor movement, and single-character deletions work properly. + + disable GPM mouse support when $TERM happens to be prefixed with + "xterm". Gpm_Open() would otherwise assert that it can deal with + mouse events in this case. + + modify GPM mouse support so it closes the server connection when + the caller disables the mouse (report by Stanislav Ievlev). + +20050205 + + add traces for callback functions in form library. + + add experimental configure option --enable-ext-mouse, which defines + NCURSES_MOUSE_VERSION 2, and modifies the encoding of mouse events to + support wheel mice, which may transmit buttons 4 and 5. This works + with xterm and similar X terminal emulators (prompted by question by + Andreas Henningsson, this is also related to Debian #230990). + + improve configure macros CF_XOPEN_SOURCE and CF_POSIX_C_SOURCE to + avoid redefinition warnings on cygwin. + +20050129 + + merge remaining development changes for extended colors (mostly + complete, does not appear to break other configurations). + + add xterm-88color.dat (part of extended colors testing). + + improve _tracedump() handling of color pairs past 96. + + modify return-value from start_color() to return OK if colors have + already been started. + + modify curs_color.3x list error conditions for init_pair(), + pair_content() and color_content(). + + modify pair_content() to return -1 for consistency with init_pair() + if it corresponds to the default-color. + + change internal representation of default-color to allow application + to use color number 255. This does not affect the total number of + color pairs which are allowed. + + add a top-level tags rule. + +20050122 + + add a null-pointer check in wgetch() in case it is called without + first calling initscr(). + + add some null-pointer checks for SP, which is not set by libtinfo. + + modify misc/shlib to ensure that absolute pathnames are used. + + modify test/Makefile.in, etc., to link test programs only against the + libraries needed, e.g., omit form/menu/panel library for the ones + that are curses-specific. + + change SP->_current_attr to a pointer, adjust ifdef's to ensure that + libtinfo.so and libtinfow.so have the same ABI. The reason for this + is that the corresponding data which belongs to the upper-level + ncurses library has a different size in each model (report by + Stanislav Ievlev). + +20050115 + + minor fixes to allow test-compiles with g++. + + correct column value shown in tic's warnings, which did not account + for leading whitespace. + + add a check in _nc_trans_string() for improperly ended strings, i.e., + where a following line begins in column 1. + + modify _nc_save_str() to return a null pointer on buffer overflow. + + improve repainting while scrolling wide-character data (Eungkyu Song). + +20050108 + + merge some development changes to extend color capabilities. + +20050101 + + merge some development changes to extend color capabilities. + + fix manpage typo (FreeBSD report docs/75544). + + update config.guess, config.sub + > patches for configure script (Albert Chin-A-Young): + + improved fix to make mbstate_t recognized on HPUX 11i (cf: + 20030705), making vsscanf() prototype visible on IRIX64. Tested for + on HP-UX 11i, Solaris 7, 8, 9, AIX 4.3.3, 5.2, Tru64 UNIX 4.0D, 5.1, + IRIX64 6.5, Redhat Linux 7.1, 9, and RHEL 2.1, 3.0. + + print the result of the --disable-home-terminfo option. + + use -rpath when compiling with SGI C compiler. + +20041225 + + add trace calls to remaining public functions in form and menu + libraries. + + fix check for numeric digits in test/ncurses.c 'b' and 'B' tests. + + fix typo in test/ncurses.c 'c' test from 20041218. + +20041218 + + revise test/ncurses.c 'c' color test to improve use for xterm-88color + and xterm-256color, added 'C' test using the wide-character color_set + and attr_set functions. + +20041211 + + modify configure script to work with Intel compiler. + + fix an limit-check in wadd_wchnstr() which caused labels in the + forms-demo to be one character short. + + fix typo in curs_addchstr.3x (Jared Yanovich). + + add trace calls to most functions in form and menu libraries. + + update working-position for adding wide-characters when window is + scrolled (prompted by related report by Eungkyu Song). + +20041204 + + replace some references on Linux to wcrtomb() which use it to obtain + the length of a multibyte string with _nc_wcrtomb, since wcrtomb() is + broken in glibc (see Debian #284260). + + corrected length-computation in wide-character support for + field_buffer(). + + some fixes to frm_driver.c to allow it to accept multibyte input. + + modify configure script to work with Intel 8.0 compiler. + +20041127 + + amend change to setupterm() in 20030405 which would reuse the value + of cur_term if the same output was selected. This now reuses it only + when setupterm() is called from tgetent(), which has no notion of + separate SCREENs. Note that tgetent() must be called after initscr() + or newterm() to use this feature (Redhat Bugzilla #140326). + + add a check in CF_BUILD_CC macro to ensure that developer has given + the --with-build-cc option when cross-compiling (report by Alexandre + Campo). + + improved configure script checks for _XOPEN_SOURCE and + _POSIX_C_SOURCE (fix for IRIX 5.3 from Georg Schwarz, _POSIX_C_SOURCE + updates from lynx). + + cosmetic fix to test/gdc.c to recolor the bottom edge of the box + for consistency (comment by Dan Nelson). + +20041120 + + update wsvt25 terminfo entry -TD + + modify test/ins_wide.c to test all flavors of ins_wstr(). + + ignore filler-cells in wadd_wchnstr() when adding a cchar_t array + which consists of multi-column characters, since this function + constructs them (cf: 20041023). + + modify winnstr() to return multibyte character strings for the + wide-character configuration. + +20041106 + + fixes to make slk_set() and slk_wset() accept and store multibyte + or multicolumn characters. + +20041030 + + improve color optimization a little by making _nc_do_color() check + if the old/new pairs are equivalent to the default pair 0. + + modify assume_default_colors() to not require that + use_default_colors() be called first. + +20041023 + + modify term_attrs() to use termattrs(), add the extended attributes + such as enter_horizontal_hl_mode for WA_HORIZONTAL to term_attrs(). + + add logic in waddch_literal() to clear orphaned cells when one + multi-column character partly overwrites another. + + improved logic for clearing cells when a multi-column character + must be wrapped to a new line. + + revise storage of cells for multi-column characters to correct a + problem with repainting. In the old scheme, it was possible for + doupdate() to decide that only part of a multi-column character + should be repainted since the filler cells stored only an attribute + to denote them as fillers, rather than the character value and the + attribute. + +20041016 + + minor fixes for traces. + + add SP->_screen_acs_map[], used to ensure that mapping of missing + line-drawing characters is handled properly. For example, ACS_DARROW + is absent from xterm-new, and it was coincidentally displayed the + same as ACS_BTEE. + +20041009 + + amend 20021221 workaround for broken acs to reset the sgr, rmacs + and smacs strings as well. Also modify the check for screen's + limitations in that area to allow the multi-character shift-in + and shift-out which seem to work. + + change GPM initialization, using dl library to load it dynamically + at runtime (Debian #110586). + +20041002 + + correct logic for color pair in setcchar() and getcchar() (patch by + Marcin 'Qrczak' Kowalczyk). + + add t/T commands to ncurses b/B tests to allow a different color to + be tested for the attrset part of the test than is used in the + background color. + +20040925 + + fix to make setcchar() to work when its wchar_t* parameter is + pointing to a string which contains more data than can be converted. + + modify wget_wstr() and example in ncurses.c to work if wchar_t and + wint_t are different sizes (report by Marcin 'Qrczak' Kowalczyk). + +20040918 + + remove check in wget_wch() added to fix an infinite loop, appears to + have been working around a transitory glibc bug, and interferes + with normal operation (report by Marcin 'Qrczak' Kowalczyk). + + correct wadd_wch() and wecho_wch(), which did not pass the rendition + information (report by Marcin 'Qrczak' Kowalczyk). + + fix aclocal.m4 so that the wide-character version of ncurses gets + compiled as libncursesw.5.dylib, instead of libncurses.5w.dylib + (adapted from patch by James J Ramsey). + + change configure script for --with-caps option to indicate that it + is no longer experimental. + + change configure script to reflect the fact that --enable-widec has + not been "experimental" since 5.3 (report by Bruno Lustosa). + +20040911 + + add 'B' test to ncurses.c, to exercise some wide-character functions. + +20040828 + + modify infocmp -i option to match 8-bit controls against its table + entries, e.g., so it can analyze the xterm-8bit entry. + + add morphos terminfo entry, improve amiga-8bit entry (Pavel Fedin). + + correct translation of "%%" in terminfo format to termcap, e.g., + using "tic -C" (Redhat Bugzilla #130921). + + modified configure script CF_XOPEN_SOURCE macro to ensure that if + it defines _POSIX_C_SOURCE, that it defines it to a specific value + (comp.os.stratus newsgroup comment). + +20040821 + + fixes to build with Ada95 binding with gnat 3.4 (all warnings are + fatal, and gnat does not follow the guidelines for pragmas). + However that did find a coding error in Assume_Default_Colors(). + + modify several terminfo entries to ensure xterm mouse and cursor + visibility are reset in rs2 string: hurd, putty, gnome, + konsole-base, mlterm, Eterm, screen (Debian #265784, #55637). The + xterm entries are left alone - old ones for compatibility, and the + new ones do not require this change. -TD + +20040814 + + fake a SIGWINCH in newterm() to accommodate buggy terminal emulators + and window managers (Debian #265631). + > terminfo updates -TD + + remove dch/dch1 from rxvt because they are implemented inconsistently + with the common usage of bce/ech + + remove khome from vt220 (vt220's have no home key) + + add rxvt+pcfkeys + +20040807 + + modify test/ncurses.c 'b' test, adding v/V toggles to cycle through + combinations of video attributes so that for instance bold and + underline can be tested. This made the legend too crowded, added + a help window as well. + + modify test/ncurses.c 'b' test to cycle through default colors if + the -d option is set. + + update putty terminfo entry (Robert de Bath). + +20040731 + + modify test/cardfile.c to allow it to read more data than can be + displayed. + + correct logic in resizeterm.c which kept it from processing all + levels of window hierarchy (reports by Folkert van Heusden, + Chris Share). + +20040724 + + modify "tic -cv" to ignore delays when comparing strings. Also + modify it to ignore a canceled sgr string, e.g., for terminals which + cannot properly combine attributes in one control sequence. + + corrections for gnome and konsole entries (Redhat Bugzilla #122815, + patch by Hans de Goede) + > terminfo updates -TD + + make ncsa-m rmacs/smacs consistent with sgr + + add sgr, rc/sc and ech to syscons entries + + add function-keys to decansi + + add sgr to mterm-ansi + + add sgr, civis, cnorm to emu + + correct/simplify cup in addrinfo + +20040717 + > terminfo updates -TD + + add xterm-pc-fkeys + + review/update gnome and gnome-rh90 entries (prompted by Redhat + Bugzilla #122815). + + review/update konsole entries + + add sgr, correct sgr0 for kterm and mlterm + + correct tsl string in kterm + +20040711 + + add configure option --without-xterm-new + +20040710 + + add check in wget_wch() for printable bytes that are not part of a + multibyte character. + + modify wadd_wchnstr() to render text using window's background + attributes. + + improve tic's check to compare sgr and sgr0. + + fix c++ directory's .cc.i rule. + + modify logic in tgetent() which adjusts the termcap "me" string + to work with ISO-2022 string used in xterm-new (cf: 20010908). + + modify tic's check for conflicting function keys to omit that if + converting termcap to termcap format. + + add -U option to tic and infocmp. + + add rmam/smam to linux terminfo entry (Trevor Van Bremen) + > terminfo updates -TD + + minor fixes for emu + + add emu-220 + + change wyse acsc strings to use 'i' map rather than 'I' + + fixes for avatar0 + + fixes for vp3a+ + +20040703 + + use tic -x to install terminfo database -TD + + add -x to infocmp's usage message. + + correct field used for comparing O_ROWMAJOR in set_menu_format() + (report/patch by Tony Li). + + fix a missing nul check in set_field_buffer() from 20040508 changes. + > terminfo updates -TD + + make xterm-xf86-v43 derived from xterm-xf86-v40 rather than + xterm-basic -TD + + align with xterm patch #192's use of xterm-new -TD + + update xterm-new and xterm-8bit for cvvis/cnorm strings -TD + + make xterm-new the default "xterm" entry -TD + +20040626 + + correct BUILD_CPPFLAGS substitution in ncurses/Makefile.in, to allow + cross-compiling from a separate directory tree (report/patch by + Dan Engel). + + modify is_term_resized() to ensure that window sizes are nonzero, + as documented in the manpage (report by Ian Collier). + + modify CF_XOPEN_SOURCE configure macro to make Hurd port build + (Debian #249214, report/patch by Jeff Bailey). + + configure-script mods from xterm, e.g., updates to CF_ADD_CFLAGS + + update config.guess, config.sub + > terminfo updates -TD + + add mlterm + + add xterm-xf86-v44 + + modify xterm-new aka xterm-xfree86 to accommodate luit, which + relies on G1 being used via an ISO-2022 escape sequence (report by + Juliusz Chroboczek) + + add 'hurd' entry + +20040619 + + reconsidered winsnstr(), decided after comparing other + implementations that wrapping is an X/Open documentation error. + + modify test/inserts.c to test all flavors of insstr(). + +20040605 + + add setlocale() calls to a few test programs which may require it: + demo_forms.c, filter.c, ins_wide.c, inserts.c + + correct a few misspelled function names in ncurses-intro.html (report + by Tony Li). + + correct internal name of key_defined() manpage, which conflicted with + define_key(). + +20040529 + + correct size of internal pad used for holding wide-character + field_buffer() results. + + modify data_ahead() to work with wide-characters. + +20040522 + + improve description of terminfo if-then-else expressions (suggested + by Arne Thomassen). + + improve test/ncurses.c 'd' test, allow it to use external file for + initial palette (added xterm-16color.dat and linux-color.dat), and + reset colors to the initial palette when starting/ending the test. + + change limit-check in init_color() to allow r/g/b component to + reach 1000 (cf: 20020928). + +20040516 + + modify form library to use cchar_t's rather than char's in the + wide-character configuration for storing data for field buffers. + + correct logic of win_wchnstr(), which did not work for more than + one cell. + +20040508 + + replace memset/memcpy usage in form library with for-loops to + simplify changing the datatype of FIELD.buf, part of wide-character + changes. + + fix some inconsistent use of #if/#ifdef (report by Alain Guibert). + +20040501 + + modify menu library to account for actual number of columns used by + multibyte character strings, in the wide-character configuration + (adapted from patch by Philipp Tomsich). + + add "-x" option to infocmp like tic's "-x", for use in "-F" + comparisons. This modifies infocmp to only report extended + capabilities if the -x option is given, making this more consistent + with tic. Some scripts may break, since infocmp previous gave this + information without an option. + + modify termcap-parsing to retain 2-character aliases at the beginning + of an entry if the "-x" option is used in tic. + +20040424 + + minor compiler-warning and test-program fixes. + +20040417 + + modify tic's missing-sgr warning to apply to terminfo only. + + free some memory leaks in tic. + + remove check in post_menu() that prevented menus from extending + beyond the screen (request by Max J. Werner). + + remove check in newwin() that prevents allocating windows + that extend beyond the screen. Solaris curses does this. + + add ifdef in test/color_set.c to allow it to compile with older + curses. + + add napms() calls to test/dots.c to make it not be a CPU hog. + +20040403 + + modify unctrl() to return null if its parameter does not correspond + to an unsigned char. + + add some limit-checks to guard isprint(), etc., from being used on + values that do not fit into an unsigned char (report by Sami Farin). + +20040328 + + fix a typo in the _nc_get_locale() change. + +20040327 + + modify _nc_get_locale() to use setlocale() to query the program's + current locale rather than using getenv(). This fixes a case in tin + which relies on legacy treatment of 8-bit characters when the locale + is not initialized (reported by Urs Jansen). + + add sgr string to screen's and rxvt's terminfo entries -TD. + + add a check in tic for terminfo entries having an sgr0 but no sgr + string. This confuses Tru64 and HPUX curses when combined with + color, e.g., making them leave line-drawing characters in odd places. + + correct casts used in ABSENT_BOOLEAN, CANCELLED_BOOLEAN, matches the + original definitions used in Debian package to fix PowerPC bug before + 20030802 (Debian #237629). + +20040320 + + modify PutAttrChar() and PUTC() macro to improve use of + A_ALTCHARSET attribute to prevent line-drawing characters from + being lost in situations where the locale would otherwise treat the + raw data as nonprintable (Debian #227879). + +20040313 + + fix a redefinition of CTRL() macro in test/view.c for AIX 5.2 (report + by Jim Idle). + + remove ".PP" after ".SH NAME" in a few manpages; this confuses + some apropos script (Debian #237831). + +20040306 + + modify ncurses.c 'r' test so editing commands, like inserted text, + set the field background, and the state of insert/overlay editing + mode is shown in that test. + + change syntax of dummy targets in Ada95 makefiles to work with pmake. + + correct logic in test/ncurses.c 'b' for noncolor terminals which + did not recognize a quit-command (cf: 20030419). + +20040228 + + modify _nc_insert_ch() to allow for its input to be part of a + multibyte string. + + split out lib_insnstr.c, to prepare to rewrite it. X/Open states + that this function performs wrapping, unlike all of the other + insert-functions. Currently it does not wrap. + + check for nl_langinfo(CODESET), use it if available (report by + Stanislav Ievlev). + + split-out CF_BUILD_CC macro, actually did this for lynx first. + + fixes for configure script CF_WITH_DBMALLOC and CF_WITH_DMALLOC, + which happened to work with bash, but not with Bourne shell (report + by Marco d'Itri via tin-dev). + +20040221 + + some changes to adapt the form library to wide characters, incomplete + (request by Mike Aubury). + + add symbol to curses.h which can be used to suppress include of + stdbool.h, e.g., + #define NCURSES_ENABLE_STDBOOL_H 0 + #include + (discussion on XFree86 mailing list). + +20040214 + + modify configure --with-termlib option to accept a value which sets + the name of the terminfo library. This would allow a packager to + build libtinfow.so renamed to coincide with libtinfo.so (discussion + with Stanislav Ievlev). + + improve documentation of --with-install-prefix, --prefix and + $(DESTDIR) in INSTALL (prompted by discussion with Paul Lew). + + add configure check if the compiler can use -c -o options to rename + its output file, use that to omit the 'cd' command which was used to + ensure object files are created in a separate staging directory + (prompted by comments by Johnny Wezel, Martin Mokrejs). + +20040208 5.4 release for upload to ftp.gnu.org + + update TO-DO. + +20040207 pre-release + + minor fixes to _nc_tparm_analyze(), i.e., do not count %i as a param, + and do not count %d if it follows a %p. + + correct an inconsistency between handling of codes in the 128-255 + range, e.g., as illustrated by test/ncurses.c f/F tests. In POSIX + locale, the latter did not show printable results, while the former + did. + + modify MKlib_gen.sh to compensate for broken C preprocessor on Mac + OS X, which alters "%%" to "% % " (report by Robert Simms, fix + verified by Scott Corscadden). + +20040131 pre-release + + modify SCREEN struct to align it between normal/wide curses flavors + to simplify future changes to build a single version of libtinfo + (patch by Stanislav Ievlev). + + document handling of carriage return by addch() in manpage. + + document special features of unctrl() in manpage. + + documented interface changes in INSTALL. + + corrected control-char test in lib_addch.c to account for locale + (Debian #230335, cf: 971206). + + updated test/configure.in to use AC_EXEEXT and AC_OBJEXT. + + fixes to compile Ada95 binding with Debian gnat 3.15p-4 package. + + minor configure-script fixes for older ports, e.g., BeOS R4.5. + +20040125 pre-release + + amend change to PutAttrChar() from 20030614 which computed the number + of cells for a possibly multi-cell character. The 20030614 change + forced the cell to a blank if the result from wcwidth() was not + greater than zero. However, wcwidth() called for parameters in the + range 128-255 can give this return value. The logic now simply + ensures that the number of cells is greater than zero without + modifying the displayed value. + +20040124 pre-release + + looked good for 5.4 release for upload to ftp.gnu.org (but see above) + + modify configure script check for ranlib to use AC_CHECK_TOOL, since + that works better for cross-compiling. + +20040117 pre-release + + modify lib_get_wch.c to prefer mblen/mbtowc over mbrlen/mbrtowc to + work around core dump in Solaris 8's locale support, e.g., for + zh_CN.GB18030 (report by Saravanan Bellan). + + add includes for and in configure script macro + to make check work with Tru64 4.0d. + + add terminfo entry for U/Win -TD + + add terminfo entries for SFU aka Interix aka OpenNT (Federico + Bianchi). + + modify tput's error messages to prefix them with the program name + (report by Vincent Lefevre, patch by Daniel Jacobowitz (see Debian + #227586)). + + correct a place in tack where exit_standout_mode was used instead of + exit_attribute_mode (patch by Jochen Voss (see Debian #224443)). + + modify c++/cursesf.h to use const in the Enumeration_Field method. + + remove an ambiguous (actually redundant) method from c++/cursesf.h + + make $HOME/.terminfo update optional (suggested by Stanislav Ievlev). + + improve sed script which extracts libtool's version in the + CF_WITH_LIBTOOL macro. + + add ifdef'd call to AC_PROG_LIBTOOL to CF_WITH_LIBTOOL macro (to + simplify local patch for Albert Chin-A-Young).. + + add $(CXXFLAGS) to link command in c++/Makefile.in (adapted from + patch by Albert Chin-A-Young).. + + fix a missing substitution in configure.in for "$target" needed for + HPUX .so/.sl case. + + resync CF_XOPEN_SOURCE configure macro with lynx; fixes IRIX64 and + NetBSD 1.6 conflicts with _XOPEN_SOURCE. + + make check for stdbool.h more specific, to ensure that including it + will actually define/declare bool for the configured compiler. + + rewrite ifdef's in curses.h relating NCURSES_BOOL and bool. The + intention of that is to #define NCURSES_BOOL as bool when the + compiler declares bool, and to #define bool as NCURSES_BOOL when it + does not (reported by Jim Gifford, Sam Varshavchik, cf: 20031213). + +20040110 pre-release + + change minor version to 4, i.e., ncurses 5.4 + + revised/improved terminfo entries for tvi912b, tvi920b (Benjamin C W + Sittler). + + simplified ncurses/base/version.c by defining the result from the + configure script rather than using sprintf (suggested by Stanislav + Ievlev). + + remove obsolete casts from c++/cursesw.h (reported by Stanislav + Ievlev). + + modify configure script so that when configuring for termlib, programs + such as tic are not linked with the upper-level ncurses library + (suggested by Stanislav Ievlev). + + move version.c from ncurses/base to ncurses/tinfo to allow linking + of tic, etc., using libtinfo (suggested by Stanislav Ievlev). + +20040103 + + adjust -D's to build ncursesw on OpenBSD. + + modify CF_PROG_EXT to make OS/2 build with EXEEXT. + + add pecho_wchar(). + + remove include from lib_slk_wset.c which is not needed (or + available) on older platforms. + +20031227 + + add -D's to build ncursew on FreeBSD 5.1. + + modify shared library configuration for FreeBSD 4.x/5.x to add the + soname information (request by Marc Glisse). + + modify _nc_read_tic_entry() to not use MAX_ALIAS, but PATH_MAX only + for limiting the length of a filename in the terminfo database. + + modify termname() to return the terminal name used by setupterm() + rather than $TERM, without truncating to 14 characters as documented + by X/Open (report by Stanislav Ievlev, cf: 970719). + + re-add definition for _BSD_TYPES, lost in merge (cf: 20031206). + +20031220 + + add configure option --with-manpage-format=catonly to address + behavior of BSDI, allow install of man+cat files on NetBSD, whose + behavior has diverged by requiring both to be present. + + remove leading blanks from comment-lines in manlinks.sed script to + work with Tru64 4.0d. + + add screen.linux terminfo entry (discussion on mutt-users mailing + list). + +20031213 + + add a check for tic to flag missing backslashes for termcap + continuation lines. ncurses reads the whole entry, but termcap + applications do not. + + add configure option "--with-manpage-aliases" extending + "--with-manpage-aliases" to provide the option of generating ".so" + files rather than symbolic links for manpage aliases. + + add bool definition in include/curses.h.in for configurations with no + usable C++ compiler (cf: 20030607). + + fix pathname of SigAction.h for building with --srcdir (reported by + Mike Castle). + +20031206 + + folded ncurses/base/sigaction.c into includes of ncurses/SigAction.h, + since that header is used only within ncurses/tty/lib_tstp.c, for + non-POSIX systems (discussion with Stanislav Ievlev). + + remove obsolete _nc_outstr() function (report by Stanislav Ievlev + ). + + add test/background.c and test/color_set.c + + modify color_set() function to work with color pair 0 (report by + George Andreou ). + + add configure option --with-trace, since defining TRACE seems too + awkward for some cases. + + remove a call to _nc_free_termtype() from read_termtype(), since the + corresponding buffer contents were already zeroed by a memset (cf: + 20000101). + + improve configure check for _XOPEN_SOURCE and related definitions, + adding special cases for Solaris' __EXTENSIONS__ and FreeBSD's + __BSD_TYPES (reports by Marc Glisse ). + + small fixes to compile on Solaris and IRIX64 using cc. + + correct typo in check for pre-POSIX sort options in MKkey_defs.sh + (cf: 20031101). + +20031129 + + modify _nc_gettime() to avoid a problem with arithmetic on unsigned + values (Philippe Blain). + + improve the nanosleep() logic in napms() by checking for EINTR and + restarting (Philippe Blain). + + correct expression for "%D" in lib_tgoto.c (Juha Jarvi + ). + +20031122 + + add linux-vt terminfo entry (Andrey V Lukyanov ). + + allow "\|" escape in terminfo; tic should not warn about this. + + save the full pathname of the trace-file the first time it is opened, + to avoid creating it in different directories if the application + opens and closes it while changing its working directory. + + modify configure script to provide a non-empty default for + $BROKEN_LINKER + +20031108 + + add DJGPP to special case of DOS-style drive letters potentially + appearing in TERMCAP environment variable. + + fix some spelling in comments (reports by jmc, Jonathon Gray). + + update config.guess, config.sub + +20031101 + + fix a memory leak in error-return from setupterm() (report by + Stanislav Ievlev ). + + use EXEEXT and OBJEXT consistently in makefiles. + + amend fixes for cross-compiling to use separate executable-suffix + BUILD_EXEEXT (cf: 20031018). + + modify MKkey_defs.sh to check for sort utility that does not + recognize key options, e.g., busybox (report by Peter S Mazinger + ). + + fix potential out-of-bounds indexing in _nc_infotocap() (found by + David Krause using some of the new malloc debugging features + under OpenBSD, patch by Ted Unangst). + + modify CF_LIB_SUFFIX for Itanium releases of HP-UX, which use a + ".so" suffix (patch by Jonathan Ward ). + +20031025 + + update terminfo for xterm-xfree86 -TD + + add check for multiple "tc=" clauses in a termcap to tic. + + check for missing op/oc in tic. + + correct _nc_resolve_uses() and _nc_merge_entry() to allow infocmp and + tic to show cancelled capabilities. These functions were ignoring + the state of the target entry, which should be untouched if cancelled. + + correct comment in tack/output.c (Debian #215806). + + add some null-pointer checks to lib_options.c (report by Michael + Bienia). + + regenerated html documentation. + + correction to tar-copy.sh, remove a trap command that resulted in + leaving temporary files (cf: 20030510). + + remove contact/maintainer addresses for Juergen Pfeifer (his request). + +20031018 + + updated test/configure to reflect changes for libtool (cf: 20030830). + + fix several places in tack/pad.c which tested and used the parameter- + and parameterless strings inconsistently, i.e., in pad_rin(), + pad_il(), pad_indn() and pad_dl() (Debian #215805). + + minor fixes for configure script and makefiles to cleanup executables + generated when cross-compiling for DJGPP. + + modify infocmp to omit check for $TERM for operations that do not + require it, e.g., "infocmp -e" used to build fallback list (report by + Koblinger Egmont). + +20031004 + + add terminfo entries for DJGPP. + + updated note about maintainer in ncurses-intro.html + +20030927 + + update terminfo entries for gnome terminal. + + modify tack to reset colors after each color test, correct a place + where exit_standout_mode was used instead of exit_attribute_mode. + + improve tack's bce test by making it set colors other than black + on white. + + plug a potential recursion between napms() and _nc_timed_wait() + (report by Philippe Blain). + +20030920 + + add --with-rel-version option to allow workaround to allow making + libtool on Darwin generate the "same" library names as with the + --with-shared option. The Darwin ld program does not work well + with a zero as the minor-version value (request by Chris Zubrzycki). + + modify CF_MIXEDCASE_FILENAMES macro to work with cross-compiling. + + modify tack to allow it to run from fallback terminfo data. + > patch by Philippe Blain: + + improve PutRange() by adjusting call to EmitRange() and corresponding + return-value to not emit unchanged characters on the end of the + range. + + improve a check for changed-attribute by exiting a loop when the + change is found. + + improve logic in TransformLine(), eliminating a duplicated comparison + in the clr_bol logic. + +20030913 + > patch by Philippe Blain: + + in ncurses/tty/lib_mvcur.c, + move the label 'nonlocal' just before the second gettimeofday() to + be able to compute the diff time when 'goto nonlocal' used. + Rename 'msec' to 'microsec' in the debug-message. + + in ncurses/tty/lib_mvcur.c, + Use _nc_outch() in carriage return/newline movement instead of + putchar() which goes to stdout. Move test for xold>0 out of loop. + + in ncurses/tinfo/setbuf.c, + Set the flag SP->_buffered at the end of operations when all has been + successful (typeMalloc can fail). + + simplify NC_BUFFERED macro by moving check inside _nc_setbuf(). + +20030906 + + modify configure script to avoid using "head -1", which does not + work if POSIXLY_CORRECT (sic) is set. + + modify run_tic.in to avoid using wrong shared libraries when + cross-compiling (Dan Kegel). + +20030830 + + alter configure script help message to make it clearer that + --with-build-cc does not specify a cross-compiler (suggested by Dan + Kegel ). + + modify configure script to accommodate libtool 1.5, as well as add an + parameter to the "--with-libtool" option which can specify the + pathname of libtool (report by Chris Zubrzycki). We note that + libtool 1.5 has more than one bug in its C++ support, so it is not + able to install libncurses++, for instance, if $DESTDIR or the option + --with-install-prefix is used. + +20030823 + > patch by Philippe Blain: + + move assignments to SP->_cursrow, SP->_curscol into online_mvcur(). + + make baudrate computation in delay_output() consistent with the + assumption in _nc_mvcur_init(), i.e., a byte is 9 bits. + +20030816 + + modify logic in waddch_literal() to take into account zh_TW.Big5 + whose multibyte sequences may contain "printable" characters, e.g., + a "g" in the sequence "\247g" (Debian #204889, cf: 20030621). + + improve storage used by _nc_safe_strcpy() by ensuring that the size + is reset based on the initialization call, in case it were called + after other strcpy/strcat calls (report by Philippe Blain). + > patch by Philippe Blain: + + remove an unused ifdef for REAL_ATTR & WANT_CHAR + + correct a place where _cup_cost was used rather than _cuu_cost + +20030809 + + fix a small memory leak in _nc_free_termtype(). + + close trace-file if trace() is called with a zero parameter. + + free memory allocated for soft-key strings, in delscreen(). + + fix an allocation size in safe_sprintf.c for the "*" format code. + + correct safe_sprintf.c to not return a null pointer if the format + happens to be an empty string. This applies to the "configure + --enable-safe-sprintf" option (Redhat #101486). + +20030802 + + modify casts used for ABSENT_BOOLEAN and CANCELLED_BOOLEAN (report by + Daniel Jacobowitz). + > patch by Philippe Blain: + + change padding for change_scroll_region to not be proportional to + the size of the scroll-region. + + correct error-return in _nc_safe_strcat(). + +20030726 + + correct limit-checks in _nc_scroll_window() (report and test-case by + Thomas Graf cf: 20011020). + + re-order configure checks for _XOPEN_SOURCE to avoid conflict with + _GNU_SOURCE check. + +20030719 + + use clr_eol in preference to blanks for bce terminals, so select and + paste will have fewer trailing blanks, e.g., when using xterm + (request by Vincent Lefevre). + + correct prototype for wunctrl() in manpage. + + add configure --with-abi-version option (discussion with Charles + Wilson). + > cygwin changes from Charles Wilson: + + aclocal.m4: on cygwin, use autodetected prefix for import + and static lib, but use "cyg" for DLL. + + include/ncurses_dll.h: correct the comments to reflect current + status of cygwin/mingw port. Fix compiler warning. + + misc/run_tic.in: ensure that tic.exe can find the uninstalled + DLL, by adding the lib-directory to the PATH variable. + + misc/terminfo.src (nxterm|xterm-color): make xterm-color + primary instead of nxterm, to match XFree86's xterm.terminfo + usage and to prevent circular links. + (rxvt): add additional codes from rxvt.org. + (rxvt-color): new alias + (rxvt-xpm): new alias + (rxvt-cygwin): like rxvt, but with special acsc codes. + (rxvt-cygwin-native): ditto. rxvt may be run under XWindows, or + with a "native" MSWin GUI. Each takes different acsc codes, + which are both different from the "normal" rxvt's acsc. + (cygwin): cygwin-in-cmd.exe window. Lots of fixes. + (cygwinDBG): ditto. + + mk-1st.awk: use "cyg" for the DLL prefix, but "lib" for import + and static libs. + +20030712 + + update config.guess, config.sub + + add triples for configuring shared libraries with the Debian + GNU/FreeBSD packages (patch by Robert Millan ). + +20030705 + + modify CF_GCC_WARNINGS so it only applies to gcc, not g++. Some + platforms have installed g++ along with the native C compiler, which + would not accept gcc warning options. + + add -D_XOPEN_SOURCE=500 when configuring with --enable-widec, to + get mbstate_t declaration on HPUX 11.11 (report by David Ellement). + + add _nc_pathlast() to get rid of casts in _nc_basename() calls. + + correct a sign-extension in wadd_wch() and wecho_wchar() from + 20030628 (report by Tomohiro Kubota). + + work around omission of btowc() and wctob() from wide-character + support (sic) in NetBSD 1.6 using mbtowc() and wctomb() (report by + Gabor Z Papp). + + add portability note to curs_get_wstr.3x (Debian #199957). + +20030628 + + rewrite wadd_wch() and wecho_wchar() to call waddch() and wechochar() + respectively, to avoid calling waddch_noecho() with wide-character + data, since that function assumes its input is 8-bit data. + Similarly, modify waddnwstr() to call wadd_wch(). + + remove logic from waddnstr() which transformed multibyte character + strings into wide-characters. Rewrite of waddch_literal() from + 20030621 assumes its input is raw multibyte data rather than wide + characters (report by Tomohiro Kubota). + +20030621 + + write getyx() and related 2-return macros in terms of getcury(), + getcurx(), etc. + + modify waddch_literal() in case an application passes bytes of a + multibyte character directly to waddch(). In this case, waddch() + must reassemble the bytes into a wide-character (report by Tomohiro + Kubota ). + +20030614 + + modify waddch_literal() in case a multibyte value occupies more than + two cells. + + modify PutAttrChar() to compute the number of character cells that + are used in multibyte values. This fixes a problem displaying + double-width characters (report/test by Mitsuru Chinen + ). + + add a null-pointer check for result of keyname() in _tracechar() + + modify _tracechar() to work around glibc sprintf bug. + +20030607 + + add a call to setlocale() in cursesmain.cc, making demo display + properly in a UTF-8 locale. + + add a fallback definition in curses.priv.h for MB_LEN_MAX (prompted + by discussion with Gabor Z Papp). + + use macros NCURSES_ACS() and NCURSES_WACS() to hide cast needed to + appease -Wchar-subscript with g++ 3.3 (Debian #195732). + + fix a redefinition of $RANLIB in the configure script when libtool + is used, which broke configure on Mac OS X (report by Chris Zubrzycki + ). + + simplify ifdef for bool declaration in curses.h.in (suggested by + Albert Chin-A-Young). + + remove configure script check to allow -Wconversion for older + versions of gcc (suggested by Albert Chin-A-Young). + +20030531 + + regenerated html manpages. + + modify ifdef's in curses.h.in that disabled use of __attribute__() + for g++, since recent versions implement the cases which ncurses uses + (Debian #195230). + + modify _nc_get_token() to handle a case where an entry has no + description, and capabilities begin on the same line as the entry + name. + + fix a typo in ncurses_dll.h reported by gcc 3.3. + + add an entry for key_defined.3x to man_db.renames. + +20030524 + + modify setcchar() to allow converting control characters to complex + characters (report/test by Mitsuru Chinen ). + + add tkterm entry -TD + + modify parse_entry.c to allow a terminfo entry with a leading + 2-character name (report by Don Libes). + + corrected acsc in screen.teraterm, which requires a PC-style mapping. + + fix trace statements in read_entry.c to use lseek() rather than + tell(). + + fix signed/unsigned warnings from Sun's compiler (gcc should give + these warnings, but it is unpredictable). + + modify configure script to omit -Winline for gcc 3.3, since that + feature is broken. + + modify manlinks.sed to add a few functions that were overlooked since + they return function pointers: field_init, field_term, form_init, + form_term, item_init, item_term, menu_init and menu_term. + +20030517 + + prevent recursion in wgetch() via wgetnstr() if the connection cannot + be switched between cooked/raw modes because it is not a TTY (report + by Wolfgang Gutjahr ). + + change parameter of define_key() and key_defined() to const (prompted + by Debian #192860). + + add a check in test/configure for ncurses extensions, since there + are some older versions, etc., which would not compile with the + current test programs. + + corrected demo in test/ncurses.c of wgetn_wstr(), which did not + convert wchar_t string to multibyte form before printing it. + + corrections to lib_get_wstr.c: + + null-terminate buffer passed to setcchar(), which occasionally + failed. + + map special characters such as erase- and kill-characters into + key-codes so those will work as expected even if they are not + mentioned in the terminfo. + + modify PUTC() and Charable() macros to make wide-character line + drawing work for POSIX locale on Linux console (cf: 20021221). + +20030510 + + make typography for program options in manpages consistent (report + by Miloslav Trmac ). + + correct dependencies in Ada95/src/Makefile.in, so the builds with + "--srcdir" work (report by Warren L Dodge). + + correct missing definition of $(CC) in Ada95/gen/Makefile.in + (reported by Warren L Dodge ). + + fix typos and whitespace in manpages (patch by jmc + ). + +20030503 + + fix form_driver() cases for REQ_CLR_EOF, REQ_CLR_EOL, REQ_DEL_CHAR, + REQ_DEL_PREV and REQ_NEW_LINE, which did not ensure the cursor was at + the editing position before making modifications. + + add test/demo_forms and associated test/edit_field.c demos. + + modify test/configure.in to use test/modules for the list of objects + to compile rather than using the list of programs. + +20030419 + + modify logic of acsc to use the original character if no mapping is + defined, noting that Solaris does this. + + modify ncurses 'b' test to avoid using the acs_map[] array since + 20021231 changes it to no longer contain information from the acsc + string. + + modify makefile rules in c++, progs, tack and test to ensure that + the compiler flags (e.g., $CFLAGS or $CCFLAGS) are used in the link + command (report by Jose Luis Rico Botella ). + + modify soft-key initialization to use A_REVERSE if A_STANDOUT would + not be shown when colors are used, i.e., if ncv#1 is set in the + terminfo as is done in "screen". + +20030412 + + add a test for slk_color(), in ncurses.c + + fix some issues reported by valgrind in the slk_set() and slk_wset() + code, from recent rewrite. + + modify ncurses 'E' test to use show previous label via slk_label(), + as in 'e' test. + + modify wide-character versions of NewChar(), NewChar2() macros to + ensure that the whole struct is initialized. + +20030405 + + modify setupterm() to check if the terminfo and terminal-modes have + already been read. This ensures that it does not reinvoke + def_prog_mode() when an application calls more than one function, + such as tgetent() and initscr() (report by Olaf Buddenhagen). + +20030329 + + add 'E' test to ncurses.c, to exercise slk_wset(). + + correct handling of carriage-return in wgetn_wstr(), used in demo of + slk_wset(). + + first draft of slk_wset() function. + +20030322 + + improved warnings in tic when suppressing items to fit in termcap's + 1023-byte limit. + + built a list in test/README showing which externals are being used + by either programs in the test-directory or via internal library + calls. + + adjust include-options in CF_ETIP_DEFINES to avoid missing + ncurses_dll.h, fixing special definitions that may be needed for + etip.h (reported by Greg Schafer ). + +20030315 + + minor fixes for cardfile.c, to make it write the updated fields to + a file when ^W is given. + + add/use _nc_trace_bufcat() to eliminate some fixed buffer limits in + trace code. + +20030308 + + correct a case in _nc_remove_string(), used by define_key(), to avoid + infinite loop if the given string happens to be a substring of other + strings which are assigned to keys (report by John McCutchan). + + add key_defined() function, to tell which keycode a string is bound + to (discussion with John McCutchan ). + + correct keybound(), which reported definitions in the wrong table, + i.e., the list of definitions which are disabled by keyok(). + + modify demo_keydef.c to show the details it changes, and to check + for errors. + +20030301 + + restructured test/configure script, make it work for libncursesw. + + add description of link_fieldtype() to manpage (report by + L Dee Holtsclaw ). + +20030222 + + corrected ifdef's relating to configure check for wchar_t, etc. + + if the output is a socket or other non-tty device, use 1 millisecond + for the cost in mvcur; previously it was 9 milliseconds because the + baudrate was not known. + + in _nc_get_tty_mode(), initialize the TTY buffer on error, since + glibc copies uninitialized data in that case, as noted by valgrind. + + modify tput to use the same parameter analysis as tparm() does, to + provide for user-defined strings, e.g., for xterm title, a + corresponding capability might be + title=\E]2;%p1%s^G, + + modify MKlib_gen.sh to avoid passing "#" tokens through the C + preprocessor. This works around Mac OS X's preprocessor, which + insists on adding a blank on each side of the token (report/analysis + by Kevin Murphy ). + +20030215 + + add configure check for wchar_t and wint_t types, rather than rely + on preprocessor definitions. Also work around for gcc fixinclude + bug which creates a shadow copy of curses.h if it sees these symbols + apparently typedef'd. + + if database is disabled, do not generate run_tic.sh + + minor fixes for memory-leak checking when termcap is read. + +20030208 + + add checking in tic for incomplete line-drawing character mapping. + + update configure script to reflect fix for AC_PROG_GCC_TRADITIONAL, + which is broken in autoconf 2.5x for Mac OS X 10.2.3 (report by + Gerben Wierda ). + + make return value from _nc_printf_string() consistent. Before, + depending on whether --enable-safe-sprintf was used, it might not be + cached for reallocating. + +20030201 + + minor fixes for memory-leak checking in lib_tparm.c, hardscroll.c + + correct a potentially-uninitialized value if _read_termtype() does + not read as much data as expected (report by Wolfgang Rohdewald + ). + + correct several places where the aclocal.m4 macros relied on cache + variable names which were incompatible (as usual) between autoconf + 2.13 and 2.5x, causing the test for broken-linker to give incorrect + results (reports by Gerben Wierda and Thomas Esser + ). + + do not try to open gpm mouse driver if standard output is not a tty; + the gpm library does not make this check (bug report for dialog + by David Oliveira ). + +20030125 + + modified emx.src to correspond more closely to terminfo.src, added + emx-base to the latter -TD + + add configure option for FreeBSD sysmouse, --with-sysmouse, and + implement support for that in lib_mouse.c, lib_getch.c + +20030118 + + revert 20030105 change to can_clear_with(), does not work for the + case where the update is made on cells which are blanks with + attributes, e.g., reverse. + + improve ifdef's to guard against redefinition of wchar_t and wint_t + in curses.h (report by Urs Jansen). + +20030111 + + improve mvcur() by checking if it is safe to move when video + attributes are set (msgr), and if not, reset/restore attributes + within that function rather than doing it separately in the GoTo() + function in tty_update.c (suggested by Philippe Blain). + + add a message in run_tic.in to explain more clearly what does not + work when attempting to create a symbolic link for /usr/lib/terminfo + on OS/2 and other platforms with no symbolic links (report by John + Polterak). + + change several sed scripts to avoid using "\+" since it is not a BRE + (basic regular expression). One instance caused terminfo.5 to be + misformatted on FreeBSD (report by Kazuo Horikawa + (see FreeBSD docs/46709)). + + correct misspelled 'wint_t' in curs_get_wch.3x (Michael Elkins). + +20030105 + + improve description of terminfo operators, especially static/dynamic + variables (comments by Mark I Manning IV ). + + demonstrate use of FIELDTYPE by modifying test/ncurses 'r' test to + use the predefined TYPE_ALPHA field-type, and by defining a + specialized type for the middle initial/name. + + fix MKterminfo.sh, another workaround for POSIXLY_CORRECT misfeature + of sed 4.0 + > patch by Philippe Blain: + + optimize can_clear_with() a little by testing first if the parameter + is indeed a "blank". + + simplify ClrBottom() a little by allowing it to use clr_eos to clear + sections as small as one line. + + improve ClrToEOL() by checking if clr_eos is available before trying + to use it. + + use tputs() rather than putp() in a few cases in tty_update.c since + the corresponding delays are proportional to the number of lines + affected: repeat_char, clr_eos, change_scroll_region. + +20021231 + + rewrite of lib_acs.c conflicts with copying of SCREEN acs_map to/from + global acs_map[] array; removed the lines that did the copying. + +20021228 + + change some overlooked tputs() calls in scrolling code to use putp() + (report by Philippe Blain). + + modify lib_getch.c to avoid recursion via wgetnstr() when the input + is not a tty and consequently mode-changes do not work (report by + ). + + rewrote lib_acs.c to allow PutAttrChar() to decide how to render + alternate-characters, i.e., to work with Linux console and UTF-8 + locale. + + correct line/column reference in adjust_window(), needed to make + special windows such as curscr track properly when resizing (report + by Lucas Gonze ). + > patch by Philippe Blain: + + correct the value used for blank in ClrBottom() (broken in 20000708). + + correct an off-by-one in GoTo() parameter in _nc_scrolln(). + +20021221 + + change several tputs() calls in scrolling code to use putp(), to + enable padding which may be needed for some terminals (patch by + Philippe Blain). + + use '%' as sed substitute delimiter in run_tic script to avoid + problems with pathname delimiters such as ':' and '@' (report by John + Polterak). + + implement a workaround so that line-drawing works with screen's + crippled UTF-8 support (tested with 3.9.13). This only works with + the wide-character support (--enable-widec); the normal library will + simply suppress line-drawing when running in a UTF-8 locale in screen. + +20021214 + + allow BUILD_CC and related configure script variables to be + overridden from the environment. + + make build-tools variables in ncurses/Makefile.in consistent with + the configure script variables (report by Maciej W Rozycki). + + modify ncurses/modules to allow + configure --disable-leaks --disable-ext-funcs + to build (report by Gary Samuelson). + + fix a few places in configure.in which lacked quotes (report by + Gary Samuelson ). + + correct handling of multibyte characters in waddch_literal() which + force wrapping because they are started too late on the line (report + by Sam Varshavchik). + + small fix for CF_GNAT_VERSION to ignore the help-message which + gnatmake adds to its version-message. + > Maciej W Rozycki : + + use AC_CHECK_TOOL to get proper values for AR and LD for cross + compiling. + + use $cross_compiling variable in configure script rather than + comparing $host_alias and $target alias, since "host" is + traditionally misused in autoconf to refer to the target platform. + + change configure --help message to use "build" rather than "host" + when referring to the --with-build-XXX options. + +20021206 + + modify CF_GNAT_VERSION to print gnatmake's version, and to allow for + possible gnat versions such as 3.2 (report by Chris Lingard + ). + + modify #define's for CKILL and other default control characters in + tset to use the system's default values if they are defined. + + correct interchanged defaults for kill and interrupt characters + in tset, which caused it to report unnecessarily (Debian #171583). + + repair check for missing C++ compiler, which is broken in autoconf + 2.5x by hardcoding it to g++ (report by Martin Mokrejs). + + update config.guess, config.sub (2002-11-30) + + modify configure script to skip --with-shared, etc., when the + --with-libtool option is given, since they would be ignored anyway. + + fix to allow "configure --with-libtool --with-termlib" to build. + + modify configure script to show version number of libtool, to help + with bug reports. libtool still gets confused if the installed + ncurses libraries are old, since it ignores the -L options at some + point (tested with libtool 1.3.3 and 1.4.3). + + reorder configure script's updating of $CPPFLAGS and $CFLAGS to + prevent -I options in the user's environment from introducing + conflicts with the build -I options (may be related to reports by + Patrick Ash and George Goffe). + + rename test/define_key.c to test/demo_defkey.c, test/keyok.c to + test/demo_keyok.c to allow building these with libtool. + +20021123 + + add example program test/define_key.c for define_key(). + + add example program test/keyok.c for keyok(). + + add example program test/ins_wide.c for wins_wch() and wins_wstr(). + + modify wins_wch() and wins_wstr() to interpret tabs by using the + winsch() internal function. + + modify setcchar() to allow for wchar_t input strings that have + more than one spacing character. + +20021116 + + fix a boundary check in lib_insch.c (patch by Philippe Blain). + + change type for *printw functions from NCURSES_CONST to const + (prompted by comment by Pedro Palhoto Matos , + but really from a note on X/Open's website stating that either is + acceptable, and the latter will be used in a future revision). + + add xterm-1002, xterm-1003 terminfo entries to demonstrate changes in + lib_mouse.c (20021026) -TD + + add screen-bce, screen-s entries from screen 3.9.13 (report by + Adam Lazur ) -TD + + add mterm terminfo entries -TD + +20021109 + + split-out useful fragments in terminfo for vt100 and vt220 numeric + keypad, i.e., vt100+keypad, vt100+pfkeys, vt100+fnkeys and + vt220+keypad. The last as embedded in various entries had ka3 and + kb2 interchanged (report/discussion with Leonard den Ottolander + ). + + add check in tic for keypads consistent with vt100 layout. + + improve checks in tic for color capabilities + +20021102 + + check for missing/empty/illegal terminfo name in _nc_read_entry() + (report by Martin Mokrejs, where $TERM was set to an empty string). + + rewrote lib_insch.c, combining it with lib_insstr.c so both handle + tab and other control characters consistently (report by Philippe + Blain). + + remove an #undef for KEY_EVENT from curses.tail used in the + experimental NCURSES_WGETCH_EVENTS feature. The #undef confuses + dpkg's build script (Debian #165897). + + fix MKlib_gen.sh, working around the ironically named POSIXLY_CORRECT + feature of GNU sed 4.0 (reported by Ervin Nemeth ). + +20021026 + + implement logic in lib_mouse.c to handle position reports which are + generated when XFree86 xterm is initialized with private modes 1002 + or 1003. These are returned to the application as the + REPORT_MOUSE_POSITION mask, which was not implemented. Tested both + with ncurses 'a' menu (prompted by discussion with Larry Riedel + ). + + modify lib_mouse.c to look for "XM" terminfo string, which allows + one to override the escape sequence used to enable/disable mouse + mode. In particular this works for XFree86 xterm private modes + 1002 and 1003. If "XM" is missing (note that this is an extended + name), lib_mouse uses the conventional private mode 1000. + + correct NOT_LOCAL() macro in lib_mvcur.c to refer to screen_columns + where it used screen_lines (report by Philippe Blain). + + correct makefile rules for the case when both --with-libtool and + --with-gpm are given (report by Mr E_T ). + + add note to terminfo manpage regarding the differences between + setaf/setab and setf/setb capabilities (report by Pavel Roskin). + +20021019 + + remove redundant initialization of TABSIZE in newterm(), since it is + already done in setupterm() (report by Philippe Blain). + + add test/inserts.c, to test winnstr() and winsch(). + + replace 'sort' in dist.mk with script that sets locale to POSIX. + + update URLs in announce.html.in (patch by Frederic L W Meunier). + + remove glibc add-on files, which are no longer needed (report by + Frederic L W Meunier). + +20021012 5.3 release for upload to ftp.gnu.org + + modify ifdef's in etip.h.in to allow the etip.h header to compile + with gcc 3.2 (patch by Dimitar Zhekov ). + + add logic to setupterm() to make it like initscr() and newterm(), + by checking for $NCURSES_TRACE environment variable and enabling + the debug trace in that case. + + modify setupterm() to ensure that it initializes the baudrate, for + applications such as tput (report by Frank Henigman). + + modify definition of bits used for command-line and library debug + traces to avoid overlap, using new definition TRACE_SHIFT to relate + the two. + + document tput's interpretation of parameterized strings according to + whether parameters are given, etc. (discussion with Robert De Bath). + +20021005 pre-release + + correct winnwstr() to account for non-character cells generated when + a double-width character is added (report by Michael Bienia + ). + + modify _nc_viswbuf2n() to provide better results using wctomb(). + + correct logic in _nc_varargs() which broke tracing of parameters for + formats such as "%.*s". + + correct scale factor in linux-c and linux-c-nc terminfo entries + (report Floyd Davidson). + + change tic -A option to -t, add the same option to infocmp for + consistency. + + correct "%c" implementation in lib_tparm.c, which did not map a null + character to a 128 (cf: 980620) (patch by Frank Henigman + ). + +20020928 pre-release + + modify MKkey_defs.sh to check for POSIX sort -k option, use that if + it is found, to accommodate newer utility which dropped the + compatibility support for +number options (reported by Andrey A + Chernov). + + modify linux terminfo entry to use color palette feature from + linux-c-nc entry (comments by Tomasz Wasiak and Floyd Davidson). + + restore original color definitions in endwin() if init_color() was + used, and resume those colors on the next doupdate() or refresh() + (report by Tomasz Wasiak ). + + improve debug-traces by modifying MKlib_gen.sh to generate calls + to returnBool() and returnAttr(). + + add/use _nc_visbufn() and _nc_viswbufn() to limit the debug trace + of waddnstr() and similar functions to match the parameters as used. + + add/use _nc_retrace_bool() and _nc_retrace_unsigned(). + + correct type used by _nc_retrace_chtype(). + + add debug traces to some functions in lib_mouse.c + + modify lib_addch.c to handle non-spacing characters. + + correct parameter of RemAttr() in lib_bkgd.c, which caused the c++ + demo's boxes to lose the A_ALTCHARSET flag (broken in 20020629). + + correct width computed in _tracedump(), which did not account for + the attributes (broken in 20010602). + + modify test/tracemunch to replace addresses for windows other than + curscr, newscr and stdscr with window0, window1, etc. + +20020921 pre-release + + redid fix for edit_man.sed path. + + workaround for Cygwin bug which makes subprocess writes to stdout + result in core dump. + + documented getbegx(), etc. + + minor fixes to configure script to use '%' consistently as a sed + delimiter rather than '@'. + > patch by Philippe Blain: + + add check in lib_overlay.c to ensure that the windows to be merged + actually overlap, and in copywin(), limit the area to be touched + to the lines given for the destination window. + +20020914 pre-release + + modified curses.h so that if the wide-character version is installed + overwriting /usr/include/curses.h, and if it relied on libutf8.h, + then applications that use that header for wide-character support + must define HAVE_LIBUTF8_H. + + modify putwin(), getwin() and dupwin() to allow them to operate on + pads (request by Philippe Blain). + + correct attribute-merging in wborder(), broken in 20020216 (report + by Tomasz Wasiak ). + > patch by Philippe Blain: + + corrected pop-counts in tparam_internal() to '!' and '~' cases. + + use sizeof(NCURSES_CH_T) in one place that used sizeof(chtype). + + remove some unused variables from mvcur test-driver. + +20020907 pre-release + + change configure script to allow install of widec-character + (ncursesw) headers to overwrite normal (ncurses) headers, since the + latter is a compatible subset of the former. + + fix path of edit_man.sed in configure script, needed to regenerate + html manpages on Debian. + + fix mismatched enums in vsscanf.c, which caused warning on Solaris. + + update README.emx to reflect current patch used for autoconf. + + change web- and ftp-site to invisible-island.net + > patch by Philippe Blain: + + change case for 'P' in tparam_internal() to indicate that it pops + a variable from the stack. + + correct sense of precision and width in parse_format(), to avoid + confusion. + + modify lib_tparm.c, absorb really_get_space() into get_space(). + + modify getwin() and dupwin() to copy the _notimeout, _idlok and + _idcok window fields. + + better fix for _nc_set_type(), using typeMalloc(). + +20020901 pre-release + + change minor version to 3, i.e., ncurses 5.3 + + update config.guess, config.sub + + retest build with each configure option; minor ifdef fixes. + + make keyname() return a null pointer rather than "UNKNOWN STRING" to + match XSI. + + modify handling of wide line-drawing character functions to use the + normal line-drawing characters when not in UTF-8 locale. + + add check/fix to comp_parse.c to suppress warning about missing acsc + string. This happens in configurations where raw termcap information + is processed; tic already does this and other checks. + + modify tic's check for ich/ich1 versus rmir/smir to only warn about + ich1, to match xterm patch #70 notes. + + moved information for ripped-off lines into SCREEN struct to allow + use in resizeterm(). + + add experimental wgetch_events(), ifdef'd with NCURSES_WGETCH_EVENTS + (adapted from patch by Ilya Zakharevich - see ncurses/README.IZ). + + amend check in kgetch() from 20020824 to look only for function-keys, + otherwise escape sequences are not resolved properly. + > patch by Philippe Blain: + + removed redundant assignment to SP->_checkfd from newterm(). + + check return-value of setupterm() in restartterm(). + + use sizeof(NCURSES_CH_T) in a few places that used sizeof(chtype). + + prevent dupwin() from duplicating a pad. + + prevent putwin() from writing a pad. + + use typeRealloc() or typeMalloc() in preference to direct calls on + _nc_doalloc(). + +20020824 + + add a check in kgetch() for cooked characters in the fifo to avoid + calling fifo_push() when a KEY_RESIZE is available (report/analysis + by Sam Varshavchik ). + + fix an overlooked case for bugzilla #68199 (Philippe Blain). + + ensure clearerr() is called before using ferror() e.g., in + lib_screen.c (report by Philippe Blain). + +20020817 + + modify lib_screen.c and lib_newwin.c to maintain the SCREEN-specific + pointers for curscr/stdscr/newscr when scr_save() and scr_restore() + modify the global curscr/stdscr/newscr variables. Fixes Redhat + bugzilla #68199 dated 2002-07-07. + + add checks for null pointer in calls to tparm() and tgoto() based on + FreeBSD bug report. If ncurses were built with termcap support, and + the first call to tgoto() were a zero-length string, the result would + be a null pointer, which was not handled properly. + + correct a typo in terminfo.head, which gave the octal code for colon + rather than comma. + + remove the "tic -u" option from 20020810, since it did not account + for nested "tc=" clauses, and when that was addressed, was still + unsatisfactory. + +20020810 + + add tic -A option to suppress capabilities which are commented out + when translating to termcap. + + add tic -u option to provide older behavior of "tc=" clauses. + + modified tic to expand all but the final "tc=" clause in a termcap + entry, to accommodate termcap libraries which do not handle multiple + tc clauses. + + correct typo in curs_inopts.3x regarding CS8/CS7 usage (report by + Philippe Blain). + + remove a couple of redundant uses of A_ATTRIBUTES in expressions + using AttrOf(), which already incorporates that mask (report by + Philippe Blain). + + document TABSIZE variable. + + add NCURSES_ASSUMED_COLORS environment variable, to allow users to + override compiled-in default black-on-white assumption used in + assume_default_colors(). + + correct an off-by-one comparison against max_colors in COLORFGBG + logic. + + correct a use of uninitialized memory found by valgrind (reported by + Olaf Buddenhagen ). + + modified wresize() to ensure that a failed realloc will not corrupt + the window structure, and to make subwindows fit within the resized + window (completes Debian #87678, #101699) + +20020803 + + fix an off-by-one in lib_pad.c check for limits of pad (patch by + Philippe Blain). + + revise logic for BeOS in lib_twait.c altered in 20011013 to restore + logic used by lib_getch.c's support for GPM or EMX mouse (report by + Philippe Blain) + + remove NCURSES_CONST from several prototypes in curses.wide, to make + the --enable-const --enable-widec configure options to work together + (report by George Goffe ). + +20020727 + + finish no-leak checking in cardfile.c, using this for testing changes + to resizeterm(). + + simplify _nc_freeall() using delscreen(). + +20020720 + + check error-return from _nc_set_tty_mode() in _nc_initscr() and + reset_prog_mode() (report/patch by Philippe Blain). + + regenerate configure using patch for autoconf 2.52, to address + problem with identifying C++ bool type. + + correct/improve logic to produce an exit status for errors in tput, + which did not exit with an error when told to put a string not in the + current terminfo entry (report by David Gomez ). + + modify configure script AC_OUTPUT() call to work around defect in + autoconf 2.52 which adds an ifdef'd include to the generated + configure definitions. + + remove fstat() check from scr_init(), which also fixes a missing + include for from 20020713 (reported by David Ellement, + fix suggested by Philippe Blain). + + update curs_scanw.3x manpage to note that XSI curses differs from + SVr4 curses: return-values are incompatible. + + correct several prototypes in manpages which used const + inconsistently with the curses.h file, and removed spurious const's + in a few places from curses.h, e.g., for wbkgd() (report by Glenn + Maynard ). + + change internal type used by tparm() to long, to work with LP64 model. + + modify nc_alloc.h to allow building with g++, for testing. + +20020713 + + add resize-handling to cardfile.c test program. + + altered resizeterm() to avoid having it fail when a child window + cannot be resized because it would be larger than its parent. (More + work must be done on this, but it works well enough to integrate). + + improve a limit-check in lib_refresh.c + + remove check in lib_screen.c relating dumptime to file's modification + times, since that would not necessarily work for remotely mounted + filesystems. + + modify lrtest to simplify debugging changes to resizeterm, e.g., + t/T commands to enable/disable tracing. + + updated status of multibyte support in TO-DO. + + update contact info in source-files (patch by Juergen Pfeifer). + +20020706 + + add Caps.hpux11, as an example. + + modify version_filter(), used to implement -R option for tic and + infocmp, to use computed array offsets based on the Caps.* file which + is actually configured, rather than constants which correspond to + the Caps file. + + reorganized lib_raw.c to avoid updating SP and cur_term state if the + functions fail (reported by Philippe Blain). + + add -Wundef to gcc warnings, adjust a few ifdef's to accommodate gcc. + +20020629 + + correct parameters to setcchar() in ncurses.c (cf: 20020406). + + set locale in most test programs (view.c and ncurses.c were the + only ones). + + add configure option --with-build-cppflags (report by Maksim A + Nikulin ). + + correct a typo in wide-character logic for lib_bkgnd.c (Philippe + Blain). + + modify lib_wacs.c to not cancel the acsc, smacs, rmacs strings when + in UTF-8 locale. Wide-character functions use Unicode values, while + narrow-character functions use the terminfo data. + + fix a couple of places in Ada95/samples which did not compile with + gnat 3.14 + + modify mkinstalldirs so the DOS-pathname case is locale-independent. + + fix locale problem in MKlib_gen.sh by forcing related variables to + POSIX (C), using same approach as autoconf (set variables only if + they were set before). Update MKterminfo.sh and MKtermsort.sh to + match. + +20020622 + + add charset to generated html. + + add mvterm entry, adapted from a FreeBSD bug-report by Daniel Rudy + -TD + + add rxvt-16color, ibm+16color entries -TD + + modify check in --disable-overwrite option so that it is used by + default unless the --prefix/$prefix value is not /usr, in attempt to + work around packagers, e.g., for Sun's freeware, who do not read the + INSTALL notes. 20020615 + modify wgetch() to allow returning ungetch'd KEY_RESIZE as a function @@ -90,7 +2485,7 @@ Changes since 1.9.9e are recorded by Thomas Dickey. can be linked. 20020413 - + add manpages: curs_get_wstr.3x, curs_in_wchstr.3x + + add manpages: curs_get_wstr.3x, curs_in_wchstr.3x + implement wgetn_wstr(). + implement win_wchnstr(). + remove redefinition of unget_wch() in lib_gen.c (reported by @@ -98,7 +2493,7 @@ Changes since 1.9.9e are recorded by Thomas Dickey. 20020406 + modified several of the test programs to allow them to compile with - vendor curses implementations (Solaris, AIX). + vendor curses implementations, e.g., Solaris, AIX -TD 20020323 + modified test/configure to allow configuring against ncursesw. @@ -130,7 +2525,8 @@ Changes since 1.9.9e are recorded by Thomas Dickey. + implement key_name(). + remove const's in lib_box.c incorrectly leftover after splitting off lib_box_set.c - + update llib-lncurses, llib-ncursesw, fix configure script related to these. + + update llib-lncurses, llib-ncursesw, fix configure script related to + these. 20020218 + remove quotes on "SYNOPSIS" in man/curs_box_set.3x, which resulted @@ -152,7 +2548,7 @@ Changes since 1.9.9e are recorded by Thomas Dickey. options. > patch by Sven Verdoolaege (report by Gerhard Haering ): - + correct typos in definitions of several wide-character macros: + + correct typos in definitions of several wide-character macros: waddwstr, wgetbkgrnd, mvaddwstr, mvwadd_wchnstr, mvwadd_wchnstr, mvwaddwstr. + pass $(CPPFLAGS) to MKlib_gen.sh, thereby fixing a missing definition @@ -199,7 +2595,7 @@ Changes since 1.9.9e are recorded by Thomas Dickey. to rename manpages, broken in 20010324 fix for Debian #89939 (Debian #78866). + remove -L$(libdir) from linker flags, probably not needed any more - since HPUX is handled properly (reported by NIIBE Yutaka + since HPUX is handled properly (reported by Niibe Yutaka ). + add configure check for mbstate_t, needed for wide-character configuration. On some platforms we must include to @@ -314,7 +2710,7 @@ Changes since 1.9.9e are recorded by Thomas Dickey. in the C++ runtime. + modify the build to name dynamic libraries according to the convention used on OS X and Darwin. Rather than something like - libncurses.dylib.5.2, Darwin would name it libncurses. 5.dylib. + libncurses.dylib.5.2, Darwin would name it libncurses. 5.dylib. There are a few additional minor fixes, such as setting the library version and compatibility version numbers (patch by Jason Evans ). @@ -399,7 +2795,7 @@ Changes since 1.9.9e are recorded by Thomas Dickey. 20011001 + simpler fix for signal_name(), to replace the one overlooked in 20010929 (reported by Larry Virden). - + 20010929 + add -i option to view.c, to test ncurses' check for non-default signal handler for SIGINT, etc. @@ -732,7 +3128,7 @@ Changes since 1.9.9e are recorded by Thomas Dickey. + add a missing pathname for ncurses_dll.h, needed when building in a directory outside the source tree (patch by Sven Verdoolaege ). - > fix 2 bugs in test/bs.c (patch by Erik Sigra ): + > fix 2 bugs in test/bs.c Erik Sigra : + no ships were ever placed in the last row or in the last column. This made the game very easy to win, because you never had to waste any shots there, but the computer did. @@ -746,7 +3142,7 @@ Changes since 1.9.9e are recorded by Thomas Dickey. + modify screen's terminfo entry to match the khome/kend in screen 3.09.08 (Debian bug report #92215). + correct a memory leak in forms library (report by Stefan Vogtner - , patch by Juergen Pfeifer). + ) (patch by Juergen Pfeifer). 20010324 + change symbols used to guard against repeated includes to begin @@ -861,7 +3257,7 @@ Changes since 1.9.9e are recorded by Thomas Dickey. + add ncurses_dll.h and related definitions to support generating DLL's with cygwin (adapted from a patch by Charles Wilson , changed NCURSES_EXPORT macro to make it - work with 'indent'). + work with 'indent') -TD 20001202 + correct prototypes for some functions in curs_termcap.3x, matching @@ -991,12 +3387,12 @@ Changes since 1.9.9e are recorded by Thomas Dickey. + correct logic for 'reverse' variable in lib_vidattr.c, which was setting it true without checking if newmode had A_REVERSE set, e.g., using $TERM=ansi on OS/2 EMX (see 20000917). - > patch by Todd Miller: + > patch by Todd C Miller: + add a few missing use_terminfo_vars() and fixes up _nc_tgetent(). Previously, _nc_cgetset() would still get called on cp so the simplest thing is to set cp to NULL if !use_terminfo_vars(). + added checks for an empty $HOME environment variable. - > patches by Ilya Zakharevich for OS/2 EMX: + > patches for OS/2 EMX (Ilya Zakharevich): + modify convert_configure.pl to support INSTALL. Change compiler options in that script to use multithreading, needed for the mouse. + modify OS/2 mouse support, retrying as a 2-button mouse if code fails @@ -1053,9 +3449,9 @@ Changes since 1.9.9e are recorded by Thomas Dickey. 20000923 + modify rs2 capability in xterm-r6 and similar where cursor - save/restore bracketed the sequence for resetting video attributes. - The cursor restore would undo that (from a NetBSD bug report by John - Hawkinson ). + save/restore bracketed the sequence for resetting video attributes. + The cursor restore would undo that (report by John Hawkinson + (see NetBSD misc/11052)). + using parameter check added to tic, corrected 27 typos in terminfo.src -TD + modify tic to verify that its inputs are really files, in case @@ -1344,8 +3740,8 @@ Changes since 1.9.9e are recorded by Thomas Dickey. the subwindow's background color cover the subwindow. + modify configure script so AC_MSG_ERROR is temporarily defined to a warning in AC_PROG_CXX to make it recover from a missing C++ compiler - without requiring user to add --without-cxx option (from comment by - Akim Demaille to autoconf mailing list). + without requiring user to add --without-cxx option (adapted from + comment by Akim Demaille to autoconf mailing list). + modify headers.sh to avoid creating temporary files in the build directory when installing headers (reported by Sergei Pokrovsky ) @@ -1359,8 +3755,8 @@ Changes since 1.9.9e are recorded by Thomas Dickey. if -fPIC is supported by gcc rather than -fpic. The former option allows larger symbol tables. + update config.guess and config.sub (patches by - Kevin Buettner for elf64_ia64 - Bernd Kuemmerlen and MacOS X). + Kevin Buettner (for elf64_ia64), + Bernd Kuemmerlen (for MacOS X)). + add warning for 'tic -cv' about use of '^?' in terminfo source, which is an extension. @@ -1388,13 +3784,13 @@ Changes since 1.9.9e are recorded by Thomas Dickey. LANG contain the string "UTF-8", this driver will be used to translate the output to UTF-8. This works with XFree86 xterm. + modify configure script to allow building shared libraries on BeOS - (from a patch by by Valeriy E Ushakov). + (from a patch by Valeriy E Ushakov). + modify lib_addch.c to allow repeated update to the lower-right corner, rather than displaying only the first character written until the cursor is moved. Recent versions of SVr4 curses can update the lower-right corner, and behave this way (reported by Neil Zanella). + add a limit-check in _nc_do_color(), to avoid using invalid color - pair value (from bug report by Brendan O'Dea ). + pair value (report by Brendan O'Dea ). 20000513 + the tack program knows how to use smcup and rmcup but the "show caps @@ -1448,10 +3844,10 @@ Changes since 1.9.9e are recorded by Thomas Dickey. + corrections/updates for some IBM terminfo entries -TD + modify _nc_screen_wrap() so that when exiting curses mode with non-default colors, the last line on the screen will be cleared to - the screen's default colors (request by Alexander Lukyanov). + the screen's default colors (request by Alexander V Lukyanov). + modify ncurses.c 'r' example to set nonl(), allowing control/M to be read for demonstrating the REQ_NEW_LINE operation (prompted by a - question by Tony L Keith" ). + question by Tony L Keith ). + modify ncurses.c 'r' example of field_info() to work on Solaris 2.7, documented extension of ncurses which allows a zero pointer. + modify fmt_complex() to avoid buffer overflow in case of excess @@ -1486,7 +3882,7 @@ Changes since 1.9.9e are recorded by Thomas Dickey. + improve logic in _nc_do_color() implementing assume_default_colors() by passing in previous color pair info to eliminate redundant call to set_original_colors(). (Part of this is from a patch by Alexander - Lukyanov). + V Lukyanov). + modify warning in _nc_trans_string() about a possibly too-long string to do this once only rather than for each character past the threshold (600). Change interface of _nc_trans_string() to allow @@ -1505,7 +3901,7 @@ Changes since 1.9.9e are recorded by Thomas Dickey. 20000318 + revert part of the vt220 change (request by Todd C Miller). - + add ansi-* terminfo entries from Eric's version. + + add ansi-* terminfo entries from ESR's version. + add -a option to tic and infocmp, which retains commented-out capabilities during source translation/comparison, e.g., captoinfo and infotocap. @@ -1534,9 +3930,9 @@ Changes since 1.9.9e are recorded by Thomas Dickey. keeping the existing format as the default, though not retaining the previous behavior that made the -F option compare each entry to itself. - + adapted patch by Eric Raymond to make infocmp -F less verbose + + adapted patch by ESR to make infocmp -F less verbose -TD (the submitted patch was unusable because it did not compile - properly): + properly) + modify write_entry.c to ensure that absent or cancelled booleans are written as FALSE, for consistency with infocmp which now assumes this. Note that for the small-core configuration, tic @@ -1602,8 +3998,8 @@ Changes since 1.9.9e are recorded by Thomas Dickey. 20000219 + store default-color code consistently as C_MASK, even if given as - -1 for convenience (adapted from patches by Alexander Lukyanov). - > patches by Alexander Lukyanov: + -1 for convenience (adapted from patches by Alexander V Lukyanov). + > patches by Alexander V Lukyanov: + change can_clear_with() macro to accommodate logic for assume_default_colors(), making most of the FILL_BCE logic unnecessary. Made can_clear_with() an inline function to make it @@ -1612,7 +4008,7 @@ Changes since 1.9.9e are recorded by Thomas Dickey. 20000212 + corrected form of recent copyright dates. + minor corrections to xterm-xf86-v333 terminfo entry -TD - > patches by Alexander Lukyanov: + > patches by Alexander V Lukyanov: + reworded dft_fgbg.3x to avoid assuming that the terminal's default colors are white on black. + fix initialization of tstLine so that it is filled with current blank @@ -1635,7 +4031,7 @@ Changes since 1.9.9e are recorded by Thomas Dickey. + correct CF_MATH_LIB parameter, must be sin(x), not sqrt(x). 20000122 - + resync CF_CHECK_ERRNO and CF_LIB_PREFIX macros from tin and xterm. + + resync CF_CHECK_ERRNO and CF_LIB_PREFIX macros from tin and xterm -TD + modify CF_MATH_LIB configure macro to parameterize the test function used, for reuse in dialog and similar packages. + correct tests for file-descriptors in OS/2 EMX mouse support. A @@ -1688,12 +4084,12 @@ Changes since 1.9.9e are recorded by Thomas Dickey. found an incomplete entry such as "dumb" because it did not initialize its buffer for _nc_read_file_entry(). + use -fPIC rather than -fpic for shared libraries on Linux, not - needed for i386 but some ports (from Debian diffs for 5.0). + needed for i386 but some ports (from Debian diffs for 5.0) -TD + use explicit VALID_NUMERIC() checks in a few places that had been overlooked, and add a check to ensure that init_tabs is nonzero, to avoid divide-by-zero (reported by Todd C Miller). + minor fix for CF_ANSI_CC_CHECK configure macro, for HPUX 10.x (from - tin). + tin) -TD 19991218 + reorder tests during mouse initialization to allow for gpm to run in @@ -1863,10 +4259,10 @@ Changes since 1.9.9e are recorded by Thomas Dickey. 991002 pre-release + minor fixes for _nc_msec_cost(), color_content(), pair_content(), _nc_freewin(), ClrBottom() and onscreen_mvcur() (analysis by Philippe - Blain, comments by Alexander Lukyanov). + Blain, comments by Alexander V Lukyanov). + simplify definition of PANEL and eliminate internal functions _nc_calculate_obscure(), _nc_free_obscure() and _nc_override(), - (patch by Juergen Pfeifer, based on analysis by Philippe Blain + (patch by Juergen Pfeifer, analysis by Philippe Blain )). + change renaming of dft_fgbg.3x to use_default_colors.3ncurses in man_db.renames, since Debian is not concerned with 14-character @@ -1905,8 +4301,8 @@ Changes since 1.9.9e are recorded by Thomas Dickey. + add top-level uninstall.data and uninstall.man makefile rules. + correct logic of CF_LINK_FUNCS configure script, from BeOS changes so that hard-links work on Unix again. - + change default value of cf_cv_builtin_bool to 1 as suggested by - Jeremy Buhler, making it less likely that a conflicting declaration + + change default value of cf_cv_builtin_bool to 1 (suggested by + Jeremy Buhler), making it less likely that a conflicting declaration of bool will be seen when compiling with C++. 990911 pre-release @@ -1929,9 +4325,9 @@ Changes since 1.9.9e are recorded by Thomas Dickey. for libg++, since qt uses the same filename incompatibly. + correct logic of lib_termcap.c tgetstr function, which did not copy the result to the buffer parameter. Testing shows Solaris does - update this, though of course tgetent's buffer is untouched (from - mpc.lists.freebsd.current newsgroup item by Peter Edwards - ). + update this, though of course tgetent's buffer is untouched (reported + in Peter Edwards in + mpc.lists.freebsd.current newsgroup. + corrected beterm terminfo entry, which lists some capabilities which are not actually provided by the BeOS Terminal. + add special logic to replace select() calls on BeOS, whose select() @@ -2064,10 +4460,10 @@ Changes since 1.9.9e are recorded by Thomas Dickey. + fix some compiler warnings in tack. + add a check for predefined bool type in CC, based on report that BeOS predefines a bool type. - + correct logic for infocmp -e option (i.e., the configure - --with-fallbacks option), which I'd not updated when implementing - extended names (cf: 990301). The new implementation adds a -E - option to infocmp. + + correct logic for infocmp -e option, i.e., the configure + --with-fallbacks option, which I'd not updated when implementing + extended names (cf: 990301). The new implementation adds a "-E" + option to infocmp -TD > patch by Juergen Pfeifer: + introduce the private type Curses_Bool in the Ada95 binding implementation. This is to clearly represent the use of "bool" also @@ -2096,8 +4492,8 @@ Changes since 1.9.9e are recorded by Thomas Dickey. + add a null-pointer check for SP in lib_vidattr.c to logic that checks for magic cookies. + improve fallback declaration of 'bool' when the --without-cxx option - is given, by using a 'char' on i386 and related hosts (from - discussion with Alexander Lukyanov). + is given, by using a 'char' on i386 and related hosts (prompted by + discussion with Alexander V Lukyanov). 990605 pre-release + include time.h in lib_napms.c if nanosleep is used (patch by @@ -2165,7 +4561,7 @@ Changes since 1.9.9e are recorded by Thomas Dickey. + add sigismember() to base/sigaction.c compatibility to link on NeXT (reported by Francisco A. Tomei Torres). + further refinements to inequality in hashmap.c to cover a case with - ^U in nvi (patch by Alexander Lukyanov). + ^U in nvi (patch by Alexander V Lukyanov). 990316 pre-release + add fallback definition for getcwd, to link on NeXT. @@ -2173,12 +4569,12 @@ Changes since 1.9.9e are recorded by Thomas Dickey. (reported by Francisco A. Tomei Torres). + change inequality in hashmap.c which checks the distance traveled by a chunk so that ^D command in nvi (scrolls 1/2 screen) will use - scrolling logic (patch by Alexander Lukyanov, reported by Jeffrey + scrolling logic (patch by Alexander V Lukyanov, reported by Jeffrey C Honig). 990314 pre-release + modify lib_color.c to handle a special case where the curscr - attributes have been made obsolete (patch by Alexander Lukyanov). + attributes have been made obsolete (patch by Alexander V Lukyanov). + update BSD/OS console terminfo entries to use klone+sgr and klone+color (patch by Jeffrey C Honig). + update glibc addon configure script for extended capabilities. @@ -2190,7 +4586,7 @@ Changes since 1.9.9e are recorded by Thomas Dickey. + correct typos in linux-c initc string - TD + add 'crt' terminfo entry, update xterm-xfree86 entry - TD + remove a spurious argument to tparm() in lib_sklrefr.c (patch by - Alexander Lukyanov). + Alexander V Lukyanov). 990307 pre-release + back-out change to wgetch because it causes a problem with ^Z @@ -2231,7 +4627,7 @@ Changes since 1.9.9e are recorded by Thomas Dickey. + modify define_key() to allow multiple strings to be bound to the same keycode. + correct logic error in _nc_remove_string, from 990220. - > patch by Juergen Pfeifer, for Ada95 binding: + > patch for Ada95 binding (Juergen Pfeifer): + regenerate some of the html documentation + minor cleanup in terminal_interface-curses.adb @@ -2252,8 +4648,8 @@ Changes since 1.9.9e are recorded by Thomas Dickey. comp_parse.c into the tic program. + add/use _nc_trace_tries() to show the function keys that will be recognized. - + rename init_acs to _nc_init_acs (request by Alexander Lukyanov). - > patch by Juergen Pfeifer, for Ada95 binding: + + rename init_acs to _nc_init_acs (request by Alexander V Lukyanov). + > patch for Ada95 binding (Juergen Pfeifer): + remove all the *_adabind.c from ncurses, menu and form projects. Those little helper routines have all been implemented in Ada and are no longer required. @@ -2280,7 +4676,7 @@ Changes since 1.9.9e are recorded by Thomas Dickey. in smcup/rmcup. This affects only scrolling optimization, to fix a problem reported by several people with xterm's alternate screen, though the problem is more general. - > patch by Juergen Pfeifer, for Ada95 binding: + > patch for Ada95 binding (Juergen Pfeifer): + removed all pragma Preelaborate() stuff, because the just released gnat-3.11p complains on some constructs. + fixed some upper/lower case notations because gnat-3.11p found @@ -2291,17 +4687,17 @@ Changes since 1.9.9e are recorded by Thomas Dickey. 990130 + cache last result from _nc_baudrate, for performance (suggested by - Alexander Lukyanov). + Alexander V Lukyanov). + modify ClrUpdate() function to workaround a problem in nvi, which uses redrawwin in SIGTSTP handling. Jeffrey C Honig reported that ncurses repainted the screen with nulls before resuming normal - operation (patch by Alexander Lukyanov). + operation (patch by Alexander V Lukyanov). + generalize is_xterm() function a little by letting xterm/rxvt/kterm be any substring rather than the prefix. + modify lib_data.c to initialize SP. Some linkers, e.g., IBM's, will not link a module if the only symbols exported from the module are - uninitialized ones (patch by Ilya Zakharevich, who says that he has - seen messages claiming this behaviour conforms to the standard.) + uninitialized ones (patch by Ilya Zakharevich). Ilya says that he + has seen messages claiming this behavior conforms to the standard.) + move call on _nc_signal_handler past _nc_initscr, to avoid a small window where Nttyb hasn't yet been filled (reported by Klaus Weide). + modify lib_tstp.c to block SIGTTOU when handling SIGTSTP, fixes a @@ -2350,7 +4746,7 @@ Changes since 1.9.9e are recorded by Thomas Dickey. + reviewed/corrected macros in curses.h as per XSI document. + provide support for termcap PC variable by copying it from terminfo data and using it as the padding character in tputs (reported by - Alexander Lukyanov). + Alexander V Lukyanov). + corrected iris-ansi and iris-ansi-ap terminfo entries for kent and kf9-kf12 capabilities, as well as adding kcbt. + document the mouse handling mechanism in menu_driver and make a small @@ -2369,7 +4765,7 @@ Changes since 1.9.9e are recorded by Thomas Dickey. 990102 + disable scroll hints when hashmap is enabled (patch by Alexander - Lukyanov). + V Lukyanov). + move logic for tic's verify of -e option versus -I and -C so that the terminfo data is not processed if we cannot handle -e (reported by Steven Schwartz . @@ -2380,8 +4776,8 @@ Changes since 1.9.9e are recorded by Thomas Dickey. set ospeed, the library behaves as before, except that _nc_timed_wait is no longer used, or needed, since ospeed always has a value. But the application can modify ospeed to adjust the output of padding - characters (from a bug report for screen 3.7.6 and email from Michael - Schroeder ). + characters (prompted by a bug report for screen 3.7.6 and email from + Michael Schroeder ). + removed some unused ifdef's as part of Alexander's restructuring. + reviewed/updated curses.h, term.h against X/Open Curses Issue 4 Version 2. This includes making some parameters NCURSES_CONST @@ -2406,8 +4802,8 @@ Changes since 1.9.9e are recorded by Thomas Dickey. 981219 + modify _nc_set_writedir() to set a flag in _nc_tic_dir() to prevent it from changing the terminfo directory after chdir'ing to it. - Otherwise, a relative path in $TERMINFO would confuse tic (from a - Debian bug report). + Otherwise, a relative path in $TERMINFO would confuse tic (prompted + by a Debian bug report). + correct/update ncsa terminfo entry (report by Larry Virden). + update xterm-xfree86 terminfo to current (patch 90), smcur/rmcur changes @@ -2494,9 +4890,9 @@ Changes since 1.9.9e are recorded by Thomas Dickey. 981114 + modify install-script for manpages to skip over .orig and .rej files (request by Larry Virden). - > patches/discussion by Alexander Lukyanov: + > patches/discussion by Alexander V Lukyanov: + move base-library sources into ncurses/base and tty (serial terminal) - sources into ncurses/tty, as part of Alexander Lukyanov's proposed + sources into ncurses/tty, as part of Alexander V Lukyanov's proposed changes to ncurses library. + copy _tracemouse() into ncurses.c so that lib_tracemse.c need not be linked into the normal ncurses library. @@ -2512,8 +4908,8 @@ Changes since 1.9.9e are recorded by Thomas Dickey. + ifdef'd out lib_freeall.c when not configured. + rename _tracebits() to _nc_tracebits(). + move terminfo-library sources into ncurses/tinfo, and trace-support - functions into ncurses/trace as part of Alexander Lukyanov's proposed - changes to ncurses library. + functions into ncurses/trace as part of Alexander V Lukyanov's + proposed changes to ncurses library. + modify generated term.h to always specify its own definitions for HAVE_TERMIOS_H, etc., to guard against inclusion by programs with broken configure scripts. @@ -2639,7 +5035,7 @@ Changes since 1.9.9e are recorded by Thomas Dickey. + add xtermm and xtermc terminfo entries. > from esr's terminfo version: + Added Francesco Potorti's tuned Wyse 99 entries. - + dtterm enacs correction from Alexander V Lukyanov. + + dtterm enacs (from Alexander V Lukyanov). + Add ncsa-ns, ncsa-m-ns and ncsa-m entries from esr version. 980822 @@ -2825,9 +5221,8 @@ Changes since 1.9.9e are recorded by Thomas Dickey. + put -L$(libdir) first when linking programs, except for HP-UX. + modify comp_scan.c to handle SVr4 terminfo description for att477, which contains a colon in the description field. - + modify configure script to support SCO osr5.0.5 shared libraries - (from comp.unix.sco.programmer newsgroup item by Mike Hopkirk - ). + + modify configure script to support SCO osr5.0.5 shared libraries, + from comp.unix.sco.programmer newsgroup item (Mike Hopkirk). + eliminate extra GoTo call in lib_doupdate.c (patch by Alexander V. Lukyanov). + minor adjustments of const/NCURSES_CONST from IRIX compile. @@ -2915,7 +5310,7 @@ Changes since 1.9.9e are recorded by Thomas Dickey. 980321 + revise configure macro CF_SPEED_TYPE so that termcap.h has speed_t declared (from Adam J. Richter ) - + remove spurious curs_set() call from leaveok() (J.T.Conklin). + + remove spurious curs_set() call from leaveok() (J T Conklin). + corrected handling leaveok() in doupdate() (patch by Alexander V. Lukyanov). + improved version of wredrawln (patch by Alexander V. Lukyanov). @@ -2946,7 +5341,7 @@ Changes since 1.9.9e are recorded by Thomas Dickey. + modify some man-pages so no '.' or '..' falls between TH and SH macros, to accommodate man_db program (reported by Ian T. Zimmerman ). - + terminfo.src 10.2.1 from Eric's webpage. + + terminfo.src 10.2.1 downloaded from ESR's webpage (ESR). > several changes by Juergen Pfeifer: + add copyright notices (and rcs id's) on remaining man-pages. + corrected prototypes for slk_* functions, using chtype rather than @@ -2969,7 +5364,7 @@ Changes since 1.9.9e are recorded by Thomas Dickey. 980302 4.2 release for upload to prep.ai.mit.edu + correct Florian's email address in ncurses-intro.html - + terminfo.src 10.2.0 from Eric. + + terminfo.src 10.2.0 (ESR). 980228 pre-release + add linux-koi8r replace linux-koi8, which is not KOI8 (patch by @@ -3010,8 +5405,8 @@ Changes since 1.9.9e are recorded by Thomas Dickey. + modify Makefile.glibc so that $(objpfx) is defined (H.J.Lu). + ifdef-out true-return from _nc_mouse_inline() which depends on merge of QNX patch (pending 4.2 release). - > patch by J.T.Conklin, to split off seldom-used modules in ncurses - (reduces size by up to 2.6kb): + > patch to split off seldom-used modules in ncurses (J T Conklin): + This reduces size by up to 2.6kb. + move functionality of _nc_usleep into napms, add configuration case for nanosleep(). + moved wchgat() from lib_addch.c to lib_chgat.c @@ -3084,7 +5479,7 @@ Changes since 1.9.9e are recorded by Thomas Dickey. + progs/infocmp.c: workaround mwcc 32k function data limit 980117 - + correct initialization of color-pair (from 970524) in xmas.c, which + + correct initialization of color-pair (cf: 970524) in xmas.c, which was using only one color-pair for all colors (reported by J.J.G.Ripoll). + add multithread options for objects build on EMX, for compatibility @@ -3129,11 +5524,11 @@ Changes since 1.9.9e are recorded by Thomas Dickey. + add a copy of emx.src from J.J.G.Ripoll's OS/2 EMX version of ncurses 1.9.9e, together with fixes/additions for the "ansi" terminal type. + add tic check for save/restore cursor if change_scroll_region is - defined (from O'Reilly book). + defined (reference: O'Reilly book). + modify read_termcap.c to handle EMX-style pathnames (reported by J.J.G.Ripoll). - + modify lib_raw.c to use EMX's setmode (from J.J.G.Ripoll, who says - EMX's curses does this). + + modify lib_raw.c to use EMX's setmode (patch from J.J.G.Ripoll). + Ripoll says EMX's curses does this. + modify _nc_tic_expand() to generate \0 rather than \200. + move/revise 'expand()' from dump_entry.c to ncurses library as _nc_tic_expand(), for use by tack. @@ -3152,7 +5547,7 @@ Changes since 1.9.9e are recorded by Thomas Dickey. 971227 + modify open/fopen calls to use binary mode, needed for EMX. + modify configure script to work with autoconf 2.10 mods for OS/2 - EMX from J.J.G.Ripoll. + EMX (from J.J.G.Ripoll). + generated ncurses_cfg.h with patch (971222) to autoconf 2.12 which bypasses limited sed buffer length. > several changes from Juan Jose Garcia Ripoll @@ -3260,18 +5655,18 @@ Changes since 1.9.9e are recorded by Thomas Dickey. + replace test for SCO with more precise header tests. + add configure test for unsigned literals, use in NCURSES_BITS macro. + comment-out the -PIC, etc., flags from c++, progs and test makefiles - since they probably are not needed, and are less efficient (noted by. - Ju"rgen Fluk) + since they probably are not needed, and are less efficient (noted by + Juergen Fluk) + add -L$(libdir) to loader options, after -L../lib so that loaders that record this information will tend to do the right thing if - the programs are moved around after installing them (suggested by. - Ju"rgen Fluk). + the programs are moved around after installing them (suggested by + Juergen Fluk). + add -R option to loader options for programs for Solaris if the --enable-rpath option is specified for the libraries. 971112 + correct installed filename for shared libraries on *BSD (reported by - Ju"rgen Fluk). + Juergen Fluk). 971108 + cleanup logic for deciding when tputs() should call delay_output(), @@ -3335,7 +5730,7 @@ Changes since 1.9.9e are recorded by Thomas Dickey. than uname, which is unreliable on some systems. + updated Makefile.glibc, test-built with glibc 2.0.5c + modify keyname() to return values consistent with SVr4 curses (patch - by Ju"rgen Fluk). + by Juergen Fluk). > changes requested by Daniel Weaver: + modify delay_output() so that it uses the same output function as tputs() if called from that function. @@ -3389,8 +5784,8 @@ Changes since 1.9.9e are recorded by Thomas Dickey. + install C++ binding as -lncurses++ and associated headers with the other ncurses headers. + fix header uninstall if configure --srcdir is used. - > minor interface changes (request by Daniel Weaver , - to support 'tack' program): + > minor interface changes to support 'tack' program -TD + (request by Daniel Weaver ). + export functions _nc_trans_string() and _nc_msec_cost(). + add variable _nc_nulls_sent, to record the number of padding characters output in delay_output(). @@ -3401,7 +5796,7 @@ Changes since 1.9.9e are recorded by Thomas Dickey. + modify ClrBottom() to avoid using clr_eos if there is only one line to erase. + typo in configure --help. - > patch by J.T.Conklin (with minor resync against Juergen's changes) + > patch by J T Conklin (with minor resync against Juergen's changes) + split-out lib_flash.c from lib_beep.c + split-out lib_hline.c and lib_vline.c from lib_box.c + split-out lib_wattron.c, lib_wattroff.c from lib_addch.c @@ -3568,7 +5963,7 @@ Changes since 1.9.9e are recorded by Thomas Dickey. + Modified lib_bkgd.c: hopefully correct implementation of wbkgdset(); streamlined implementation of wbkgd() + Modified lib_mvwin.c: Disable move of a pad. Implement (costly) - move of subwindows. Fixed update behaviour of movements of regular + move of subwindows. Fixed update behavior of movements of regular windows. + Fixed lib_pad.c: make chtype argument of pechochar() const. + Fixed lib_window.c: dupwin() is not(!) in every bit a really clone @@ -3722,7 +6117,7 @@ Changes since 1.9.9e are recorded by Thomas Dickey. + rewrote the hashmap algorithm to be one-pass, this avoids multiple cost_effective() calls on the same lines. + modified cost_effective() so it is now slightly more precise. - > patches by H.J.Lu for glibc integration: + > patches for glibc integration (H.J.Lu): + add modules define_key, keyok, name_match, tries + add makefile rules for some of the unit tests in ncurses (mvcur, captoinfo, hardscroll, hashmap). @@ -3883,7 +6278,7 @@ Changes since 1.9.9e are recorded by Thomas Dickey. + removed buffer-allocation for name and description from m_item_new.c, since this might result in incompatibilities with SVr4. Also fixed the corresponding Ada95 binding module (patch by Juergen Pfeifer, - from report by Avery Pennarun ) + report by Avery Pennarun ) + removed the mechanism to timestamp the generated Ada95 sources. This resulted always in generating patches for the HTML doc, even when nothing really changed (patch by Juergen Pfeifer). @@ -3927,7 +6322,8 @@ Changes since 1.9.9e are recorded by Thomas Dickey. + add extensions keyok() and define_key(). These are designed to allow the user's application better control over the use of function keys, e.g., disabling the ncurses KEY_MOUSE. (The define_key idea was from - a mailing-list thread started by kjahds@kjahds.com Nov'1995). + a mailing-list thread started by Kenneth Albanowski + Nov'1995). + restore original behavior in ncurses 'g' test, i.e., explicitly set the keypad mode rather than use the default, since it confuses people. @@ -3946,9 +6342,9 @@ Changes since 1.9.9e are recorded by Thomas Dickey. ) + move calls of _nc_background() out of various loops, as its return value will be the same for the whole window being operated on (patch - by J.T.Conklin). + by J T Conklin). + add macros getcur[xy] getbeg[xy] getpar[xy], which are defined in - SVr4 headers (patch by J.T.Conklin ) + SVr4 headers (patch by J T Conklin ) + modify glibc addon-configure scripts (patch by H.J.Lu). + correct a bug in hashmap.c: the size used for clearing the hashmap table was incorrect, causing stack corruption for large values of @@ -4112,18 +6508,18 @@ Changes since 1.9.9e are recorded by Thomas Dickey. function in lib_doupdate.c (patch by Alexander V. Lukyanov). + correct hashmap.c, which did not update index information (patch by Alexander V. Lukyanov). - + patch by Juergen Pfeifer for C++ binding and demo (see c++/NEWS) + + fixes for C++ binding and demo (see c++/NEWS) (Juergen Pfeifer). + correct index in lib_instr.c (Juergen Pfeifer). + correct typo in 970426 patch from Tom's cleanup of lib_overlay.c - (Juergen Pfeifer). + (patch by Juergen Pfeifer). 970426 + corrected cost computation in PutRange(), which was using milliseconds compared to characters by adding two new members to the SCREEN struct, _hpa_ch_cost and _cup_ch_cost. + drop ncurses/lib_unctrl.c, add ncurses/MKunctrl.awk to generate a - const array of strings (suggested by Alexander V. Lukyanov, though - with a perl script 970118). + const array of strings (suggested by Alexander V. Lukyanov). The + original suggestion in 970118 used a perl script. + rewrote ncurses 'b' test to better exercise magic-cookie (xmc), as well as noting the attributes that are not supported by a terminal. + trace the computation of cost values in lib_mvcur.c @@ -4151,8 +6547,8 @@ Changes since 1.9.9e are recorded by Thomas Dickey. Henderson ). 970412 - + corrected ifdef'ing of inline (from 970321) for TRACE vs C++. - + corrected toggle_attr_off() macro (patch by Andries.Brouwer). + + corrected ifdef'ing of inline (cf: 970321) for TRACE vs C++. + + corrected toggle_attr_off() macro (patch by Andries Brouwer). + modify treatment of empty token in $MANPATH to /usr/man (reported by ) + modify traces that record functions-called so that chtype and attr_t @@ -4173,12 +6569,12 @@ Changes since 1.9.9e are recorded by Thomas Dickey. + correct computation of absolute-path for $INSTALL that dropped "-c" parameter from the expression. + rename config.h to ncurses_cfg.h to avoid naming-conflict when - ncurses is integrated into larger systems (from diffs by H.J.Lu for - libc). + ncurses is integrated into larger systems (adapted from diffs by + H.J.Lu for libc). + correct inequality in lib_doupdate.c that caused a single-char to not be updated when the char on the right-margin was not blank, idcok() - was true (patch by Alexander V. Lukyanov 970124, also reported by - Kriang Lerdsuwanakij 970329). + was true (patch by Alexander V Lukyanov (in 970124), reported + by Kriang Lerdsuwanakij in 970329). + modify 'clean' rule in include/Makefile so that files created by configure script are removed in 'distclean' rule instead. @@ -4233,7 +6629,7 @@ Changes since 1.9.9e are recorded by Thomas Dickey. implements an expanded form of certain complex macros, for testing with ATAC. + disable CHECK_POSITION unless --with-assertions is configured - (Alexander Lukyanov pointed out that this is redundant). + (Alexander V Lukyanov pointed out that this is redundant). + use keyname() to show traced chtype values where applicable rather than _tracechar(), which truncates the value to 8-bits. + minor fixes to TRACE_ICALLS, added T_CREATE, TRACE_CCALLS macros. @@ -4250,7 +6646,7 @@ Changes since 1.9.9e are recorded by Thomas Dickey. + modify worm.c to hide cursor while running. + add -Wcast-qual to gcc warnings, fix accordingly. + use PutChar rather than PutAttrChar in ClrToEOL to properly handle - wrapping (Alexander Lukyanov). + wrapping (Alexander V Lukyanov). + correct spurious echoing of input in hanoi.c from eric's #291 & #292 patches (reported by Vernon C. Hoxie ). + extend IRIX configuration to IRIX64 @@ -4263,7 +6659,7 @@ Changes since 1.9.9e are recorded by Thomas Dickey. + autogenerated object-dependencies for test directory + add configure option --with-rcs-ids + modify configuration scripts to generate major/minor/patch versions - (suggested by Alexander Lukyanov). + (suggested by Alexander V Lukyanov). + supply missing va_end's in lib_scanw.c + use stream I/O for trace-output, to eliminate fixed-size buffer + add TRACE_ICALLS definition/support to lib_trace.c @@ -4276,8 +6672,9 @@ Changes since 1.9.9e are recorded by Thomas Dickey. the returned buffer. + invoke ldconfig after installing shared library + modify install so that overwrite applies to shared library -lcurses - in preference to static library (reported by Zeyd 960928). - + correct missing ';' in 961221 mod to overwrite option use of $(LN_S). + in preference to static library (reported by Zeyd M Ben-Halim 960928). + + correct missing ';' in 961221 mod to overwrite optional use of $(LN_S) + symbol. + fixes to allow "make install" to work without first doing a "make all" (suggested by Larry Virden). @@ -4325,7 +6722,7 @@ Changes since 1.9.9e are recorded by Thomas Dickey. + modify lib_doupdate to make el, el1 and ed optimization use the can_clear_with macro, and change EmitRange to allow leaving cursor at the middle of interval, rather than always at the end (patch by - Alexander Lukyanov originally 960929, resync 970106). + Alexander V Lukyanov). This was originally 960929, resync 970106. 970104 + workaround defect in autoconf 2.12 (which terminates configuration @@ -4368,11 +6765,11 @@ Changes since 1.9.9e are recorded by Thomas Dickey. descriptors, needed for GPM. + integrate patch by Andrew Kuchling for GPM (mouse) support, correcting logic in wgetch() and _nc_mouse_parse() which - prevented patch from working properly. + prevented patch from working properly -TD + improve performance of panel algorithm (Juergen Pfeifer 961203). + strip RCS id's from generated .html files in Ada95 subtree. + resync with generated .html files (Juergen Pfeifer 961223). - + terminfo.src 10.1.0 from Eric. + + terminfo.src 10.1.0 (ESR). 961224 4.0 release + release as 4.0 to accommodate Linux ld.so.1.8.5 @@ -4387,7 +6784,7 @@ Changes since 1.9.9e are recorded by Thomas Dickey. include-path to /usr/include if gcc is used (reported by Florian La Roche). + modify setupterm() to allocate new TERMINAL for each call, just as - solaris' curses does (Alexander Lukyanov 960829). + solaris' curses does (Alexander V Lukyanov 960829). + corrected memory leaks in read_entry.c + add configure options --with-dbmalloc, --with-dmalloc, and --disable-leaks, tested by instrumenting infocmp, ncurses programs. @@ -4398,10 +6795,10 @@ Changes since 1.9.9e are recorded by Thomas Dickey. + split-out panel.priv.h, improve dependencies for forms, menus (Juergen Pfeifer 961204). + modify _nc_freewin() to reset globals curscr/newscr/stdscr when - freeing the corresponding WINDOW (Purify). + freeing the corresponding WINDOW (found using Purify). + modify delwin() to return ERR if the window to be deleted has - subwindows, needed as a side-effect of resizeterm() (Purify). Tested - and found that SVr4 curses behaves this way. + subwindows, needed as a side-effect of resizeterm() (found using + Purify). Tested and found that SVr4 curses behaves this way. + implement logic for _nc_freeall(), bringing stub up to date. 961215 @@ -4433,16 +6830,16 @@ Changes since 1.9.9e are recorded by Thomas Dickey. handled as an exception to the rule, since some linkers do bulk inclusion of libraries when given the full name - T.Dickey). + modify configure script to allow user-supplied $CFLAGS to set the - debug-option in all libraries (requested by lots of people). + debug-option in all libraries (requested by lots of people) -TD + use return consistently from main(), rather than exit (reported by Florian La Roche). + add --enable-getcap-cache option to configure, normally disabled (requested by Florian La Roche). + make configure test for gettimeofday() and possibly -lbsd more - efficient (requested by Florian La Roche florian@knorke.saar.de) + efficient (requested by Florian La Roche ) + minor adjustments to Ada95 binding (patches by Juergen Pfeifer) + correct attributes after emitting orig_pair in lib_vidattr.c (patch - by lav@yars.free.net). + by Alexander V Lukyanov). 961208 + corrected README wrt Ada95 (Juergen Pfeifer) @@ -4455,7 +6852,7 @@ Changes since 1.9.9e are recorded by Thomas Dickey. data used in ncurses library. + initialize _nc_idcok, _nc_idlok statically to resolve discrepancy between initscr() and newwin() initialization (reported by - lav@yars.free.net). + Alexander V Lukyanov). + test built VERSION=4.0, SHARED_ABI=4 with Linux ld.so.1.8.5 (set beta versions to those values -- NOTE that subsequent pre-4.0 beta may not be interchangeable). @@ -4466,7 +6863,7 @@ Changes since 1.9.9e are recorded by Thomas Dickey. Dickey). 961127 - > patch by Juergen Pfeifer (mostly for panel): + > patch, mostly for panel (Juergen Pfeifer): + cosmetic improvement for a few routines in the ncurses core library to avoid warning messages. + the panel overlap detection was broken @@ -4496,7 +6893,7 @@ Changes since 1.9.9e are recorded by Thomas Dickey. (Juergen Pfeifer) + use MODULE_ID (rcs keywords) in forms and menus libraries (Juergen Pfeifer). - > patch #324 by Eric. + > patch #324 (ESR): + typo in curs_termcap man page (reported by Hendrik Reichel <106065.2344@compuserve.com>) + change default xterm entry to xterm-r6. @@ -4513,8 +6910,8 @@ Changes since 1.9.9e are recorded by Thomas Dickey. + modify hanoi.c to work on non-color terminals, and to use timing delays when in autoplay mode. + correct 'echochar()' to refresh immediately (reported by Adrian - Garside 94ajg2@eng.cam.ac.uk) - > patch #322 by eric: + Garside <94ajg2@eng.cam.ac.uk>) + > patch #322 (ESR): + reorganize terminfo.src entries for xterm. 961109 - snapshot @@ -4537,10 +6934,10 @@ Changes since 1.9.9e are recorded by Thomas Dickey. resize test, use wbkgd and corrected box() parameters. + make flushinp() test work in ncurses.c by using napms() instead of sleep(). - + undo Eric's changes to xterm-x11r6 (it no longer matched the X11R6.1 + + undo ESR's changes to xterm-x11r6 (it no longer matched the X11R6.1 distribution, as stated) - + terminfo 9.13.18 (resync by Eric) - + check for getenv("HOME") returning null (Eric). + + terminfo 9.13.18 resync (ESR) + + check for getenv("HOME") returning null (ESR). + change buffer used to decode xterm-mouse commands to unsigned to handle displays wider than 128 chars (Juergen Pfeifer). + correct typo curs_outopts.3x (Juergen Pfeifer). @@ -4602,17 +6999,16 @@ Changes since 1.9.9e are recorded by Thomas Dickey. $datadir instead of actual terminfo path. + correct whitespace in include/Caps, which caused kf11, clr_eol and clr_end to be omitted from terminfo.5 - + fix memory leaks in delscreen() (adapted from Alexander Lukyanov). + + fix memory leaks in delscreen() (adapted from Alexander V Lukyanov). + improve appearance of marker in multi-selection menu (Juergen Pfeifer) - + fix behaviour for forms with all fields inactive (Juergen - Pfeifer) + + fix behavior for forms with all fields inactive (Juergen Pfeifer) + document 'field_index()' (Juergen Pfeifer) - > patch #321 by eric: + > patch #321 (ESR): + add some more XENIX keycap translations to include/Caps. + modify newwin to set initial state of each line to 'touched' (from patch by Peter Wemm ) - + in SET_TTY, replace TCSANOW with TCSADRAIN (Alexander Lukyanov). + + in SET_TTY, replace TCSANOW with TCSADRAIN (Alexander V Lukyanov). 960928 - snapshot + ifdef'd out _nc_hash_map (still slower) @@ -4624,36 +7020,36 @@ Changes since 1.9.9e are recorded by Thomas Dickey. + ensure that 'doupdate()' sets the .oldindex values back to a sane state; this was causing a spurious refresh in ncurses 'r'. + add logic to configure (from vile) to guard against builders who - don't remove config.cache & config.status when doing new builds. - + corrected logic for 'repeat_char' in EmitRange (from #317), which + don't remove config.cache & config.status when doing new builds -TD + + corrected logic for 'repeat_char' in EmitRange (cf: eric #317), which did not follow the 2-parameter scheme specified in XSI. + corrected logic of wrefresh, wnoutrefresh broken in #319, making - clearok work properly (from report by Michael Elkins). + clearok work properly (report by Michael Elkins). + corrected problem with endwin introduced by #314 (removing the scrolling-region reset) that broke ncurses.c tests. + corrected order of args in AC_CHECK_LIB (from report by Ami Fischman ). + corrected formatting of terminfo.5 tables (Juergen Ehling) - > patch 320 by eric: + > patch 320 (ESR): + change ABI to 3.3 + emit a carriage-return in 'endwin()' to workaround a kernel bug in BSDI. (requested by Mike Karels ) + reverse the default o configure --enable-termcap (consensus). - > patch 319 by eric: + > patch 319 (ESR): + modified logic for clearok and related functions (from report by Michael Elkins) - untested - > patch 318 by eric: + > patch 318 (ESR): + correction to #317. - > patch 317 by eric: + > patch 317 (ESR): + re-add _nc_hash_map + modify EmitRange to maintain position as per original design. + add hashtest.c, program to time the hashmap optimization. - > patch 316 by eric: + > patch 316 (ESR): + add logic to deal with magic-cookie (how was this tested?) (lib_doupdate.c). + add ncurses.c driver for magic-cookie, some fixes to ncurses.c - > patch 315 by eric: - + merged A. Lukyanov's patch to use ech and rep - untested + > patch 315 (ESR): + + merged Alexander V Lukyanov's patch to use ech and rep - untested (lib_doupdate.c). + modified handling of interrupted system calls - untested (lib_getch.c, lib_twait.c). @@ -4671,11 +7067,11 @@ Changes since 1.9.9e are recorded by Thomas Dickey. either ;-) + clarify the documentation for the builtin form fieldtypes (Juergen Pfeifer) - > patch 314 by eric: - + Enhancement suggested by A. Lukyanov -- reset scroll region on - startup rather than at wrapup time. - + Fix suggested by A. Lukyanov, make storage of palette tables - and their size counts per-screen for multi-terminal applications. + > patch 314 (ESR): + + reset scroll region on startup rather than at wrapup time + (enhancement suggested by Alexander V Lukyanov). + + make storage of palette tables and their size counts per-screen for + multi-terminal applications (suggested by Alexander V Lukyanov). + Improved error reporting for infotocap translation errors. + Update terminfo.src to 9.13.14. @@ -4694,7 +7090,7 @@ Changes since 1.9.9e are recorded by Thomas Dickey. the corresponding logic from raw, cbreak, etc. + disable ONLCR during initialization, to match SVr4 (this is needed for cursor optimization when the cursor-down is a newline). - + replaced Eric's imitation of wresize with my original (his didn't + + replaced ESR's imitation of wresize with my original (his didn't work). 960831 - snapshot @@ -4724,7 +7120,7 @@ Changes since 1.9.9e are recorded by Thomas Dickey. descriptions that existed in directories past the first one searched (reported by Alexander V. Lukyanov) + corrected typo in dtterm description. - > patch 313 by eric: + > patch 313 (ESR): + add dtterm description + clarify ncurses 'i' test (drop vscanf subtest) @@ -4737,9 +7133,9 @@ Changes since 1.9.9e are recorded by Thomas Dickey. 960804 + revised fix to tparm; previous fix reversed parameter order. - > patch 312 by eric: + > patch 312 (ESR): correct terminfo.src corrupted by #310 - > patch 311 by eric: + > patch 311 (ESR): + fix idlok() and idcok() and the default of the idlok switch. 960803 - snapshot @@ -4747,7 +7143,7 @@ Changes since 1.9.9e are recorded by Thomas Dickey. (reported by William P Setzer) + add fallback def for GCC_NORETURN, GCC_UNUSED for termcap users (reported by Tim Mooney). - > patch 310 by eric: + > patch 310 (ESR): + documentation and prototyping errors for has_color, immedok and idcok (reported by William P Setzer ) + updated qnx terminfo entry (by Michael Hunter) @@ -4761,14 +7157,14 @@ Changes since 1.9.9e are recorded by Thomas Dickey. 960727 - snapshot + call cbreak() in initscr(), as per XSI & SVr4. + turn off hardware echo in initscr() as per XSI & SVr4 - > patch 309 by eric: + > patch 309 (ESR): + terminfo changes (9.3.10), from BRL + add more checks to terminfo parser. + add more symbols to infocmp. 960720 - snapshot + save previous-attribute in lib_vidattr.c if SP is null (reported by - Ju"rgen Fluk ) + Juergen Fluk ) + corrected calls on _nc_render so that background character is set as per XSI. + corrected wbkgdset macro (XSI allows background character to be @@ -4778,7 +7174,7 @@ Changes since 1.9.9e are recorded by Thomas Dickey. because not all systems declare it in the headers that we can safely include therein). + move the ifdefs for errno into curses.priv.h - > patch 308 by eric: + > patch 308 (ESR): + terminfo changes (9.3.8) + modified logic of error-reporting in terminfo parser @@ -4786,15 +7182,15 @@ Changes since 1.9.9e are recorded by Thomas Dickey. + always check for since ISC needs it to declare fd_set (Juergen Pfeifer) + install shared-libraries on NetBSD/FreeBSD with ABI-version (reported - by several people: Juergen Pfeifer, Mike Long) + by Juergen Pfeifer, Mike Long) + add LOCAL_LDFLAGS2 symbol (Juergen Pfeifer) + corrected prototype for delay_output() -- bump ABI to 3.2 - + terminfo patches #306/307 from Eric. + + terminfo patches #306/307 (ESR). + moved logic that filters out rmul and rmso from setupterm to newterm where it is less likely to interfere with termcap applications. 960707 - + rollback Eric's #305 change to terminfo.src (it breaks existing + + rollback ESR's #305 change to terminfo.src (it breaks existing applications, e.g., 'less 290'). + correct path of edit_man.sh, and fix typo that made all man-pages preformatted. @@ -4806,8 +7202,8 @@ Changes since 1.9.9e are recorded by Thomas Dickey. + make lib_vidattr.c more readable using macros. + filter out rmul, rmso that conflict with sgr0 when reading terminal descriptions. - + added sanity-checking of various paired string attributes (Eric). - + work around autoconf bug, force $INSTALL to absolute path. + + added sanity-checking of various paired string attributes (ESR). + + work around autoconf bug, force $INSTALL to absolute path (reported by Zeyd). + modify man-page install for BSDI to install preformatted .0 files (reported by David MacKenzie). @@ -4862,7 +7258,7 @@ Changes since 1.9.9e are recorded by Thomas Dickey. screen (Juergen Pfeifer). + modified autoconf scripts to prepare for Ada95 (GNAT) binding to ncurses (Juergen Pfeifer). - + incorrect buffer-size in _nc_read_entry, reported by Eric Raymond. + + incorrect buffer-size in _nc_read_entry, reported by ESR. 960617 + corrected two logic errors in read_entry.c, write_entry.c (called by @@ -4882,8 +7278,8 @@ Changes since 1.9.9e are recorded by Thomas Dickey. warnings turned on, which makes config.log hard to read. + added 'lint' rule to top-level Makefile. + added configure option '--with-install-prefix' for use by system - builders to install into staging locations (from request by - charles@comm.polymtl.ca) + builders to install into staging locations (requested by + Charles Levert ). + corrected autoconfigure for Debian man program; it's not installed as "man_db". + set noecho in 'worm'; it was ifdef'd for debug only @@ -4895,8 +7291,8 @@ Changes since 1.9.9e are recorded by Thomas Dickey. + modified lib_doupdate.c to use lower-level SP's current_attr state instead of curscr's state, since it is redundant. + correction to IDcTransformLine logic which controls where InsStr is - invoked (refined by lav@yars.free.net). - > patches 303 by eric + invoked (refined by Alexander V Lukyanov). + > patch 303 (ESR): + conditionally include Chris Torek's hash function _nc_hash_map(). + better fix for nvi refresh-bug (Rick Marshall) + fix for bug in handling of interrupted keystroke waits, @@ -4929,19 +7325,19 @@ Changes since 1.9.9e are recorded by Thomas Dickey. + include stdlib.h before defs for EXIT_SUCCESS, for OSF/1. + include sys/types.h in case stdlib.h does not declare size_t. + fixes for makefile (Tim Mooney) - + fixes for menus & forms (Juergen.Pfeifer@T-Online.de) + + fixes for menus & forms (Juergen Pfeifer) 960518 - snapshot + revised ncurses.c panner test, let pad abut all 4 sides of screen. + refined case in lib_doupdate.c for ClrToEOL(). - + corrected prior change for PutRange (Alexander V. Lukyanov: - lav@yars.free.net). - + autoconf mods (Tim Mooney: mooney@dogbert.cc.ndsu.NoDak.edu). - + locale fix for forms (Philippe De Muyter: phdemuyt@ulb.ac.be) + + corrected prior change for PutRange (Alexander V Lukyanov + ). + + autoconf mods (Tim Mooney ). + + locale fix for forms (Philippe De Muyter ) + renamed "--with-datadir" option to "--with-ticdir" to avoid confusion, and made this check for the /usr/lib/terminfo pre-existing directory. - > patches 299-301 by eric: + > patches 299-301 (ESR): + added hashmap.c + mods to tracing, especially for ACS chars. + corrected off-by-one in IDCtransform. @@ -4958,7 +7354,7 @@ Changes since 1.9.9e are recorded by Thomas Dickey. + added -T options to tic and infocmp (for testing/analysis) + refined the length criteria for termcap and terminfo + optimize lib_doupdate with memcpy, PutRange - > patches 297, 298 by eric + > patches 297, 298 (ESR): + implement TERMINFO_DIRS, and -o option of tic + added TRACE_IEVENT + removed boolean version of 'getm' @@ -4966,12 +7362,13 @@ Changes since 1.9.9e are recorded by Thomas Dickey. + added has_key() + added 't' to ncurses.c test. + moved delay_output() to lib_tputs.c - + removed tparam(). + + removed tparam() (was added in 1.9.9, but conflicts with emacs and + is not part of X/Open Curses). + misc cursor & optimization fixes. 960504 - snapshot + modified ncurses 'p' test to allow full-screen range for panner size. - + fixes for locale (phdm@labauto1.ulb.ac.be) + + fixes for locale (Philippe De Muyter ) + don't use fixed buffer-size in fmt_entry(). + added usage-message to 'infocmp'. + modified install.includes rules to prepend subdirectory-name to @@ -4991,7 +7388,7 @@ Changes since 1.9.9e are recorded by Thomas Dickey. + change ncurses 'a' test to run in raw mode. + make TIOCGWINSZ configure test less stringent, in case user configures via terminal that cannot get screen size. - > patches 295, 296 by eric: + > patches 295, 296 (ESR): + new "-e" option of tic. + fix for "infocmp -e". + restore working-directory in read_termcap.c @@ -5003,7 +7400,7 @@ Changes since 1.9.9e are recorded by Thomas Dickey. + fix for AIX 3.2.5 (must define _POSIX_SOURCE to get termios struct definitions via , modified macros in lib_raw.c to avoid K&R-style substitution) - > patches 293, 294 by eric: + > patches 293, 294 (ESR): + mods to wgetch() in cooked mode + corrected askuser() logic in tset + correct interaction of endwin() with mouse processing @@ -5535,3 +7932,5 @@ available separately from netcom.com:pub/zmbenhal/ * ANSIfication of some functions. * Disabling cost analysis 'cause it's incorrect. * A quick hack for a terminfo entry. + +-- vile:txtmode: diff --git a/contrib/ncurses/README b/contrib/ncurses/README index c46fc19..56bc385 100644 --- a/contrib/ncurses/README +++ b/contrib/ncurses/README @@ -1,4 +1,31 @@ --- $Id: README,v 1.20 2000/08/12 23:31:21 tom Exp $ +------------------------------------------------------------------------------- +-- Copyright (c) 1998-2004,2006 Free Software Foundation, Inc. -- +-- -- +-- Permission is hereby granted, free of charge, to any person obtaining a -- +-- copy of this software and associated documentation files (the -- +-- "Software"), to deal in the Software without restriction, including -- +-- without limitation the rights to use, copy, modify, merge, publish, -- +-- distribute, distribute with modifications, sublicense, and/or sell copies -- +-- of the Software, and to permit persons to whom the Software is furnished -- +-- to do so, subject to the following conditions: -- +-- -- +-- The above copyright notice and this permission notice shall be included -- +-- in all copies or substantial portions of the Software. -- +-- -- +-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -- +-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -- +-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -- +-- NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -- +-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -- +-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -- +-- USE OR OTHER DEALINGS IN THE SOFTWARE. -- +-- -- +-- Except as contained in this notice, the name(s) of the above copyright -- +-- holders shall not be used in advertising or otherwise to promote the -- +-- sale, use or other dealings in this Software without prior written -- +-- authorization. -- +------------------------------------------------------------------------------- +-- $Id: README,v 1.23 2006/04/22 22:19:37 tom Exp $ ------------------------------------------------------------------------------- README file for the ncurses package @@ -43,6 +70,14 @@ The libraries are: libform.so (shared) libform_g.a (debug enabled) +If you configure using the --enable-widec option, a "w" is appended to the +library names (e.g., libncursesw.a), and the resulting libraries support +wide-characters, e.g., via a UTF-8 locale. The corresponding header files +are compatible with the non-wide-character configuration; wide-character +features are provided by ifdef's in the header files. The wide-character +library interfaces are not binary-compatible with the non-wide-character +version. + The ncurses libraries implement the curses API. The panel, menu and forms libraries implement clones of the SVr4 panel, menu and forms APIs. The source code for these lives in the `ncurses', `panel', `menu', and `form' directories @@ -56,7 +91,7 @@ install.libs' rule as libncurses++. In the `Ada95' directory, you'll find code and documentation for an Ada95 binding of the curses API, to be used with the GNAT compiler. This binding is built by a normal top-level `make' if configure detects -an usable version of GNAT (3.10 or above). It is not installed automatically. +an usable version of GNAT (3.11 or above). It is not installed automatically. See the Ada95 directory for more build and installation instructions and for documentation of the binding. diff --git a/contrib/ncurses/README.emx b/contrib/ncurses/README.emx index 3f3d526..4c04816 100644 --- a/contrib/ncurses/README.emx +++ b/contrib/ncurses/README.emx @@ -1,4 +1,31 @@ --- $Id: README.emx,v 1.4 2000/09/16 19:28:28 tom Exp $ +------------------------------------------------------------------------------- +-- Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. -- +-- -- +-- Permission is hereby granted, free of charge, to any person obtaining a -- +-- copy of this software and associated documentation files (the -- +-- "Software"), to deal in the Software without restriction, including -- +-- without limitation the rights to use, copy, modify, merge, publish, -- +-- distribute, distribute with modifications, sublicense, and/or sell copies -- +-- of the Software, and to permit persons to whom the Software is furnished -- +-- to do so, subject to the following conditions: -- +-- -- +-- The above copyright notice and this permission notice shall be included -- +-- in all copies or substantial portions of the Software. -- +-- -- +-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -- +-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -- +-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -- +-- NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -- +-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -- +-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -- +-- USE OR OTHER DEALINGS IN THE SOFTWARE. -- +-- -- +-- Except as contained in this notice, the name(s) of the above copyright -- +-- holders shall not be used in advertising or otherwise to promote the -- +-- sale, use or other dealings in this Software without prior written -- +-- authorization. -- +------------------------------------------------------------------------------- +-- $Id: README.emx,v 1.8 2006/04/22 22:19:37 tom Exp $ -- Author: Thomas Dickey ------------------------------------------------------------------------------- @@ -16,13 +43,13 @@ the EMX development tools, of course. Get these programs to start: Apply the autoconf patches from - http://dickey.his.com/autoconf - ftp://dickey.his.com/autoconf + http://invisible-island.net/autoconf + ftp://invisible-island.net/autoconf These are ordered by date: - autoconf-2.13-20000819.patch.gz - autoconf-2.13-20000819-emx.patch.gz + autoconf-2.13-20030927.patch.gz + autoconf-2.13-20030927-emx.patch.gz I built my development environment for ncurses using EMX 0.9c at the end of 1997. Much of the EMX patch for autoconf was done originally by J.J.G.Ripoll, diff --git a/contrib/ncurses/TO-DO b/contrib/ncurses/TO-DO index 21e8ee0..6834e03 100644 --- a/contrib/ncurses/TO-DO +++ b/contrib/ncurses/TO-DO @@ -1,87 +1,103 @@ --- $Id: TO-DO,v 1.39 1998/07/12 00:25:39 tom Exp $ +------------------------------------------------------------------------------- +-- Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. -- +-- -- +-- Permission is hereby granted, free of charge, to any person obtaining a -- +-- copy of this software and associated documentation files (the -- +-- "Software"), to deal in the Software without restriction, including -- +-- without limitation the rights to use, copy, modify, merge, publish, -- +-- distribute, distribute with modifications, sublicense, and/or sell copies -- +-- of the Software, and to permit persons to whom the Software is furnished -- +-- to do so, subject to the following conditions: -- +-- -- +-- The above copyright notice and this permission notice shall be included -- +-- in all copies or substantial portions of the Software. -- +-- -- +-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -- +-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -- +-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -- +-- NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -- +-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -- +-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -- +-- USE OR OTHER DEALINGS IN THE SOFTWARE. -- +-- -- +-- Except as contained in this notice, the name(s) of the above copyright -- +-- holders shall not be used in advertising or otherwise to promote the -- +-- sale, use or other dealings in this Software without prior written -- +-- authorization. -- +------------------------------------------------------------------------------- +-- $Id: TO-DO,v 1.48 2006/10/28 19:49:16 tom Exp $ +------------------------------------------------------------------------------- SHORT-TERM TO-DO ITEMS: Known Problems: -* GNAT does not put libraries in the correct order, so a build only links - properly if you use shared libraries since -lncurses is first. ++ libtool does not work with GNAT. -* XPG4 specifies that the enhanced features are not available unless the - _XOPEN_SOURCE_EXTENDED test macro is defined by the application. Ncurses uses - this macro (incorrectly) to address a dependency upon wchar_t. The functions - which use wchar_t are not implemented, so the effect of the test macro is - pointless. - -* The screen optimization has been tested only in an ad hoc manner. We should ++ The screen optimization has been tested only in an ad hoc manner. We should develop a good set of regression tests to cover lib_doupdate.c and lib_mvcur.c. -* Magic cookie support does not work, since the logic does not take into account - refresh. Also, the initial optimize does not adjust the current location - when a cookie is emitted. ++ Magic cookie support (for nonzero xmc values) does not work, since the logic + does not take into account refresh. Also, the initial optimize does not + adjust the current location when a cookie is emitted. -* Scrolling optimization has holes: for example, it forces repaints of the ++ Scrolling optimization has holes: for example, it forces repaints of the screen between calls to refresh(). -* SVr4 uses slightly different rules for determining when softkeys are shown. ++ SVr4 uses slightly different rules for determining when softkeys are shown. For example, they are initially displayed (before the ncurses 'e' test activates them), and a touchwin can apparently also force them to be displayed. + The code departs from perfect 8-bit cleanness in one respect; you cannot - specify a character \200 as part of a capability string, because the terminfo - library interprets \200 as a request to embed NUL (\000) at that point. This - is a legacy terminfo property we can't mess with. + specify a character \200 as part of a capability string, because the + terminfo library interprets \200 as a request to embed NUL (\000) at that + point. This is a legacy terminfo property we can't mess with. + ++ The window classes defined in the c++ subdirectory need documentation. Some + C++ programmer could earn a lot of good karma by doing this... -* The window classes defined in the c++ subdirectory need documentation. - Some C++ programmer could earn a lot of good karma by doing this... ++ The resizeterm() function does not handle ripped-off lines such as that done + for the slk_XXX functions. + ++ vid_attr() should support the set_a_attributes (sgr1) string, but does not. + There appear to be no terminals that require that functionality. Portability (or lack thereof): -* Users of older System V UNIXes (but not Solaris, and probably not SVr4) - may trip over a known problem with the signal-handling code which causes - abrupt termination of ncurses applications following resume from a ^Z - suspend (this problem was first seen running lynx). You will not see - this problem if you are running Linux or one of the 4.4BSD derivatives - like FreeBSD, NetBSD, or BSDI. For details, see the analysis in the - header comment of ncurses/lib_tstp.c. ++ Users of older System V UNIXes (but not Solaris, and probably not SVr4) may + trip over a known problem with the signal-handling code which causes abrupt + termination of ncurses applications following resume from a ^Z suspend (this + problem was first seen running lynx). You will not see this problem if you + are running Linux or one of the 4.4BSD derivatives like FreeBSD, NetBSD, or + BSDI. For details, see the analysis in the header comment of + ncurses/tty/lib_tstp.c . -* In theory, vwprintw and vwscanf are supposed to use the older varargs.h ++ In theory, vwprintw and vwscanf are supposed to use the older varargs.h interface for handling variadic argument lists. Linux doesn't have - varargs.h, it has the newer X/Open-standard stdargs.h equivalent. So - these functions use stdargs instead. This is unlikely to be a problem - unless you're building ncurses on a System V old enough to only have - varargs.h. (Solaris 2.5.1 uses the stdarg.h binding as well). - -* If you're using a BSD earlier than 4.4BSD, or a Linux old enough not to - have a native vsscanf(3) in its library, vwscanw() will not work. You lose. - (It should work on any System V, however). If you want to fix this, add - an implementation to ncurses/vsscanf.c. - -* The demo build for the c++ library craps out with many link errors under gcc - 2.6.3. We're told the C++ support in 2.6.3 is broken and that the right - fix is to upgrade to 2.7.0. This demo is also known to not build with - the Sun SPARCworks 4.1 C++ compiler, due to a problem resolving templates. - -* Under Ultrix, configure craps out (Ultrix sh is lame). Run it under ksh. - -* We've not tested the configure script with cross-compilers. The autoconf - tests are supposed to be able to support this (please report bugs). You will - have to configure and build in two steps. The first step must create the - automatically-generated sources (e.g., comp_captab.c) on your host machine. - Then, run "make mostlyclean", remove config.* from the top-level directory - and configure for the cross-compiler. + varargs.h, it has the newer X/Open-standard stdargs.h equivalent. So these + functions use stdargs instead. This is unlikely to be a problem unless + you're building ncurses on a System V old enough to only have varargs.h. + (Solaris 2.5.1 uses the stdarg.h binding as well). + ++ If you're using a BSD earlier than 4.4BSD, or a Linux old enough not to have + a native vsscanf(3) in its library, vwscanw() will not work. You lose. (It + should work on any System V, however). If you want to fix this, add an + implementation to ncurses/vsscanf.c. + ++ The C++ binding fails to build with a few C++ compilers, mainly with + configure script problems with vsscanf(). + terminfo.5 does not format with the SunOS (and most other platform's) tbl - utility because it relies on a diversion for each table entry. Get the groff - package. + utility because it relies on a diversion for each table entry. Get the + groff package. Untested features: -* The code for the HP color model using set_color_pair is untested. ++ The code for the HP color model using set_color_pair is untested. -* The code for handling soft labels on a terminal type with built-in support ++ The code for handling soft labels on a terminal type with built-in support for them (num_labels > 0, label_height, label_width, label_format, label_off, label_on, plab_norm, lab_f*) has not been tested. The label_format and lab_f* capabilities aren't presently used. @@ -95,72 +111,9 @@ of the SVr4 API. The library is BASE conformant with this standard. We would like to make ncurses fully conformant at the EXTENDED level supporting internationalization. -Here are page references to all material involving wide or multi-byte -characters in Issue 4 of the XSI Curses standard, with notes on their -status in this implementation: - - Page 1 (1.1.2) New Features discussion of internationalization. - Page 12 (2.4): Definition of cchar_t, wchar_t. - Page 16 (3.3.2): Introduction of multi-column characters. - Page 17-18 (3.3.5): Description of non-spacing characters. - Page 19-21 (3.4.2): Basic character operations. - Page 34 (addnstr): These should now call underlying wide- -character functions, and do (through waddnstr) if _XOPEN_SOURCE_EXTENDED is on). - Page 35 (addnwstr): wide-character add-string functions. All macros -except waddnwstr() which is not yet defined. - Page 36 (add_wch): wide-character add-char functions. All macros -except wadd_wch() which is not yet defined. - Page 39 (attr_get): implemented -- we've just made the current- -attributes field of the window an attr_t. - Page 43 (bkgrnd): None of these are implemented. - Page 45 (border_set): Neither of these is implemented. - Page 47 (box_set): box_set implemented as macro, but the underlying -wborder_set() is not yet defined. - Page 78 (echo_wchar): echo_wchar() implemented as macro, underlying -wecho_wchar() not yet implemented. - Page 81 (erasechar): Neither entry point is implemented. - Page 87 (getbkgrnd): Not implemented. - Page 88 (getcchar): Not implemented. - Page 93 (getn_wstr): All implemented (as macros) except the -underlying wgetn_wstr(). - Page 97 (get_wch): All implemented (as macros) except the -underlying wget_wch(). - Page 99 (get_wstr): Xref to page 93. - Page 105 (hline_set): All implemented (as macros) except the -underlying whline_set(), wvline_set(). - Page 114 (innstr): Multi-byte character-completeness check is -not implemented. - Page 115 (innwstr): All implemented (as macros) except the -underlying winnw_str(). - Page 119 (insnstr): Implementation may not be correct for multi-byte -characters. - Page 120 (ins_nwstr): Not implemented. - Page 121 (insstr): Xref to page 119. - Page 122 (instr): Xref to page 119. - Page 123 (ins_wch): Not implemented. - Page 124 (ins_wstr): Xref to page 120. - Page 126 (in_wch): Not implemented. - Page 127 (in_wchnstr): Not implemented. - Page 128 (inwstr): Xref to page 115. - Page 133 (killwchar): killwchar not implemented. - Page 158 (pechochar): pecho_wchar() not implemented. - Page 176 (setcchar): Not implemented. - Page 181 (slk_attroff): slk_wset not implemented. - Page 200 (ungetch): unget_wch() not implemented. - Page 203 (vidattr): vid_attr() and vid_puts() not implemented. - Page 206 (vline_set): Xref to page 105. - Page 214 (wunctrl): Not implemented. - Page 216 (curses.h): cchar_t, wint_t, wchar_t references. - Page 220 (curses.h): KEY_CODE_YES - -Basically, the macro superstructure is there but the core is absent. We -need better multi-locale support guarantees from the OS to finish this. -If you are working on internationalization support, please contact us so -we can cooperate. - 2. DOS port -Only 16 of the 55 files in the library depend on the terminfo format. +Only a few of the files in the library depend on the terminfo format. It should be possible to further kernelize the package, then rewrite a small number of core files to produce a functionally-compatible port that would do updates to a memory-mapped screen area. The first @@ -248,4 +201,4 @@ These are the potentially important ones for ncurses. Notes: ii) We probably don't care about dest_tabs_magic_smso; only Telerays used it and they're all long obsolete. - +-- vile:txtmode diff --git a/contrib/ncurses/aclocal.m4 b/contrib/ncurses/aclocal.m4 index bd1df26..b57ec00 100644 --- a/contrib/ncurses/aclocal.m4 +++ b/contrib/ncurses/aclocal.m4 @@ -1,5 +1,5 @@ dnl*************************************************************************** -dnl Copyright (c) 1998-2000,2001,2002 Free Software Foundation, Inc. * +dnl Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. * dnl * dnl Permission is hereby granted, free of charge, to any person obtaining a * dnl copy of this software and associated documentation files (the * @@ -26,47 +26,104 @@ dnl sale, use or other dealings in this Software without prior written * dnl authorization. * dnl*************************************************************************** dnl -dnl Author: Thomas E. Dickey 1996,1997,1998,1999,2000,2001 +dnl Author: Thomas E. Dickey 1995-on dnl -dnl $Id: aclocal.m4,v 1.280 2002/04/27 19:31:30 tom Exp $ +dnl $Id: aclocal.m4,v 1.407 2006/12/17 16:12:38 tom Exp $ dnl Macros used in NCURSES auto-configuration script. dnl -dnl See http://dickey.his.com/autoconf/ for additional information. +dnl These macros are maintained separately from NCURSES. The copyright on +dnl this file applies to the aggregation of macros and does not affect use of +dnl these macros in other applications. dnl +dnl See http://invisible-island.net/autoconf/ for additional information. +dnl +dnl --------------------------------------------------------------------------- dnl --------------------------------------------------------------------------- +dnl AM_LANGINFO_CODESET version: 3 updated: 2002/10/27 23:21:42 +dnl ------------------- +dnl Inserted as requested by gettext 0.10.40 +dnl File from /usr/share/aclocal +dnl codeset.m4 +dnl ==================== +dnl serial AM1 +dnl +dnl From Bruno Haible. +AC_DEFUN([AM_LANGINFO_CODESET], +[ + AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset, + [AC_TRY_LINK([#include ], + [char* cs = nl_langinfo(CODESET);], + am_cv_langinfo_codeset=yes, + am_cv_langinfo_codeset=no) + ]) + if test $am_cv_langinfo_codeset = yes; then + AC_DEFINE(HAVE_LANGINFO_CODESET, 1, + [Define if you have and nl_langinfo(CODESET).]) + fi +])dnl dnl --------------------------------------------------------------------------- +dnl CF_ADA_INCLUDE_DIRS version: 5 updated: 2006/10/14 15:23:15 +dnl ------------------- dnl Construct the list of include-options for the C programs in the Ada95 dnl binding. AC_DEFUN([CF_ADA_INCLUDE_DIRS], [ -ACPPFLAGS="$ACPPFLAGS -I. -I../../include" +ACPPFLAGS="-I. -I../../include $ACPPFLAGS" if test "$srcdir" != "."; then - ACPPFLAGS="$ACPPFLAGS -I\$(srcdir)/../../include" + ACPPFLAGS="-I\${srcdir}/../../include $ACPPFLAGS" fi if test "$GCC" != yes; then - ACPPFLAGS="$ACPPFLAGS -I\$(includedir)" + ACPPFLAGS="$ACPPFLAGS -I\${includedir}" elif test "$includedir" != "/usr/include"; then if test "$includedir" = '${prefix}/include' ; then if test $prefix != /usr ; then - ACPPFLAGS="$ACPPFLAGS -I\$(includedir)" + ACPPFLAGS="$ACPPFLAGS -I\${includedir}" fi else - ACPPFLAGS="$ACPPFLAGS -I\$(includedir)" + ACPPFLAGS="$ACPPFLAGS -I\${includedir}" fi fi AC_SUBST(ACPPFLAGS) ])dnl dnl --------------------------------------------------------------------------- +dnl CF_ADD_CFLAGS version: 7 updated: 2004/04/25 17:48:30 +dnl ------------- dnl Copy non-preprocessor flags to $CFLAGS, preprocessor flags to $CPPFLAGS dnl The second parameter if given makes this macro verbose. +dnl +dnl Put any preprocessor definitions that use quoted strings in $EXTRA_CPPFLAGS, +dnl to simplify use of $CPPFLAGS in compiler checks, etc., that are easily +dnl confused by the quotes (which require backslashes to keep them usable). AC_DEFUN([CF_ADD_CFLAGS], [ +cf_fix_cppflags=no cf_new_cflags= cf_new_cppflags= +cf_new_extra_cppflags= + for cf_add_cflags in $1 do +case $cf_fix_cppflags in +no) case $cf_add_cflags in #(vi -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi + case $cf_add_cflags in + -D*) + cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[[^=]]*='\''\"[[^"]]*//'` + + test "${cf_add_cflags}" != "${cf_tst_cflags}" \ + && test -z "${cf_tst_cflags}" \ + && cf_fix_cppflags=yes + + if test $cf_fix_cppflags = yes ; then + cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags" + continue + elif test "${cf_tst_cflags}" = "\"'" ; then + cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags" + continue + fi + ;; + esac case "$CPPFLAGS" in *$cf_add_cflags) #(vi ;; @@ -79,6 +136,17 @@ do cf_new_cflags="$cf_new_cflags $cf_add_cflags" ;; esac + ;; +yes) + cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags" + + cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[[^"]]*"'\''//'` + + test "${cf_add_cflags}" != "${cf_tst_cflags}" \ + && test -z "${cf_tst_cflags}" \ + && cf_fix_cppflags=no + ;; +esac done if test -n "$cf_new_cflags" ; then @@ -88,11 +156,20 @@ fi if test -n "$cf_new_cppflags" ; then ifelse($2,,,[CF_VERBOSE(add to \$CPPFLAGS $cf_new_cppflags)]) - CPPFLAGS="$CPPFLAGS $cf_new_cppflags" + CPPFLAGS="$cf_new_cppflags $CPPFLAGS" fi +if test -n "$cf_new_extra_cppflags" ; then + ifelse($2,,,[CF_VERBOSE(add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags)]) + EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS" +fi + +AC_SUBST(EXTRA_CPPFLAGS) + ])dnl dnl --------------------------------------------------------------------------- +dnl CF_ANSI_CC_CHECK version: 9 updated: 2001/12/30 17:53:34 +dnl ---------------- dnl This is adapted from the macros 'fp_PROG_CC_STDC' and 'fp_C_PROTOTYPES' dnl in the sharutils 4.2 distribution. AC_DEFUN([CF_ANSI_CC_CHECK], @@ -143,6 +220,8 @@ fi fi ])dnl dnl --------------------------------------------------------------------------- +dnl CF_ANSI_CC_REQD version: 3 updated: 1997/09/06 13:40:44 +dnl --------------- dnl For programs that must use an ANSI compiler, obtain compiler options that dnl will make it recognize prototypes. We'll do preprocessor checks in other dnl macros, since tools such as unproto can fake prototypes, but only part of @@ -159,18 +238,38 @@ You have the following choices: fi ])dnl dnl --------------------------------------------------------------------------- +dnl CF_BOOL_DECL version: 8 updated: 2004/01/30 15:51:18 +dnl ------------ dnl Test if 'bool' is a builtin type in the configured C++ compiler. Some dnl older compilers (e.g., gcc 2.5.8) don't support 'bool' directly; gcc dnl 2.6.3 does, in anticipation of the ANSI C++ standard. dnl dnl Treat the configuration-variable specially here, since we're directly dnl substituting its value (i.e., 1/0). +dnl +dnl $1 is the shell variable to store the result in, if not $cv_cv_builtin_bool AC_DEFUN([CF_BOOL_DECL], [ -AC_CHECK_HEADER(stdbool.h, - cf_cv_header_stdbool_h=1, - cf_cv_header_stdbool_h=0) +AC_MSG_CHECKING(if we should include stdbool.h) + +AC_CACHE_VAL(cf_cv_header_stdbool_h,[ + AC_TRY_COMPILE([],[bool foo = false], + [cf_cv_header_stdbool_h=0], + [AC_TRY_COMPILE([ +#ifndef __BEOS__ +#include +#endif +],[bool foo = false], + [cf_cv_header_stdbool_h=1], + [cf_cv_header_stdbool_h=0])])]) + +if test "$cf_cv_header_stdbool_h" = 1 +then AC_MSG_RESULT(yes) +else AC_MSG_RESULT(no) +fi + AC_MSG_CHECKING([for builtin bool type]) + AC_CACHE_VAL(ifelse($1,,cf_cv_builtin_bool,[$1]),[ AC_TRY_COMPILE([ #include @@ -179,12 +278,15 @@ AC_CACHE_VAL(ifelse($1,,cf_cv_builtin_bool,[$1]),[ [ifelse($1,,cf_cv_builtin_bool,[$1])=1], [ifelse($1,,cf_cv_builtin_bool,[$1])=0]) ]) + if test "$ifelse($1,,cf_cv_builtin_bool,[$1])" = 1 then AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) fi ])dnl dnl --------------------------------------------------------------------------- +dnl CF_BOOL_SIZE version: 12 updated: 2006/12/16 12:33:30 +dnl ------------ dnl Test for the size of 'bool' in the configured C++ compiler (e.g., a type). dnl Don't bother looking for bool.h, since it's been deprecated. dnl @@ -230,7 +332,7 @@ main() else if (sizeof(x) == sizeof(long)) fputs("long", fp); fclose(fp); } - exit(0); + ${cf_cv_main_return:-return}(0); } ], [cf_cv_type_of_bool=`cat cf_test.out` @@ -251,6 +353,99 @@ if test "$cf_cv_type_of_bool" = unknown ; then fi ])dnl dnl --------------------------------------------------------------------------- +dnl CF_BUILD_CC version: 6 updated: 2006/10/14 15:23:15 +dnl ----------- +dnl If we're cross-compiling, allow the user to override the tools and their +dnl options. The configure script is oriented toward identifying the host +dnl compiler, etc., but we need a build compiler to generate parts of the +dnl source. +dnl +dnl $1 = default for $CPPFLAGS +dnl $2 = default for $LIBS +AC_DEFUN([CF_BUILD_CC],[ +AC_REQUIRE([CF_PROG_EXT]) +if test "$cross_compiling" = yes ; then + + # defaults that we might want to override + : ${BUILD_CFLAGS:=''} + : ${BUILD_CPPFLAGS:='ifelse([$1],,,[$1])'} + : ${BUILD_LDFLAGS:=''} + : ${BUILD_LIBS:='ifelse([$2],,,[$2])'} + : ${BUILD_EXEEXT:='$x'} + : ${BUILD_OBJEXT:='o'} + + AC_ARG_WITH(build-cc, + [ --with-build-cc=XXX the build C compiler ($BUILD_CC)], + [BUILD_CC="$withval"], + [AC_CHECK_PROGS(BUILD_CC, gcc cc cl)]) + AC_MSG_CHECKING(for native build C compiler) + AC_MSG_RESULT($BUILD_CC) + + AC_MSG_CHECKING(for native build C preprocessor) + AC_ARG_WITH(build-cpp, + [ --with-build-cpp=XXX the build C preprocessor ($BUILD_CPP)], + [BUILD_CPP="$withval"], + [BUILD_CPP='${BUILD_CC} -E']) + AC_MSG_RESULT($BUILD_CPP) + + AC_MSG_CHECKING(for native build C flags) + AC_ARG_WITH(build-cflags, + [ --with-build-cflags=XXX the build C compiler-flags ($BUILD_CFLAGS)], + [BUILD_CFLAGS="$withval"]) + AC_MSG_RESULT($BUILD_CFLAGS) + + AC_MSG_CHECKING(for native build C preprocessor-flags) + AC_ARG_WITH(build-cppflags, + [ --with-build-cppflags=XXX the build C preprocessor-flags ($BUILD_CPPFLAGS)], + [BUILD_CPPFLAGS="$withval"]) + AC_MSG_RESULT($BUILD_CPPFLAGS) + + AC_MSG_CHECKING(for native build linker-flags) + AC_ARG_WITH(build-ldflags, + [ --with-build-ldflags=XXX the build linker-flags ($BUILD_LDFLAGS)], + [BUILD_LDFLAGS="$withval"]) + AC_MSG_RESULT($BUILD_LDFLAGS) + + AC_MSG_CHECKING(for native build linker-libraries) + AC_ARG_WITH(build-libs, + [ --with-build-libs=XXX the build libraries (${BUILD_LIBS})], + [BUILD_LIBS="$withval"]) + AC_MSG_RESULT($BUILD_LIBS) + + # this assumes we're on Unix. + BUILD_EXEEXT= + BUILD_OBJEXT=o + + : ${BUILD_CC:='${CC}'} + + if ( test "$BUILD_CC" = "$CC" || test "$BUILD_CC" = '${CC}' ) ; then + AC_MSG_ERROR([Cross-build requires two compilers. +Use --with-build-cc to specify the native compiler.]) + fi + +else + : ${BUILD_CC:='${CC}'} + : ${BUILD_CPP:='${CPP}'} + : ${BUILD_CFLAGS:='${CFLAGS}'} + : ${BUILD_CPPFLAGS:='${CPPFLAGS}'} + : ${BUILD_LDFLAGS:='${LDFLAGS}'} + : ${BUILD_LIBS:='${LIBS}'} + : ${BUILD_EXEEXT:='$x'} + : ${BUILD_OBJEXT:='o'} +fi + +AC_SUBST(BUILD_CC) +AC_SUBST(BUILD_CPP) +AC_SUBST(BUILD_CFLAGS) +AC_SUBST(BUILD_CPPFLAGS) +AC_SUBST(BUILD_LDFLAGS) +AC_SUBST(BUILD_LIBS) +AC_SUBST(BUILD_EXEEXT) +AC_SUBST(BUILD_OBJEXT) +])dnl +dnl --------------------------------------------------------------------------- +dnl CF_CFG_DEFAULTS version: 7 updated: 2005/09/24 16:15:00 +dnl --------------- dnl Determine the default configuration into which we'll install ncurses. This dnl can be overridden by the user's command-line options. There's two items to dnl look for: @@ -267,7 +462,7 @@ AC_MSG_CHECKING(for prefix) if test "x$prefix" = "xNONE" ; then case "$cf_cv_system_name" in # non-vendor systems don't have a conflict - openbsd*|netbsd*|freebsd*|linux*|cygwin*) + openbsd*|freebsd*|linux*|cygwin*|k*bsd*-gnu) prefix=/usr ;; *) prefix=$ac_default_prefix @@ -303,6 +498,8 @@ AC_MSG_RESULT($includedir) fi ])dnl dnl --------------------------------------------------------------------------- +dnl CF_CGETENT version: 3 updated: 2000/08/12 23:18:52 +dnl ---------- dnl Check if the terminal-capability database functions are available. If not, dnl ncurses has a much-reduced version. AC_DEFUN([CF_CGETENT],[ @@ -324,6 +521,8 @@ AC_MSG_RESULT($cf_cv_cgetent) test "$cf_cv_cgetent" = yes && AC_DEFINE(HAVE_BSD_CGETENT) ])dnl dnl --------------------------------------------------------------------------- +dnl CF_CHECK_CACHE version: 10 updated: 2004/05/23 13:03:31 +dnl -------------- dnl Check if we're accidentally using a cache from a different machine. dnl Derive the system name, as a check for reusing the autoconf cache. dnl @@ -331,9 +530,12 @@ dnl If we've packaged config.guess and config.sub, run that (since it does a dnl better job than uname). Normally we'll use AC_CANONICAL_HOST, but allow dnl an extra parameter that we may override, e.g., for AC_CANONICAL_SYSTEM dnl which is useful in cross-compiles. +dnl +dnl Note: we would use $ac_config_sub, but that is one of the places where +dnl autoconf 2.5x broke compatibility with autoconf 2.13 AC_DEFUN([CF_CHECK_CACHE], [ -if test -f $srcdir/config.guess ; then +if test -f $srcdir/config.guess || test -f $ac_aux_dir/config.guess ; then ifelse([$1],,[AC_CANONICAL_HOST],[$1]) system_name="$host_os" else @@ -354,6 +556,8 @@ if test ".$system_name" != ".$cf_cv_system_name" ; then fi ])dnl dnl --------------------------------------------------------------------------- +dnl CF_CHECK_ERRNO version: 9 updated: 2001/12/30 18:03:23 +dnl -------------- dnl Check for data that is usually declared in or , e.g., dnl the 'errno' variable. Define a DECL_xxx symbol if we must declare it dnl ourselves. @@ -383,6 +587,8 @@ fi CF_CHECK_EXTERN_DATA($1,int) ])dnl dnl --------------------------------------------------------------------------- +dnl CF_CHECK_EXTERN_DATA version: 3 updated: 2001/12/30 18:03:23 +dnl -------------------- dnl Check for existence of external data in the current set of libraries. If dnl we can modify it, it's real enough. dnl $1 = the name to check @@ -406,6 +612,8 @@ fi ])dnl dnl --------------------------------------------------------------------------- +dnl CF_CPP_PARAM_INIT version: 4 updated: 2001/04/07 22:31:18 +dnl ----------------- dnl Check if the C++ compiler accepts duplicate parameter initialization. This dnl is a late feature for the standard and is not in some recent compilers dnl (1999/9/11). @@ -439,6 +647,64 @@ fi test "$cf_cv_cpp_param_init" = yes && AC_DEFINE(CPP_HAS_PARAM_INIT) ])dnl dnl --------------------------------------------------------------------------- +dnl CF_CPP_STATIC_CAST version: 1 updated: 2005/07/23 16:52:43 +dnl ------------------ +dnl Check if the C++ compiler accepts static_cast in generics. This appears to +dnl not be supported in g++ before 3.0 +AC_DEFUN([CF_CPP_STATIC_CAST], +[ +if test -n "$CXX"; then + +AC_CACHE_CHECK(if $CXX accepts static_cast,cf_cv_cpp_static_cast,[ + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + + AC_TRY_COMPILE([ +class NCursesPanel +{ +public: + NCursesPanel(int nlines, + int ncols, + int begin_y = 0, + int begin_x = 0) + { + } + + ~NCursesPanel(); +}; + +template class NCursesUserPanel : public NCursesPanel +{ +public: + NCursesUserPanel (int nlines, + int ncols, + int begin_y = 0, + int begin_x = 0, + const T* p_UserData = static_cast(0)) + : NCursesPanel (nlines, ncols, begin_y, begin_x) + { + }; + NCursesUserPanel(const T* p_UserData = static_cast(0)) : NCursesPanel() + { + }; + + virtual ~NCursesUserPanel() {}; +}; +],[ + const char* p_UserData = static_cast(0)], + [cf_cv_cpp_static_cast=yes], + [cf_cv_cpp_static_cast=no]) + + AC_LANG_RESTORE +]) + +fi + +test "$cf_cv_cpp_static_cast" = yes && AC_DEFINE(CPP_HAS_STATIC_CAST) +])dnl +dnl --------------------------------------------------------------------------- +dnl CF_CPP_VSCAN_FUNC version: 5 updated: 2001/12/02 01:39:28 +dnl ----------------- dnl Check if the g++ compiler supports vscan function (not a standard feature). AC_DEFUN([CF_CPP_VSCAN_FUNC], [ @@ -515,9 +781,13 @@ strstream_cast) esac ])dnl dnl --------------------------------------------------------------------------- +dnl CF_DIRNAME version: 4 updated: 2002/12/21 19:25:52 +dnl ---------- dnl "dirname" is not portable, so we fake it with a shell script. -AC_DEFUN([CF_DIRNAME],[$1=`echo $2 | sed -e 's:/[[^/]]*$::'`])dnl +AC_DEFUN([CF_DIRNAME],[$1=`echo $2 | sed -e 's%/[[^/]]*$%%'`])dnl dnl --------------------------------------------------------------------------- +dnl CF_DIRS_TO_MAKE version: 3 updated: 2002/02/23 20:38:31 +dnl --------------- AC_DEFUN([CF_DIRS_TO_MAKE], [ DIRS_TO_MAKE="lib" @@ -537,12 +807,38 @@ done AC_SUBST(DIRS_TO_MAKE) ])dnl dnl --------------------------------------------------------------------------- +dnl CF_DISABLE_LEAKS version: 4 updated: 2006/12/16 15:10:42 +dnl ---------------- +dnl Combine no-leak checks with the libraries or tools that are used for the +dnl checks. +AC_DEFUN([CF_DISABLE_LEAKS],[ + +AC_REQUIRE([CF_WITH_DMALLOC]) +AC_REQUIRE([CF_WITH_DBMALLOC]) +AC_REQUIRE([CF_WITH_VALGRIND]) + +AC_MSG_CHECKING(if you want to perform memory-leak testing) +AC_ARG_ENABLE(leaks, + [ --disable-leaks test: free permanent memory, analyze leaks], + [with_no_leaks=yes], + : ${with_no_leaks:=no}) +AC_MSG_RESULT($with_no_leaks) + +if test "$with_no_leaks" = yes ; then + AC_DEFINE(NO_LEAKS) +fi +])dnl +dnl --------------------------------------------------------------------------- +dnl CF_ERRNO version: 5 updated: 1997/11/30 12:44:39 +dnl -------- dnl Check if 'errno' is declared in AC_DEFUN([CF_ERRNO], [ CF_CHECK_ERRNO(errno) ])dnl dnl --------------------------------------------------------------------------- +dnl CF_ETIP_DEFINES version: 3 updated: 2003/03/22 19:13:43 +dnl --------------- dnl Test for conflicting definitions of exception in gcc 2.8.0, etc., between dnl math.h and builtin.h, only for ncurses AC_DEFUN([CF_ETIP_DEFINES], @@ -554,7 +850,7 @@ for cf_math in "" MATH_H do for cf_excp in "" MATH_EXCEPTION do - CXXFLAGS="$cf_save_CXXFLAGS -I${srcdir}/c++ -I${srcdir}/menu" + CXXFLAGS="$cf_save_CXXFLAGS -I${srcdir}/c++ -I${srcdir}/menu -I${srcdir}/include" test -n "$cf_math" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_math}" test -n "$cf_excp" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_excp}" AC_TRY_COMPILE([ @@ -571,6 +867,43 @@ AC_MSG_RESULT($cf_result) CXXFLAGS="$cf_save_CXXFLAGS" ]) dnl --------------------------------------------------------------------------- +dnl CF_FUNC_DLSYM version: 1 updated: 2004/06/16 20:52:45 +dnl ------------- +dnl Test for dlsym() and related functions, as well as libdl. +dnl +dnl Sets +dnl $cf_have_dlsym +dnl $cf_have_libdl +AC_DEFUN([CF_FUNC_DLSYM],[ +cf_have_dlsym=no +AC_CHECK_FUNC(dlsym,cf_have_dlsym=yes,[ + +cf_have_libdl=no +AC_CHECK_LIB(dl,dlsym,[ + cf_have_dlsym=yes + cf_have_libdl=yes])]) + +if test "$cf_have_dlsym" = yes ; then + test "$cf_have_libdl" = yes && LIBS="-ldl $LIBS" + + AC_MSG_CHECKING(whether able to link to dl*() functions) + AC_TRY_LINK([#include ],[ + void *obj; + if ((obj = dlopen("filename", 0)) != 0) { + if (dlsym(obj, "symbolname") == 0) { + dlclose(obj); + } + }],[ + AC_DEFINE(HAVE_LIBDL)],[ + AC_MSG_ERROR(Cannot link test program for libdl)]) + AC_MSG_RESULT(ok) +else + AC_MSG_ERROR(Cannot find dlsym function) +fi +]) +dnl --------------------------------------------------------------------------- +dnl CF_FUNC_MEMMOVE version: 7 updated: 2006/12/16 12:33:30 +dnl --------------- dnl Check for memmove, or a bcopy that can handle overlapping copy. If neither dnl is found, add our own version of memmove to the list of objects. AC_DEFUN([CF_FUNC_MEMMOVE], @@ -585,7 +918,7 @@ int main() { bcopy(data, temp, sizeof(data)); bcopy(temp+10, temp, 15); bcopy(temp+5, temp+15, 10); - exit (strcmp(temp, "klmnopqrstuwwxypqrstuwwxyz")); + ${cf_cv_main_return:-return} (strcmp(temp, "klmnopqrstuwwxypqrstuwwxyz")); } ], [cf_cv_good_bcopy=yes], @@ -600,6 +933,42 @@ int main() { fi ])])dnl dnl --------------------------------------------------------------------------- +dnl CF_FUNC_NANOSLEEP version: 3 updated: 2006/12/16 12:33:30 +dnl ----------------- +dnl Check for existence of workable nanosleep() function. Some systems, e.g., +dnl AIX 4.x, provide a non-working version. +AC_DEFUN([CF_FUNC_NANOSLEEP],[ +AC_CACHE_CHECK(if nanosleep really works,cf_cv_func_nanosleep,[ +AC_TRY_RUN([ +#include +#include +#include + +#ifdef HAVE_SYS_TIME_H +#include +#endif + +int main() { + struct timespec ts1, ts2; + int code; + ts1.tv_sec = 0; + ts1.tv_nsec = 750000000; + ts2.tv_sec = 0; + ts2.tv_nsec = 0; + errno = 0; + code = nanosleep(&ts1, &ts2); /* on failure errno is ENOSYS. */ + ${cf_cv_main_return:-return}(code != 0); +} +], + [cf_cv_func_nanosleep=yes], + [cf_cv_func_nanosleep=no], + [cf_cv_func_nanosleep=unknown])]) + +test "$cf_cv_func_nanosleep" = "yes" && AC_DEFINE(HAVE_NANOSLEEP) +]) +dnl --------------------------------------------------------------------------- +dnl CF_FUNC_POLL version: 4 updated: 2006/12/16 12:33:30 +dnl ------------ dnl See if the poll function really works. Some platforms have poll(), but dnl it does not work for terminals or files. AC_DEFUN([CF_FUNC_POLL],[ @@ -619,7 +988,7 @@ int main() { myfds.events = POLLIN; ret = poll(&myfds, 1, 100); - exit(ret != 0); + ${cf_cv_main_return:-return}(ret != 0); }], [cf_cv_working_poll=yes], [cf_cv_working_poll=no], @@ -627,6 +996,8 @@ int main() { test "$cf_cv_working_poll" = "yes" && AC_DEFINE(HAVE_WORKING_POLL) ])dnl dnl --------------------------------------------------------------------------- +dnl CF_FUNC_TERMIOS version: 2 updated: 2000/07/22 23:37:24 +dnl --------------- dnl Some old/broken variations define tcgetattr() only as a macro in dnl termio(s).h AC_DEFUN([CF_FUNC_TERMIOS],[ @@ -654,6 +1025,8 @@ tcgetattr(1, &foo);], test "$cf_cv_have_tcgetattr" = yes && AC_DEFINE(HAVE_TCGETATTR) ])dnl dnl --------------------------------------------------------------------------- +dnl CF_FUNC_VSSCANF version: 3 updated: 2001/12/19 00:50:10 +dnl --------------- dnl Check for vsscanf() function, which is in c9x but generally not in earlier dnl versions of C. It is in the GNU C library, and can often be simulated by dnl other functions. @@ -697,6 +1070,8 @@ esac ])dnl dnl --------------------------------------------------------------------------- +dnl CF_GCC_ATTRIBUTES version: 10 updated: 2005/05/28 13:16:28 +dnl ----------------- dnl Test for availability of useful gcc __attribute__ directives to quiet dnl compiler warnings. Though useful, not all are supported -- and contrary dnl to documentation, unrecognized directives cause older compilers to barf. @@ -743,26 +1118,24 @@ int main(int argc GCC_UNUSED, char *argv[[]] GCC_UNUSED) { return 0; } EOF for cf_attribute in scanf printf unused noreturn do - CF_UPPER(CF_ATTRIBUTE,$cf_attribute) + CF_UPPER(cf_ATTRIBUTE,$cf_attribute) cf_directive="__attribute__(($cf_attribute))" echo "checking for $CC $cf_directive" 1>&AC_FD_CC case $cf_attribute in scanf|printf) cat >conftest.h <conftest.h <>confdefs.h -# else -# sed -e 's/__attr.*/\/*nothing*\//' conftest.h >>confdefs.h fi done else @@ -772,23 +1145,88 @@ rm -rf conftest* fi ])dnl dnl --------------------------------------------------------------------------- +dnl CF_GCC_VERSION version: 4 updated: 2005/08/27 09:53:42 +dnl -------------- +dnl Find version of gcc +AC_DEFUN([CF_GCC_VERSION],[ +AC_REQUIRE([AC_PROG_CC]) +GCC_VERSION=none +if test "$GCC" = yes ; then + AC_MSG_CHECKING(version of $CC) + GCC_VERSION="`${CC} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`" + test -z "$GCC_VERSION" && GCC_VERSION=unknown + AC_MSG_RESULT($GCC_VERSION) +fi +])dnl +dnl --------------------------------------------------------------------------- +dnl CF_GCC_WARNINGS version: 20 updated: 2005/08/06 18:37:29 +dnl --------------- dnl Check if the compiler supports useful warning options. There's a few that dnl we don't use, simply because they're too noisy: dnl dnl -Wconversion (useful in older versions of gcc, but not in gcc 2.7.x) dnl -Wredundant-decls (system headers make this too noisy) dnl -Wtraditional (combines too many unrelated messages, only a few useful) -dnl -Wwrite-strings (too noisy, but should review occasionally) +dnl -Wwrite-strings (too noisy, but should review occasionally). This +dnl is enabled for ncurses using "--enable-const". dnl -pedantic dnl +dnl Parameter: +dnl $1 is an optional list of gcc warning flags that a particular +dnl application might want to use, e.g., "no-unused" for +dnl -Wno-unused +dnl Special: +dnl If $with_ext_const is "yes", add a check for -Wwrite-strings +dnl AC_DEFUN([CF_GCC_WARNINGS], [ -if test "$GCC" = yes -then - cat > conftest.$ac_ext < conftest.$ac_ext <>conftest.ads <>conftest.adb <&AC_FD_CC 2>&1 ) ; then +ifelse($3,, :,[ $3]) +ifelse($4,,,[else + $4]) +fi +rm -f conftest* +])dnl +dnl --------------------------------------------------------------------------- +dnl CF_GNAT_TRY_RUN version: 3 updated: 2004/08/21 19:02:08 +dnl --------------- dnl Verify that a test program compiles and runs with GNAT dnl $cf_ada_make is set to the program that compiles/links +dnl $ADAFLAGS may be set to the GNAT flags. +dnl +dnl $1 is the text of the spec +dnl $2 is the text of the body +dnl $3 is the shell command to execute if successful +dnl $4 is the shell command to execute if not successful AC_DEFUN([CF_GNAT_TRY_RUN], [ rm -f conftest* @@ -830,7 +1316,7 @@ CF_EOF cat >>conftest.adb <&AC_FD_CC 2>&1 ) ; then +if ( $cf_ada_make $ADAFLAGS conftest 1>&AC_FD_CC 2>&1 ) ; then if ( ./conftest 1>&AC_FD_CC 2>&1 ) ; then ifelse($3,, :,[ $3]) ifelse($4,,,[ else @@ -842,23 +1328,28 @@ fi rm -f conftest* ])dnl dnl --------------------------------------------------------------------------- -dnl Verify Version of GNAT. +dnl CF_GNAT_VERSION version: 12 updated: 2006/10/14 15:23:15 +dnl --------------- +dnl Verify version of GNAT. AC_DEFUN([CF_GNAT_VERSION], [ -cf_cv_gnat_version=`$cf_ada_make -v 2>&1 | grep '[[0-9]].[[0-9]][[0-9]]*' |\ - sed -e 's/[[^0-9 \.]]//g' | $AWK '{print $[1];}'` -case $cf_cv_gnat_version in +AC_MSG_CHECKING(for gnat version) +cf_gnat_version=`${cf_ada_make-gnatmake} -v 2>&1 | grep '[[0-9]].[[0-9]][[0-9]]*' |\ + sed -e '2,$d' -e 's/[[^0-9 \.]]//g' -e 's/^[[ ]]*//' -e 's/ .*//'` +AC_MSG_RESULT($cf_gnat_version) + +case $cf_gnat_version in 3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*) cf_cv_prog_gnat_correct=yes ;; - *) echo Unsupported GNAT version $cf_cv_gnat_version. Required is 3.11 or better. Disabling Ada95 binding. + *) echo Unsupported GNAT version $cf_gnat_version. Required is 3.11 or better. Disabling Ada95 binding. cf_cv_prog_gnat_correct=no ;; esac -case $cf_cv_gnat_version in - 3.1*|[[4-9]].*) +case $cf_gnat_version in + 3.[[1-9]]*|[[4-9]].*) cf_compile_generics=generics - cf_generic_objects="\$(GENOBJS)" + cf_generic_objects="\${GENOBJS}" ;; *) cf_compile_generics= cf_generic_objects= @@ -866,6 +1357,8 @@ case $cf_cv_gnat_version in esac ]) dnl --------------------------------------------------------------------------- +dnl CF_GNU_SOURCE version: 6 updated: 2005/07/09 13:23:07 +dnl ------------- dnl Check if we must define _GNU_SOURCE to get a reasonable value for dnl _XOPEN_SOURCE, upon which many POSIX definitions depend. This is a defect dnl (or misfeature) of glibc2, which breaks portability of many applications, @@ -894,6 +1387,8 @@ make an error test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE" ])dnl dnl --------------------------------------------------------------------------- +dnl CF_GPP_LIBRARY version: 8 updated: 2003/02/02 01:41:46 +dnl -------------- dnl If we're trying to use g++, test if libg++ is installed (a rather common dnl problem :-). If we have the compiler but no library, we'll be able to dnl configure, but won't be able to build the c++ demo program. @@ -908,7 +1403,7 @@ os2*) #(vi cf_gpp_libname=g++ ;; esac -if test "$ac_cv_prog_gxx" = yes; then +if test "$GXX" = yes; then AC_MSG_CHECKING([for lib$cf_gpp_libname]) cf_save="$LIBS" LIBS="$LIBS -l$cf_gpp_libname" @@ -936,35 +1431,340 @@ if test "$ac_cv_prog_gxx" = yes; then fi ])dnl dnl --------------------------------------------------------------------------- +dnl CF_GXX_VERSION version: 5 updated: 2005/08/27 09:53:42 +dnl -------------- +dnl Check for version of g++ +AC_DEFUN([CF_GXX_VERSION],[ +AC_REQUIRE([AC_PROG_CPP]) +GXX_VERSION=none +if test "$GXX" = yes; then + AC_MSG_CHECKING(version of g++) + GXX_VERSION="`${CXX-g++} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`" + test -z "$GXX_VERSION" && GXX_VERSION=unknown + AC_MSG_RESULT($GXX_VERSION) +fi +])dnl +dnl --------------------------------------------------------------------------- +dnl CF_GXX_WARNINGS version: 5 updated: 2005/08/13 14:54:38 +dnl --------------- +dnl Check if the compiler supports useful warning options. +dnl +dnl Most of gcc's options apply to g++, except: +dnl -Wbad-function-cast +dnl -Wmissing-declarations +dnl -Wnested-externs +dnl +dnl Omit a few (for now): +dnl -Winline +dnl +dnl Parameter: +dnl $1 is an optional list of g++ warning flags that a particular +dnl application might want to use, e.g., "no-unused" for +dnl -Wno-unused +dnl Special: +dnl If $with_ext_const is "yes", add a check for -Wwrite-strings +dnl +AC_DEFUN([CF_GXX_WARNINGS], +[ + +CF_INTEL_COMPILER(GXX,INTEL_CPLUSPLUS,CXXFLAGS) + +AC_REQUIRE([CF_GXX_VERSION]) + +AC_LANG_SAVE +AC_LANG_CPLUSPLUS + +cat > conftest.$ac_ext < +],[ + char *path = "/tmp/foo"; +#ifdef DB_VERSION_MAJOR +#if DB_VERSION_MAJOR >= 4 + DB *result = 0; + db_create(&result, NULL, 0); + result->open(result, + NULL, + path, + path, + DB_HASH, + DB_CREATE, + 0644); +#elif DB_VERSION_MAJOR >= 3 + DB *result = 0; + db_create(&result, NULL, 0); + result->open(result, + path, + path, + DB_HASH, + DB_CREATE, + 0644); +#elif DB_VERSION_MAJOR >= 2 + DB *result = 0; + db_open(path, + DB_HASH, + DB_CREATE, + 0644, + (DB_ENV *) 0, + (DB_INFO *) 0, + &result); +#endif /* DB_VERSION_MAJOR */ +#else + DB *result = dbopen(path, + 2, + 0644, + DB_HASH, + 0); +#endif + ${cf_cv_main_return:-return}(result != 0) +],[ + if test -n "$cf_db_libs" ; then + cf_cv_hashed_db_libs=$cf_db_libs + else + cf_cv_hashed_db_libs=default + fi + LIBS="$cf_save_libs" + break +]) + LIBS="$cf_save_libs" +done +]) +])dnl +dnl --------------------------------------------------------------------------- +dnl CF_HASHED_DB_VERSION version: 2 updated: 2006/08/19 15:12:49 +dnl -------------------- +dnl Given that we have the header file for hashed database, find the version +dnl information. +AC_DEFUN([CF_HASHED_DB_VERSION], +[ +AC_CACHE_CHECK(for version of db, cf_cv_hashed_db_version,[ +cf_cv_hashed_db_version=unknown + +for cf_db_version in 1 2 3 4 +do + CF_MSG_LOG(checking for db version $cf_db_version) + AC_TRY_COMPILE([ +$ac_includes_default +#include + +#ifdef DB_VERSION_MAJOR + /* db2 (DB_VERSION_MAJOR=2) has also DB_VERSION_MINOR, tested with 7 */ +#if $cf_db_version == DB_VERSION_MAJOR + /* ok */ +#else + make an error +#endif +#else +#if $cf_db_version == 1 + /* ok: assuming this is DB 1.8.5 */ +#else + make an error +#endif +#endif +],[DBT *foo = 0],[ + cf_cv_hashed_db_version=$cf_db_version + break + ]) +done +]) +])dnl +dnl --------------------------------------------------------------------------- +dnl CF_HELP_MESSAGE version: 3 updated: 1998/01/14 10:56:23 +dnl --------------- dnl Insert text into the help-message, for readability, from AC_ARG_WITH. AC_DEFUN([CF_HELP_MESSAGE], [AC_DIVERT_HELP([$1])dnl ])dnl dnl --------------------------------------------------------------------------- +dnl CF_INCLUDE_DIRS version: 5 updated: 2006/10/14 15:23:15 +dnl --------------- dnl Construct the list of include-options according to whether we're building dnl in the source directory or using '--srcdir=DIR' option. If we're building dnl with gcc, don't append the includedir if it happens to be /usr/include, dnl since that usually breaks gcc's shadow-includes. AC_DEFUN([CF_INCLUDE_DIRS], [ -CPPFLAGS="$CPPFLAGS -I. -I../include" +CPPFLAGS="-I. -I../include $CPPFLAGS" if test "$srcdir" != "."; then - CPPFLAGS="$CPPFLAGS -I\$(srcdir)/../include" + CPPFLAGS="-I\${srcdir}/../include $CPPFLAGS" fi if test "$GCC" != yes; then - CPPFLAGS="$CPPFLAGS -I\$(includedir)" + CPPFLAGS="$CPPFLAGS -I\${includedir}" elif test "$includedir" != "/usr/include"; then if test "$includedir" = '${prefix}/include' ; then if test $prefix != /usr ; then - CPPFLAGS="$CPPFLAGS -I\$(includedir)" + CPPFLAGS="$CPPFLAGS -I\${includedir}" fi else - CPPFLAGS="$CPPFLAGS -I\$(includedir)" + CPPFLAGS="$CPPFLAGS -I\${includedir}" fi fi AC_SUBST(CPPFLAGS) ])dnl dnl --------------------------------------------------------------------------- +dnl CF_INTEL_COMPILER version: 3 updated: 2005/08/06 18:37:29 +dnl ----------------- +dnl Check if the given compiler is really the Intel compiler for Linux. It +dnl tries to imitate gcc, but does not return an error when it finds a mismatch +dnl between prototypes, e.g., as exercised by CF_MISSING_CHECK. +dnl +dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to +dnl ensure that it is not mistaken for gcc/g++. It is normally invoked from +dnl the wrappers for gcc and g++ warnings. +dnl +dnl $1 = GCC (default) or GXX +dnl $2 = INTEL_COMPILER (default) or INTEL_CPLUSPLUS +dnl $3 = CFLAGS (default) or CXXFLAGS +AC_DEFUN([CF_INTEL_COMPILER],[ +ifelse($2,,INTEL_COMPILER,[$2])=no + +if test "$ifelse($1,,[$1],GCC)" = yes ; then + case $host_os in + linux*|gnu*) + AC_MSG_CHECKING(if this is really Intel ifelse($1,GXX,C++,C) compiler) + cf_save_CFLAGS="$ifelse($3,,CFLAGS,[$3])" + ifelse($3,,CFLAGS,[$3])="$ifelse($3,,CFLAGS,[$3]) -no-gcc" + AC_TRY_COMPILE([],[ +#ifdef __INTEL_COMPILER +#else +make an error +#endif +],[ifelse($2,,INTEL_COMPILER,[$2])=yes +cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc" +],[]) + ifelse($3,,CFLAGS,[$3])="$cf_save_CFLAGS" + AC_MSG_RESULT($ifelse($2,,INTEL_COMPILER,[$2])) + ;; + esac +fi +])dnl +dnl --------------------------------------------------------------------------- +dnl CF_ISASCII version: 3 updated: 2000/08/12 23:18:52 +dnl ---------- dnl Check if we have either a function or macro for 'isascii()'. AC_DEFUN([CF_ISASCII], [ @@ -978,6 +1778,46 @@ AC_MSG_RESULT($cf_cv_have_isascii) test "$cf_cv_have_isascii" = yes && AC_DEFINE(HAVE_ISASCII) ])dnl dnl --------------------------------------------------------------------------- +dnl CF_LARGEFILE version: 6 updated: 2006/09/23 19:07:52 +dnl ------------ +dnl Add checks for large file support. +AC_DEFUN([CF_LARGEFILE],[ +ifdef([AC_FUNC_FSEEKO],[ + AC_SYS_LARGEFILE + if test "$enable_largefile" != no ; then + AC_FUNC_FSEEKO + + # Normally we would collect these definitions in the config.h, + # but (like _XOPEN_SOURCE), some environments rely on having these + # defined before any of the system headers are included. Another + # case comes up with C++, e.g., on AIX the compiler compiles the + # header files by themselves before looking at the body files it is + # told to compile. For ncurses, those header files do not include + # the config.h + test "$ac_cv_sys_large_files" != no && CPPFLAGS="$CPPFLAGS -D_LARGE_FILES " + test "$ac_cv_sys_largefile_source" != no && CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE " + + AC_CACHE_CHECK(whether to use struct dirent64, cf_cv_struct_dirent64,[ + AC_TRY_COMPILE([ +#include +#include + ],[ + /* if transitional largefile support is setup, this is true */ + extern struct dirent64 * readdir(DIR *); + struct dirent64 *x = readdir((DIR *)0); + struct dirent *y = readdir((DIR *)0); + int z = x - y; + ], + [cf_cv_struct_dirent64=yes], + [cf_cv_struct_dirent64=no]) + ]) + test "$cf_cv_struct_dirent64" = yes && AC_DEFINE(HAVE_STRUCT_DIRENT64) + fi +]) +]) +dnl --------------------------------------------------------------------------- +dnl CF_LIBUTF8 version: 2 updated: 2002/01/19 22:51:32 +dnl ---------- dnl Check for libutf8 AC_DEFUN([CF_LIBUTF8], [ @@ -997,6 +1837,8 @@ if test "$cf_cv_libutf8" = yes ; then fi ])dnl dnl --------------------------------------------------------------------------- +dnl CF_LIB_PREFIX version: 7 updated: 2001/01/12 01:23:48 +dnl ------------- dnl Compute the library-prefix for the given host system dnl $1 = variable to set AC_DEFUN([CF_LIB_PREFIX], @@ -1010,6 +1852,8 @@ ifelse($1,,,[$1=$LIB_PREFIX]) AC_SUBST(LIB_PREFIX) ])dnl dnl --------------------------------------------------------------------------- +dnl CF_LIB_RULES version: 40 updated: 2006/10/14 15:23:15 +dnl ------------ dnl Append definitions and rules for the given models to the subdirectory dnl Makefiles, and the recursion rule for the top-level Makefile. If the dnl subdirectory is a library-source directory, modify the LIBRARIES list in @@ -1027,12 +1871,14 @@ CF_LIB_PREFIX(cf_prefix) AC_REQUIRE([CF_SUBST_NCURSES_VERSION]) for cf_dir in $SRC_SUBDIRS do - if test -f $srcdir/$cf_dir/modules; then + if test ! -d $srcdir/$cf_dir ; then + continue + elif test -f $srcdir/$cf_dir/modules; then IMPORT_LIB= SHARED_LIB= LIBS_TO_MAKE= - for cf_item in $CF_LIST_MODELS + for cf_item in $cf_LIST_MODELS do CF_LIB_SUFFIX($cf_item,cf_suffix) if test $cf_item = shared ; then @@ -1040,23 +1886,45 @@ do case "$cf_cv_shlib_version" in #(vi rel) #(vi case "$cf_cv_system_name" in #(vi - darwin*) cf_suffix='.$(REL_VERSION)'"$cf_suffix" ;; #(vi - *) cf_suffix="$cf_suffix"'.$(REL_VERSION)' ;; + darwin*) + case .${LIB_SUFFIX} in + .w*) + cf_suffix=`echo $cf_suffix | sed 's/^w//'` + cf_suffix=w'.${REL_VERSION}'"$cf_suffix" + ;; + *) + cf_suffix='.${REL_VERSION}'"$cf_suffix" + ;; + esac + ;; #(vi + *) cf_suffix="$cf_suffix"'.${REL_VERSION}' ;; esac ;; abi) case "$cf_cv_system_name" in #(vi - darwin*) cf_suffix='.$(ABI_VERSION)'"$cf_suffix" ;; #(vi - *) cf_suffix="$cf_suffix"'.$(ABI_VERSION)' ;; + darwin*) + case .${LIB_SUFFIX} in + .w*) + cf_suffix=`echo $cf_suffix | sed 's/^w//'` + cf_suffix=w'.${ABI_VERSION}'"$cf_suffix" + ;; + *) + cf_suffix='.${ABI_VERSION}'"$cf_suffix" + ;; + esac + ;; #(vi + *) cf_suffix="$cf_suffix"'.${ABI_VERSION}' ;; esac ;; esac fi # cygwin needs import library, and has unique naming convention + # use autodetected ${cf_prefix} for import lib and static lib, but + # use 'cyg' prefix for shared lib. if test $cf_cv_shlib_version = cygdll ; then - SHARED_LIB="../lib/${cf_prefix}${cf_dir}\$(ABI_VERSION).dll" - IMPORT_LIB="../lib/${cf_prefix}${cf_dir}.dll.a" - LIBS_TO_MAKE="$LIBS_TO_MAKE \$(SHARED_LIB) \$(IMPORT_LIB)" + SHARED_LIB="cyg${cf_dir}\${ABI_VERSION}.dll" + IMPORT_LIB="${cf_prefix}${cf_dir}.dll.a" + LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/\${SHARED_LIB} ../lib/\${IMPORT_LIB}" continue fi fi @@ -1065,21 +1933,18 @@ do if test $cf_dir = ncurses ; then cf_subsets="$LIB_SUBSETS" - case "$LIB_SUBSETS" in #(vi - termlib+*) #(vi - ;; - *) #(vi - cf_item=`echo $LIBS_TO_MAKE |sed -e s/$LIB_NAME/$TINFO_NAME/g` + cf_termlib=`echo "$cf_subsets" |sed -e 's/ .*$//'` + if test "$cf_termlib" != "$cf_subsets" ; then + cf_item=`echo $LIBS_TO_MAKE |sed -e s%${LIB_NAME}${LIB_SUFFIX}%${TINFO_LIB_SUFFIX}%g` LIBS_TO_MAKE="$cf_item $LIBS_TO_MAKE" - ;; - esac + fi else - cf_subsets=`echo "$LIB_SUBSETS" | sed -e 's/^termlib //'` + cf_subsets=`echo "$LIB_SUBSETS" | sed -e 's/^termlib.* //'` fi - sed -e "s@\@LIBS_TO_MAKE\@@$LIBS_TO_MAKE@" \ - -e "s@\@IMPORT_LIB\@@$IMPORT_LIB@" \ - -e "s@\@SHARED_LIB\@@$SHARED_LIB@" \ + sed -e "s%@LIBS_TO_MAKE@%$LIBS_TO_MAKE%" \ + -e "s%@IMPORT_LIB@%$IMPORT_LIB%" \ + -e "s%@SHARED_LIB@%$SHARED_LIB%" \ $cf_dir/Makefile >$cf_dir/Makefile.out mv $cf_dir/Makefile.out $cf_dir/Makefile @@ -1090,20 +1955,36 @@ do for cf_subset in $cf_subsets do cf_subdirs= - for cf_item in $CF_LIST_MODELS + for cf_item in $cf_LIST_MODELS do echo "Appending rules for ${cf_item} model (${cf_dir}: ${cf_subset})" - CF_UPPER(CF_ITEM,$cf_item) + CF_UPPER(cf_ITEM,$cf_item) CF_LIB_SUFFIX($cf_item,cf_suffix) CF_OBJ_SUBDIR($cf_item,cf_subdir) + # Test for case where we build libtinfo with a different name. + cf_libname=$cf_dir + if test $cf_dir = ncurses ; then + case $cf_subset in + *base*) + ;; + termlib*) + cf_libname=$TINFO_LIB_SUFFIX + if test -n "${DFT_ARG_SUFFIX}" ; then + # undo $LIB_SUFFIX add-on in CF_LIB_SUFFIX + cf_suffix=`echo $cf_suffix |sed -e "s%^${LIB_SUFFIX}%%"` + fi + ;; + esac + fi + # These dependencies really are for development, not # builds, but they are useful in porting, too. cf_depend="../include/ncurses_cfg.h" if test "$srcdir" = "."; then cf_reldir="." else - cf_reldir="\$(srcdir)" + cf_reldir="\${srcdir}" fi if test -f $srcdir/$cf_dir/$cf_dir.priv.h; then @@ -1112,10 +1993,24 @@ do cf_depend="$cf_depend $cf_reldir/curses.priv.h" fi + cf_dir_suffix= + old_cf_suffix="$cf_suffix" + if test "$cf_cv_shlib_version_infix" = yes ; then + if test -n "$LIB_SUFFIX" ; then + case $LIB_SUFFIX in + w*) + cf_libname=`echo $cf_libname | sed 's/w$//'` + cf_suffix=`echo $cf_suffix | sed 's/^w//'` + cf_dir_suffix=w + ;; + esac + fi + fi + $AWK -f $srcdir/mk-1st.awk \ - name=$cf_dir \ + name=${cf_libname}${cf_dir_suffix} \ traces=$LIB_TRACING \ - MODEL=$CF_ITEM \ + MODEL=$cf_ITEM \ model=$cf_subdir \ prefix=$cf_prefix \ suffix=$cf_suffix \ @@ -1127,8 +2022,11 @@ do ldconfig="$LDCONFIG" \ overwrite=$WITH_OVERWRITE \ depend="$cf_depend" \ - target="$target" \ + host="$host" \ $srcdir/$cf_dir/modules >>$cf_dir/Makefile + + cf_suffix="$old_cf_suffix" + for cf_subdir2 in $cf_subdirs lib do test $cf_subdir = $cf_subdir2 && break @@ -1137,29 +2035,35 @@ do $AWK -f $srcdir/mk-2nd.awk \ name=$cf_dir \ traces=$LIB_TRACING \ - MODEL=$CF_ITEM \ + MODEL=$cf_ITEM \ model=$cf_subdir \ subset=$cf_subset \ srcdir=$srcdir \ echo=$WITH_ECHO \ + crenames=$cf_cv_prog_CC_c_o \ + cxxrenames=$cf_cv_prog_CXX_c_o \ $srcdir/$cf_dir/modules >>$cf_dir/Makefile cf_subdirs="$cf_subdirs $cf_subdir" done done fi - echo ' cd '$cf_dir' && $(MAKE) $(CF_MFLAGS) [$]@' >>Makefile + echo ' cd '$cf_dir' && ${MAKE} ${CF_MFLAGS} [$]@' >>Makefile done for cf_dir in $SRC_SUBDIRS do + if test ! -d $srcdir/$cf_dir ; then + continue + fi + if test -f $cf_dir/Makefile ; then case "$cf_dir" in Ada95) #(vi echo 'libs \' >> Makefile echo 'install.libs \' >> Makefile echo 'uninstall.libs ::' >> Makefile - echo ' cd '$cf_dir' && $(MAKE) $(CF_MFLAGS) [$]@' >> Makefile + echo ' cd '$cf_dir' && ${MAKE} ${CF_MFLAGS} [$]@' >> Makefile ;; esac fi @@ -1182,7 +2086,7 @@ install.libs \\ uninstall.libs \\ install.$cf_dir \\ uninstall.$cf_dir :: - cd $cf_dir && \$(MAKE) \$(CF_MFLAGS) \[$]@ + cd $cf_dir && \${MAKE} \${CF_MFLAGS} \[$]@ CF_EOF elif test -f $srcdir/$cf_dir/headers; then cat >> Makefile <> Makefile <> Makefile <>headers.sh <>headers.sh <>$cf_dir/Makefile <>$cf_dir/Makefile j=$i done + echo " $j" >>$cf_dir/Makefile + for i in `cat $srcdir/$cf_dir/headers |fgrep -v "#"` do - echo " @ (cd \$(DESTDIR)\$(includedir) && rm -f `basename $i`) ; ../headers.sh \$(INSTALL_DATA) \$(DESTDIR)\$(includedir) \$(srcdir) $i" >>$cf_dir/Makefile - test $i = curses.h && test $WITH_CURSES_H = yes && echo " @ (cd \$(DESTDIR)\$(includedir) && rm -f ncurses.h && \$(LN_S) curses.h ncurses.h)" >>$cf_dir/Makefile + echo " @ (cd \${DESTDIR}\${includedir} && rm -f `basename $i`) ; ../headers.sh \${INSTALL_DATA} \${DESTDIR}\${includedir} \${srcdir} $i" >>$cf_dir/Makefile + test $i = curses.h && test $WITH_CURSES_H = yes && echo " @ (cd \${DESTDIR}\${includedir} && rm -f ncurses.h && \${LN_S} curses.h ncurses.h)" >>$cf_dir/Makefile done cat >>$cf_dir/Makefile <>$cf_dir/Makefile - test $i = curses.h && echo " -@ (cd \$(DESTDIR)\$(includedir) && rm -f ncurses.h)" >>$cf_dir/Makefile + echo " -@ (cd \${DESTDIR}\${includedir} && rm -f $i)" >>$cf_dir/Makefile + test $i = curses.h && echo " -@ (cd \${DESTDIR}\${includedir} && rm -f ncurses.h)" >>$cf_dir/Makefile done fi if test -f $srcdir/$cf_dir/modules; then if test "$cf_dir" != "c++" ; then cat >>$cf_dir/Makefile <<"CF_EOF" -depend : $(AUTO_SRC) - makedepend -- $(CPPFLAGS) -- $(C_SRC) +depend : ${AUTO_SRC} + makedepend -- ${CPPFLAGS} -- ${C_SRC} # DO NOT DELETE THIS LINE -- make depend depends on it. CF_EOF @@ -1363,6 +2275,45 @@ done ])dnl dnl --------------------------------------------------------------------------- +dnl CF_LIB_SONAME version: 3 updated: 2006/12/16 15:55:46 +dnl ------------- +dnl Find the and soname for the given shared library. Set the cache variable +dnl cf_cv_$3_soname to this, unless it is not found. Then set the cache +dnl variable to "unknown". +dnl +dnl $1 = headers +dnl $2 = code +dnl $3 = library name +AC_DEFUN([CF_LIB_SONAME], +[ +AC_CACHE_CHECK(for soname of $3 library,cf_cv_$3_soname,[ + +cf_cv_$3_soname=unknown +if test "$cross_compiling" != yes ; then +cat >conftest.$ac_ext </dev/null | sed -e 's,^.*/,,' -e 's, .*$,,' | fgrep lib$3.` + test -z "$cf_cv_$3_soname" && cf_cv_$3_soname=unknown + fi + fi +rm -f conftest* +LIBS="$cf_save_LIBS" +fi +]) +]) +dnl --------------------------------------------------------------------------- +dnl CF_LIB_SUFFIX version: 13 updated: 2003/11/01 16:09:07 +dnl ------------- dnl Compute the library file-suffix from the given model name dnl $1 = model name dnl $2 = variable to set @@ -1379,13 +2330,20 @@ AC_DEFUN([CF_LIB_SUFFIX], case $cf_cv_system_name in cygwin*) $2='.dll' ;; darwin*) $2='.dylib' ;; - hpux*) $2='.sl' ;; + hpux*) + case $target in + ia64*) $2='.so' ;; + *) $2='.sl' ;; + esac + ;; *) $2='.so' ;; esac esac test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}" ])dnl dnl --------------------------------------------------------------------------- +dnl CF_LIB_TYPE version: 4 updated: 2000/10/20 22:57:49 +dnl ----------- dnl Compute the string to append to -library from the given model name dnl $1 = model name dnl $2 = variable to set @@ -1402,6 +2360,8 @@ AC_DEFUN([CF_LIB_TYPE], test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}" ])dnl dnl --------------------------------------------------------------------------- +dnl CF_LINK_DATAONLY version: 8 updated: 2006/12/16 12:33:30 +dnl ---------------- dnl Some systems have a non-ANSI linker that doesn't pull in modules that have dnl only data (i.e., no functions), for example NeXT. On those systems we'll dnl have to provide wrappers for global tables to ensure they're linked @@ -1417,7 +2377,7 @@ int testdata[[3]] = { 123, 456, 789 }; EOF if AC_TRY_EVAL(ac_compile) ; then mv conftest.o data.o && \ - ( $AR $AR_OPTS conftest.a data.o ) 2>&5 1>/dev/null + ( $AR $AR_OPTS conftest.a data.o ) 2>&AC_FD_CC 1>/dev/null fi rm -f conftest.$ac_ext data.o cat >conftest.$ac_ext <&5 1>/dev/null + ( $AR $AR_OPTS conftest.a func.o ) 2>&AC_FD_CC 1>/dev/null fi rm -f conftest.$ac_ext func.o - ( eval $ac_cv_prog_RANLIB conftest.a ) 2>&5 >/dev/null + ( eval $RANLIB conftest.a ) 2>&AC_FD_CC >/dev/null cf_saveLIBS="$LIBS" LIBS="conftest.a $LIBS" AC_TRY_RUN([ int main() { extern int testfunc(); - exit (!testfunc()); + ${cf_cv_main_return:-return} (!testfunc()); } ], [cf_cv_link_dataonly=yes], @@ -1463,6 +2423,8 @@ fi ])dnl dnl --------------------------------------------------------------------------- +dnl CF_LINK_FUNCS version: 7 updated: 2006/12/16 12:33:30 +dnl ------------- dnl Most Unix systems have both link and symlink, a few don't have symlink. dnl A few non-Unix systems implement symlink, but not link. dnl A few non-systems implement neither (or have nonfunctional versions). @@ -1472,7 +2434,7 @@ AC_CHECK_FUNCS( \ remove \ unlink ) -if test "$ac_cv_prog_cc_cross" = yes ; then +if test "$cross_compiling" = yes ; then AC_CHECK_FUNCS( \ link \ symlink ) @@ -1503,7 +2465,7 @@ int main() #else remove(dst); #endif - exit (fail); + ${cf_cv_main_return:-return} (fail); } ],[ cf_cv_link_funcs="$cf_cv_link_funcs $cf_func" @@ -1518,22 +2480,36 @@ int main() fi ])dnl dnl --------------------------------------------------------------------------- -dnl Some 'make' programs support $(MAKEFLAGS), some $(MFLAGS), to pass 'make' +dnl CF_MAIN_RETURN version: 1 updated: 2006/12/10 09:51:54 +dnl -------------- +dnl Check if a return from main to the shell actually returns the same exit +dnl code. This is true for almost any POSIX environment. +dnl +dnl Some very old environments did not flush stdout, etc., on an exit. That +dnl would be a useful case to test for also. +AC_DEFUN([CF_MAIN_RETURN], +[ +cf_cv_main_return=return +])dnl +dnl --------------------------------------------------------------------------- +dnl CF_MAKEFLAGS version: 12 updated: 2006/10/21 08:27:03 +dnl ------------ +dnl Some 'make' programs support ${MAKEFLAGS}, some ${MFLAGS}, to pass 'make' dnl options to lower-levels. It's very useful for "make -n" -- if we have it. dnl (GNU 'make' does both, something POSIX 'make', which happens to make the -dnl $(MAKEFLAGS) variable incompatible because it adds the assignments :-) +dnl ${MAKEFLAGS} variable incompatible because it adds the assignments :-) AC_DEFUN([CF_MAKEFLAGS], [ AC_CACHE_CHECK(for makeflags variable, cf_cv_makeflags,[ cf_cv_makeflags='' - for cf_option in '-$(MAKEFLAGS)' '$(MFLAGS)' + for cf_option in '-${MAKEFLAGS}' '${MFLAGS}' do cat >cf_makeflags.tmp </dev/null` + cf_result=`${MAKE-make} -k -f cf_makeflags.tmp 2>/dev/null | sed -e 's,[[ ]]*$,,'` case "$cf_result" in .*k) cf_result=`${MAKE-make} -k -f cf_makeflags.tmp CC=cc 2>/dev/null` @@ -1545,7 +2521,8 @@ CF_EOF esac break ;; - *) echo no match "$cf_result" + .-) ;; + *) echo "given option \"$cf_option\", no match \"$cf_result\"" ;; esac done @@ -1555,6 +2532,8 @@ CF_EOF AC_SUBST(cf_cv_makeflags) ])dnl dnl --------------------------------------------------------------------------- +dnl CF_MAKE_TAGS version: 2 updated: 2000/10/04 09:18:40 +dnl ------------ dnl Generate tags/TAGS targets for makefiles. Do not generate TAGS if we have dnl a monocase filesystem. AC_DEFUN([CF_MAKE_TAGS],[ @@ -1582,8 +2561,20 @@ fi AC_SUBST(MAKE_LOWER_TAGS) ])dnl dnl --------------------------------------------------------------------------- +dnl CF_MANPAGE_FORMAT version: 7 updated: 2003/12/20 19:30:34 +dnl ----------------- dnl Option to allow user to override automatic configuration of manpage format. -dnl There are several special cases. +dnl There are several special cases: +dnl +dnl gzip - man checks for, can display gzip'd files +dnl compress - man checks for, can display compressed files +dnl BSDI - files in the cat-directories are suffixed ".0" +dnl formatted - installer should format (put files in cat-directory) +dnl catonly - installer should only format, e.g., for a turnkey system. +dnl +dnl There are other configurations which this macro does not test, e.g., HPUX's +dnl compressed manpages (but uncompressed manpages are fine, and HPUX's naming +dnl convention would not match our use). AC_DEFUN([CF_MANPAGE_FORMAT], [ AC_REQUIRE([CF_PATHSEP]) @@ -1591,49 +2582,96 @@ AC_MSG_CHECKING(format of man-pages) AC_ARG_WITH(manpage-format, [ --with-manpage-format specify manpage-format: gzip/compress/BSDI/normal and - optionally formatted, e.g., gzip,formatted], + optionally formatted/catonly, e.g., gzip,formatted], [MANPAGE_FORMAT=$withval], [MANPAGE_FORMAT=unknown]) -case ".$MANPAGE_FORMAT" in -.gzip|.compress|.BSDI|.normal|.formatted) # (vi - ;; -.unknown|.) # (vi +test -z "$MANPAGE_FORMAT" && MANPAGE_FORMAT=unknown +MANPAGE_FORMAT=`echo "$MANPAGE_FORMAT" | sed -e 's/,/ /g'` + +cf_unknown= + +case $MANPAGE_FORMAT in +unknown) if test -z "$MANPATH" ; then MANPATH="/usr/man:/usr/share/man" fi + # look for the 'date' man-page (it's most likely to be installed!) + MANPAGE_FORMAT= + cf_preform=no + cf_catonly=yes + cf_example=date + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATHSEP}" - MANPAGE_FORMAT=unknown for cf_dir in $MANPATH; do test -z "$cf_dir" && cf_dir=/usr/man - for cf_name in $cf_dir/*/date.[[01]]* $cf_dir/*/date + for cf_name in $cf_dir/man*/$cf_example.[[01]]* $cf_dir/cat*/$cf_example.[[01]]* $cf_dir/man*/$cf_example $cf_dir/cat*/$cf_example do - cf_test=`echo $cf_name | sed -e 's/*//'` - if test "x$cf_test" = "x$cf_name" ; then - case "$cf_name" in - *.gz) MANPAGE_FORMAT=gzip;; - *.Z) MANPAGE_FORMAT=compress;; - *.0) MANPAGE_FORMAT=BSDI,formatted;; - *) MANPAGE_FORMAT=normal;; - esac - break - fi + cf_test=`echo $cf_name | sed -e 's/*//'` + if test "x$cf_test" = "x$cf_name" ; then + + case "$cf_name" in + *.gz) MANPAGE_FORMAT="$MANPAGE_FORMAT gzip";; + *.Z) MANPAGE_FORMAT="$MANPAGE_FORMAT compress";; + *.0) MANPAGE_FORMAT="$MANPAGE_FORMAT BSDI";; + *) MANPAGE_FORMAT="$MANPAGE_FORMAT normal";; + esac + + case "$cf_name" in + $cf_dir/man*) + cf_catonly=no + ;; + $cf_dir/cat*) + cf_preform=yes + ;; + esac + break + fi + + # if we found a match in either man* or cat*, stop looking + if test -n "$MANPAGE_FORMAT" ; then + cf_found=no + test "$cf_preform" = yes && MANPAGE_FORMAT="$MANPAGE_FORMAT formatted" + test "$cf_catonly" = yes && MANPAGE_FORMAT="$MANPAGE_FORMAT catonly" + case "$cf_name" in + $cf_dir/cat*) + cf_found=yes + ;; + esac + test $cf_found=yes && break + fi done - if test "$MANPAGE_FORMAT" != "unknown" ; then + # only check the first directory in $MANPATH where we find manpages + if test -n "$MANPAGE_FORMAT" ; then break fi done + # if we did not find the example, just assume it is normal + test -z "$MANPAGE_FORMAT" && MANPAGE_FORMAT=normal IFS="$ac_save_ifs" ;; -.*) # (vi - AC_MSG_WARN(Unexpected manpage-format) +*) + for cf_option in $MANPAGE_FORMAT; do + case $cf_option in #(vi + gzip|compress|BSDI|normal|formatted|catonly) + ;; + *) + cf_unknown="$cf_unknown $cf_option" + ;; + esac + done ;; esac AC_MSG_RESULT($MANPAGE_FORMAT) +if test -n "$cf_unknown" ; then + AC_MSG_WARN(Unexpected manpage-format $cf_unknown) +fi ])dnl dnl --------------------------------------------------------------------------- +dnl CF_MANPAGE_RENAMES version: 7 updated: 2005/06/18 18:51:57 +dnl ------------------ dnl The Debian people have their own naming convention for manpages. This dnl option lets us override the name of the file containing renaming, or dnl disable it altogether. @@ -1671,7 +2709,7 @@ if test "$MANPAGE_RENAMES" != no ; then # Construct a sed-script to perform renaming within man-pages if test -n "$MANPAGE_RENAMES" ; then test ! -d man && mkdir man - sh $srcdir/man/make_sed.sh $MANPAGE_RENAMES >man/edit_man.sed + sh $srcdir/man/make_sed.sh $MANPAGE_RENAMES >./edit_man.sed fi fi @@ -1679,21 +2717,51 @@ AC_MSG_RESULT($MANPAGE_RENAMES) AC_SUBST(MANPAGE_RENAMES) ])dnl dnl --------------------------------------------------------------------------- +dnl CF_MANPAGE_SYMLINKS version: 4 updated: 2003/12/13 18:01:58 +dnl ------------------- dnl Some people expect each tool to make all aliases for manpages in the dnl man-directory. This accommodates the older, less-capable implementations dnl of 'man', and is optional. AC_DEFUN([CF_MANPAGE_SYMLINKS], [ -AC_MSG_CHECKING(for manpage symlinks) +AC_MSG_CHECKING(if manpage aliases will be installed) + +AC_ARG_WITH(manpage-aliases, + [ --with-manpage-aliases specify manpage-aliases using .so], + [MANPAGE_ALIASES=$withval], + [MANPAGE_ALIASES=yes]) + +AC_MSG_RESULT($MANPAGE_ALIASES) + +if test "$LN_S" = "ln -s"; then + cf_use_symlinks=yes +else + cf_use_symlinks=no +fi + +MANPAGE_SYMLINKS=no +if test "$MANPAGE_ALIASES" = yes ; then +AC_MSG_CHECKING(if manpage symlinks should be used) AC_ARG_WITH(manpage-symlinks, - [ --with-manpage-symlinks specify manpage-symlinks], + [ --with-manpage-symlinks specify manpage-aliases using symlinks], [MANPAGE_SYMLINKS=$withval], - [MANPAGE_SYMLINKS=yes]) + [MANPAGE_SYMLINKS=$cf_use_symlinks]) + +if test "$$cf_use_symlinks" = no; then +if test "$MANPAGE_SYMLINKS" = yes ; then + AC_MSG_WARN(cannot make symlinks, will use .so files) + MANPAGE_SYMLINKS=no +fi +fi AC_MSG_RESULT($MANPAGE_SYMLINKS) +fi + ])dnl dnl --------------------------------------------------------------------------- +dnl CF_MANPAGE_TBL version: 3 updated: 2002/01/19 22:51:32 +dnl -------------- dnl This option causes manpages to be run through tbl(1) to generate tables dnl correctly. AC_DEFUN([CF_MANPAGE_TBL], @@ -1708,6 +2776,8 @@ AC_ARG_WITH(manpage-tbl, AC_MSG_RESULT($MANPAGE_TBL) ])dnl dnl --------------------------------------------------------------------------- +dnl CF_MAN_PAGES version: 31 updated: 2006/12/09 12:27:08 +dnl ------------ dnl Try to determine if the man-pages on the system are compressed, and if dnl so, what format is used. Use this information to construct a script that dnl will install man-pages. @@ -1726,83 +2796,132 @@ CF_MANPAGE_TBL fi case "$MANPAGE_FORMAT" in # (vi + *catonly*) # (vi + cf_format=yes + cf_inboth=no + ;; *formatted*) # (vi - cf_subdir='$mandir/cat' cf_format=yes + cf_inboth=yes ;; *) - cf_subdir='$mandir/man' cf_format=no + cf_inboth=no ;; esac test ! -d man && mkdir man -cat >man/edit_man.sh <$cf_edit_man <>man/edit_man.sh <>$cf_edit_man <>man/edit_man.sh <>$cf_edit_man <>man/edit_man.sh <>$cf_edit_man <>man/edit_man.sh <>$cf_edit_man <>man/edit_man.sh <>$cf_edit_man <>man/edit_man.sh <>$cf_edit_man <>man/edit_man.sh <\$TMP +cat >>$cf_edit_man <\$TMP CF_EOF else -cat >>man/edit_man.sh <>$cf_edit_man <\$TMP CF_EOF fi -if test $MANPAGE_TBL = yes ; then -cat >>man/edit_man.sh <>$cf_edit_man <\$TMP.out mv \$TMP.out \$TMP -CF_EOF fi +CF_EOF + if test $with_curses_h != yes ; then -cat >>man/edit_man.sh <>$cf_edit_man <\$TMP.out mv \$TMP.out \$TMP CF_EOF fi -if test $cf_format = yes ; then -cat >>man/edit_man.sh <\$TMP.out - mv \$TMP.out \$TMP -CF_EOF -fi -case "$MANPAGE_FORMAT" in #(vi -*compress*) #(vi -cat >>man/edit_man.sh <>$cf_edit_man <\$TMP.out + mv \$TMP.out \$TMP fi - target="\$target.Z" CF_EOF - ;; -*gzip*) #(vi -cat >>man/edit_man.sh <>$cf_edit_man <>man/edit_man.sh <>$cf_edit_man <>man/edit_man.sh <>$cf_edit_man <\$TMP +CF_EOF +if test -n "$cf_compress" ; then +cat >>$cf_edit_man <>$cf_edit_man <>man/edit_man.sh < -#ifdef HAVE_LIBUTF8_H -#include -#endif], - [mbstate_t state], - [cf_cv_mbstate_t=no], - [AC_TRY_COMPILE([ -#include -#include -#ifdef HAVE_LIBUTF8_H -#include -#endif], - [mbstate_t value], - [cf_cv_mbstate_t=yes], - [cf_cv_mbstate_t=unknown])])]) - -if test "$cf_cv_mbstate_t" = yes ; then - AC_DEFINE(NEED_WCHAR_H) -fi - -if test "$cf_cv_mbstate_t" != unknown ; then - AC_DEFINE(HAVE_MBSTATE_T) -fi -])dnl -dnl --------------------------------------------------------------------------- +dnl CF_MIXEDCASE_FILENAMES version: 3 updated: 2003/09/20 17:07:55 +dnl ---------------------- dnl Check if the file-system supports mixed-case filenames. If we're able to dnl create a lowercase name and see it as uppercase, it doesn't support that. AC_DEFUN([CF_MIXEDCASE_FILENAMES], [ AC_CACHE_CHECK(if filesystem supports mixed-case filenames,cf_cv_mixedcase,[ +if test "$cross_compiling" = yes ; then + case $target_alias in #(vi + *-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-mingw32*|*-uwin*) #(vi + cf_cv_mixedcase=no + ;; + *) + cf_cv_mixedcase=yes + ;; + esac +else rm -f conftest CONFTEST echo test >conftest if test -f CONFTEST ; then @@ -2012,10 +3137,13 @@ AC_CACHE_CHECK(if filesystem supports mixed-case filenames,cf_cv_mixedcase,[ cf_cv_mixedcase=yes fi rm -f conftest CONFTEST +fi ]) test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES) ])dnl dnl --------------------------------------------------------------------------- +dnl CF_MKSTEMP version: 5 updated: 2006/12/16 12:33:30 +dnl ---------- dnl Check for a working mkstemp. This creates two files, checks that they are dnl successfully created and distinct (AmigaOS apparently fails on the last). AC_DEFUN([CF_MKSTEMP],[ @@ -2052,7 +3180,7 @@ int main() if (result == 0 && !strcmp(name[0], name[1])) result = 1; - exit(result); + ${cf_cv_main_return:-return}(result); } ],[cf_cv_func_mkstemp=yes ],[cf_cv_func_mkstemp=no @@ -2064,6 +3192,80 @@ if test "$cf_cv_func_mkstemp" = yes ; then fi ])dnl dnl --------------------------------------------------------------------------- +dnl CF_MSG_LOG version: 3 updated: 1997/09/07 14:05:52 +dnl ---------- +dnl Write a debug message to config.log, along with the line number in the +dnl configure script. +AC_DEFUN([CF_MSG_LOG],[ +echo "(line __oline__) testing $* ..." 1>&AC_FD_CC +])dnl +dnl --------------------------------------------------------------------------- +dnl CF_NCURSES_ABI_6 version: 1 updated: 2005/09/17 18:42:49 +dnl ---------------- +dnl Set ncurses' ABI to 6 unless overridden by explicit configure option, and +dnl warn about this. +AC_DEFUN([CF_NCURSES_ABI_6],[ +if test "${with_abi_version+set}" != set; then + case $cf_cv_rel_version in + 5.*) + cf_cv_rel_version=6.0 + cf_cv_abi_version=6 + AC_MSG_WARN(Overriding ABI version to $cf_cv_abi_version) + ;; + esac +fi +])dnl +dnl --------------------------------------------------------------------------- +dnl CF_NO_LEAKS_OPTION version: 4 updated: 2006/12/16 14:24:05 +dnl ------------------ +dnl see CF_WITH_NO_LEAKS +AC_DEFUN([CF_NO_LEAKS_OPTION],[ +AC_MSG_CHECKING(if you want to use $1 for testing) +AC_ARG_WITH($1, + [$2], + [AC_DEFINE($3)ifelse([$4],,[ + $4 +]) + : ${with_cflags:=-g} + : ${with_no_leaks:=yes} + with_$1=yes], + [with_$1=]) +AC_MSG_RESULT(${with_$1:-no}) + +case .$with_cflags in #(vi +.*-g*) + case .$CFLAGS in #(vi + .*-g*) #(vi + ;; + *) + CF_ADD_CFLAGS([-g]) + ;; + esac + ;; +esac +])dnl +dnl --------------------------------------------------------------------------- +dnl CF_NUMBER_SYNTAX version: 1 updated: 2003/09/20 18:12:49 +dnl ---------------- +dnl Check if the given variable is a number. If not, report an error. +dnl $1 is the variable +dnl $2 is the message +AC_DEFUN([CF_NUMBER_SYNTAX],[ +if test -n "$1" ; then + case $1 in #(vi + [[0-9]]*) #(vi + ;; + *) + AC_MSG_ERROR($2 is not a number: $1) + ;; + esac +else + AC_MSG_ERROR($2 value is empty) +fi +])dnl +dnl --------------------------------------------------------------------------- +dnl CF_OBJ_SUBDIR version: 4 updated: 2002/02/23 20:38:31 +dnl ------------- dnl Compute the object-directory name from the given model name AC_DEFUN([CF_OBJ_SUBDIR], [ @@ -2082,6 +3284,8 @@ AC_DEFUN([CF_OBJ_SUBDIR], esac ])dnl dnl --------------------------------------------------------------------------- +dnl CF_PATHSEP version: 3 updated: 2001/01/12 01:23:53 +dnl ---------- dnl Provide a value for the $PATH and similar separator AC_DEFUN([CF_PATHSEP], [ @@ -2093,11 +3297,19 @@ ifelse($1,,,[$1=$PATHSEP]) AC_SUBST(PATHSEP) ])dnl dnl --------------------------------------------------------------------------- +dnl CF_PATH_SYNTAX version: 11 updated: 2006/09/02 08:55:46 +dnl -------------- dnl Check the argument to see that it looks like a pathname. Rewrite it if it dnl begins with one of the prefix/exec_prefix variables, and then again if the dnl result begins with 'NONE'. This is necessary to work around autoconf's dnl delayed evaluation of those symbols. AC_DEFUN([CF_PATH_SYNTAX],[ +if test "x$prefix" != xNONE; then + cf_path_syntax="$prefix" +else + cf_path_syntax="$ac_default_prefix" +fi + case ".[$]$1" in #(vi .\[$]\(*\)*|.\'*\'*) #(vi ;; @@ -2109,12 +3321,12 @@ case ".[$]$1" in #(vi eval $1="[$]$1" case ".[$]$1" in #(vi .NONE/*) - $1=`echo [$]$1 | sed -e s@NONE@$ac_default_prefix@` + $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%` ;; esac ;; #(vi -.NONE/*) - $1=`echo [$]$1 | sed -e s@NONE@$ac_default_prefix@` +.no|.NONE/*) + $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%` ;; *) ifelse($2,,[AC_ERROR([expected a pathname, not \"[$]$1\"])],$2) @@ -2122,28 +3334,256 @@ case ".[$]$1" in #(vi esac ])dnl dnl --------------------------------------------------------------------------- +dnl CF_POSIX_C_SOURCE version: 6 updated: 2005/07/14 20:25:10 +dnl ----------------- +dnl Define _POSIX_C_SOURCE to the given level, and _POSIX_SOURCE if needed. +dnl +dnl POSIX.1-1990 _POSIX_SOURCE +dnl POSIX.1-1990 and _POSIX_SOURCE and +dnl POSIX.2-1992 C-Language _POSIX_C_SOURCE=2 +dnl Bindings Option +dnl POSIX.1b-1993 _POSIX_C_SOURCE=199309L +dnl POSIX.1c-1996 _POSIX_C_SOURCE=199506L +dnl X/Open 2000 _POSIX_C_SOURCE=200112L +dnl +dnl Parameters: +dnl $1 is the nominal value for _POSIX_C_SOURCE +AC_DEFUN([CF_POSIX_C_SOURCE], +[ +cf_POSIX_C_SOURCE=ifelse($1,,199506L,$1) + +cf_save_CFLAGS="$CFLAGS" +cf_save_CPPFLAGS="$CPPFLAGS" + +CF_REMOVE_DEFINE(cf_trim_CFLAGS,$cf_save_CFLAGS,_POSIX_C_SOURCE) +CF_REMOVE_DEFINE(cf_trim_CPPFLAGS,$cf_save_CPPFLAGS,_POSIX_C_SOURCE) + +AC_CACHE_CHECK(if we should define _POSIX_C_SOURCE,cf_cv_posix_c_source,[ + CF_MSG_LOG(if the symbol is already defined go no further) + AC_TRY_COMPILE([#include ],[ +#ifndef _POSIX_C_SOURCE +make an error +#endif], + [cf_cv_posix_c_source=no], + [cf_want_posix_source=no + case .$cf_POSIX_C_SOURCE in #(vi + .[[12]]??*) #(vi + cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE" + ;; + .2) #(vi + cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE" + cf_want_posix_source=yes + ;; + .*) + cf_want_posix_source=yes + ;; + esac + if test "$cf_want_posix_source" = yes ; then + AC_TRY_COMPILE([#include ],[ +#ifdef _POSIX_SOURCE +make an error +#endif],[], + cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE") + fi + CF_MSG_LOG(ifdef from value $cf_POSIX_C_SOURCE) + CFLAGS="$cf_trim_CFLAGS" + CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source" + CF_MSG_LOG(if the second compile does not leave our definition intact error) + AC_TRY_COMPILE([#include ],[ +#ifndef _POSIX_C_SOURCE +make an error +#endif],, + [cf_cv_posix_c_source=no]) + CFLAGS="$cf_save_CFLAGS" + CPPFLAGS="$cf_save_CPPFLAGS" + ]) +]) + +if test "$cf_cv_posix_c_source" != no ; then + CFLAGS="$cf_trim_CFLAGS" + CPPFLAGS="$cf_trim_CPPFLAGS" + if test "$cf_cv_cc_u_d_options" = yes ; then + cf_temp_posix_c_source=`echo "$cf_cv_posix_c_source" | \ + sed -e 's/-D/-U/g' -e 's/=[[^ ]]*//g'` + CPPFLAGS="$CPPFLAGS $cf_temp_posix_c_source" + fi + CPPFLAGS="$CPPFLAGS $cf_cv_posix_c_source" +fi + +])dnl +dnl --------------------------------------------------------------------------- +dnl CF_PREDEFINE version: 1 updated: 2003/07/26 17:53:56 +dnl ------------ +dnl Add definitions to CPPFLAGS to ensure they're predefined for all compiles. +dnl +dnl $1 = symbol to test +dnl $2 = value (if any) to use for a predefinition +AC_DEFUN([CF_PREDEFINE], +[ +AC_MSG_CHECKING(if we must define $1) +AC_TRY_COMPILE([#include +],[ +#ifndef $1 +make an error +#endif],[cf_result=no],[cf_result=yes]) +AC_MSG_RESULT($cf_result) + +if test "$cf_result" = yes ; then + CPPFLAGS="$CPPFLAGS ifelse($2,,-D$1,[-D$1=$2])" +elif test "x$2" != "x" ; then + AC_MSG_CHECKING(checking for compatible value versus $2) + AC_TRY_COMPILE([#include +],[ +#if $1-$2 < 0 +make an error +#endif],[cf_result=yes],[cf_result=no]) + AC_MSG_RESULT($cf_result) + if test "$cf_result" = no ; then + # perhaps we can override it - try... + CPPFLAGS="$CPPFLAGS -D$1=$2" + fi +fi +])dnl +dnl --------------------------------------------------------------------------- +dnl CF_PRG_RULES version: 1 updated: 2006/06/03 11:45:08 +dnl ------------ +dnl Append definitions and rules for the given programs to the subdirectory +dnl Makefiles, and the recursion rule for the top-level Makefile. +dnl +dnl parameters +dnl $1 = script to run +dnl $2 = list of subdirectories +dnl +dnl variables +dnl $AWK +AC_DEFUN([CF_PRG_RULES], +[ +for cf_dir in $2 +do + if test ! -d $srcdir/$cf_dir; then + continue + elif test -f $srcdir/$cf_dir/programs; then + $AWK -f $1 $srcdir/$cf_dir/programs >>$cf_dir/Makefile + fi +done + +])dnl +dnl --------------------------------------------------------------------------- +dnl CF_PROG_AWK version: 1 updated: 2006/09/16 11:40:59 +dnl ----------- +dnl Check for awk, ensure that the check found something. +AC_DEFUN([CF_PROG_AWK], +[ +AC_PROG_AWK +test -z "$AWK" && AC_MSG_ERROR(No awk program found) +])dnl +dnl --------------------------------------------------------------------------- +dnl CF_PROG_CC_C_O version: 2 updated: 2006/12/16 15:55:46 +dnl -------------- +dnl Analogous to AC_PROG_CC_C_O, but more useful: tests only $CC, ensures that +dnl the output file can be renamed, and allows for a shell variable that can +dnl be used later. The parameter is either CC or CXX. The result is the +dnl cache variable: +dnl $cf_cv_prog_CC_c_o +dnl $cf_cv_prog_CXX_c_o +AC_DEFUN([CF_PROG_CC_C_O], +[AC_REQUIRE([AC_PROG_CC])dnl +AC_MSG_CHECKING([whether [$]$1 understands -c and -o together]) +AC_CACHE_VAL(cf_cv_prog_$1_c_o, +[ +cat > conftest.$ac_ext < +int main() +{ + ${cf_cv_main_return:-return}(0); +} +CF_EOF +# We do the test twice because some compilers refuse to overwrite an +# existing .o file with -o, though they will create one. +ac_try='[$]$1 -c conftest.$ac_ext -o conftest2.$ac_objext >&AC_FD_CC' +if AC_TRY_EVAL(ac_try) && + test -f conftest2.$ac_objext && AC_TRY_EVAL(ac_try); +then + eval cf_cv_prog_$1_c_o=yes +else + eval cf_cv_prog_$1_c_o=no +fi +rm -f conftest* +])dnl +if test $cf_cv_prog_$1_c_o = yes; then + AC_MSG_RESULT([yes]) +else + AC_MSG_RESULT([no]) +fi +])dnl +dnl --------------------------------------------------------------------------- +dnl CF_PROG_CC_U_D version: 1 updated: 2005/07/14 16:59:30 +dnl -------------- +dnl Check if C (preprocessor) -U and -D options are processed in the order +dnl given rather than by type of option. Some compilers insist on apply all +dnl of the -U options after all of the -D options. Others allow mixing them, +dnl and may predefine symbols that conflict with those we define. +AC_DEFUN([CF_PROG_CC_U_D], +[ +AC_CACHE_CHECK(if $CC -U and -D options work together,cf_cv_cc_u_d_options,[ + cf_save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="-UU_D_OPTIONS -DU_D_OPTIONS -DD_U_OPTIONS -UD_U_OPTIONS" + AC_TRY_COMPILE([],[ +#ifndef U_D_OPTIONS +make an undefined-error +#endif +#ifdef D_U_OPTIONS +make a defined-error +#endif + ],[ + cf_cv_cc_u_d_options=yes],[ + cf_cv_cc_u_d_options=no]) + CPPFLAGS="$cf_save_CPPFLAGS" +]) +])dnl +dnl --------------------------------------------------------------------------- +dnl CF_PROG_EGREP version: 1 updated: 2006/09/16 11:40:59 +dnl ------------- +dnl AC_PROG_EGREP was introduced in autoconf 2.53. +dnl This macro adds a check to ensure the script found something. +AC_DEFUN([CF_PROG_EGREP], +[AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep], + [if echo a | (grep -E '(a|b)') >/dev/null 2>&1 + then ac_cv_prog_egrep='grep -E' + else ac_cv_prog_egrep='egrep' + fi]) + EGREP=$ac_cv_prog_egrep + AC_SUBST([EGREP]) +test -z "$EGREP" && AC_MSG_ERROR(No egrep program found) +])dnl +dnl --------------------------------------------------------------------------- +dnl CF_PROG_EXT version: 10 updated: 2004/01/03 19:28:18 +dnl ----------- dnl Compute $PROG_EXT, used for non-Unix ports, such as OS/2 EMX. AC_DEFUN([CF_PROG_EXT], [ AC_REQUIRE([CF_CHECK_CACHE]) -PROG_EXT= case $cf_cv_system_name in os2*) - # We make sure -Zexe is not used -- it would interfere with @PROG_EXT@ CFLAGS="$CFLAGS -Zmt" CPPFLAGS="$CPPFLAGS -D__ST_MT_ERRNO__" CXXFLAGS="$CXXFLAGS -Zmt" - LDFLAGS=`echo "$LDFLAGS -Zmt -Zcrtdll" | sed "s/-Zexe//g"` - PROG_EXT=".exe" - ;; -cygwin*) - PROG_EXT=".exe" + # autoconf's macro sets -Zexe and suffix both, which conflict:w + LDFLAGS="$LDFLAGS -Zmt -Zcrtdll" + ac_cv_exeext=.exe ;; esac + +AC_EXEEXT +AC_OBJEXT + +PROG_EXT="$EXEEXT" AC_SUBST(PROG_EXT) test -n "$PROG_EXT" && AC_DEFINE_UNQUOTED(PROG_EXT,"$PROG_EXT") ])dnl dnl --------------------------------------------------------------------------- +dnl CF_PROG_INSTALL version: 5 updated: 2002/12/21 22:46:07 +dnl --------------- dnl Force $INSTALL to be an absolute-path. Otherwise, edit_man.sh and the dnl misc/tabset install won't work properly. Usually this happens only when dnl using the fallback mkinstalldirs script @@ -2155,11 +3595,41 @@ case $INSTALL in *) CF_DIRNAME(cf_dir,$INSTALL) test -z "$cf_dir" && cf_dir=. - INSTALL=`cd $cf_dir && pwd`/`echo $INSTALL | sed -e 's:^.*/::'` + INSTALL=`cd $cf_dir && pwd`/`echo $INSTALL | sed -e 's%^.*/%%'` + ;; +esac +])dnl +dnl --------------------------------------------------------------------------- +dnl CF_PROG_LDCONFIG version: 1 updated: 2003/09/20 17:07:55 +dnl ---------------- +dnl Check for ldconfig, needed to fixup shared libraries that would be built +dnl and then used in the install. +AC_DEFUN([CF_PROG_LDCONFIG],[ +if test "$cross_compiling" = yes ; then + LDCONFIG=: +else +case "$cf_cv_system_name" in #(vi +freebsd*) #(vi + test -z "$LDCONFIG" && LDCONFIG="/sbin/ldconfig -R" + ;; +*) LDPATH=$PATH:/sbin:/usr/sbin + AC_PATH_PROG(LDCONFIG,ldconfig,,$LDPATH) ;; esac +fi +AC_SUBST(LDCONFIG) ])dnl dnl --------------------------------------------------------------------------- +dnl CF_PROG_LINT version: 1 updated: 2006/09/16 11:40:59 +dnl ------------ +AC_DEFUN([CF_PROG_LINT], +[ +AC_CHECK_PROGS(LINT, tdlint lint alint) +AC_SUBST(LINT_OPTS) +])dnl +dnl --------------------------------------------------------------------------- +dnl CF_REGEX version: 3 updated: 1997/11/01 14:26:01 +dnl -------- dnl Attempt to determine if we've got one of the flavors of regular-expression dnl code that we can support. AC_DEFUN([CF_REGEX], @@ -2192,14 +3662,35 @@ case $cf_cv_regex in esac ])dnl dnl --------------------------------------------------------------------------- +dnl CF_REMOVE_DEFINE version: 2 updated: 2005/07/09 16:12:18 +dnl ---------------- +dnl Remove all -U and -D options that refer to the given symbol from a list +dnl of C compiler options. This works around the problem that not all +dnl compilers process -U and -D options from left-to-right, so a -U option +dnl cannot be used to cancel the effect of a preceding -D option. +dnl +dnl $1 = target (which could be the same as the source variable) +dnl $2 = source (including '$') +dnl $3 = symbol to remove +define([CF_REMOVE_DEFINE], +[ +# remove $3 symbol from $2 +$1=`echo "$2" | \ + sed -e 's/-[[UD]]$3\(=[[^ ]]*\)\?[[ ]]/ /g' \ + -e 's/-[[UD]]$3\(=[[^ ]]*\)\?[$]//g'` +])dnl +dnl --------------------------------------------------------------------------- +dnl CF_SHARED_OPTS version: 41 updated: 2006/12/09 12:32:00 +dnl -------------- +dnl -------------- dnl Attempt to determine the appropriate CC/LD options for creating a shared dnl library. dnl -dnl Note: $(LOCAL_LDFLAGS) is used to link executables that will run within the +dnl Note: ${LOCAL_LDFLAGS} is used to link executables that will run within the dnl build-tree, i.e., by making use of the libraries that are compiled in ../lib dnl We avoid compiling-in a ../lib path for the shared library since that can dnl lead to unexpected results at runtime. -dnl $(LOCAL_LDFLAGS2) has the same intention but assumes that the shared libraries +dnl ${LOCAL_LDFLAGS2} has the same intention but assumes that the shared libraries dnl are compiled in ../../lib dnl dnl The variable 'cf_cv_do_symlinks' is used to control whether we configure @@ -2262,89 +3753,116 @@ AC_DEFUN([CF_SHARED_OPTS], case $cf_cv_system_name in beos*) - MK_SHARED_LIB='$(CC) -o $[@] -Xlinker -soname=`basename $[@]` -nostart -e 0' + MK_SHARED_LIB='${CC} ${CFLAGS} -o $[@] -Xlinker -soname=`basename $[@]` -nostart -e 0' ;; cygwin*) CC_SHARED_OPTS= - MK_SHARED_LIB='$(CC) -shared -Wl,--out-implib=$(IMPORT_LIB) -Wl,--export-all-symbols -o $(SHARED_LIB)' + MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,--out-implib=../lib/${IMPORT_LIB} -Wl,--export-all-symbols -o ../lib/${SHARED_LIB}' cf_cv_shlib_version=cygdll cf_cv_shlib_version_infix=cygdll ;; darwin*) EXTRA_CFLAGS="-no-cpp-precomp" CC_SHARED_OPTS="-dynamic" - MK_SHARED_LIB='$(CC) -dynamiclib -install_name $(DESTDIR)$(libdir)/`basename $[@]` -compatibility_version $(ABI_VERSION) -current_version $(ABI_VERSION) -o $[@]' + MK_SHARED_LIB='${CC} ${CFLAGS} -dynamiclib -install_name ${DESTDIR}${libdir}/`basename $[@]` -compatibility_version ${ABI_VERSION} -current_version ${ABI_VERSION} -o $[@]' test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=abi cf_cv_shlib_version_infix=yes + AC_CACHE_CHECK([if ld -search_paths_first works], cf_cv_ldflags_search_paths_first, [ + cf_save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS -Wl,-search_paths_first" + AC_TRY_LINK(, [int i;], cf_cv_ldflags_search_paths_first=yes, cf_cv_ldflags_search_paths_first=no) + LDFLAGS=$cf_save_LDFLAGS]) + if test $cf_cv_ldflags_search_paths_first = yes; then + LDFLAGS="$LDFLAGS -Wl,-search_paths_first" + fi ;; hpux*) # (tested with gcc 2.7.2 -- I don't have c89) if test "$GCC" = yes; then - LD_SHARED_OPTS='-Xlinker +b -Xlinker $(libdir)' + LD_SHARED_OPTS='-Xlinker +b -Xlinker ${libdir}' else CC_SHARED_OPTS='+Z' - LD_SHARED_OPTS='-Wl,+b,$(libdir)' + LD_SHARED_OPTS='-Wl,+b,${libdir}' fi - MK_SHARED_LIB='$(LD) +b $(libdir) -b -o $[@]' + MK_SHARED_LIB='${LD} +b ${libdir} -b -o $[@]' # HP-UX shared libraries must be executable, and should be # readonly to exploit a quirk in the memory manager. INSTALL_LIB="-m 555" ;; irix*) if test "$cf_cv_ld_rpath" = yes ; then - cf_ld_rpath_opt="-Wl,-rpath," - EXTRA_LDFLAGS="-Wl,-rpath,\$(libdir) $EXTRA_LDFLAGS" + if test "$GCC" = yes; then + cf_ld_rpath_opt="-Wl,-rpath," + EXTRA_LDFLAGS="-Wl,-rpath,\${libdir} $EXTRA_LDFLAGS" + else + cf_ld_rpath_opt="-rpath " + EXTRA_LDFLAGS="-rpath \${libdir} $EXTRA_LDFLAGS" + fi fi # tested with IRIX 5.2 and 'cc'. if test "$GCC" != yes; then CC_SHARED_OPTS='-KPIC' fi - MK_SHARED_LIB='$(LD) -shared -rdata_shared -soname `basename $[@]` -o $[@]' + MK_SHARED_LIB='${CC} -shared -rdata_shared -soname `basename $[@]` -o $[@]' cf_cv_rm_so_locs=yes ;; - linux*|gnu*) + linux*|gnu*|k*bsd*-gnu) if test "$DFT_LWR_MODEL" = "shared" ; then - LOCAL_LDFLAGS="-Wl,-rpath,`pwd`/lib" + LOCAL_LDFLAGS="-Wl,-rpath,\$(LOCAL_LIBDIR)" LOCAL_LDFLAGS2="$LOCAL_LDFLAGS" fi if test "$cf_cv_ld_rpath" = yes ; then cf_ld_rpath_opt="-Wl,-rpath," - EXTRA_LDFLAGS="$LOCAL_LDFLAGS $EXTRA_LDFLAGS" + EXTRA_LDFLAGS="-Wl,-rpath,\${libdir} $EXTRA_LDFLAGS" fi - test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel - MK_SHARED_LIB='$(CC) -shared -Wl,-soname,`basename $[@] .$(REL_VERSION)`.$(ABI_VERSION),-stats,-lc -o $[@]' + CF_SHARED_SONAME + MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_shared_soname',-stats,-lc -o $[@]' ;; openbsd2*) CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC" - MK_SHARED_LIB='$(LD) -Bshareable -soname,`basename $[@].$(ABI_VERSION)` -o $[@]' + MK_SHARED_LIB='${LD} -Bshareable -soname,`basename $[@].${ABI_VERSION}` -o $[@]' ;; - openbsd*|freebsd*) + openbsd*|freebsd[[23]]*) CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC" - MK_SHARED_LIB='$(LD) -Bshareable -o $[@]' + MK_SHARED_LIB='${LD} -Bshareable -o $[@]' test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel ;; + freebsd*) + CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC" + if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_ld_rpath" = yes ; then + LOCAL_LDFLAGS="-rpath \$(LOCAL_LIBDIR)" + LOCAL_LDFLAGS2="-rpath \${libdir} $LOCAL_LDFLAGS" + cf_ld_rpath_opt="-rpath " + EXTRA_LDFLAGS="-rpath \${libdir} $EXTRA_LDFLAGS" + fi + CF_SHARED_SONAME + MK_SHARED_LIB='${LD} -Bshareable -soname=`basename $[@]` -o $[@]' + ;; netbsd*) CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC" test "$cf_cv_ld_rpath" = yes && cf_ld_rpath_opt="-Wl,-rpath," if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_ld_rpath" = yes ; then - LOCAL_LDFLAGS="-Wl,-rpath,`pwd`/lib" + LOCAL_LDFLAGS="-Wl,-rpath,\$(LOCAL_LIBDIR)" LOCAL_LDFLAGS2="$LOCAL_LDFLAGS" - EXTRA_LDFLAGS="-Wl,-rpath,\$(libdir) $EXTRA_LDFLAGS" - MK_SHARED_LIB='$(CC) -shared -Wl,-soname,`basename $[@] .$(REL_VERSION)`.$(ABI_VERSION) -o $[@]' + EXTRA_LDFLAGS="-Wl,-rpath,\${libdir} $EXTRA_LDFLAGS" if test "$cf_cv_shlib_version" = auto; then - if test ! -f /usr/libexec/ld.elf_so; then + if test -f /usr/libexec/ld.elf_so; then + cf_cv_shlib_version=abi + else cf_cv_shlib_version=rel fi fi + CF_SHARED_SONAME + MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_shared_soname' -o $[@]' else - MK_SHARED_LIB='$(LD) -Bshareable -o $[@]' + MK_SHARED_LIB='${LD} -Bshareable -o $[@]' fi ;; osf*|mls+*) # tested with OSF/1 V3.2 and 'cc' # tested with OSF/1 V3.2 and gcc 2.6.3 (but the c++ demo didn't # link with shared libs). - MK_SHARED_LIB='$(LD) -set_version $(REL_VERSION):$(ABI_VERSION) -expect_unresolved "*" -shared -soname `basename $[@]`' + MK_SHARED_LIB='${LD} -set_version ${REL_VERSION}:${ABI_VERSION} -expect_unresolved "*" -shared -soname `basename $[@]`' case $host_os in osf4*) MK_SHARED_LIB="${MK_SHARED_LIB} -msym" @@ -2352,7 +3870,7 @@ AC_DEFUN([CF_SHARED_OPTS], esac MK_SHARED_LIB="${MK_SHARED_LIB}"' -o $[@]' if test "$DFT_LWR_MODEL" = "shared" ; then - LOCAL_LDFLAGS="-Wl,-rpath,`pwd`/lib" + LOCAL_LDFLAGS="-Wl,-rpath,\$(LOCAL_LIBDIR)" LOCAL_LDFLAGS2="$LOCAL_LDFLAGS" fi if test "$cf_cv_ld_rpath" = yes ; then @@ -2363,48 +3881,48 @@ AC_DEFUN([CF_SHARED_OPTS], ;; sco3.2v5*) # (also uw2* and UW7) hops 13-Apr-98 # tested with osr5.0.5 - if test "$ac_cv_prog_gcc" != yes; then + if test "$GCC" != yes; then CC_SHARED_OPTS='-belf -KPIC' fi - MK_SHARED_LIB='$(LD) -dy -G -h `basename $[@] .$(REL_VERSION)`.$(ABI_VERSION) -o [$]@' + MK_SHARED_LIB='${LD} -dy -G -h `basename $[@] .${REL_VERSION}`.${ABI_VERSION} -o [$]@' if test "$cf_cv_ld_rpath" = yes ; then # only way is to set LD_RUN_PATH but no switch for it RUN_PATH=$libdir fi test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel - LINK_PROGS='LD_RUN_PATH=$(libdir)' + LINK_PROGS='LD_RUN_PATH=${libdir}' LINK_TESTS='Pwd=`pwd`;LD_RUN_PATH=`dirname $${Pwd}`/lib' ;; sunos4*) # tested with SunOS 4.1.1 and gcc 2.7.0 - if test "$ac_cv_prog_gcc" != yes; then + if test "$GCC" != yes; then CC_SHARED_OPTS='-KPIC' fi - MK_SHARED_LIB='$(LD) -assert pure-text -o $[@]' + MK_SHARED_LIB='${LD} -assert pure-text -o $[@]' test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel ;; solaris2*) # tested with SunOS 5.5.1 (solaris 2.5.1) and gcc 2.7.2 - if test "$ac_cv_prog_gcc" != yes; then + if test "$GCC" != yes; then CC_SHARED_OPTS='-KPIC' fi - MK_SHARED_LIB='$(LD) -dy -G -h `basename $[@] .$(REL_VERSION)`.$(ABI_VERSION) -o $[@]' if test "$DFT_LWR_MODEL" = "shared" ; then - LOCAL_LDFLAGS="-R `pwd`/lib:\$(libdir)" + LOCAL_LDFLAGS="-R \$(LOCAL_LIBDIR):\${libdir}" LOCAL_LDFLAGS2="$LOCAL_LDFLAGS" fi if test "$cf_cv_ld_rpath" = yes ; then cf_ld_rpath_opt="-R" EXTRA_LDFLAGS="$LOCAL_LDFLAGS $EXTRA_LDFLAGS" fi - test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel + CF_SHARED_SONAME + MK_SHARED_LIB='${CC} -dy -G -h '$cf_shared_soname' -o $[@]' ;; sysv5uw7*|unix_sv*) # tested with UnixWare 7.1.0 (gcc 2.95.2 and cc) - if test "$ac_cv_prog_gcc" != yes; then + if test "$GCC" != yes; then CC_SHARED_OPTS='-KPIC' fi - MK_SHARED_LIB='$(LD) -d y -G -o [$]@' + MK_SHARED_LIB='${LD} -d y -G -o [$]@' ;; *) CC_SHARED_OPTS='unknown' @@ -2434,7 +3952,7 @@ AC_DEFUN([CF_SHARED_OPTS], LIBS="$cf_save_LIBS" AC_MSG_RESULT($cf_rpath_space) test "$cf_rpath_space" = yes && cf_ld_rpath_opt="$cf_ld_rpath_opt " - MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\$(libdir)" + MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\${libdir}" fi AC_SUBST(CC_SHARED_OPTS) @@ -2448,6 +3966,85 @@ AC_DEFUN([CF_SHARED_OPTS], AC_SUBST(INSTALL_LIB) ])dnl dnl --------------------------------------------------------------------------- +dnl CF_SHARED_SONAME version: 2 updated: 2006/10/21 12:33:41 +dnl ---------------- +dnl utility macro for CF_SHARED_OPTS, constructs "$cf_shared_soname" for +dnl substitution into MK_SHARED_LIB string for the "-soname" (or similar) +dnl option. +dnl +dnl $1 is the default that should be used for "$cf_cv_shlib_version". +dnl If missing, use "rel". +define([CF_SHARED_SONAME], +[ + test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=ifelse($1,,rel,$1) + if test "$cf_cv_shlib_version" = rel; then + cf_shared_soname='`basename $[@] .${REL_VERSION}`.${ABI_VERSION}' + else + cf_shared_soname='`basename $[@]`' + fi +]) +dnl --------------------------------------------------------------------------- +dnl CF_SIGWINCH version: 1 updated: 2006/04/02 16:41:09 +dnl ----------- +dnl Use this macro after CF_XOPEN_SOURCE, but do not require it (not all +dnl programs need this test). +dnl +dnl This is really a MacOS X 10.4.3 workaround. Defining _POSIX_C_SOURCE +dnl forces SIGWINCH to be undefined (breaks xterm, ncurses). Oddly, the struct +dnl winsize declaration is left alone - we may revisit this if Apple choose to +dnl break that part of the interface as well. +AC_DEFUN([CF_SIGWINCH], +[ +AC_CACHE_CHECK(if SIGWINCH is defined,cf_cv_define_sigwinch,[ + AC_TRY_COMPILE([ +#include +#include +],[int x = SIGWINCH], + [cf_cv_define_sigwinch=yes], + [AC_TRY_COMPILE([ +#undef _XOPEN_SOURCE +#undef _POSIX_SOURCE +#undef _POSIX_C_SOURCE +#include +#include +],[int x = SIGWINCH], + [cf_cv_define_sigwinch=maybe], + [cf_cv_define_sigwinch=no]) +]) +]) + +if test "$cf_cv_define_sigwinch" = maybe ; then +AC_CACHE_CHECK(for actual SIGWINCH definition,cf_cv_fixup_sigwinch,[ +cf_cv_fixup_sigwinch=unknown +cf_sigwinch=32 +while test $cf_sigwinch != 1 +do + AC_TRY_COMPILE([ +#undef _XOPEN_SOURCE +#undef _POSIX_SOURCE +#undef _POSIX_C_SOURCE +#include +#include +],[ +#if SIGWINCH != $cf_sigwinch +make an error +#endif +int x = SIGWINCH], + [cf_cv_fixup_sigwinch=$cf_sigwinch + break]) + +cf_sigwinch=`expr $cf_sigwinch - 1` +done +]) + + if test "$cf_cv_fixup_sigwinch" != unknown ; then + CPPFLAGS="$CPPFLAGS -DSIGWINCH=$cf_cv_fixup_sigwinch" + fi +fi +])dnl +dnl --------------------------------------------------------------------------- +dnl CF_SIZECHANGE version: 8 updated: 2000/11/04 12:22:16 +dnl ------------- dnl Check for definitions & structures needed for window size-changing dnl FIXME: check that this works with "snake" (HP-UX 10.x) AC_DEFUN([CF_SIZECHANGE], @@ -2516,6 +4113,8 @@ if test "$cf_cv_sizechange" != no ; then fi ])dnl dnl --------------------------------------------------------------------------- +dnl CF_SRC_MODULES version: 18 updated: 2005/05/28 12:58:54 +dnl -------------- dnl For each parameter, test if the source-directory exists, and if it contains dnl a 'modules' file. If so, add to the list $cf_cv_src_modules which we'll dnl use in CF_LIB_RULES. @@ -2528,15 +4127,15 @@ AC_MSG_CHECKING(for src modules) # dependencies and linker-arguments for test-programs TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${LIB_NAME}${DFT_DEP_SUFFIX} $TEST_DEPS" +TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${LIB_NAME}${DFT_DEP_SUFFIX} $TEST_DEP2" if test "$DFT_LWR_MODEL" = "libtool"; then TEST_ARGS="${TEST_DEPS}" + TEST_ARG2="${TEST_DEP2}" else TEST_ARGS="-l${LIB_NAME}${DFT_ARG_SUFFIX} $TEST_ARGS" + TEST_ARG2="-l${LIB_NAME}${DFT_ARG_SUFFIX} $TEST_ARG2" fi -# dependencies and linker-arguments for utility-programs -PROG_ARGS="$TEST_ARGS" - cf_cv_src_modules= for cf_dir in $1 do @@ -2567,21 +4166,27 @@ do AC_DEFINE_UNQUOTED(HAVE_${cf_have_include}_H) AC_DEFINE_UNQUOTED(HAVE_LIB${cf_have_include}) TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${cf_dir}${DFT_DEP_SUFFIX} $TEST_DEPS" + TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${cf_dir}${DFT_DEP_SUFFIX} $TEST_DEP2" if test "$DFT_LWR_MODEL" = "libtool"; then TEST_ARGS="${TEST_DEPS}" + TEST_ARG2="${TEST_DEP2}" else TEST_ARGS="-l${cf_dir}${DFT_ARG_SUFFIX} $TEST_ARGS" + TEST_ARG2="-l${cf_dir}${DFT_ARG_SUFFIX} $TEST_ARG2" fi fi fi done AC_MSG_RESULT($cf_cv_src_modules) + TEST_ARGS="-L${LIB_DIR} $TEST_ARGS" -AC_SUBST(TEST_DEPS) +TEST_ARG2="-L${LIB_2ND} $TEST_ARG2" + AC_SUBST(TEST_ARGS) +AC_SUBST(TEST_DEPS) -PROG_ARGS="-L${LIB_DIR} $PROG_ARGS" -AC_SUBST(PROG_ARGS) +AC_SUBST(TEST_ARG2) +AC_SUBST(TEST_DEP2) SRC_SUBDIRS="man include" for cf_dir in $cf_cv_src_modules @@ -2613,6 +4218,8 @@ if test -n "$ADA_SUBDIRS"; then fi ])dnl dnl --------------------------------------------------------------------------- +dnl CF_STDCPP_LIBRARY version: 5 updated: 2000/08/12 23:18:52 +dnl ----------------- dnl Check for -lstdc++, which is GNU's standard C++ library. AC_DEFUN([CF_STDCPP_LIBRARY], [ @@ -2641,10 +4248,14 @@ test "$cf_cv_libstdcpp" = yes && CXXLIBS="$CXXLIBS -l$cf_stdcpp_libname" fi ])dnl dnl --------------------------------------------------------------------------- +dnl CF_STRIP_G_OPT version: 3 updated: 2002/12/21 19:25:52 +dnl -------------- dnl Remove "-g" option from the compiler options AC_DEFUN([CF_STRIP_G_OPT], -[$1=`echo ${$1} | sed -e 's/-g //' -e 's/-g$//'`])dnl +[$1=`echo ${$1} | sed -e 's%-g %%' -e 's%-g$%%'`])dnl dnl --------------------------------------------------------------------------- +dnl CF_STRUCT_SIGACTION version: 3 updated: 2000/08/12 23:18:52 +dnl ------------------- dnl Check if we need _POSIX_SOURCE defined to use struct sigaction. We'll only dnl do this if we've found the sigaction function. dnl @@ -2670,6 +4281,8 @@ AC_MSG_RESULT($sigact_bad) fi ])dnl dnl --------------------------------------------------------------------------- +dnl CF_STRUCT_TERMIOS version: 5 updated: 2000/11/04 12:22:46 +dnl ----------------- dnl Some machines require _POSIX_SOURCE to completely define struct termios. dnl If so, define SVR4_TERMIO AC_DEFUN([CF_STRUCT_TERMIOS],[ @@ -2704,6 +4317,8 @@ if test "$ac_cv_header_termios_h" = yes ; then fi ])dnl dnl --------------------------------------------------------------------------- +dnl CF_SUBST version: 4 updated: 2006/06/17 12:33:03 +dnl -------- dnl Shorthand macro for substituting things that the user may override dnl with an environment variable. dnl @@ -2713,19 +4328,40 @@ dnl $3 = default value AC_DEFUN([CF_SUBST], [AC_CACHE_VAL(cf_cv_subst_$2,[ AC_MSG_CHECKING(for $1 (symbol $2)) -test -z "[$]$2" && $2=$3 +CF_SUBST_IF([-z "[$]$2"], [$2], [$3]) +cf_cv_subst_$2=[$]$2 AC_MSG_RESULT([$]$2) +]) +])dnl +dnl --------------------------------------------------------------------------- +dnl CF_SUBST_IF version: 2 updated: 2006/06/17 12:33:03 +dnl ----------- +dnl Shorthand macro for substituting things that the user may override +dnl with an environment variable. +dnl +dnl $1 = condition to pass to "test" +dnl $2 = environment variable +dnl $3 = value if the test succeeds +dnl $4 = value if the test fails +AC_DEFUN([CF_SUBST_IF], +[ +if test $1 ; then + $2=$3 +ifelse($4,,,[else + $2=$4]) +fi AC_SUBST($2) -cf_cv_subst_$2=[$]$2]) -$2=${cf_cv_subst_$2} ])dnl dnl --------------------------------------------------------------------------- +dnl CF_SUBST_NCURSES_VERSION version: 8 updated: 2006/09/16 11:40:59 +dnl ------------------------ dnl Get the version-number for use in shared-library naming, etc. AC_DEFUN([CF_SUBST_NCURSES_VERSION], [ -NCURSES_MAJOR="`egrep '^NCURSES_MAJOR[[ ]]*=' $srcdir/dist.mk | sed -e 's/^[[^0-9]]*//'`" -NCURSES_MINOR="`egrep '^NCURSES_MINOR[[ ]]*=' $srcdir/dist.mk | sed -e 's/^[[^0-9]]*//'`" -NCURSES_PATCH="`egrep '^NCURSES_PATCH[[ ]]*=' $srcdir/dist.mk | sed -e 's/^[[^0-9]]*//'`" +AC_REQUIRE([CF_PROG_EGREP]) +NCURSES_MAJOR="`$ac_cv_prog_egrep '^NCURSES_MAJOR[[ ]]*=' $srcdir/dist.mk | sed -e 's/^[[^0-9]]*//'`" +NCURSES_MINOR="`$ac_cv_prog_egrep '^NCURSES_MINOR[[ ]]*=' $srcdir/dist.mk | sed -e 's/^[[^0-9]]*//'`" +NCURSES_PATCH="`$ac_cv_prog_egrep '^NCURSES_PATCH[[ ]]*=' $srcdir/dist.mk | sed -e 's/^[[^0-9]]*//'`" cf_cv_abi_version=${NCURSES_MAJOR} cf_cv_rel_version=${NCURSES_MAJOR}.${NCURSES_MINOR} dnl Show the computed version, for logging @@ -2738,12 +4374,13 @@ AC_SUBST(NCURSES_PATCH) dnl We need these values in the generated makefiles AC_SUBST(cf_cv_rel_version) AC_SUBST(cf_cv_abi_version) -AC_SUBST(cf_cv_cc_bool_type) AC_SUBST(cf_cv_builtin_bool) AC_SUBST(cf_cv_header_stdbool_h) AC_SUBST(cf_cv_type_of_bool)dnl ])dnl dnl --------------------------------------------------------------------------- +dnl CF_SYS_TIME_SELECT version: 4 updated: 2000/10/04 09:18:40 +dnl ------------------ dnl Check if we can include with ; this breaks on dnl older SCO configurations. AC_DEFUN([CF_SYS_TIME_SELECT], @@ -2765,41 +4402,39 @@ AC_MSG_RESULT($cf_cv_sys_time_select) test "$cf_cv_sys_time_select" = yes && AC_DEFINE(HAVE_SYS_TIME_SELECT) ])dnl dnl --------------------------------------------------------------------------- +dnl CF_TOP_BUILDDIR version: 1 updated: 2006/10/15 16:33:23 +dnl --------------- +dnl Define a top_builddir symbol, for applications that need an absolute path. +AC_DEFUN([CF_TOP_BUILDDIR], +[ +top_builddir=`pwd` +AC_SUBST(top_builddir) +])dnl +dnl --------------------------------------------------------------------------- +dnl CF_TYPEOF_CHTYPE version: 8 updated: 2006/12/16 12:33:30 +dnl ---------------- dnl Determine the type we should use for chtype (and attr_t, which is treated dnl as the same thing). We want around 32 bits, so on most machines want a dnl long, but on newer 64-bit machines, probably want an int. If we're using dnl wide characters, we have to have a type compatible with that, as well. AC_DEFUN([CF_TYPEOF_CHTYPE], [ -AC_REQUIRE([CF_UNSIGNED_LITERALS]) AC_MSG_CHECKING([for type of chtype]) AC_CACHE_VAL(cf_cv_typeof_chtype,[ AC_TRY_RUN([ -#ifdef USE_WIDEC_SUPPORT -#include /* we want wchar_t */ -#define WANT_BITS 39 -#else #define WANT_BITS 31 -#endif #include int main() { FILE *fp = fopen("cf_test.out", "w"); if (fp != 0) { char *result = "long"; -#ifdef USE_WIDEC_SUPPORT - /* - * If wchar_t is smaller than a long, it must be an int or a - * short. We prefer not to use a short anyway. - */ - if (sizeof(unsigned long) > sizeof(wchar_t)) - result = "int"; -#endif if (sizeof(unsigned long) > sizeof(unsigned int)) { int n; - unsigned int x; + unsigned int x, y; for (n = 0; n < WANT_BITS; n++) { - unsigned int y = (x >> n); + x = (1 << n); + y = (x >> n); if (y != 1 || x == 0) { x = 0; break; @@ -2814,7 +4449,7 @@ int main() fputs(result, fp); fclose(fp); } - exit(0); + ${cf_cv_main_return:-return}(0); } ], [cf_cv_typeof_chtype=`cat cf_test.out`], @@ -2826,14 +4461,10 @@ AC_MSG_RESULT($cf_cv_typeof_chtype) AC_SUBST(cf_cv_typeof_chtype) AC_DEFINE_UNQUOTED(TYPEOF_CHTYPE,$cf_cv_typeof_chtype) - -cf_cv_1UL="1" -test "$cf_cv_unsigned_literals" = yes && cf_cv_1UL="${cf_cv_1UL}U" -test "$cf_cv_typeof_chtype" = long && cf_cv_1UL="${cf_cv_1UL}L" -AC_SUBST(cf_cv_1UL) - ])dnl dnl --------------------------------------------------------------------------- +dnl CF_TYPE_SIGACTION version: 3 updated: 2000/08/12 23:18:52 +dnl ----------------- dnl AC_DEFUN([CF_TYPE_SIGACTION], [ @@ -2848,6 +4479,8 @@ AC_MSG_RESULT($cf_cv_type_sigaction) test "$cf_cv_type_sigaction" = yes && AC_DEFINE(HAVE_TYPE_SIGACTION) ])dnl dnl --------------------------------------------------------------------------- +dnl CF_UNSIGNED_LITERALS version: 2 updated: 1998/02/07 22:10:16 +dnl -------------------- dnl Test if the compiler supports 'U' and 'L' suffixes. Only old compilers dnl won't, but they're still there. AC_DEFUN([CF_UNSIGNED_LITERALS], @@ -2861,6 +4494,8 @@ AC_CACHE_VAL(cf_cv_unsigned_literals,[ AC_MSG_RESULT($cf_cv_unsigned_literals) ])dnl dnl --------------------------------------------------------------------------- +dnl CF_UPPER version: 5 updated: 2001/01/29 23:40:59 +dnl -------- dnl Make an uppercase version of a variable dnl $1=uppercase($2) AC_DEFUN([CF_UPPER], @@ -2868,11 +4503,277 @@ AC_DEFUN([CF_UPPER], $1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` ])dnl dnl --------------------------------------------------------------------------- +dnl CF_VERBOSE version: 2 updated: 1997/09/05 10:45:14 +dnl ---------- dnl Use AC_VERBOSE w/o the warnings AC_DEFUN([CF_VERBOSE], [test -n "$verbose" && echo " $1" 1>&AC_FD_MSG ])dnl dnl --------------------------------------------------------------------------- +dnl CF_WCHAR_TYPE version: 2 updated: 2004/01/17 19:18:20 +dnl ------------- +dnl Check if type wide-character type $1 is declared, and if so, which header +dnl file is needed. The second parameter is used to set a shell variable when +dnl the type is not found. The first parameter sets a shell variable for the +dnl opposite sense. +AC_DEFUN([CF_WCHAR_TYPE], +[ +# This is needed on Tru64 5.0 to declare $1 +AC_CACHE_CHECK(if we must include wchar.h to declare $1,cf_cv_$1,[ +AC_TRY_COMPILE([ +#include +#include +#include +#ifdef HAVE_LIBUTF8_H +#include +#endif], + [$1 state], + [cf_cv_$1=no], + [AC_TRY_COMPILE([ +#include +#include +#include +#include +#ifdef HAVE_LIBUTF8_H +#include +#endif], + [$1 value], + [cf_cv_$1=yes], + [cf_cv_$1=unknown])])]) + +if test "$cf_cv_$1" = yes ; then + AC_DEFINE(NEED_WCHAR_H) + NEED_WCHAR_H=1 +fi + +ifelse($2,,,[ +# if we do not find $1 in either place, use substitution to provide a fallback. +if test "$cf_cv_$1" = unknown ; then + $2=1 +fi +]) +ifelse($3,,,[ +# if we find $1 in either place, use substitution to provide a fallback. +if test "$cf_cv_$1" != unknown ; then + $3=1 +fi +]) +])dnl +dnl --------------------------------------------------------------------------- +dnl CF_WITH_ABI_VERSION version: 1 updated: 2003/09/20 18:12:49 +dnl ------------------- +dnl Allow library's ABI to be overridden. Generally this happens when a +dnl packager has incremented the ABI past that used in the original package, +dnl and wishes to keep doing this. +dnl +dnl $1 is the package name, if any, to derive a corresponding {package}_ABI +dnl symbol. +AC_DEFUN([CF_WITH_ABI_VERSION],[ +test -z "$cf_cv_abi_version" && cf_cv_abi_version=0 +AC_ARG_WITH(abi-version, +[ --with-abi-version=XXX override derived ABI version], +[AC_MSG_WARN(overriding ABI version $cf_cv_abi_version to $withval) + cf_cv_abi_version=$withval]) + CF_NUMBER_SYNTAX($cf_cv_abi_version,ABI version) +ifelse($1,,,[ +$1_ABI=$cf_cv_abi_version +]) +])dnl +dnl --------------------------------------------------------------------------- +dnl CF_WITH_DBMALLOC version: 6 updated: 2006/12/16 14:24:05 +dnl ---------------- +dnl Configure-option for dbmalloc. The optional parameter is used to override +dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests. +AC_DEFUN([CF_WITH_DBMALLOC],[ +CF_NO_LEAKS_OPTION(dbmalloc, + [ --with-dbmalloc test: use Conor Cahill's dbmalloc library], + [USE_DBMALLOC]) + +if test "$with_dbmalloc" = yes ; then + AC_CHECK_HEADER(dbmalloc.h, + [AC_CHECK_LIB(dbmalloc,[debug_malloc]ifelse($1,,[],[,$1]))]) +fi +])dnl +dnl --------------------------------------------------------------------------- +dnl CF_WITH_DMALLOC version: 6 updated: 2006/12/16 14:24:05 +dnl --------------- +dnl Configure-option for dmalloc. The optional parameter is used to override +dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests. +AC_DEFUN([CF_WITH_DMALLOC],[ +CF_NO_LEAKS_OPTION(dmalloc, + [ --with-dmalloc test: use Gray Watson's dmalloc library], + [USE_DMALLOC]) + +if test "$with_dmalloc" = yes ; then + AC_CHECK_HEADER(dmalloc.h, + [AC_CHECK_LIB(dmalloc,[dmalloc_debug]ifelse($1,,[],[,$1]))]) +fi +])dnl +dnl --------------------------------------------------------------------------- +dnl CF_WITH_GPM version: 6 updated: 2006/12/17 11:12:09 +dnl ----------- +dnl +dnl The option parameter (if neither yes/no) is assumed to be the name of +dnl the gpm library, e.g., for dynamic loading. +AC_DEFUN([CF_WITH_GPM], +[ +AC_MSG_CHECKING(if you want to link with the GPM mouse library) +AC_ARG_WITH(gpm, + [ --with-gpm use Alessandro Rubini's GPM library], + [with_gpm=$withval], + [with_gpm=maybe]) +AC_MSG_RESULT($with_gpm) + +if test "$with_gpm" != no ; then + AC_CHECK_HEADER(gpm.h,[ + AC_DEFINE(HAVE_GPM_H) + if test "$with_gpm" != yes && test "$with_gpm" != maybe ; then + CF_VERBOSE(assuming we really have GPM library) + AC_DEFINE(HAVE_LIBGPM) + else + AC_CHECK_LIB(gpm,Gpm_Open,[:],[ + AC_ERROR(Cannot link with GPM library) + fi + with_gpm=yes + ]) + ],[ + test "$with_gpm" != maybe && AC_MSG_WARN(Cannot find GPM header) + with_gpm=no + ]) +fi +]) +dnl --------------------------------------------------------------------------- +dnl CF_WITH_LIBTOOL version: 10 updated: 2006/10/14 15:23:15 +dnl --------------- +dnl Provide a configure option to incorporate libtool. Define several useful +dnl symbols for the makefile rules. +dnl +dnl The reference to AC_PROG_LIBTOOL does not normally work, since it uses +dnl macros from libtool.m4 which is in the aclocal directory of automake. +dnl Following is a simple script which turns on the AC_PROG_LIBTOOL macro. +dnl But that still does not work properly since the macro is expanded outside +dnl the CF_WITH_LIBTOOL macro: +dnl +dnl #!/bin/sh +dnl ACLOCAL=`aclocal --print-ac-dir` +dnl if test -z "$ACLOCAL" ; then +dnl echo cannot find aclocal directory +dnl exit 1 +dnl elif test ! -f $ACLOCAL/libtool.m4 ; then +dnl echo cannot find libtool.m4 file +dnl exit 1 +dnl fi +dnl +dnl LOCAL=aclocal.m4 +dnl ORIG=aclocal.m4.orig +dnl +dnl trap "mv $ORIG $LOCAL" 0 1 2 5 15 +dnl rm -f $ORIG +dnl mv $LOCAL $ORIG +dnl +dnl # sed the LIBTOOL= assignment to omit the current directory? +dnl sed -e 's/^LIBTOOL=.*/LIBTOOL=${LIBTOOL-libtool}/' $ACLOCAL/libtool.m4 >>$LOCAL +dnl cat $ORIG >>$LOCAL +dnl +dnl autoconf-257 $* +dnl +AC_DEFUN([CF_WITH_LIBTOOL], +[ +ifdef([AC_PROG_LIBTOOL],,[ +LIBTOOL= +]) +# common library maintenance symbols that are convenient for libtool scripts: +LIB_CREATE='${AR} -cr' +LIB_OBJECT='${OBJECTS}' +LIB_SUFFIX=.a +LIB_PREP="$RANLIB" + +# symbols used to prop libtool up to enable it to determine what it should be +# doing: +LIB_CLEAN= +LIB_COMPILE= +LIB_LINK= +LIB_INSTALL= +LIB_UNINSTALL= + +AC_MSG_CHECKING(if you want to build libraries with libtool) +AC_ARG_WITH(libtool, + [ --with-libtool generate libraries with libtool], + [with_libtool=$withval], + [with_libtool=no]) +AC_MSG_RESULT($with_libtool) +if test "$with_libtool" != "no"; then +ifdef([AC_PROG_LIBTOOL],[ + # missing_content_AC_PROG_LIBTOOL{{ + AC_PROG_LIBTOOL + # missing_content_AC_PROG_LIBTOOL}} +],[ + if test "$with_libtool" != "yes" ; then + CF_PATH_SYNTAX(with_libtool) + LIBTOOL=$with_libtool + else + AC_PATH_PROG(LIBTOOL,libtool) + fi + if test -z "$LIBTOOL" ; then + AC_MSG_ERROR(Cannot find libtool) + fi +])dnl + LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${DESTDIR}${libdir} -version-info `cut -f1 ${srcdir}/VERSION` -o' + LIB_OBJECT='${OBJECTS}.o=.lo)' + LIB_SUFFIX=.la + LIB_CLEAN='${LIBTOOL} --mode=clean' + LIB_COMPILE='${LIBTOOL} --mode=compile' + LIB_LINK='${LIBTOOL} --mode=link' + LIB_INSTALL='${LIBTOOL} --mode=install' + LIB_UNINSTALL='${LIBTOOL} --mode=uninstall' + LIB_PREP=: + + # Show the version of libtool + AC_MSG_CHECKING(version of libtool) + + # Save the version in a cache variable - this is not entirely a good + # thing, but the version string from libtool is very ugly, and for + # bug reports it might be useful to have the original string. + cf_cv_libtool_version=`$LIBTOOL --version 2>&1 | sed -e '2,$d' -e 's/([[^)]]*)//g' -e 's/^[[^1-9]]*//' -e 's/[[^0-9.]].*//'` + AC_MSG_RESULT($cf_cv_libtool_version) + if test -z "$cf_cv_libtool_version" ; then + AC_MSG_ERROR(This is not libtool) + fi + + # special hack to add --tag option for C++ compiler + case $cf_cv_libtool_version in + 1.[[5-9]]*|[[2-9]]*) + LIBTOOL_CXX="$LIBTOOL --tag=CXX" + ;; + *) + LIBTOOL_CXX="$LIBTOOL" + ;; + esac +else + LIBTOOL="" + LIBTOOL_CXX="" +fi + +test -z "$LIBTOOL" && ECHO_LT= + +AC_SUBST(LIBTOOL) +AC_SUBST(LIBTOOL_CXX) + +AC_SUBST(LIB_CREATE) +AC_SUBST(LIB_OBJECT) +AC_SUBST(LIB_SUFFIX) +AC_SUBST(LIB_PREP) + +AC_SUBST(LIB_CLEAN) +AC_SUBST(LIB_COMPILE) +AC_SUBST(LIB_LINK) +AC_SUBST(LIB_INSTALL) +AC_SUBST(LIB_UNINSTALL) + +])dnl +dnl --------------------------------------------------------------------------- +dnl CF_WITH_PATH version: 7 updated: 2006/08/03 15:20:08 +dnl ------------ dnl Wrapper for AC_ARG_WITH to ensure that user supplies a pathname, not just dnl defaulting to yes/no. dnl @@ -2886,10 +4787,12 @@ AC_DEFUN([CF_WITH_PATH], [AC_ARG_WITH($1,[$2 ](default: ifelse($4,,empty,$4)),, ifelse($4,,[withval="${$3}"],[withval="${$3-ifelse($5,,$4,$5)}"]))dnl CF_PATH_SYNTAX(withval) -eval $3="$withval" +$3="$withval" AC_SUBST($3)dnl ])dnl dnl --------------------------------------------------------------------------- +dnl CF_WITH_PATHLIST version: 5 updated: 2001/12/10 01:28:30 +dnl ---------------- dnl Process an option specifying a list of colon-separated paths. dnl dnl $1 = option name @@ -2929,3 +4832,154 @@ eval '$3="$cf_dst_path"' AC_SUBST($3)dnl ])dnl +dnl --------------------------------------------------------------------------- +dnl CF_WITH_REL_VERSION version: 1 updated: 2003/09/20 18:12:49 +dnl ------------------- +dnl Allow library's release-version to be overridden. Generally this happens when a +dnl packager has incremented the release-version past that used in the original package, +dnl and wishes to keep doing this. +dnl +dnl $1 is the package name, if any, to derive corresponding {package}_MAJOR +dnl and {package}_MINOR symbols +dnl symbol. +AC_DEFUN([CF_WITH_REL_VERSION],[ +test -z "$cf_cv_rel_version" && cf_cv_rel_version=0.0 +AC_ARG_WITH(rel-version, +[ --with-rel-version=XXX override derived release version], +[AC_MSG_WARN(overriding release version $cf_cv_rel_version to $withval) + cf_cv_rel_version=$withval]) +ifelse($1,,[ + CF_NUMBER_SYNTAX($cf_cv_rel_version,Release version) +],[ + $1_MAJOR=`echo "$cf_cv_rel_version" | sed -e 's/\..*//'` + $1_MINOR=`echo "$cf_cv_rel_version" | sed -e 's/^[[^.]]*//' -e 's/^\.//' -e 's/\..*//'` + CF_NUMBER_SYNTAX([$]$1_MAJOR,Release major-version) + CF_NUMBER_SYNTAX([$]$1_MINOR,Release minor-version) +]) +])dnl +dnl --------------------------------------------------------------------------- +dnl CF_WITH_SYSMOUSE version: 2 updated: 2003/03/22 19:13:43 +dnl ---------------- +dnl If we can compile with sysmouse, make it available unless it is not wanted. +AC_DEFUN([CF_WITH_SYSMOUSE],[ +# not everyone has "test -c" +if test -c /dev/sysmouse 2>/dev/null ; then +AC_MSG_CHECKING(if you want to use sysmouse) +AC_ARG_WITH(sysmouse, + [ --with-sysmouse use sysmouse (FreeBSD console)], + [cf_with_sysmouse=$withval], + [cf_with_sysmouse=maybe]) + if test "$cf_with_sysmouse" != no ; then + AC_TRY_COMPILE([ +#include +#if (__FreeBSD_version >= 400017) +#include +#include +#else +#include +#endif +],[ + struct mouse_info the_mouse; + ioctl(0, CONS_MOUSECTL, &the_mouse); +],[cf_with_sysmouse=yes],[cf_with_sysmouse=no]) + fi +AC_MSG_RESULT($cf_with_sysmouse) +test "$cf_with_sysmouse" = yes && AC_DEFINE(USE_SYSMOUSE) +fi +])dnl +dnl --------------------------------------------------------------------------- +dnl CF_WITH_VALGRIND version: 1 updated: 2006/12/14 18:00:21 +dnl ---------------- +AC_DEFUN([CF_WITH_VALGRIND],[ +CF_NO_LEAKS_OPTION(valgrind, + [ --with-valgrind test: use valgrind], + [USE_VALGRIND]) +])dnl +dnl --------------------------------------------------------------------------- +dnl CF_XOPEN_SOURCE version: 24 updated: 2006/04/02 16:41:09 +dnl --------------- +dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions, +dnl or adapt to the vendor's definitions to get equivalent functionality, +dnl without losing the common non-POSIX features. +dnl +dnl Parameters: +dnl $1 is the nominal value for _XOPEN_SOURCE +dnl $2 is the nominal value for _POSIX_C_SOURCE +AC_DEFUN([CF_XOPEN_SOURCE],[ + +AC_REQUIRE([CF_PROG_CC_U_D]) + +cf_XOPEN_SOURCE=ifelse($1,,500,$1) +cf_POSIX_C_SOURCE=ifelse($2,,199506L,$2) + +case $host_os in #(vi +aix[[45]]*) #(vi + CPPFLAGS="$CPPFLAGS -D_ALL_SOURCE" + ;; +freebsd*) #(vi + # 5.x headers associate + # _XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L + # _XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L + cf_POSIX_C_SOURCE=200112L + cf_XOPEN_SOURCE=600 + CPPFLAGS="$CPPFLAGS -D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE" + ;; +hpux*) #(vi + CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE" + ;; +irix[[56]].*) #(vi + CPPFLAGS="$CPPFLAGS -D_SGI_SOURCE" + ;; +linux*|gnu*) #(vi + CF_GNU_SOURCE + ;; +mirbsd*) #(vi + # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks + ;; +netbsd*) #(vi + # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw + ;; +openbsd*) #(vi + # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw + ;; +osf[[45]]*) #(vi + CPPFLAGS="$CPPFLAGS -D_OSF_SOURCE" + ;; +nto-qnx*) #(vi + CPPFLAGS="$CPPFLAGS -D_QNX_SOURCE" + ;; +sco*) #(vi + # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer + ;; +solaris*) #(vi + CPPFLAGS="$CPPFLAGS -D__EXTENSIONS__" + ;; +*) + AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[ + AC_TRY_COMPILE([#include ],[ +#ifndef _XOPEN_SOURCE +make an error +#endif], + [cf_cv_xopen_source=no], + [cf_save="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE" + AC_TRY_COMPILE([#include ],[ +#ifdef _XOPEN_SOURCE +make an error +#endif], + [cf_cv_xopen_source=no], + [cf_cv_xopen_source=$cf_XOPEN_SOURCE]) + CPPFLAGS="$cf_save" + ]) +]) + if test "$cf_cv_xopen_source" != no ; then + CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE) + CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE) + test "$cf_cv_cc_u_d_options" = yes && \ + CPPFLAGS="$CPPFLAGS -U_XOPEN_SOURCE" + CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_cv_xopen_source" + fi + CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE) + ;; +esac +]) diff --git a/contrib/ncurses/announce.html.in b/contrib/ncurses/announce.html.in index e62db47..84d5bbe 100644 --- a/contrib/ncurses/announce.html.in +++ b/contrib/ncurses/announce.html.in @@ -1,11 +1,39 @@ Announcing ncurses @VERSION@ + @@ -18,8 +46,8 @@ and multiple highlights and forms characters and function-key mapping, and has all the other SYSV-curses enhancements over BSD curses.

In mid-June 1995, the maintainer of 4.4BSD curses declared that he -considered 4.4BSD curses obsolete, and is encouraging the keepers of -Unix releases such as BSD/OS, freeBSD and netBSD to switch over to +considered 4.4BSD curses obsolete, and encouraged the keepers of +Unix releases such as BSD/OS, FreeBSD and NetBSD to switch over to ncurses.

The ncurses code was developed under GNU/Linux. @@ -35,333 +63,305 @@ the library and tools.

The ncurses distribution is available via anonymous FTP at the GNU distribution site -ftp://ftp.gnu.org/pub/gnu/ncurses. +ftp://ftp.gnu.org/gnu/ncurses/ .
It is also available at -ftp://dickey.his.com/ncurses. +ftp://invisible-island.net/ncurses/ .

Release Notes

-This release is designed to be upward compatible from ncurses 5.0 and 5.1; +This release is designed to be upward compatible from ncurses 5.0 through 5.5; very few applications will require recompilation, depending on the platform. -These are the highlights from the change-log since ncurses 5.1 release. +These are the highlights from the change-log since ncurses 5.5 release.

Interface changes:

    -
  • change type of ospeed variable back to - short to match its use in legacy applications. It was - altered after ncurses 4.2 to speed_t to repair a type - mismatch which was introduced after 1.9.4 in 1995. The principal - users of termcap continued to use short, which is - not the same size. -

    - NOTE: A few applications will have to be recompiled - (about 1% of the programs in a typical Linux distribution, - 10% of the programs that use ncurses). These are easy to - identify with nm or strings. - -

  • remove a private function _nc_can_clear_with(), which - was built with the configure --enable-expanded option but not used. - -
  • add several private functions (prefixed with "_nc_") for tracing - chtype values in the debug library, and for better - access and buffer limit checking. +
  • generate linkable stubs for some macros: +
    + getbegx, getbegy, getcurx, getcury, getmaxx, getmaxy, getparx, + getpary, getpary, +
    + and (for libncursesw) +
    + wgetbkgrnd +
New features and improvements:
    -
  • rewrote tgoto() to make it better support existing - termcap applications which use hardcoded strings rather than obtain - all of their information from the termcap file. If the string does - not appear to be a terminfo string (i.e., does not refer to a "%p" - parameter, or terminfo-style padding), and termcap support is configured, tgoto() - will interpret it as termcap. Otherwise, as before, it will use - tparm(). - -
  • to ensure that the tgoto() changes work properly, - added checks to tic which report capabilities that do - not reference the expected number of parameters. - -
  • new configure script options: +
  • library
      -
    • option --disable-root-environ adds runtime checks - which tell ncurses to disregard $TERMINFO and similar environment - variables if the current user is root, or running setuid/setgid. - -
    • option --disable-assumed-color allows you to use the - pre-5.1 convention of default colors used for color-pair 0 to be - configured (see assume_default_colors()). +
    • support hashed databases for the terminal descriptions. + This uses the Berkeley database, has been tested for + several versions on different platforms. + +
    • add use_legacy_coding() function to support + lynx's font-switching feature. + +
    • add extension nofilter(), to cancel a prior + filter() call. + +
    • add/install a package config script, e.g., + ncurses5-config or + ncursesw5-config, according to + configuration options. + +
    • provide ifdef for NCURSES_NOMACROS which + suppresses most macro definitions from curses.h, i.e., + where a macro is defined to override a function to improve + performance. + +
    • make ifdef's consistent in curses.h for the + extended colors so the header file can be used for the + normal curses library. The header file installed for + extended colors is a variation of the wide-character + configuration. + +
    • improve tgetstr() by making the return value + point into the user's buffer, if provided. + +
    • add ifdef's allowing ncurses to be built with + tparm() using either varargs (the existing + status), or using a fixed-parameter list (to match X/Open). + +
    • widen the test for xterm kmous a little to + allow for other + strings than "\E[M", e.g., for xterm-sco + functionality in xterm. + +
    • modify wgetnstr() to return + KEY_RESIZE if a sigwinch occurs. + +
    • move prototypes for wide-character trace functions from + curses.tail to curses.wide to avoid accidental reference to + those if _XOPEN_SOURCE_EXTENDED is defined + without ensuring that <wchar.h> is included. + +
    • change the way shared libraries (other than libtool) are + installed. Rather than copying the build-tree's libraries, + link the shared objects into the install directory. This + makes the --with-rpath option work except with + $(DESTDIR). + +
    • several improvements for rendering in hpterm. These are + only available if the library is configured using + --enable-xmc-glitch. + +
    • Add NCURSES_NO_HARD_TABS and + NCURSES_NO_MAGIC_COOKIE environment variables + to allow runtime suppression of the related hard-tabs and + xmc-glitch features. +
    -
  • implement configure script options that transform installed - program names, e.g., --program-prefix, including the - manpage names and cross references. +
  • programs: +
      +
    • add new test programs: chgat.c, demo_altkeys.c, + echochar.c, foldkeys.c, movewindow.c, redraw.c, (noting + that existing test programs also were modified to test + additional features). -
    • option --with-database allows you to specify a - different terminfo source-file to install. On OS/2 EMX, the - default is misc/emx.src, otherwise misc/terminfo.src +
    • modify tack to test extended capability function-key + strings. -
    • option --with-default-terminfo-dir allows you to - specify the default terminfo database directory. +
    • modify toe to access termcap data, e.g., via cgetent() + functions, or as a text file if those are not available. -
    • option --with-libtool allows you to build with - libtool.

      NOTE: libtool - uses a different notation for numbering shared library versions - from the existing ncurses configuration. +

    • improve infocmp/tic -f option formatting. -
    • option --with-manpage-tbl causes the manpages to be - preprocessed by tbl(1) prior to installation, +
    • add toe -a option, to show all databases. + This uses new private interfaces in the ncurses library for + iterating through the list of databases. -
    • option --without-curses-h causes the installation - process to install curses.h as ncurses.h and make appropriate - changes to headers and manpages. +
    • modify MKfallback.sh to use + tic -x when constructing fallback tables to + allow extended capabilities to be retrieved from a fallback entry.
    -
  • modified configure script options: +
  • terminal database
      -
    • change symbol used by the --install-prefix configure - option from INSTALL_PREFIX to DESTDIR - (the latter has become common usage although the name is - misleading). - -
    • modify ld -rpath options (e.g., Linux, and Solaris) - to use an absolute pathname for the build tree's lib directory, - avoiding confusion with directories relative to the current one - with the installed programs. - -
    • modified misc/run_tic.in to use - tic -o, to eliminate dependency on - $TERMINFO variable for installs. +
    • add terminfo entries for xfce terminal (xfce) and multi gnome terminal (mgt) +
    • add nsterm-16color entry +
    • updated mlterm terminfo entry +
    • add kon, kon2 and jfbterm terminfo entry +
    • remove invis capability from klone+sgr, mainly used by linux entry, since it does not really do this +
    • add ka2, kb1, kb3, kc2 to vt220-keypad as an extension +
    • add shifted up/down arrow codes to xterm-new as kind/kri strings +
    • add hpterm-color terminfo entry +
    • add 256color variants of terminfo entries for programs which are reported to implement this feature +
    • correct order of use-clauses in rxvt-basic entry which made codes for f1-f4 vt100-style rather than vt220-style.
    +
+Major bug fixes: +
    +
  • correct a typo in configure --with-bool option for the + case where --without-cxx is used. -
  • terminfo database: -
      -
    • updated xterm terminfo entries to match XFree86 xterm patch #146. +
    • move assignment from environment variable ESCDELAY + from initscr() down to newterm() so the + environment variable affects timeouts for terminals opened with + newterm() as well. -
    • added amiga-vnc, - Matrix Orbital, and - QNX qansi to misc/terminfo.src. +
    • modify werase to clear multicolumn characters that + extend into a derived window. -
    • added os2 entry to misc/emx.src. +
    • modify wchgat() to mark updated cells as changed so a + refresh will repaint those cells. -
    • add S0 and E0 extensions to screen's terminfo entry - since otherwise the FreeBSD port makes it pass termcap equivalents - to tgoto, which would be misinterpreted by older - versions of ncurses. -
    +
  • correct logic in wadd_wch() and + wecho_wch(), which did not guard against passing the + multi-column attribute into a call on waddch(), e.g., + using data returned by win_wch() -
  • improvements to program usability: -
      -
    • modify programs to use curses_version() string to - report the version of ncurses with which they are compiled rather - than the NCURSES_VERSION string. The function returns the patch - level in addition to the major and minor version numbers. +
    • fix redrawing of windows other than stdscr using + wredrawln() by touching the corresponding rows in + curscr. -
    • modify tput program so it can be renamed or invoked via a link as - 'reset' or 'init', producing the same effect as tput reset or tput init. +
    • reduce memory leaks in repeated calls to tgetent() by + remembering the last TERMINAL* value allocated to hold + the corresponding data and freeing that if the + tgetent() result buffer is the same as the previous + call. -
    • add error checking to infocmp's -v and -m options to ensure that - the option value is indeed a number. -
    +
  • modify read_termtype() so the term_names + data is always allocated as part of the str_table, a + better fix for a memory leak. -
  • improved performance: -
      -
    • replace a lookup table in lib_vidattr.c used to decode - no_color_video with a logic expression which is faster. -
    +
  • fix wins_nwstr(), which did not handle single-column + non-8bit codes. + +
  • modify wbkgrnd() to avoid clearing the + A_CHARTEXT attribute bits since those record the state + of multicolumn characters. + +
  • improve SIGWINCH handling by postponing its effect + during newterm(), etc., when allocating screens. + +
  • remove 970913 feature for copying subwindows as they are moved in + mvwin(). +
  • add checks in waddchnstr() and + wadd_wchnstr() to stop copying when a null character + is found. + +
  • add some checks to ensure current position is within scrolling + region before scrolling on a new line. + +
  • add a workaround to ACS mapping to allow applications such as + test/blue.c to use the "PC ROM" characters by masking them with + A_ALTCHARSET. This worked up til 5.5, but was lost in the revision + of legacy coding.
-Major bug fixes: + +Portability:
    -
  • correct manlinks.sed script introduced in ncurses 5.1 - to avoid using ERE "\+", which is not understood by standard versions - of sed. This happens to work with GNU sed, - but is not portable, and was the initial motivation for this release. - -
  • remove "hpux10.*" case from CF_SHARED_OPTS configure script macro. - This differed from the "hpux*" case by using reversed symbolic - links, which made the 5.1 version not match the configuration of - 5.0 shared libraries. - -
  • guard against corrupt terminfo data: -
      -
    • modify tparm() to disallow arithmetic on strings, - analyze the varargs list to read strings as strings and numbers as - numbers. - -
    • modify tparm()'s internal function - spop() to treat a null pointer as an empty string. - -
    • modify parse_format() in lib_tparm.c to ignore - precision if it is longer than 10000. - -
    • rewrote limit checks in lib_mvcur.c using new functions - _nc_safe_strcat(), etc. Made other related changes to - check lengths used for strcat() and - strcpy(). -
    - -
  • corrections to screen optimization: -
      -
    • added special case in lib_vidattr.c to reset underline and - standout for devices that have no sgr0 defined. - -
    • change handling of non_dest_scroll_region in - tty_update.c to clear text after it is shifted in rather than before - shifting out. Also correct row computation. - -
    • modify rs2 capability in xterm-r6 and similar entries - where cursor save/restore bracketed the sequence for resetting video - attributes. The cursor restore would undo that. -
    - -
  • UTF-8 support: -
      -
    • when checking LC_ALL, LC_CTYPE, and LANG environment variables - for UTF-8 locale, ignore those which are set to an empty value, as - per SUSV2. +
    • configure script: +
        +
      • new options: +
        -
      • encode 0xFFFD in UTF-8 with 3 bytes, not 2. +
        --with-hashed-db +
        Use Berkeley hashed database for storing terminfo data rather than storing + each compiled entry in a separate binary file within a directory + tree. -
      • modify _nc_utf8_outch() to avoid sign-extension when - checking for out-of-range value. -
      +
      --without-dlsym +
      Do not use dlsym() to load GPM dynamically. -
    • other library fixes: -
        -
      • added checks for an empty $HOME environment - variable, to avoid retrieving terminfo descriptions from - ./.terminfo . +
        --with-valgrind +
        Simplify building for testing with valgrind. -
      • change functions _nc_parse_entry() and - postprocess_termcap() to avoid using - strtok(), because it is non-reentrant. +
        --enable-wgetch-events +
        Compile with experimental wgetch-events code. -
      • initialize fds[] array to 0's in - _nc_timed_wait(); apparently poll() only - sets the revents members of that array when there is - activity corresponding to the related file. +
        --enable-signed-char +
        Store booleans in "signed char" rather than "char". -
      • add a check for null pointer in Make_Enum_Type(). + -
      • fix a heap problem with the c++ binding. +
      • improved options: +
        -
      • correct missing includes for <string.h> in several places, - including the C++ binding. This is not noted by gcc unless we use - the -fno-builtin option. -
      +
      --disable-largefile +
      make the option work both ways. -
    • several fixes for tic: -
        -
      • add a check for empty buffers returned by fgets() in - comp_scan.c next_char() function, in case - tic is run on a non-text file (fixes a core dump). - -
      • modify tic to verify that its inputs are really files, - in case someone tries to read a directory (or - /dev/zero). - -
      • correct an uninitialized parameter to open_tempfile() - in tic.c which made "tic -I" give an ambiguous error message about - tmpnam. - -
      • correct logic in adjust_cancels(), which did not check - both alternatives when reclassifying an extended name between - boolean, number and string, causing an infinite loop in - tic. -
      - -
    • using new checks in tic for parameter counts in - capability strings, found/fixed several errors both in the - terminfo database and in the include/Caps file. -
        -
      • modified several terminfo capability strings, including the - definitions for setaf, setab, in include/Caps to indicate that the - entries are parameterized. This information is used to tell which - strings are translated when converting to termcap. This fixes a - problem where the generated termcap would contain a spurious "%p1" - for the terminfo "%p1%d". - -
      • correct parameter counts in include/Caps for dclk as well as some - printer-specific capabilities: csnm, defc, scs, scsd, smgtp, smglp. -
      - -
    • various fixes for install scripts used to support configure - --srcdir and --with-install-prefix. - -
    • correct several mismatches between manpage filename and ".TH" - directives, renaming dft_fgbg.3x to default_colors.3x and - menu_attribs.3x to menu_attributes.3x. -
    +
    --with-gpm +
    The option now accepts a parameter, + i.e., the name of the dynamic GPM library to load via + dlopen() -Portability: -
      -
    • configure script: -
        -
      • newer config.guess, config.sub, including changes to support OS/2 - EMX. The configure script for OS/2 EMX still relies on a patch - since there is no (working) support for that platform in the main - autoconf distribution. +
        --disable-symlinks +
        The option now allows one to + disable symlink() in tic even when + link() does not work. + + + +
      + +
    • other configure/build issues:
      • remove special case for + Darwin in CF_XOPEN_SOURCE configure macro. -
      • make configure script checks on variables $GCC and - $GXX consistently compare against 'yes' rather than - test if they are nonnull, since either may be set to the - corresponding name of the C or C++ compiler. +
      • add configure check to ensure that SIGWINCH is + defined on platforms such as OS X which exclude that when + _XOPEN_SOURCE, etc., are defined -
      • change configure script to use AC_CANONICAL_SYSTEM rather than - AC_CANONICAL_HOST, which means that configure --target - will set a default program-prefix. +
      • use ld's -search_paths_first option on Darwin + to work around odd search rules on that platform. -
      • modify the check for big-core to force a couple of memory - accesses, which may work as needed for older/less-capable machines - (if not, there's still the explicit configure option). +
      • improve ifdef's for _POSIX_VDISABLE in tset to + work with Mac OS X. -
      • modify configure test for tcgetattr() to allow for - old implementations, e.g., on BeOS, which only defined it as a - macro. +
      • modify configure script to ensure that if the C compiler is + used rather than the loader in making shared libraries, the + $(CFLAGS) variable is also used. -
      • add configure check for filesystems (such as OS/2 EMX) which do - not distinguish between upper/lowercase filenames, use this to fix - tags rules in makefiles. +
      • use ${CC} rather than ${LD} in + shared library rules for IRIX64, Solaris to help ensure + that initialization sections are provided for extra linkage + requirements, e.g., of C++ applications. -
      • add MKncurses_def.sh to generate fallback definitions for - ncurses_cfg.h, to quiet gcc -Wundef warnings, modified ifdef's in - code to consistently use "#if" rather than "#ifdef". +
      • improve some shared-library configure scripting for Linux, + FreeBSD and NetBSD to make + --with-shlib-version work. -
      • change most remaining unquoted parameters of test in - configure script to use quotes, for instance fixing a problem in the - --disable-database option. +
      • split up dependency of names.c and + codes.c in ncurses/Makefile to + work with parallel make. -
      • modify scripts so that "make install.data" works on OS/2 EMX. +
      • modify MKlib_gen.sh to change + preprocessor-expanded _Bool back to bool. -
      • modify scripts and makefiles so the Ada95 directory builds on - OS/2 EMX. +
      • modify progs/Makefile.in to make + tput init work properly with cygwin, + i.e., do not pass a .exe in the reference + string used in check_aliases.
    • library:
        -
      • replaced case-statement in _nc_tracebits() for CSIZE - with a table to simplify working around implementations that define - random combinations of the related macros to zero. +
      • ignore wide-acs line-drawing characters that + wcwidth() claims are not one-column. This is + a workaround for Solaris' broken locale support. -
      • improved OS/2 mouse support by retrying as a 2-button mouse if code - fails to set up a 3-button mouse. +
      • reduce name-pollution in term.h by removing + #define's for HAVE_xxx symbols. -
      • added private entrypoint _nc_basename(), used to - consolidate related code in progs, as well as accommodating OS/2 EMX - pathnames. +
      • fix #ifdef in c++/internal.h for + QNX 6.1 +
      -
    • alter definition of NCURSES_CONST to make it non-empty. +
    • test programs:
      • modify test/configure script + to allow building test programs with PDCurses/X11. -
      • redefine 'TEXT' in menu.h for AMIGA, since it is reported to have - an (unspecified) symbol conflict. -
      +
    • modified test programs to allow some to work with NetBSD + curses. Several do not because NetBSD curses implements a + subset of X/Open curses, and also lacks much of SVr4 + additions. But it is enough for comparison. -
    • programs: -
        -
      • modified progs/tset.c and tack/sysdep.c to build with sgttyb - interface if neither termio or termios is available. Tested this - with FreeBSD 2.1.5 (which does have termios - but the sgttyb does - work). -
      +
    • improved test/configure to build test/ncurses + on HPUX 11 using the vendor curses. +
    • change configure script to produce + test/Makefile from data file. +

Features of Ncurses

@@ -390,14 +390,15 @@ The ncurses package also has many useful extensions over SVr4: